@slicemachine/adapter-next 0.3.37-beta.6 → 0.3.37-beta.8

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.
Files changed (61) hide show
  1. package/dist/hooks/project-init.cjs +64 -14
  2. package/dist/hooks/project-init.cjs.map +1 -1
  3. package/dist/hooks/project-init.js +64 -14
  4. package/dist/hooks/project-init.js.map +1 -1
  5. package/dist/hooks/sliceSimulator-setup-read.cjs +50 -13
  6. package/dist/hooks/sliceSimulator-setup-read.cjs.map +1 -1
  7. package/dist/hooks/sliceSimulator-setup-read.js +50 -13
  8. package/dist/hooks/sliceSimulator-setup-read.js.map +1 -1
  9. package/dist/simulator/SliceSimulator.cjs +7 -12
  10. package/dist/simulator/SliceSimulator.cjs.map +1 -1
  11. package/dist/simulator/SliceSimulator.d.ts +11 -3
  12. package/dist/simulator/SliceSimulator.js +8 -13
  13. package/dist/simulator/SliceSimulator.js.map +1 -1
  14. package/dist/simulator/SliceSimulatorWrapper.cjs +19 -0
  15. package/dist/simulator/SliceSimulatorWrapper.cjs.map +1 -0
  16. package/dist/simulator/SliceSimulatorWrapper.d.ts +14 -0
  17. package/dist/simulator/SliceSimulatorWrapper.js +19 -0
  18. package/dist/simulator/SliceSimulatorWrapper.js.map +1 -0
  19. package/dist/simulator/getSlices.cjs +7 -0
  20. package/dist/simulator/getSlices.cjs.map +1 -0
  21. package/dist/simulator/getSlices.d.ts +9 -0
  22. package/dist/simulator/getSlices.js +7 -0
  23. package/dist/simulator/getSlices.js.map +1 -0
  24. package/dist/simulator/index.d.ts +2 -0
  25. package/dist/simulator/react-server/SliceSimulator.cjs +76 -0
  26. package/dist/simulator/react-server/SliceSimulator.cjs.map +1 -0
  27. package/dist/simulator/react-server/SliceSimulator.d.ts +7 -0
  28. package/dist/simulator/react-server/SliceSimulator.js +59 -0
  29. package/dist/simulator/react-server/SliceSimulator.js.map +1 -0
  30. package/dist/simulator/react-server/actions.cjs +10 -0
  31. package/dist/simulator/react-server/actions.cjs.map +1 -0
  32. package/dist/simulator/react-server/actions.d.ts +1 -0
  33. package/dist/simulator/react-server/actions.js +10 -0
  34. package/dist/simulator/react-server/actions.js.map +1 -0
  35. package/dist/simulator/react-server/getSlices.cjs +9 -0
  36. package/dist/simulator/react-server/getSlices.cjs.map +1 -0
  37. package/dist/simulator/react-server/getSlices.d.ts +2 -0
  38. package/dist/simulator/react-server/getSlices.js +9 -0
  39. package/dist/simulator/react-server/getSlices.js.map +1 -0
  40. package/dist/simulator/react-server/index.d.ts +2 -0
  41. package/dist/simulator/react-server.cjs +7 -0
  42. package/dist/simulator/react-server.cjs.map +1 -0
  43. package/dist/simulator/react-server.js +7 -0
  44. package/dist/simulator/react-server.js.map +1 -0
  45. package/dist/simulator/types.d.ts +11 -0
  46. package/dist/simulator.cjs +2 -0
  47. package/dist/simulator.cjs.map +1 -1
  48. package/dist/simulator.js +3 -1
  49. package/dist/simulator.js.map +1 -1
  50. package/package.json +14 -5
  51. package/src/hooks/project-init.ts +64 -13
  52. package/src/hooks/sliceSimulator-setup-read.ts +64 -14
  53. package/src/simulator/SliceSimulator.tsx +49 -60
  54. package/src/simulator/SliceSimulatorWrapper.tsx +68 -0
  55. package/src/simulator/getSlices.ts +19 -0
  56. package/src/simulator/index.ts +3 -0
  57. package/src/simulator/react-server/SliceSimulator.tsx +113 -0
  58. package/src/simulator/react-server/actions.ts +7 -0
  59. package/src/simulator/react-server/getSlices.ts +16 -0
  60. package/src/simulator/react-server/index.ts +4 -0
  61. package/src/simulator/types.ts +11 -0
@@ -1 +1 @@
1
- {"version":3,"file":"sliceSimulator-setup-read.js","sources":["../../../src/hooks/sliceSimulator-setup-read.ts"],"sourcesContent":["import type {\n\tSliceMachineContext,\n\tSliceSimulatorSetupReadHook,\n\tSliceSimulatorSetupStep,\n} from \"@slicemachine/plugin-kit\";\nimport { source } from \"common-tags\";\nimport { createRequire } from \"node:module\";\nimport fetch, { Response } from \"node-fetch\";\n\nimport { getJSFileExtension } from \"../lib/getJSFileExtension\";\n\nimport type { PluginOptions } from \"../types\";\n\nconst REQUIRED_DEPENDENCIES = [\"@prismicio/react\"];\n\ntype Args = SliceMachineContext<PluginOptions>;\n\nconst createStep1 = async ({\n\tproject,\n\thelpers,\n}: Args): Promise<SliceSimulatorSetupStep> => {\n\tconst require = createRequire(project.root);\n\n\treturn {\n\t\ttitle: \"Install packages\",\n\t\tdescription: \"The simulator requires some dependencies.\",\n\t\t// TODO: Create a plugin runner helper to provide the correct\n\t\t// package manager\n\t\tbody: source`\n\t\t\tThe simulator requires extra dependencies. Run the following command to install them.\n\n\t\t\t~~~sh\n\t\t\tnpm install --save ${REQUIRED_DEPENDENCIES.join(\" \")}\n\t\t\t~~~\n\t\t`,\n\t\tvalidate: async () => {\n\t\t\tconst missingDependencies: string[] = [];\n\n\t\t\tfor (const dependency of REQUIRED_DEPENDENCIES) {\n\t\t\t\ttry {\n\t\t\t\t\t// `require.resolve()` is preferred\n\t\t\t\t\t// over `import()` because we don't\n\t\t\t\t\t// want to load the module. Loading a\n\t\t\t\t\t// module could introduce side-effects.\n\t\t\t\t\trequire.resolve(dependency, {\n\t\t\t\t\t\tpaths: [helpers.joinPathFromRoot(\"node_modules\")],\n\t\t\t\t\t});\n\t\t\t\t} catch {\n\t\t\t\t\tmissingDependencies.push(dependency);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (missingDependencies.length >= REQUIRED_DEPENDENCIES.length) {\n\t\t\t\treturn {\n\t\t\t\t\ttitle: \"Missing all dependencies\",\n\t\t\t\t\tmessage: source`\n\t\t\t\t\t\tInstall the required dependencies to continue.\n\t\t\t\t\t`,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (missingDependencies.length > 0) {\n\t\t\t\tconst formattedMissingDependencies = missingDependencies\n\t\t\t\t\t.map((missingDependency) => `\\`${missingDependency}\\``)\n\t\t\t\t\t.join(\", \");\n\n\t\t\t\treturn {\n\t\t\t\t\ttitle: \"Missing some dependencies\",\n\t\t\t\t\tmessage: source`\n\t\t\t\t\t\tThe following dependencies are missing: ${formattedMissingDependencies}\n\t\t\t\t\t`,\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\t};\n};\n\nconst createStep2 = async ({\n\thelpers,\n\toptions,\n}: Args): Promise<SliceSimulatorSetupStep> => {\n\tconst extension = await getJSFileExtension({ helpers, options, jsx: true });\n\tconst fileName = `slice-simulator.${extension}`;\n\tconst filePath = helpers.joinPathFromRoot(\"pages\", fileName);\n\n\tconst fileContents = await helpers.format(\n\t\tsource`\n\t\t\timport { SliceSimulator } from \"@slicemachine/adapter-next/simulator\";\n\t\t\timport { SliceZone } from \"@prismicio/react\";\n\n\t\t\timport { components } from \"../slices\";\n\n\t\t\texport default function SliceSimulatorPage() {\n\t\t\t\treturn (\n\t\t\t\t\t<SliceSimulator\n\t\t\t\t\t\tsliceZone={(props) => <SliceZone {...props} components={components} />}\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t}\n\t\t`,\n\t\tfilePath,\n\t\t{\n\t\t\tincludeNewlineAtEnd: false,\n\t\t},\n\t);\n\n\treturn {\n\t\ttitle: \"Create a page for the simulator\",\n\t\tdescription: `In your \\`pages\\` directory, create a file called \\`${fileName}\\` containing this code.`,\n\t\tbody: source`\n\t\t\tIn your \\`pages\\` directory, create a file called \\`${fileName}\\` and add the following code. This route will be used to simulate and develop your components.\n\n\t\t\t~~~tsx\n\t\t\t${fileContents}\n\t\t\t~~~\n\t\t`,\n\t};\n};\n\nconst createStep3 = async ({\n\thelpers,\n}: Args): Promise<SliceSimulatorSetupStep> => {\n\tconst filePath = helpers.joinPathFromRoot(\"slicemachine.config.json\");\n\tconst fileContents = await helpers.format(\n\t\tsource`\n\t\t\t{\n\t\t\t\t\"localSliceSimulatorURL\": \"http://localhost:3000/slice-simulator\"\n\t\t\t}\n\t\t`,\n\t\tfilePath,\n\t\t{\n\t\t\tincludeNewlineAtEnd: false,\n\t\t},\n\t);\n\n\treturn {\n\t\ttitle: \"Update `slicemachine.config.json`\",\n\t\tdescription: `Update your \\`slicemachine.config.json\\` file with a \\`localSliceSimulatorURL\\` property pointing to your \\`/slice-simulator\\` page.`,\n\t\tbody: source`\n\t\t\tUpdate your \\`slicemachine.config.json\\` file with a \\`localSliceSimulatorURL\\` property pointing to your \\`/slice-simulator\\` page.\n\n\t\t\t~~~json\n\t\t\t${fileContents}\n\t\t\t~~~\n\t\t`,\n\t\tvalidate: async () => {\n\t\t\tconst project = await helpers.getProject();\n\n\t\t\tif (!(\"localSliceSimulatorURL\" in project.config)) {\n\t\t\t\treturn {\n\t\t\t\t\ttitle: \"Missing `localSliceSimulatorURL` property\",\n\t\t\t\t\tmessage: source`\n\t\t\t\t\t\tA \\`localSliceSimulatorURL\\` property was not found in your \\`slicemachine.config.json\\` file.\n\t\t\t\t\t`,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// Test if the URL is valid.\n\t\t\ttry {\n\t\t\t\tif (project.config.localSliceSimulatorURL) {\n\t\t\t\t\tnew URL(project.config.localSliceSimulatorURL);\n\t\t\t\t} else {\n\t\t\t\t\tthrow new Error(\"Undefined Slice Simulator URL\");\n\t\t\t\t}\n\t\t\t} catch {\n\t\t\t\treturn {\n\t\t\t\t\ttitle: \"An invalid URL was provided\",\n\t\t\t\t\tmessage: source`\n\t\t\t\t\t\tThe \\`localSliceSimulatorURL\\` property should be of the shape \\`http://localhost:PORT/PATH\\`. See the codeblock for an example.\n\t\t\t\t\t`,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// Check if the URL is accessible.\n\t\t\tlet res: Response | undefined = undefined;\n\t\t\ttry {\n\t\t\t\tres = await fetch(project.config.localSliceSimulatorURL);\n\t\t\t} catch (error) {\n\t\t\t\t// Noop, we return if `res` is not defined\n\t\t\t}\n\n\t\t\tif (!res || !res.ok) {\n\t\t\t\treturn {\n\t\t\t\t\ttitle: \"Unable to connect to simulator page\",\n\t\t\t\t\tmessage: source`\n\t\t\t\t\t\tCheck that the \\`localSliceSimulatorURL\\` property in \\`slicemachine.config.json\\` is correct and try again. See the [troubleshooting page](https://prismic.io/docs/setup-nextjs) for more details.\n\t\t\t\t\t`,\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\t};\n};\n\nexport const sliceSimulatorSetupRead: SliceSimulatorSetupReadHook<\n\tPluginOptions\n> = async (_data, context) => {\n\treturn Promise.all([\n\t\tcreateStep1(context),\n\t\tcreateStep2(context),\n\t\tcreateStep3(context),\n\t]);\n};\n"],"names":["require"],"mappings":"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"}
1
+ {"version":3,"file":"sliceSimulator-setup-read.js","sources":["../../../src/hooks/sliceSimulator-setup-read.ts"],"sourcesContent":["import type {\n\tSliceMachineContext,\n\tSliceSimulatorSetupReadHook,\n\tSliceSimulatorSetupStep,\n} from \"@slicemachine/plugin-kit\";\nimport { source } from \"common-tags\";\nimport { createRequire } from \"node:module\";\nimport fetch, { Response } from \"node-fetch\";\n\nimport { getJSFileExtension } from \"../lib/getJSFileExtension\";\n\nimport type { PluginOptions } from \"../types\";\nimport { checkHasAppRouter } from \"../lib/checkHasAppRouter\";\n\nconst REQUIRED_DEPENDENCIES = [\"@prismicio/react\"];\n\ntype Args = SliceMachineContext<PluginOptions>;\n\nconst createStep1 = async ({\n\tproject,\n\thelpers,\n}: Args): Promise<SliceSimulatorSetupStep> => {\n\tconst require = createRequire(project.root);\n\n\treturn {\n\t\ttitle: \"Install packages\",\n\t\tdescription: \"The simulator requires some dependencies.\",\n\t\t// TODO: Create a plugin runner helper to provide the correct\n\t\t// package manager\n\t\tbody: source`\n\t\t\tThe simulator requires extra dependencies. Run the following command to install them.\n\n\t\t\t~~~sh\n\t\t\tnpm install --save ${REQUIRED_DEPENDENCIES.join(\" \")}\n\t\t\t~~~\n\t\t`,\n\t\tvalidate: async () => {\n\t\t\tconst missingDependencies: string[] = [];\n\n\t\t\tfor (const dependency of REQUIRED_DEPENDENCIES) {\n\t\t\t\ttry {\n\t\t\t\t\t// `require.resolve()` is preferred\n\t\t\t\t\t// over `import()` because we don't\n\t\t\t\t\t// want to load the module. Loading a\n\t\t\t\t\t// module could introduce side-effects.\n\t\t\t\t\trequire.resolve(dependency, {\n\t\t\t\t\t\tpaths: [helpers.joinPathFromRoot(\"node_modules\")],\n\t\t\t\t\t});\n\t\t\t\t} catch {\n\t\t\t\t\tmissingDependencies.push(dependency);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (missingDependencies.length >= REQUIRED_DEPENDENCIES.length) {\n\t\t\t\treturn {\n\t\t\t\t\ttitle: \"Missing all dependencies\",\n\t\t\t\t\tmessage: source`\n\t\t\t\t\t\tInstall the required dependencies to continue.\n\t\t\t\t\t`,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (missingDependencies.length > 0) {\n\t\t\t\tconst formattedMissingDependencies = missingDependencies\n\t\t\t\t\t.map((missingDependency) => `\\`${missingDependency}\\``)\n\t\t\t\t\t.join(\", \");\n\n\t\t\t\treturn {\n\t\t\t\t\ttitle: \"Missing some dependencies\",\n\t\t\t\t\tmessage: source`\n\t\t\t\t\t\tThe following dependencies are missing: ${formattedMissingDependencies}\n\t\t\t\t\t`,\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\t};\n};\n\nconst createStep2 = async ({\n\thelpers,\n\toptions,\n}: Args): Promise<SliceSimulatorSetupStep> => {\n\tconst hasAppRouter = await checkHasAppRouter({ helpers });\n\n\tconst extension = await getJSFileExtension({ helpers, options, jsx: true });\n\n\tif (hasAppRouter) {\n\t\tconst fileName = `page.${extension}`;\n\t\tconst filePath = helpers.joinPathFromRoot(\n\t\t\t\"app\",\n\t\t\t\"slice-simulator\",\n\t\t\tfileName,\n\t\t);\n\n\t\tconst fileContents = await helpers.format(\n\t\t\tsource`\n\t\t\t\timport {\n\t\t\t\t\tSliceSimulator,\n\t\t\t\t\tSliceSimulatorParams,\n\t\t\t\t\tgetSlices,\n\t\t\t\t} from \"@slicemachine/adapter-next/simulator\";\n\t\t\t\timport { SliceZone } from \"@prismicio/react\";\n\n\t\t\t\timport { components } from \"../../slices\";\n\n\t\t\t\texport default function SliceSimulatorPage({\n\t\t\t\t\tsearchParams,\n\t\t\t\t}: SliceSimulatorParams) {\n\t\t\t\t\tconst slices = getSlices(searchParams.state);\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<SliceSimulator>\n\t\t\t\t\t\t\t<SliceZone slices={slices} components={components} />\n\t\t\t\t\t\t</SliceSimulator>\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t`,\n\t\t\tfilePath,\n\t\t\t{ includeNewlineAtEnd: false },\n\t\t);\n\n\t\treturn {\n\t\t\ttitle: \"Create a page for the simulator\",\n\t\t\tdescription: `In your \\`app\\` directory, create a file called \\`slice-simulator/${fileName}\\` containing this code.`,\n\t\t\tbody: source`\n\t\t\t\tIn your \\`app\\` directory, create a file called \\`slice-simulator/${fileName}\\` and add the following code. This route will be used to simulate and develop your components.\n\n\t\t\t~~~tsx\n\t\t\t${fileContents}\n\t\t\t~~~\n\t\t`,\n\t\t};\n\t}\n\n\tconst fileName = `slice-simulator.${extension}`;\n\tconst filePath = helpers.joinPathFromRoot(\"pages\", fileName);\n\n\tconst fileContents = await helpers.format(\n\t\tsource`\n\t\t\t\timport { SliceSimulator } from \"@slicemachine/adapter-next/simulator\";\n\t\t\t\timport { SliceZone } from \"@prismicio/react\";\n\n\t\t\t\timport { components } from \"../slices\";\n\n\t\t\t\texport default function SliceSimulatorPage() {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<SliceSimulator\n\t\t\t\t\t\t\tsliceZone={(props) => <SliceZone {...props} components={components} />}\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t`,\n\t\tfilePath,\n\t\t{ includeNewlineAtEnd: false },\n\t);\n\n\treturn {\n\t\ttitle: \"Create a page for the simulator\",\n\t\tdescription: `In your \\`pages\\` directory, create a file called \\`${fileName}\\` containing this code.`,\n\t\tbody: source`\n\t\t\tIn your \\`pages\\` directory, create a file called \\`${fileName}\\` and add the following code. This route will be used to simulate and develop your components.\n\n\t\t\t~~~tsx\n\t\t\t${fileContents}\n\t\t\t~~~\n\t\t`,\n\t};\n};\n\nconst createStep3 = async ({\n\thelpers,\n}: Args): Promise<SliceSimulatorSetupStep> => {\n\tconst filePath = helpers.joinPathFromRoot(\"slicemachine.config.json\");\n\tconst fileContents = await helpers.format(\n\t\tsource`\n\t\t\t{\n\t\t\t\t\"localSliceSimulatorURL\": \"http://localhost:3000/slice-simulator\"\n\t\t\t}\n\t\t`,\n\t\tfilePath,\n\t\t{\n\t\t\tincludeNewlineAtEnd: false,\n\t\t},\n\t);\n\n\treturn {\n\t\ttitle: \"Update `slicemachine.config.json`\",\n\t\tdescription: `Update your \\`slicemachine.config.json\\` file with a \\`localSliceSimulatorURL\\` property pointing to your \\`/slice-simulator\\` page.`,\n\t\tbody: source`\n\t\t\tUpdate your \\`slicemachine.config.json\\` file with a \\`localSliceSimulatorURL\\` property pointing to your \\`/slice-simulator\\` page.\n\n\t\t\t~~~json\n\t\t\t${fileContents}\n\t\t\t~~~\n\t\t`,\n\t\tvalidate: async () => {\n\t\t\tconst project = await helpers.getProject();\n\n\t\t\tif (!(\"localSliceSimulatorURL\" in project.config)) {\n\t\t\t\treturn {\n\t\t\t\t\ttitle: \"Missing `localSliceSimulatorURL` property\",\n\t\t\t\t\tmessage: source`\n\t\t\t\t\t\tA \\`localSliceSimulatorURL\\` property was not found in your \\`slicemachine.config.json\\` file.\n\t\t\t\t\t`,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// Test if the URL is valid.\n\t\t\ttry {\n\t\t\t\tif (project.config.localSliceSimulatorURL) {\n\t\t\t\t\tnew URL(project.config.localSliceSimulatorURL);\n\t\t\t\t} else {\n\t\t\t\t\tthrow new Error(\"Undefined Slice Simulator URL\");\n\t\t\t\t}\n\t\t\t} catch {\n\t\t\t\treturn {\n\t\t\t\t\ttitle: \"An invalid URL was provided\",\n\t\t\t\t\tmessage: source`\n\t\t\t\t\t\tThe \\`localSliceSimulatorURL\\` property should be of the shape \\`http://localhost:PORT/PATH\\`. See the codeblock for an example.\n\t\t\t\t\t`,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// Check if the URL is accessible.\n\t\t\tlet res: Response | undefined = undefined;\n\t\t\ttry {\n\t\t\t\tres = await fetch(project.config.localSliceSimulatorURL);\n\t\t\t} catch (error) {\n\t\t\t\t// Noop, we return if `res` is not defined\n\t\t\t}\n\n\t\t\tif (!res || !res.ok) {\n\t\t\t\treturn {\n\t\t\t\t\ttitle: \"Unable to connect to simulator page\",\n\t\t\t\t\tmessage: source`\n\t\t\t\t\t\tCheck that the \\`localSliceSimulatorURL\\` property in \\`slicemachine.config.json\\` is correct and try again. See the [troubleshooting page](https://prismic.io/docs/setup-nextjs) for more details.\n\t\t\t\t\t`,\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\t};\n};\n\nexport const sliceSimulatorSetupRead: SliceSimulatorSetupReadHook<\n\tPluginOptions\n> = async (_data, context) => {\n\treturn Promise.all([\n\t\tcreateStep1(context),\n\t\tcreateStep2(context),\n\t\tcreateStep3(context),\n\t]);\n};\n"],"names":["require","fileName","filePath","fileContents"],"mappings":"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"}
@@ -5,6 +5,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
5
5
  const jsxRuntime = require("react/jsx-runtime");
6
6
  const React = require("react");
7
7
  const kit = require("@prismicio/simulator/kit");
8
+ const SliceSimulatorWrapper = require("./SliceSimulatorWrapper.cjs");
8
9
  function _interopNamespaceDefault(e) {
9
10
  const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
10
11
  if (e) {
@@ -23,8 +24,10 @@ function _interopNamespaceDefault(e) {
23
24
  }
24
25
  const React__namespace = /* @__PURE__ */ _interopNamespaceDefault(React);
25
26
  const simulatorManager = new kit.SimulatorManager();
26
- const SliceSimulator = ({ sliceZone: SliceZoneComp, background, zIndex, className }) => {
27
- const defaultProps = kit.getDefaultProps();
27
+ const SliceSimulator = ({ background, zIndex, className, ...restProps }) => {
28
+ if (!("sliceZone" in restProps)) {
29
+ throw new Error("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.");
30
+ }
28
31
  const [slices, setSlices] = React__namespace.useState(() => kit.getDefaultSlices());
29
32
  const [message, setMessage] = React__namespace.useState(() => kit.getDefaultMessage());
30
33
  React__namespace.useEffect(() => {
@@ -40,16 +43,8 @@ const SliceSimulator = ({ sliceZone: SliceZoneComp, background, zIndex, classNam
40
43
  simulatorManager.state.off(kit.StateEventType.Message, "simulator-message");
41
44
  };
42
45
  }, []);
43
- return jsxRuntime.jsx("div", { className: [kit.simulatorClass, className].filter(Boolean).join(" "), style: {
44
- zIndex: typeof zIndex === "undefined" ? defaultProps.zIndex : zIndex ?? void 0,
45
- position: "fixed",
46
- top: 0,
47
- left: 0,
48
- width: "100%",
49
- height: "100vh",
50
- overflow: "auto",
51
- background: typeof background === "undefined" ? defaultProps.background : background ?? void 0
52
- }, children: message ? jsxRuntime.jsx("article", { dangerouslySetInnerHTML: { __html: message } }) : slices.length ? jsxRuntime.jsx("div", { id: "root", className: kit.simulatorRootClass, onClickCapture: kit.onClickHandler, onSubmitCapture: kit.disableEventHandler, children: jsxRuntime.jsx(SliceZoneComp, { slices }) }) : null });
46
+ const SliceZoneComp = restProps.sliceZone;
47
+ return jsxRuntime.jsx(SliceSimulatorWrapper.SliceSimulatorWrapper, { message, hasSlices: slices.length > 0, background, zIndex, className, children: jsxRuntime.jsx(SliceZoneComp, { slices }) });
53
48
  };
54
49
  exports.SliceSimulator = SliceSimulator;
55
50
  //# sourceMappingURL=SliceSimulator.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"SliceSimulator.cjs","sources":["../../../src/simulator/SliceSimulator.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\n\nimport {\n\tSliceSimulatorProps as BaseSliceSimulatorProps,\n\tSimulatorManager,\n\tSliceSimulatorState,\n\tStateEventType,\n\tdisableEventHandler,\n\tgetDefaultMessage,\n\tgetDefaultProps,\n\tgetDefaultSlices,\n\tonClickHandler,\n\tsimulatorClass,\n\tsimulatorRootClass,\n} from \"@prismicio/simulator/kit\";\n\nconst simulatorManager = new SimulatorManager();\n\nexport type SliceSimulatorSliceZoneProps = {\n\tslices: SliceSimulatorState[\"slices\"];\n};\n\nexport type SliceSimulatorProps = {\n\t/**\n\t * React component to render simulated Slices.\n\t *\n\t * @example\n\t *\n\t * ```tsx\n\t * import { SliceSimulator } from \"@slicemachine/adapter-next/simulator\";\n\t * import { SliceZone } from \"@prismicio/react\";\n\t *\n\t * import { components } from \"../slices\";\n\t *\n\t * <SliceSimulator\n\t * \tsliceZone={({ slices }) => (\n\t * \t\t<SliceZone slices={slices} components={components} />\n\t * \t)}\n\t * />;\n\t * ```\n\t */\n\tsliceZone: (props: SliceSimulatorSliceZoneProps) => JSX.Element;\n\tclassName?: string;\n} & Omit<BaseSliceSimulatorProps, \"state\">;\n\nexport const SliceSimulator = ({\n\tsliceZone: SliceZoneComp,\n\tbackground,\n\tzIndex,\n\tclassName,\n}: SliceSimulatorProps): JSX.Element => {\n\tconst defaultProps = getDefaultProps();\n\n\tconst [slices, setSlices] = React.useState(() => getDefaultSlices());\n\tconst [message, setMessage] = React.useState(() => getDefaultMessage());\n\n\tReact.useEffect(() => {\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\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) : slices.length ? (\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<SliceZoneComp slices={slices} />\n\t\t\t\t</div>\n\t\t\t) : null}\n\t\t</div>\n\t);\n};\n"],"names":["React"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAkBA;AA6Ba;AAMZ;AAEM;AACA;AAENA;AACC;AAGE;AAAiB;AAInB;AAGE;AAAmB;AAKrB;AAEA;AACC;AAEA;AAAsE;AAAA;AAIxE;AAGS;AAIQ;AACJ;AACL;AACC;AACC;AACC;AACE;AAIQ;AAmBtB;;"}
1
+ {"version":3,"file":"SliceSimulator.cjs","sources":["../../../src/simulator/SliceSimulator.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\n\nimport {\n\tSliceSimulatorProps as BaseSliceSimulatorProps,\n\tSimulatorManager,\n\tSliceSimulatorState,\n\tStateEventType,\n\tgetDefaultMessage,\n\tgetDefaultSlices,\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: (props: SliceSimulatorSliceZoneProps) => JSX.Element;\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 = ({\n\tbackground,\n\tzIndex,\n\tclassName,\n\t...restProps\n}: SliceSimulatorProps): JSX.Element => {\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] = React.useState(() => getDefaultSlices());\n\tconst [message, setMessage] = React.useState(() => getDefaultMessage());\n\n\tReact.useEffect(() => {\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"],"names":["React"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAeA;AAwCa;AAMR;AACG;AACkL;AAInL;AACA;AAENA;AACC;AAGE;AAAiB;AAInB;AAGE;AAAmB;AAKrB;AAEA;AACC;AAEA;AAAsE;AAAA;AAIxE;AAEA;AAWD;;"}
@@ -1,8 +1,11 @@
1
+ import * as React from "react";
1
2
  import { SliceSimulatorProps as BaseSliceSimulatorProps, SliceSimulatorState } from "@prismicio/simulator/kit";
2
3
  export type SliceSimulatorSliceZoneProps = {
3
4
  slices: SliceSimulatorState["slices"];
4
5
  };
5
6
  export type SliceSimulatorProps = {
7
+ className?: string;
8
+ } & Omit<BaseSliceSimulatorProps, "state"> & ({
6
9
  /**
7
10
  * React component to render simulated Slices.
8
11
  *
@@ -22,6 +25,11 @@ export type SliceSimulatorProps = {
22
25
  * ```
23
26
  */
24
27
  sliceZone: (props: SliceSimulatorSliceZoneProps) => JSX.Element;
25
- className?: string;
26
- } & Omit<BaseSliceSimulatorProps, "state">;
27
- export declare const SliceSimulator: ({ sliceZone: SliceZoneComp, background, zIndex, className, }: SliceSimulatorProps) => JSX.Element;
28
+ } | {
29
+ children: React.ReactNode;
30
+ });
31
+ /**
32
+ * Simulate slices in isolation. The slice simulator enables live slice
33
+ * development in Slice Machine and live previews in the Page Builder.
34
+ */
35
+ export declare const SliceSimulator: ({ background, zIndex, className, ...restProps }: SliceSimulatorProps) => JSX.Element;
@@ -2,10 +2,13 @@
2
2
  'use client';
3
3
  import { jsx } from "react/jsx-runtime";
4
4
  import * as React from "react";
5
- import { SimulatorManager, getDefaultProps, getDefaultSlices, getDefaultMessage, StateEventType, simulatorClass, simulatorRootClass, onClickHandler, disableEventHandler } from "@prismicio/simulator/kit";
5
+ import { SimulatorManager, getDefaultSlices, getDefaultMessage, StateEventType } from "@prismicio/simulator/kit";
6
+ import { SliceSimulatorWrapper } from "./SliceSimulatorWrapper.js";
6
7
  const simulatorManager = new SimulatorManager();
7
- const SliceSimulator = ({ sliceZone: SliceZoneComp, background, zIndex, className }) => {
8
- const defaultProps = getDefaultProps();
8
+ const SliceSimulator = ({ background, zIndex, className, ...restProps }) => {
9
+ if (!("sliceZone" in restProps)) {
10
+ throw new Error("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.");
11
+ }
9
12
  const [slices, setSlices] = React.useState(() => getDefaultSlices());
10
13
  const [message, setMessage] = React.useState(() => getDefaultMessage());
11
14
  React.useEffect(() => {
@@ -21,16 +24,8 @@ const SliceSimulator = ({ sliceZone: SliceZoneComp, background, zIndex, classNam
21
24
  simulatorManager.state.off(StateEventType.Message, "simulator-message");
22
25
  };
23
26
  }, []);
24
- return jsx("div", { className: [simulatorClass, className].filter(Boolean).join(" "), style: {
25
- zIndex: typeof zIndex === "undefined" ? defaultProps.zIndex : zIndex ?? void 0,
26
- position: "fixed",
27
- top: 0,
28
- left: 0,
29
- width: "100%",
30
- height: "100vh",
31
- overflow: "auto",
32
- background: typeof background === "undefined" ? defaultProps.background : background ?? void 0
33
- }, children: message ? jsx("article", { dangerouslySetInnerHTML: { __html: message } }) : slices.length ? jsx("div", { id: "root", className: simulatorRootClass, onClickCapture: onClickHandler, onSubmitCapture: disableEventHandler, children: jsx(SliceZoneComp, { slices }) }) : null });
27
+ const SliceZoneComp = restProps.sliceZone;
28
+ return jsx(SliceSimulatorWrapper, { message, hasSlices: slices.length > 0, background, zIndex, className, children: jsx(SliceZoneComp, { slices }) });
34
29
  };
35
30
  export {
36
31
  SliceSimulator
@@ -1 +1 @@
1
- {"version":3,"file":"SliceSimulator.js","sources":["../../../src/simulator/SliceSimulator.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\n\nimport {\n\tSliceSimulatorProps as BaseSliceSimulatorProps,\n\tSimulatorManager,\n\tSliceSimulatorState,\n\tStateEventType,\n\tdisableEventHandler,\n\tgetDefaultMessage,\n\tgetDefaultProps,\n\tgetDefaultSlices,\n\tonClickHandler,\n\tsimulatorClass,\n\tsimulatorRootClass,\n} from \"@prismicio/simulator/kit\";\n\nconst simulatorManager = new SimulatorManager();\n\nexport type SliceSimulatorSliceZoneProps = {\n\tslices: SliceSimulatorState[\"slices\"];\n};\n\nexport type SliceSimulatorProps = {\n\t/**\n\t * React component to render simulated Slices.\n\t *\n\t * @example\n\t *\n\t * ```tsx\n\t * import { SliceSimulator } from \"@slicemachine/adapter-next/simulator\";\n\t * import { SliceZone } from \"@prismicio/react\";\n\t *\n\t * import { components } from \"../slices\";\n\t *\n\t * <SliceSimulator\n\t * \tsliceZone={({ slices }) => (\n\t * \t\t<SliceZone slices={slices} components={components} />\n\t * \t)}\n\t * />;\n\t * ```\n\t */\n\tsliceZone: (props: SliceSimulatorSliceZoneProps) => JSX.Element;\n\tclassName?: string;\n} & Omit<BaseSliceSimulatorProps, \"state\">;\n\nexport const SliceSimulator = ({\n\tsliceZone: SliceZoneComp,\n\tbackground,\n\tzIndex,\n\tclassName,\n}: SliceSimulatorProps): JSX.Element => {\n\tconst defaultProps = getDefaultProps();\n\n\tconst [slices, setSlices] = React.useState(() => getDefaultSlices());\n\tconst [message, setMessage] = React.useState(() => getDefaultMessage());\n\n\tReact.useEffect(() => {\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\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) : slices.length ? (\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<SliceZoneComp slices={slices} />\n\t\t\t\t</div>\n\t\t\t) : null}\n\t\t</div>\n\t);\n};\n"],"names":[],"mappings":";;;;;AAkBA;AA6Ba;AAMZ;AAEM;AACA;AAEN;AACC;AAGE;AAAiB;AAInB;AAGE;AAAmB;AAKrB;AAEA;AACC;AAEA;AAAsE;AAAA;AAIxE;AAGS;AAIQ;AACJ;AACL;AACC;AACC;AACC;AACE;AAIQ;AAmBtB;;;;"}
1
+ {"version":3,"file":"SliceSimulator.js","sources":["../../../src/simulator/SliceSimulator.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\n\nimport {\n\tSliceSimulatorProps as BaseSliceSimulatorProps,\n\tSimulatorManager,\n\tSliceSimulatorState,\n\tStateEventType,\n\tgetDefaultMessage,\n\tgetDefaultSlices,\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: (props: SliceSimulatorSliceZoneProps) => JSX.Element;\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 = ({\n\tbackground,\n\tzIndex,\n\tclassName,\n\t...restProps\n}: SliceSimulatorProps): JSX.Element => {\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] = React.useState(() => getDefaultSlices());\n\tconst [message, setMessage] = React.useState(() => getDefaultMessage());\n\n\tReact.useEffect(() => {\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"],"names":[],"mappings":";;;;;;AAeA;AAwCa;AAMR;AACG;AACkL;AAInL;AACA;AAEN;AACC;AAGE;AAAiB;AAInB;AAGE;AAAmB;AAKrB;AAEA;AACC;AAEA;AAAsE;AAAA;AAIxE;AAEA;AAWD;;;;"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const jsxRuntime = require("react/jsx-runtime");
4
+ const kit = require("@prismicio/simulator/kit");
5
+ const SliceSimulatorWrapper = ({ className, children, zIndex, background, message, hasSlices }) => {
6
+ const defaultProps = kit.getDefaultProps();
7
+ return jsxRuntime.jsx("div", { className: [kit.simulatorClass, className].filter(Boolean).join(" "), style: {
8
+ zIndex: typeof zIndex === "undefined" ? defaultProps.zIndex : zIndex ?? void 0,
9
+ position: "fixed",
10
+ top: 0,
11
+ left: 0,
12
+ width: "100%",
13
+ height: "100vh",
14
+ overflow: "auto",
15
+ background: typeof background === "undefined" ? defaultProps.background : background ?? void 0
16
+ }, children: message ? jsxRuntime.jsx("article", { dangerouslySetInnerHTML: { __html: message } }) : hasSlices ? jsxRuntime.jsx("div", { id: "root", className: kit.simulatorRootClass, onClickCapture: kit.onClickHandler, onSubmitCapture: kit.disableEventHandler, children }) : null });
17
+ };
18
+ exports.SliceSimulatorWrapper = SliceSimulatorWrapper;
19
+ //# sourceMappingURL=SliceSimulatorWrapper.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SliceSimulatorWrapper.cjs","sources":["../../../src/simulator/SliceSimulatorWrapper.tsx"],"sourcesContent":["import { ReactNode } from \"react\";\nimport {\n\tSliceSimulatorProps,\n\tdisableEventHandler,\n\tgetDefaultProps,\n\tonClickHandler,\n\tsimulatorClass,\n\tsimulatorRootClass,\n} from \"@prismicio/simulator/kit\";\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 = ({\n\tclassName,\n\tchildren,\n\tzIndex,\n\tbackground,\n\tmessage,\n\thasSlices,\n}: SliceSimulatorWrapperProps): JSX.Element => {\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"],"names":["getDefaultProps","_jsx","simulatorClass","simulatorRootClass","onClickHandler","disableEventHandler"],"mappings":";;;;AAqBa,MAAA,wBAAwB,CAAC,EACrC,WACA,UACA,QACA,YACA,SACA,gBAC6C;AAC7C,QAAM,eAAeA,IAAAA;AAErB,SACCC,wBACC,WAAW,CAACC,IAAAA,gBAAgB,SAAS,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG,GAC/D,OAAO;AAAA,IACN,QACC,OAAO,WAAW,cACf,aAAa,SACb,UAAU;AAAA,IACd,UAAU;AAAA,IACV,KAAK;AAAA,IACL,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,YACC,OAAO,eAAe,cACnB,aAAa,aACb,cAAc;AAAA,EAGlB,GAAA,UAAA,UACAD,WAAA,IAAS,WAAA,EAAA,yBAAyB,EAAE,QAAQ,QAAS,EAAA,CAAA,IAClD,YACHA,WAAAA,IAAA,OAAA,EACC,IAAG,QACH,WAAWE,IAAAA,oBACX,gBAAgBC,IAAAA,gBAChB,iBACCC,IAAwD,qBAAA,SAAA,CAGhD,IAEP,KACC,CAAA;AAER;;"}
@@ -0,0 +1,14 @@
1
+ import { ReactNode } from "react";
2
+ import { SliceSimulatorProps } from "@prismicio/simulator/kit";
3
+ type SliceSimulatorWrapperProps = {
4
+ children: ReactNode;
5
+ className?: string;
6
+ message?: string;
7
+ hasSlices: boolean;
8
+ } & Omit<SliceSimulatorProps, "state">;
9
+ /**
10
+ * A wrapper for the slice simulator that isolates the given children from the
11
+ * page's layout.
12
+ */
13
+ export declare const SliceSimulatorWrapper: ({ className, children, zIndex, background, message, hasSlices, }: SliceSimulatorWrapperProps) => JSX.Element;
14
+ export {};
@@ -0,0 +1,19 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { getDefaultProps, simulatorClass, simulatorRootClass, onClickHandler, disableEventHandler } from "@prismicio/simulator/kit";
3
+ const SliceSimulatorWrapper = ({ className, children, zIndex, background, message, hasSlices }) => {
4
+ const defaultProps = getDefaultProps();
5
+ return jsx("div", { className: [simulatorClass, className].filter(Boolean).join(" "), style: {
6
+ zIndex: typeof zIndex === "undefined" ? defaultProps.zIndex : zIndex ?? void 0,
7
+ position: "fixed",
8
+ top: 0,
9
+ left: 0,
10
+ width: "100%",
11
+ height: "100vh",
12
+ overflow: "auto",
13
+ background: typeof background === "undefined" ? defaultProps.background : background ?? void 0
14
+ }, children: message ? jsx("article", { dangerouslySetInnerHTML: { __html: message } }) : hasSlices ? jsx("div", { id: "root", className: simulatorRootClass, onClickCapture: onClickHandler, onSubmitCapture: disableEventHandler, children }) : null });
15
+ };
16
+ export {
17
+ SliceSimulatorWrapper
18
+ };
19
+ //# sourceMappingURL=SliceSimulatorWrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SliceSimulatorWrapper.js","sources":["../../../src/simulator/SliceSimulatorWrapper.tsx"],"sourcesContent":["import { ReactNode } from \"react\";\nimport {\n\tSliceSimulatorProps,\n\tdisableEventHandler,\n\tgetDefaultProps,\n\tonClickHandler,\n\tsimulatorClass,\n\tsimulatorRootClass,\n} from \"@prismicio/simulator/kit\";\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 = ({\n\tclassName,\n\tchildren,\n\tzIndex,\n\tbackground,\n\tmessage,\n\thasSlices,\n}: SliceSimulatorWrapperProps): JSX.Element => {\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"],"names":["_jsx"],"mappings":";;AAqBa,MAAA,wBAAwB,CAAC,EACrC,WACA,UACA,QACA,YACA,SACA,gBAC6C;AAC7C,QAAM,eAAe;AAErB,SACCA,aACC,WAAW,CAAC,gBAAgB,SAAS,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG,GAC/D,OAAO;AAAA,IACN,QACC,OAAO,WAAW,cACf,aAAa,SACb,UAAU;AAAA,IACd,UAAU;AAAA,IACV,KAAK;AAAA,IACL,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,YACC,OAAO,eAAe,cACnB,aAAa,aACb,cAAc;AAAA,EAGlB,GAAA,UAAA,UACAA,IAAS,WAAA,EAAA,yBAAyB,EAAE,QAAQ,QAAS,EAAA,CAAA,IAClD,YACHA,IAAA,OAAA,EACC,IAAG,QACH,WAAW,oBACX,gBAAgB,gBAChB,iBACC,qBAAwD,SAAA,CAGhD,IAEP,KACC,CAAA;AAER;"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const getSlices = (state) => {
4
+ 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.");
5
+ };
6
+ exports.getSlices = getSlices;
7
+ //# sourceMappingURL=getSlices.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getSlices.cjs","sources":["../../../src/simulator/getSlices.ts"],"sourcesContent":["import { 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"],"names":[],"mappings":";;AASa,MAAA,YAAY,CACxB,UACuC;AAIjC,QAAA,IAAI,MACT,wJAAwJ;AAE1J;;"}
@@ -0,0 +1,9 @@
1
+ import { StateEvents, StateEventType } from "@prismicio/simulator/kit";
2
+ /**
3
+ * Returns the simulator's slices from the page's `searchParams.state` value.
4
+ * The `state` value is set by `<SliceSimulator>`.
5
+ *
6
+ * **Note**: `getSlices` should only be used in the App Router with a Server
7
+ * Component.
8
+ */
9
+ export declare const getSlices: (state: string | null | undefined) => StateEvents[StateEventType.Slices];
@@ -0,0 +1,7 @@
1
+ const getSlices = (state) => {
2
+ 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.");
3
+ };
4
+ export {
5
+ getSlices
6
+ };
7
+ //# sourceMappingURL=getSlices.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getSlices.js","sources":["../../../src/simulator/getSlices.ts"],"sourcesContent":["import { 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"],"names":[],"mappings":"AASa,MAAA,YAAY,CACxB,UACuC;AAIjC,QAAA,IAAI,MACT,wJAAwJ;AAE1J;"}
@@ -1,2 +1,4 @@
1
1
  export { SliceSimulator } from "./SliceSimulator";
2
2
  export type { SliceSimulatorProps, SliceSimulatorSliceZoneProps, } from "./SliceSimulator";
3
+ export { getSlices } from "./getSlices";
4
+ export type { SliceSimulatorParams } from "./types";
@@ -0,0 +1,76 @@
1
+ 'use client';
2
+ 'use client';
3
+ "use strict";
4
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
5
+ const jsxRuntime = require("react/jsx-runtime");
6
+ const React = require("react");
7
+ const kit = require("@prismicio/simulator/kit");
8
+ const lzString = require("lz-string");
9
+ const SliceSimulatorWrapper = require("../SliceSimulatorWrapper.cjs");
10
+ const actions = require("./actions.cjs");
11
+ const getSlices = require("./getSlices.cjs");
12
+ function _interopNamespaceDefault(e) {
13
+ const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
14
+ if (e) {
15
+ for (const k in e) {
16
+ if (k !== "default") {
17
+ const d = Object.getOwnPropertyDescriptor(e, k);
18
+ Object.defineProperty(n, k, d.get ? d : {
19
+ enumerable: true,
20
+ get: () => e[k]
21
+ });
22
+ }
23
+ }
24
+ }
25
+ n.default = e;
26
+ return Object.freeze(n);
27
+ }
28
+ const React__namespace = /* @__PURE__ */ _interopNamespaceDefault(React);
29
+ const STATE_PARAMS_KEY = "state";
30
+ const throttle = (
31
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
32
+ (fn, wait) => {
33
+ let timeoutId;
34
+ let lastCallTime = 0;
35
+ return (...args) => {
36
+ clearTimeout(timeoutId);
37
+ const now = Date.now();
38
+ const timeSinceLastCall = now - lastCallTime;
39
+ const delayForNextCall = wait - timeSinceLastCall;
40
+ if (delayForNextCall <= 0) {
41
+ lastCallTime = now;
42
+ fn(...args);
43
+ } else {
44
+ timeoutId = setTimeout(() => {
45
+ lastCallTime = Date.now();
46
+ fn(...args);
47
+ }, delayForNextCall);
48
+ }
49
+ };
50
+ }
51
+ );
52
+ const throttledRevalidatePath = throttle(actions.revalidatePath, 300);
53
+ const simulatorManager = new kit.SimulatorManager();
54
+ const SliceSimulator = ({ children, background, zIndex, className }) => {
55
+ const [message, setMessage] = React__namespace.useState(() => kit.getDefaultMessage());
56
+ const state = typeof window !== "undefined" ? new URL(window.location.href).searchParams.get(STATE_PARAMS_KEY) : void 0;
57
+ const hasSlices = getSlices.getSlices(state).length > 0;
58
+ React__namespace.useEffect(() => {
59
+ simulatorManager.state.on(kit.StateEventType.Slices, (newSlices) => {
60
+ const url = new URL(window.location.href);
61
+ url.searchParams.set(STATE_PARAMS_KEY, lzString.compressToEncodedURIComponent(JSON.stringify(newSlices)));
62
+ window.history.pushState(null, "", url);
63
+ const path = window.location.pathname;
64
+ setTimeout(() => throttledRevalidatePath(path), 0);
65
+ }, "simulator-slices");
66
+ simulatorManager.state.on(kit.StateEventType.Message, (newMessage) => setMessage(newMessage), "simulator-message");
67
+ simulatorManager.init();
68
+ return () => {
69
+ simulatorManager.state.off(kit.StateEventType.Slices, "simulator-slices");
70
+ simulatorManager.state.off(kit.StateEventType.Message, "simulator-message");
71
+ };
72
+ }, []);
73
+ return jsxRuntime.jsx(SliceSimulatorWrapper.SliceSimulatorWrapper, { message, hasSlices, background, zIndex, className, children });
74
+ };
75
+ exports.SliceSimulator = SliceSimulator;
76
+ //# sourceMappingURL=SliceSimulator.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SliceSimulator.cjs","sources":["../../../../src/simulator/react-server/SliceSimulator.tsx"],"sourcesContent":["// This `<SliceSimulator>` is only accessible from Server Components.\n\n\"use client\";\n\nimport * as React from \"react\";\n\nimport {\n\tSliceSimulatorProps as BaseSliceSimulatorProps,\n\tSimulatorManager,\n\tStateEventType,\n\tgetDefaultMessage,\n} from \"@prismicio/simulator/kit\";\nimport { compressToEncodedURIComponent } from \"lz-string\";\n\nimport { SliceSimulatorWrapper } from \"../SliceSimulatorWrapper\";\nimport { revalidatePath } from \"./actions\";\nimport { getSlices } from \"./getSlices\";\n\nconst STATE_PARAMS_KEY = \"state\";\n\nconst throttle =\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t<TArgs extends [...any]>(fn: (...args: TArgs) => unknown, wait: number) => {\n\t\tlet timeoutId: ReturnType<typeof setTimeout>;\n\t\tlet lastCallTime = 0;\n\n\t\treturn (...args: TArgs) => {\n\t\t\tclearTimeout(timeoutId);\n\n\t\t\tconst now = Date.now();\n\t\t\tconst timeSinceLastCall = now - lastCallTime;\n\t\t\tconst delayForNextCall = wait - timeSinceLastCall;\n\n\t\t\tif (delayForNextCall <= 0) {\n\t\t\t\tlastCallTime = now;\n\t\t\t\tfn(...args);\n\t\t\t} else {\n\t\t\t\ttimeoutId = setTimeout(() => {\n\t\t\t\t\tlastCallTime = Date.now();\n\t\t\t\t\tfn(...args);\n\t\t\t\t}, delayForNextCall);\n\t\t\t}\n\t\t};\n\t};\nconst throttledRevalidatePath = throttle(revalidatePath, 300);\n\nconst simulatorManager = new SimulatorManager();\n\nexport type SliceSimulatorProps = Omit<BaseSliceSimulatorProps, \"state\"> & {\n\tchildren: React.ReactNode;\n\tclassName?: string;\n};\n\nexport const SliceSimulator = ({\n\tchildren,\n\tbackground,\n\tzIndex,\n\tclassName,\n}: SliceSimulatorProps): JSX.Element => {\n\tconst [message, setMessage] = React.useState(() => getDefaultMessage());\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\tReact.useEffect(() => {\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\t\t\t\twindow.history.pushState(null, \"\", url);\n\n\t\t\t\t// A 0 ms timeout is needed to prevent a bug\n\t\t\t\t// where the path is revalidated before the URL\n\t\t\t\t// is updated with the new state.\n\t\t\t\tconst path = window.location.pathname;\n\t\t\t\tsetTimeout(() => throttledRevalidatePath(path), 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"],"names":["React"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBA;AAEA;AAAM;AAAA;AAGA;AACJ;AAEA;AACC;AAEM;AACN;AACA;AAEA;AACgB;AACf;AAAU;AAEV;AACC;AACA;AAAU;AACQ;AACnB;AAAA;AAEH;AACD;AAEA;AAOO;AAMA;AAEN;AAIA;AAEAA;AACC;AAGE;AACI;AAIJ;AAKM;AACN;AAAiD;AAIlC;AAMjB;AAEA;AACC;AAEA;AAAsE;AAAA;AAKvE;AAUF;;"}
@@ -0,0 +1,7 @@
1
+ import * as React from "react";
2
+ import { SliceSimulatorProps as BaseSliceSimulatorProps } from "@prismicio/simulator/kit";
3
+ export type SliceSimulatorProps = Omit<BaseSliceSimulatorProps, "state"> & {
4
+ children: React.ReactNode;
5
+ className?: string;
6
+ };
7
+ export declare const SliceSimulator: ({ children, background, zIndex, className, }: SliceSimulatorProps) => JSX.Element;
@@ -0,0 +1,59 @@
1
+ 'use client';
2
+ 'use client';
3
+ import { jsx } from "react/jsx-runtime";
4
+ import * as React from "react";
5
+ import { SimulatorManager, getDefaultMessage, StateEventType } from "@prismicio/simulator/kit";
6
+ import { compressToEncodedURIComponent } from "lz-string";
7
+ import { SliceSimulatorWrapper } from "../SliceSimulatorWrapper.js";
8
+ import { revalidatePath } from "./actions.js";
9
+ import { getSlices } from "./getSlices.js";
10
+ const STATE_PARAMS_KEY = "state";
11
+ const throttle = (
12
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
13
+ (fn, wait) => {
14
+ let timeoutId;
15
+ let lastCallTime = 0;
16
+ return (...args) => {
17
+ clearTimeout(timeoutId);
18
+ const now = Date.now();
19
+ const timeSinceLastCall = now - lastCallTime;
20
+ const delayForNextCall = wait - timeSinceLastCall;
21
+ if (delayForNextCall <= 0) {
22
+ lastCallTime = now;
23
+ fn(...args);
24
+ } else {
25
+ timeoutId = setTimeout(() => {
26
+ lastCallTime = Date.now();
27
+ fn(...args);
28
+ }, delayForNextCall);
29
+ }
30
+ };
31
+ }
32
+ );
33
+ const throttledRevalidatePath = throttle(revalidatePath, 300);
34
+ const simulatorManager = new SimulatorManager();
35
+ const SliceSimulator = ({ children, background, zIndex, className }) => {
36
+ const [message, setMessage] = React.useState(() => getDefaultMessage());
37
+ const state = typeof window !== "undefined" ? new URL(window.location.href).searchParams.get(STATE_PARAMS_KEY) : void 0;
38
+ const hasSlices = getSlices(state).length > 0;
39
+ React.useEffect(() => {
40
+ simulatorManager.state.on(StateEventType.Slices, (newSlices) => {
41
+ const url = new URL(window.location.href);
42
+ url.searchParams.set(STATE_PARAMS_KEY, compressToEncodedURIComponent(JSON.stringify(newSlices)));
43
+ window.history.pushState(null, "", url);
44
+ const path = window.location.pathname;
45
+ setTimeout(() => throttledRevalidatePath(path), 0);
46
+ }, "simulator-slices");
47
+ simulatorManager.state.on(StateEventType.Message, (newMessage) => setMessage(newMessage), "simulator-message");
48
+ simulatorManager.init();
49
+ return () => {
50
+ simulatorManager.state.off(StateEventType.Slices, "simulator-slices");
51
+ simulatorManager.state.off(StateEventType.Message, "simulator-message");
52
+ };
53
+ }, []);
54
+ return jsx(SliceSimulatorWrapper, { message, hasSlices, background, zIndex, className, children });
55
+ };
56
+ export {
57
+ SliceSimulator
58
+ };
59
+ //# sourceMappingURL=SliceSimulator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SliceSimulator.js","sources":["../../../../src/simulator/react-server/SliceSimulator.tsx"],"sourcesContent":["// This `<SliceSimulator>` is only accessible from Server Components.\n\n\"use client\";\n\nimport * as React from \"react\";\n\nimport {\n\tSliceSimulatorProps as BaseSliceSimulatorProps,\n\tSimulatorManager,\n\tStateEventType,\n\tgetDefaultMessage,\n} from \"@prismicio/simulator/kit\";\nimport { compressToEncodedURIComponent } from \"lz-string\";\n\nimport { SliceSimulatorWrapper } from \"../SliceSimulatorWrapper\";\nimport { revalidatePath } from \"./actions\";\nimport { getSlices } from \"./getSlices\";\n\nconst STATE_PARAMS_KEY = \"state\";\n\nconst throttle =\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t<TArgs extends [...any]>(fn: (...args: TArgs) => unknown, wait: number) => {\n\t\tlet timeoutId: ReturnType<typeof setTimeout>;\n\t\tlet lastCallTime = 0;\n\n\t\treturn (...args: TArgs) => {\n\t\t\tclearTimeout(timeoutId);\n\n\t\t\tconst now = Date.now();\n\t\t\tconst timeSinceLastCall = now - lastCallTime;\n\t\t\tconst delayForNextCall = wait - timeSinceLastCall;\n\n\t\t\tif (delayForNextCall <= 0) {\n\t\t\t\tlastCallTime = now;\n\t\t\t\tfn(...args);\n\t\t\t} else {\n\t\t\t\ttimeoutId = setTimeout(() => {\n\t\t\t\t\tlastCallTime = Date.now();\n\t\t\t\t\tfn(...args);\n\t\t\t\t}, delayForNextCall);\n\t\t\t}\n\t\t};\n\t};\nconst throttledRevalidatePath = throttle(revalidatePath, 300);\n\nconst simulatorManager = new SimulatorManager();\n\nexport type SliceSimulatorProps = Omit<BaseSliceSimulatorProps, \"state\"> & {\n\tchildren: React.ReactNode;\n\tclassName?: string;\n};\n\nexport const SliceSimulator = ({\n\tchildren,\n\tbackground,\n\tzIndex,\n\tclassName,\n}: SliceSimulatorProps): JSX.Element => {\n\tconst [message, setMessage] = React.useState(() => getDefaultMessage());\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\tReact.useEffect(() => {\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\t\t\t\twindow.history.pushState(null, \"\", url);\n\n\t\t\t\t// A 0 ms timeout is needed to prevent a bug\n\t\t\t\t// where the path is revalidated before the URL\n\t\t\t\t// is updated with the new state.\n\t\t\t\tconst path = window.location.pathname;\n\t\t\t\tsetTimeout(() => throttledRevalidatePath(path), 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"],"names":[],"mappings":";;;;;;;;;AAkBA;AAEA;AAAM;AAAA;AAGA;AACJ;AAEA;AACC;AAEM;AACN;AACA;AAEA;AACgB;AACf;AAAU;AAEV;AACC;AACA;AAAU;AACQ;AACnB;AAAA;AAEH;AACD;AAEA;AAOO;AAMA;AAEN;AAIA;AAEA;AACC;AAGE;AACI;AAIJ;AAKM;AACN;AAAiD;AAIlC;AAMjB;AAEA;AACC;AAEA;AAAsE;AAAA;AAKvE;AAUF;;;;"}
@@ -0,0 +1,10 @@
1
+ 'use server';
2
+ 'use server';
3
+ "use strict";
4
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
5
+ const cache = require("next/cache");
6
+ async function revalidatePath(path) {
7
+ cache.revalidatePath(path);
8
+ }
9
+ exports.revalidatePath = revalidatePath;
10
+ //# sourceMappingURL=actions.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions.cjs","sources":["../../../../src/simulator/react-server/actions.ts"],"sourcesContent":["\"use server\";\n\nimport { revalidatePath as baseRevalidatePath } from \"next/cache\";\n\nexport async function revalidatePath(path: string): Promise<void> {\n\tbaseRevalidatePath(path);\n}\n"],"names":["baseRevalidatePath"],"mappings":";;;;;AAIA;AACCA;AACD;;"}
@@ -0,0 +1 @@
1
+ export declare function revalidatePath(path: string): Promise<void>;
@@ -0,0 +1,10 @@
1
+ 'use server';
2
+ 'use server';
3
+ import { revalidatePath as revalidatePath$1 } from "next/cache";
4
+ async function revalidatePath(path) {
5
+ revalidatePath$1(path);
6
+ }
7
+ export {
8
+ revalidatePath
9
+ };
10
+ //# sourceMappingURL=actions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions.js","sources":["../../../../src/simulator/react-server/actions.ts"],"sourcesContent":["\"use server\";\n\nimport { revalidatePath as baseRevalidatePath } from \"next/cache\";\n\nexport async function revalidatePath(path: string): Promise<void> {\n\tbaseRevalidatePath(path);\n}\n"],"names":["baseRevalidatePath"],"mappings":";;;AAIA;AACCA;AACD;;;;"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const kit = require("@prismicio/simulator/kit");
4
+ const lzString = require("lz-string");
5
+ const getSlices = (state) => {
6
+ return state ? JSON.parse(lzString.decompressFromEncodedURIComponent(state)) : kit.getDefaultSlices();
7
+ };
8
+ exports.getSlices = getSlices;
9
+ //# sourceMappingURL=getSlices.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getSlices.cjs","sources":["../../../../src/simulator/react-server/getSlices.ts"],"sourcesContent":["// This `getSlices` is only accessible from Server Components.\n\nimport {\n\tgetDefaultSlices,\n\tStateEvents,\n\tStateEventType,\n} 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"],"names":["decompressFromEncodedURIComponent","getDefaultSlices"],"mappings":";;;;AASa,MAAA,YAAY,CACxB,UACuC;AACvC,SAAO,QACJ,KAAK,MAAMA,2CAAkC,KAAK,CAAC,IACnDC,IAAAA;AACJ;;"}
@@ -0,0 +1,2 @@
1
+ import { StateEvents, StateEventType } from "@prismicio/simulator/kit";
2
+ export declare const getSlices: (state: string | null | undefined) => StateEvents[StateEventType.Slices];
@@ -0,0 +1,9 @@
1
+ import { getDefaultSlices } from "@prismicio/simulator/kit";
2
+ import { decompressFromEncodedURIComponent } from "lz-string";
3
+ const getSlices = (state) => {
4
+ return state ? JSON.parse(decompressFromEncodedURIComponent(state)) : getDefaultSlices();
5
+ };
6
+ export {
7
+ getSlices
8
+ };
9
+ //# sourceMappingURL=getSlices.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getSlices.js","sources":["../../../../src/simulator/react-server/getSlices.ts"],"sourcesContent":["// This `getSlices` is only accessible from Server Components.\n\nimport {\n\tgetDefaultSlices,\n\tStateEvents,\n\tStateEventType,\n} 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"],"names":[],"mappings":";;AASa,MAAA,YAAY,CACxB,UACuC;AACvC,SAAO,QACJ,KAAK,MAAM,kCAAkC,KAAK,CAAC,IACnD;AACJ;"}
@@ -0,0 +1,2 @@
1
+ export { SliceSimulator } from "./SliceSimulator";
2
+ export { getSlices } from "./getSlices";
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const SliceSimulator = require("./react-server/SliceSimulator.cjs");
4
+ const getSlices = require("./react-server/getSlices.cjs");
5
+ exports.SliceSimulator = SliceSimulator.SliceSimulator;
6
+ exports.getSlices = getSlices.getSlices;
7
+ //# sourceMappingURL=react-server.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react-server.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -0,0 +1,7 @@
1
+ import { SliceSimulator } from "./react-server/SliceSimulator.js";
2
+ import { getSlices } from "./react-server/getSlices.js";
3
+ export {
4
+ SliceSimulator,
5
+ getSlices
6
+ };
7
+ //# sourceMappingURL=react-server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react-server.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
@@ -0,0 +1,11 @@
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: {
9
+ state?: string;
10
+ };
11
+ };
@@ -1,5 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const SliceSimulator = require("./simulator/SliceSimulator.cjs");
4
+ const getSlices = require("./simulator/getSlices.cjs");
4
5
  exports.SliceSimulator = SliceSimulator.SliceSimulator;
6
+ exports.getSlices = getSlices.getSlices;
5
7
  //# sourceMappingURL=simulator.cjs.map