slice-machine-ui 1.19.2-dev-next-release.2 → 1.19.2-dev-next-release.4

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 (62) hide show
  1. package/components/Navigation/ChangesListItem.tsx +0 -4
  2. package/components/Navigation/VideoItem.tsx +82 -76
  3. package/components/Navigation/index.test.tsx +2 -13
  4. package/components/Simulator/components/IframeRenderer/index.tsx +0 -3
  5. package/components/Simulator/components/Toolbar/index.tsx +0 -42
  6. package/components/Simulator/index.tsx +0 -2
  7. package/lib/builders/SliceBuilder/SimulatorButton/index.tsx +5 -20
  8. package/lib/consts.ts +0 -7
  9. package/lib/models/common/Screenshots.ts +1 -10
  10. package/out/404.html +1 -1
  11. package/out/_next/static/4sLbpIu3gX8jUmr0j0Shc/_buildManifest.js +1 -0
  12. package/out/_next/static/chunks/585-f3dca093db4b3792.js +10 -0
  13. package/out/_next/static/chunks/{80-4cd4c6f95d162ef7.js → 80-c513d12da6156fb7.js} +1 -1
  14. package/out/_next/static/chunks/{840-4e395e66a2b2f394.js → 840-c317c8ff8de0f202.js} +1 -1
  15. package/out/_next/static/chunks/{904-b2d5235c13e62ee8.js → 904-d5dfccdb4d9ab010.js} +1 -1
  16. package/out/_next/static/chunks/pages/{_app-ec1f14f2d3ddb69d.js → _app-ee40681cde62eb80.js} +3 -3
  17. package/out/_next/static/chunks/pages/{changelog-11c9e241f5a8a4cb.js → changelog-75b0bf58d1f3045d.js} +1 -1
  18. package/out/_next/static/chunks/pages/{changes-768c9cb6fef169d1.js → changes-9dcb1cdaa8b10560.js} +1 -1
  19. package/out/_next/static/chunks/pages/{labs-395232bcec99d42a.js → labs-2349c21fbac1bd23.js} +1 -1
  20. package/out/_next/static/chunks/pages/slices/[lib]/[sliceName]/[variation]/simulator-5e441f8b049cf91b.js +1 -0
  21. package/out/_next/static/chunks/pages/slices/[lib]/[sliceName]/[variation]-c9b5ff7076d2b19b.js +1 -0
  22. package/out/_next/static/chunks/pages/{slices-f77df402117379c6.js → slices-247c480530e98426.js} +1 -1
  23. package/out/changelog.html +1 -1
  24. package/out/changes.html +1 -1
  25. package/out/custom-types/[customTypeId].html +1 -1
  26. package/out/custom-types.html +1 -1
  27. package/out/index.html +1 -1
  28. package/out/labs.html +1 -1
  29. package/out/page-types/[pageTypeId].html +1 -1
  30. package/out/prismic-academy-101.png +0 -0
  31. package/out/slices/[lib]/[sliceName]/[variation]/simulator.html +1 -1
  32. package/out/slices/[lib]/[sliceName]/[variation].html +1 -1
  33. package/out/slices.html +1 -1
  34. package/package.json +4 -4
  35. package/public/prismic-academy-101.png +0 -0
  36. package/src/apiClient.ts +1 -40
  37. package/src/components/HoverCard/HoverCard.stories.tsx +1 -1
  38. package/src/hooks/useMarketingContent.ts +65 -0
  39. package/src/modules/loading/types.ts +0 -1
  40. package/src/modules/screenshots/actions.ts +4 -25
  41. package/src/modules/screenshots/sagas.ts +1 -63
  42. package/src/modules/selectedSlice/actions.ts +1 -5
  43. package/src/modules/selectedSlice/reducer.ts +1 -5
  44. package/src/modules/slices/index.ts +1 -6
  45. package/src/modules/toaster/index.tsx +6 -22
  46. package/src/modules/useSliceMachineActions.ts +2 -25
  47. package/components/ScreenshotToaster/index.tsx +0 -53
  48. package/out/_next/static/DcicAqW9Z1wJ8X-Tue3N3/_buildManifest.js +0 -1
  49. package/out/_next/static/chunks/746-2ca4784811bde7c1.js +0 -8
  50. package/out/_next/static/chunks/770-c75d8245a822c5d9.js +0 -3
  51. package/out/_next/static/chunks/pages/slices/[lib]/[sliceName]/[variation]/screenshot-76d40513025fd76d.js +0 -1
  52. package/out/_next/static/chunks/pages/slices/[lib]/[sliceName]/[variation]/simulator-39efc79412072ae1.js +0 -1
  53. package/out/_next/static/chunks/pages/slices/[lib]/[sliceName]/[variation]-4dfda949290eb037.js +0 -1
  54. package/out/phil.png +0 -0
  55. package/out/slices/[lib]/[sliceName]/[variation]/screenshot.html +0 -1
  56. package/pages/slices/[lib]/[sliceName]/[variation]/screenshot.tsx +0 -61
  57. package/public/phil.png +0 -0
  58. package/test/src/modules/screenshots/__fixtures__/mocks.json +0 -41
  59. package/test/src/modules/screenshots/__fixtures__/model.json +0 -35
  60. package/test/src/modules/screenshots/__testutils__/getSelectedSliceDummyData.ts +0 -29
  61. package/test/src/modules/screenshots/sagas.test.ts +0 -82
  62. /package/out/_next/static/{DcicAqW9Z1wJ8X-Tue3N3 → 4sLbpIu3gX8jUmr0j0Shc}/_ssgManifest.js +0 -0
@@ -18,7 +18,6 @@ import {
18
18
  import {
19
19
  userHasSeenChangesToolTip,
20
20
  userHasSeenSimulatorToolTip,
21
- userHasSeenTutorialsToolTip,
22
21
  } from "@src/modules/userContext";
23
22
  import useSliceMachineActions from "@src/modules/useSliceMachineActions";
24
23
  import { ChangesRightElement } from "./ChangesRightElement";
@@ -68,13 +67,11 @@ const useOpenChangesHoverCard = () => {
68
67
  const {
69
68
  hasSeenChangesToolTip,
70
69
  hasSeenSimulatorToolTip,
71
- hasSeenTutorialsToolTip,
72
70
  isSavingCustomType,
73
71
  isSavingSlice,
74
72
  } = useSelector((store: SliceMachineStoreType) => ({
75
73
  hasSeenChangesToolTip: userHasSeenChangesToolTip(store),
76
74
  hasSeenSimulatorToolTip: userHasSeenSimulatorToolTip(store),
77
- hasSeenTutorialsToolTip: userHasSeenTutorialsToolTip(store),
78
75
  isSavingCustomType: isLoading(store, LoadingKeysEnum.SAVE_CUSTOM_TYPE),
79
76
  isSavingSlice: isLoading(store, LoadingKeysEnum.SAVE_SLICE),
80
77
  }));
@@ -88,7 +85,6 @@ const useOpenChangesHoverCard = () => {
88
85
 
89
86
  return (
90
87
  !hasSeenChangesToolTip &&
91
- hasSeenTutorialsToolTip &&
92
88
  hasSeenSimulatorToolTip &&
93
89
  !isSaving &&
94
90
  prevIsSaving
@@ -5,11 +5,12 @@ import {
5
5
  RefCallback,
6
6
  ReactNode,
7
7
  forwardRef,
8
+ PropsWithChildren,
8
9
  } from "react";
10
+ import { useSelector } from "react-redux";
9
11
  import ReactTooltip from "react-tooltip";
10
12
  import { Close, Flex, Paragraph } from "theme-ui";
11
13
  import { ReactTooltipPortal } from "@components/ReactTooltipPortal";
12
- import { VIDEO_YOUTUBE_PLAYLIST_LINK, PRISMIC_ACADEMY_URL } from "@lib/consts";
13
14
  import { telemetry } from "@src/apiClient";
14
15
  import { SideNavLink, SideNavListItem } from "@src/components/SideNav";
15
16
  import { PlayCircleIcon } from "@src/icons/PlayCircleIcon";
@@ -20,7 +21,9 @@ import {
20
21
  HoverCardMedia,
21
22
  HoverCardTitle,
22
23
  } from "@src/components/HoverCard";
23
- import { useAdapterName } from "@src/hooks/useAdapterName";
24
+ import { getUserReview } from "@src/modules/userContext";
25
+ import { SliceMachineStoreType } from "@src/redux/type";
26
+ import { useMarketingContent } from "@src/hooks/useMarketingContent";
24
27
 
25
28
  import style from "./VideoItem.module.css";
26
29
 
@@ -31,27 +34,23 @@ type VideoItemProps = {
31
34
 
32
35
  export const VideoItem = forwardRef<HTMLLIElement, VideoItemProps>(
33
36
  ({ onClose, hasSeenTutorialsToolTip }, ref) => {
34
- const adapterName = useAdapterName();
35
-
36
- const isNext = adapterName === "@slicemachine/adapter-next";
37
- const videoUrl = isNext ? PRISMIC_ACADEMY_URL : VIDEO_YOUTUBE_PLAYLIST_LINK;
37
+ const { tutorial } = useMarketingContent();
38
38
 
39
39
  return (
40
40
  <MaybeVideoTooltipWrapper
41
41
  onClose={onClose}
42
- isNext={isNext}
43
42
  hasSeenTutorialsToolTip={hasSeenTutorialsToolTip}
44
43
  >
45
44
  <SideNavListItem ref={ref}>
46
45
  <SideNavLink
47
- title="Tutorial"
48
- href={videoUrl}
46
+ title={tutorial.link.title}
47
+ href={tutorial.link.url}
49
48
  target="_blank"
50
49
  Icon={(props) => <PlayCircleIcon {...props} />}
51
50
  onClick={() => {
52
51
  void telemetry.track({
53
52
  event: "open-video-tutorials",
54
- video: videoUrl,
53
+ video: tutorial.link.url,
55
54
  });
56
55
  onClose();
57
56
  }}
@@ -63,20 +62,26 @@ export const VideoItem = forwardRef<HTMLLIElement, VideoItemProps>(
63
62
  );
64
63
 
65
64
  type MaybeVideoTooltipWrapperProps = VideoItemProps & {
66
- isNext: boolean;
67
65
  children: ReactNode;
68
66
  };
69
67
 
70
68
  const MaybeVideoTooltipWrapper: FC<MaybeVideoTooltipWrapperProps> = ({
71
- isNext,
72
69
  children,
73
70
  onClose,
74
71
  hasSeenTutorialsToolTip,
75
72
  }) => {
76
- if (isNext) {
73
+ const { tutorial } = useMarketingContent();
74
+ const { userReview } = useSelector((store: SliceMachineStoreType) => ({
75
+ userReview: getUserReview(store),
76
+ }));
77
+ const open =
78
+ !hasSeenTutorialsToolTip &&
79
+ (userReview.onboarding || userReview.advancedRepository);
80
+
81
+ if (tutorial.tooltip.video !== undefined) {
77
82
  return (
78
83
  <HoverCard
79
- open={!hasSeenTutorialsToolTip}
84
+ open={open}
80
85
  side="right"
81
86
  onClose={onClose}
82
87
  trigger={children}
@@ -84,40 +89,37 @@ const MaybeVideoTooltipWrapper: FC<MaybeVideoTooltipWrapperProps> = ({
84
89
  align="end"
85
90
  alignOffset={8}
86
91
  >
87
- <HoverCardTitle>Need help?</HoverCardTitle>
92
+ <HoverCardTitle>{tutorial.tooltip.title}</HoverCardTitle>
88
93
  <HoverCardMedia
89
94
  component="video"
90
- cloudName="dmtf1daqp"
91
- publicId="Tooltips/pa-course-overview_eaopsn"
92
- poster="/phil.png"
95
+ cloudName={tutorial.tooltip.video.cloudName}
96
+ publicId={tutorial.tooltip.video.publicId}
97
+ poster={tutorial.tooltip.video.poster}
93
98
  controls
94
99
  />
95
100
  <HoverCardDescription>
96
- Learn how to turn a Next.js website into a page builder powered by
97
- Prismic.
101
+ {tutorial.tooltip.description}
98
102
  </HoverCardDescription>
99
- <HoverCardCloseButton>Got It</HoverCardCloseButton>
103
+ <HoverCardCloseButton>
104
+ {tutorial.tooltip.closeButton}
105
+ </HoverCardCloseButton>
100
106
  </HoverCard>
101
107
  );
102
108
  }
103
109
 
104
110
  return (
105
- <OldVideoItem
106
- onClose={onClose}
107
- hasSeenTutorialsToolTip={hasSeenTutorialsToolTip}
108
- >
111
+ <OldVideoItem onClose={onClose} open={open}>
109
112
  {children}
110
113
  </OldVideoItem>
111
114
  );
112
115
  };
113
116
 
114
- type OldVideoItemProps = VideoItemProps & { children: ReactNode };
117
+ type OldVideoItemProps = PropsWithChildren<{
118
+ open: boolean;
119
+ onClose: () => void;
120
+ }>;
115
121
 
116
- const OldVideoItem: FC<OldVideoItemProps> = ({
117
- hasSeenTutorialsToolTip,
118
- onClose,
119
- children,
120
- }) => {
122
+ const OldVideoItem: FC<OldVideoItemProps> = ({ open, onClose, children }) => {
121
123
  const id = "video-tool-tip";
122
124
  const ref = useRef<HTMLDivElement | null>(null);
123
125
 
@@ -126,12 +128,12 @@ const OldVideoItem: FC<OldVideoItemProps> = ({
126
128
  if (ref.current) {
127
129
  return;
128
130
  }
129
- if (node && !hasSeenTutorialsToolTip) {
131
+ if (node && open) {
130
132
  setTimeout(() => ReactTooltip.show(node), 5000);
133
+ ref.current = node;
131
134
  }
132
- ref.current = node;
133
135
  },
134
- [hasSeenTutorialsToolTip],
136
+ [open],
135
137
  );
136
138
 
137
139
  return (
@@ -144,7 +146,7 @@ const OldVideoItem: FC<OldVideoItemProps> = ({
144
146
  >
145
147
  {children}
146
148
 
147
- {!hasSeenTutorialsToolTip && <ToolTip id={id} onClose={onClose} />}
149
+ {open && <ToolTip id={id} onClose={onClose} />}
148
150
  </div>
149
151
  );
150
152
  };
@@ -154,53 +156,57 @@ type ToolTipProps = {
154
156
  onClose: VideoItemProps["onClose"];
155
157
  };
156
158
 
157
- const ToolTip: FC<ToolTipProps> = ({ id, onClose }) => (
158
- <ReactTooltipPortal>
159
- <ReactTooltip
160
- id={id}
161
- effect="solid"
162
- place="right"
163
- backgroundColor="#5741c3"
164
- clickable
165
- className={style.videoTutorialsContainer}
166
- afterHide={onClose}
167
- offset={{
168
- left: 80,
169
- }}
170
- role="tooltip"
171
- getContent={() => (
172
- <Flex
173
- sx={{
174
- maxWidth: "268px",
175
- flexDirection: "column",
176
- }}
177
- >
159
+ const ToolTip: FC<ToolTipProps> = ({ id, onClose }) => {
160
+ const { tutorial } = useMarketingContent();
161
+
162
+ return (
163
+ <ReactTooltipPortal>
164
+ <ReactTooltip
165
+ id={id}
166
+ effect="solid"
167
+ place="right"
168
+ backgroundColor="#5741c3"
169
+ clickable
170
+ className={style.videoTutorialsContainer}
171
+ afterHide={onClose}
172
+ offset={{
173
+ left: 80,
174
+ }}
175
+ role="tooltip"
176
+ getContent={() => (
178
177
  <Flex
179
178
  sx={{
180
- flexDirection: "row",
181
- alignItems: "center",
182
- justifyContent: "space-between",
183
- mb: 1,
179
+ maxWidth: "268px",
180
+ flexDirection: "column",
184
181
  }}
185
182
  >
186
- <Paragraph sx={{ color: "#FFF", fontWeight: 700 }}>
187
- Need Help?
188
- </Paragraph>
189
- <Close
190
- data-testid="video-tooltip-close-button"
191
- onClick={onClose}
183
+ <Flex
192
184
  sx={{
193
- width: "26px",
185
+ flexDirection: "row",
186
+ alignItems: "center",
187
+ justifyContent: "space-between",
188
+ mb: 1,
194
189
  }}
195
- />
190
+ >
191
+ <Paragraph sx={{ color: "#FFF", fontWeight: 700 }}>
192
+ {tutorial.tooltip.title}
193
+ </Paragraph>
194
+ <Close
195
+ data-testid="video-tooltip-close-button"
196
+ onClick={onClose}
197
+ sx={{
198
+ width: "26px",
199
+ }}
200
+ />
201
+ </Flex>
202
+ <Paragraph sx={{ color: "#FFF", fontWeight: 400 }}>
203
+ {tutorial.tooltip.description}
204
+ </Paragraph>
196
205
  </Flex>
197
- <Paragraph sx={{ color: "#FFF", fontWeight: 400 }}>
198
- Follow our Quick Start guide to learn the basics of Slice Machine
199
- </Paragraph>
200
- </Flex>
201
- )}
202
- />
203
- </ReactTooltipPortal>
204
- );
206
+ )}
207
+ />
208
+ </ReactTooltipPortal>
209
+ );
210
+ };
205
211
 
206
212
  export default VideoItem;
@@ -270,7 +270,7 @@ describe("Side Navigation", () => {
270
270
 
271
271
  renderSideNavigation({ canUpdate: true });
272
272
 
273
- const link = (await screen.findByText("Tutorial")).parentElement
273
+ const link = (await screen.findByText("Academy")).parentElement
274
274
  ?.parentElement as HTMLElement;
275
275
 
276
276
  await waitFor(() =>
@@ -284,7 +284,7 @@ describe("Side Navigation", () => {
284
284
  });
285
285
 
286
286
  test("Video Item not next", async () => {
287
- const { user } = renderSideNavigation({ canUpdate: true });
287
+ renderSideNavigation({ canUpdate: true });
288
288
 
289
289
  const link = (await screen.findByText("Tutorial")).parentElement
290
290
  ?.parentElement as HTMLElement;
@@ -293,16 +293,5 @@ describe("Side Navigation", () => {
293
293
  "https://youtube.com/playlist?list=PLUVZjQltoA3wnaQudcqQ3qdZNZ6hyfyhH",
294
294
  );
295
295
  expect(link).toHaveAttribute("target", "_blank");
296
-
297
- await user.hover(link);
298
-
299
- const tooltip = await screen.findByRole("tooltip");
300
- expect(tooltip).toBeVisible();
301
- const closeButton = await within(tooltip).findByTestId(
302
- "video-tooltip-close-button",
303
- );
304
- await user.click(closeButton);
305
-
306
- expect(screen.queryByRole("tooltip")).not.toBeInTheDocument();
307
296
  });
308
297
  });
@@ -125,7 +125,6 @@ const IframeRenderer: React.FunctionComponent<IframeRendererProps> = ({
125
125
  {/* eslint-disable-next-line @typescript-eslint/strict-boolean-expressions */}
126
126
  {simulatorUrl ? (
127
127
  <iframe
128
- id="__iframe-renderer"
129
128
  ref={iframeRef}
130
129
  src={simulatorUrl}
131
130
  style={{
@@ -141,8 +140,6 @@ const IframeRenderer: React.FunctionComponent<IframeRendererProps> = ({
141
140
  }}
142
141
  />
143
142
  ) : null}
144
- {/* eslint-disable-next-line @typescript-eslint/strict-boolean-expressions */}
145
- {client?.connected ? <div id="__iframe-ready" /> : null}
146
143
  </Flex>
147
144
  );
148
145
  };
@@ -11,20 +11,14 @@ import {
11
11
  } from "./ScreensizeInput";
12
12
 
13
13
  import { ScreenDimensions } from "@lib/models/common/Screenshots";
14
- import { ComponentUI } from "@lib/models/common/ComponentUI";
15
- import { VariationSM } from "@lib/models/common/Slice";
16
14
 
17
15
  type ToolbarProps = {
18
- slice: ComponentUI;
19
- variation: VariationSM;
20
16
  handleScreenSizeChange: (screenDimensions: ScreenDimensions) => void;
21
17
  screenDimensions: ScreenDimensions;
22
18
  actionsDisabled: boolean;
23
19
  };
24
20
 
25
21
  export const Toolbar: React.FC<ToolbarProps> = ({
26
- slice: _slice,
27
- variation: _variation,
28
22
  handleScreenSizeChange,
29
23
  screenDimensions,
30
24
  actionsDisabled,
@@ -57,30 +51,6 @@ export const Toolbar: React.FC<ToolbarProps> = ({
57
51
  handleScreenSizeChange(newScreenDimensions);
58
52
  };
59
53
 
60
- // TODO(DT-1534): Uncomment to enable Puppeteer screenshots or delete if we decide to remove Puppeteer
61
- // const { generateSliceScreenshot } = useSliceMachineActions();
62
- //
63
- // const onTakingSliceScreenshot = () => {
64
- // generateSliceScreenshot(
65
- // variation.id,
66
- // slice,
67
- // {
68
- // width: screenDimensions.width,
69
- // height: screenDimensions.height,
70
- // },
71
- // "fromSimulator"
72
- // );
73
- // };
74
- //
75
- // const { isSavingScreenshot } = useSelector(
76
- // (store: SliceMachineStoreType) => ({
77
- // isSavingScreenshot: isLoading(
78
- // store,
79
- // LoadingKeysEnum.GENERATE_SLICE_SCREENSHOT
80
- // ),
81
- // })
82
- // );
83
-
84
54
  return (
85
55
  <Flex
86
56
  sx={{
@@ -129,18 +99,6 @@ export const Toolbar: React.FC<ToolbarProps> = ({
129
99
  sx={{ ml: 2 }}
130
100
  />
131
101
  </Flex>
132
- {/*
133
- // TODO(DT-1534): Uncomment to enable Puppeteer screenshots or delete if we decide to remove Puppeteer
134
- <Button
135
- onClick={onTakingSliceScreenshot}
136
- label="Take a screenshot"
137
- isLoading={isSavingScreenshot}
138
- Icon={AiFillCamera}
139
- iconSize={20}
140
- iconFill="#6F6E77"
141
- variant="secondaryMedium"
142
- disabled={actionsDisabled}
143
- /> */}
144
102
  </Flex>
145
103
  );
146
104
  };
@@ -262,8 +262,6 @@ const Simulator: ComponentWithSliceProps = ({ slice, variation }) => {
262
262
  }}
263
263
  >
264
264
  <Toolbar
265
- slice={slice}
266
- variation={variation}
267
265
  handleScreenSizeChange={setScreenDimensions}
268
266
  screenDimensions={screenDimensions}
269
267
  actionsDisabled={currentState !== UiState.SUCCESS}
@@ -7,10 +7,7 @@ import { useRouter } from "next/router";
7
7
  import ReactTooltip from "react-tooltip";
8
8
 
9
9
  import { PlayCircleIcon } from "@src/icons/PlayCircleIcon";
10
- import {
11
- userHasSeenSimulatorToolTip,
12
- userHasSeenTutorialsToolTip,
13
- } from "@src/modules/userContext";
10
+ import { userHasSeenSimulatorToolTip } from "@src/modules/userContext";
14
11
  import { useSelector } from "react-redux";
15
12
  import { SliceMachineStoreType } from "@src/redux/type";
16
13
  import useSliceMachineActions from "@src/modules/useSliceMachineActions";
@@ -97,28 +94,18 @@ const SimulatorButton: React.FC<{
97
94
 
98
95
  const { setSeenSimulatorToolTip } = useSliceMachineActions();
99
96
 
100
- const { hasSeenSimulatorTooltip, hasSeenTutorialsToolTip } = useSelector(
97
+ const { hasSeenSimulatorTooltip } = useSelector(
101
98
  (store: SliceMachineStoreType) => ({
102
99
  hasSeenSimulatorTooltip: userHasSeenSimulatorToolTip(store),
103
- hasSeenTutorialsToolTip: userHasSeenTutorialsToolTip(store),
104
100
  }),
105
101
  );
106
102
 
107
103
  useEffect(() => {
108
104
  const node = ref.current;
109
- if (
110
- node &&
111
- isSimulatorAvailableForFramework &&
112
- !hasSeenSimulatorTooltip &&
113
- hasSeenTutorialsToolTip
114
- ) {
105
+ if (node && isSimulatorAvailableForFramework && !hasSeenSimulatorTooltip) {
115
106
  setTimeout(() => ReactTooltip.show(node), 5000);
116
107
  }
117
- }, [
118
- isSimulatorAvailableForFramework,
119
- hasSeenSimulatorTooltip,
120
- hasSeenTutorialsToolTip,
121
- ]);
108
+ }, [isSimulatorAvailableForFramework, hasSeenSimulatorTooltip]);
122
109
 
123
110
  const onCloseToolTip = () => {
124
111
  setSeenSimulatorToolTip();
@@ -131,9 +118,7 @@ const SimulatorButton: React.FC<{
131
118
  const disabled = !isSimulatorAvailableForFramework || isTouched;
132
119
 
133
120
  const shouldShowSimulatorTooltip =
134
- isSimulatorAvailableForFramework &&
135
- !hasSeenSimulatorTooltip &&
136
- hasSeenTutorialsToolTip;
121
+ isSimulatorAvailableForFramework && !hasSeenSimulatorTooltip;
137
122
 
138
123
  const shouldShowNeedToSaveTooltip =
139
124
  isSimulatorAvailableForFramework &&
package/lib/consts.ts CHANGED
@@ -10,13 +10,6 @@ export const API_ID_REGEX = /^[A-Za-z0-9]+(?:_[A-Za-z0-9]+)*$/;
10
10
  export const API_ID_RETRO_COMPATIBLE_REGEX =
11
11
  /^[A-Za-z0-9]+(?:[_-][A-Za-z0-9]+)*$/;
12
12
 
13
- export const PRISMIC_ACADEMY_URL =
14
- "https://prismic.io/academy/prismic-and-nextjs";
15
-
16
- // VIDEOS
17
- export const VIDEO_YOUTUBE_PLAYLIST_LINK =
18
- "https://youtube.com/playlist?list=PLUVZjQltoA3wnaQudcqQ3qdZNZ6hyfyhH";
19
-
20
13
  export const VIDEO_WHAT_ARE_SLICES = "placeholders/What_are_Slices_mrvome";
21
14
  export const VIDEO_WHAT_ARE_CUSTOM_TYPES = "placeholders/CUSTOM_TYPE__0.5.0";
22
15
 
@@ -4,12 +4,6 @@ export interface ScreenDimensions {
4
4
  width: number;
5
5
  height: number;
6
6
  }
7
- export interface ScreenshotRequest {
8
- libraryName: string;
9
- sliceId: string;
10
- variationId: string;
11
- screenDimensions: ScreenDimensions;
12
- }
13
7
  export interface CustomScreenshotRequest {
14
8
  libraryName: string;
15
9
  sliceId: string;
@@ -41,7 +35,4 @@ export interface CustomScreenshotRequest {
41
35
  variationId: string;
42
36
  }
43
37
 
44
- export type ScreenshotGenerationMethod =
45
- | "fromSimulator"
46
- | "upload"
47
- | "dragAndDrop";
38
+ export type ScreenshotGenerationMethod = "upload" | "dragAndDrop";
package/out/404.html CHANGED
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><title>Slice Machine</title><meta name="next-head-count" content="3"/><link rel="preload" href="/_next/static/css/66b3836ab88b0c5c.css" as="style"/><link rel="stylesheet" href="/_next/static/css/66b3836ab88b0c5c.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-c67a75d1b6f99dc8.js"></script><script src="/_next/static/chunks/webpack-2f903acb0cccbf9e.js" defer=""></script><script src="/_next/static/chunks/framework-cdccea7a52cc6e81.js" defer=""></script><script src="/_next/static/chunks/main-5e6780279ca21cb9.js" defer=""></script><script src="/_next/static/chunks/pages/_app-ec1f14f2d3ddb69d.js" defer=""></script><script src="/_next/static/chunks/pages/_error-69b4f498bafdd188.js" defer=""></script><script src="/_next/static/DcicAqW9Z1wJ8X-Tue3N3/_buildManifest.js" defer=""></script><script src="/_next/static/DcicAqW9Z1wJ8X-Tue3N3/_ssgManifest.js" defer=""></script></head><body><div id="__next"><style data-emotion="css-global 413pep">html{--theme-ui-colors-text:#25252D;--theme-ui-colors-textClear:#6F6E77;--theme-ui-colors-grayLight:#E8E8ED;--theme-ui-colors-hoverBackground:#f2f2f2;--theme-ui-colors-background:#FFF;--theme-ui-colors-backgroundClear:#FFF;--theme-ui-colors-primary:#5D40F7;--theme-ui-colors-purpleLight:#F6F1FC;--theme-ui-colors-purpleLight01:#6548FF1A;--theme-ui-colors-purple12:#F1EEFE;--theme-ui-colors-purpleStrong:#5842C3;--theme-ui-colors-whiteButtonText:#1A1523;--theme-ui-colors-codeBlockBackground:#32275F;--theme-ui-colors-failedConnectText:#86848D;--theme-ui-colors-changesWarning-background:#FFECC7;--theme-ui-colors-changesWarning-color:#5C0C17;--theme-ui-colors-greyIcon:#6F6E77;--theme-ui-colors-greyIconDisabled:#C9D0D8;--theme-ui-colors-missingScreenshotBanner-color:#5C0C17;--theme-ui-colors-missingScreenshotBanner-bg:#FFECC7;--theme-ui-colors-badge-new-bg:#DBEDDB;--theme-ui-colors-badge-new-color:#05644D;--theme-ui-colors-badge-modified-bg:#FFECC7;--theme-ui-colors-badge-modified-color:#5C0C17;--theme-ui-colors-badge-synced-bg:purple12;--theme-ui-colors-badge-synced-color:#5842C3;--theme-ui-colors-badge-deleted-bg:rgba(203, 36, 49, 0.1);--theme-ui-colors-badge-unknown-bg:#F3F5F7;--theme-ui-colors-badge-unknown-color:#9AA4AF;--theme-ui-colors-codeBlockBorder:#545454;--theme-ui-colors-secondary:#F9FAFB;--theme-ui-colors-danger:#CB2431;--theme-ui-colors-highlight:hsl(10, 40%, 90%);--theme-ui-colors-purple:#5B3DF5;--theme-ui-colors-purple08:#5842C3;--theme-ui-colors-muted:#F9F9FB;--theme-ui-colors-icons:#8091A5;--theme-ui-colors-gray:#F8F9FA;--theme-ui-colors-grey01:#F3F5F7;--theme-ui-colors-grey02:#E6E6EA;--theme-ui-colors-grey03:#F4F2F4;--theme-ui-colors-grey04:#9AA4AF;--theme-ui-colors-grey05:#667587;--theme-ui-colors-grey07:#F9F8F9;--theme-ui-colors-grey10:#86848D;--theme-ui-colors-grey12:#1A1523;--theme-ui-colors-greyTransparent:rgba(37, 37, 45, 0.4);--theme-ui-colors-borders:#E4E2E4;--theme-ui-colors-bordersFocused:#6E56CF;--theme-ui-colors-deep:#0E2150;--theme-ui-colors-deep1:#A0ADE7;--theme-ui-colors-lightGreen:#EBF8F1;--theme-ui-colors-lightOrange:#FDF4EC;--theme-ui-colors-darkOrange:#C17C10;--theme-ui-colors-error:#E55737;--theme-ui-colors-success:#3AB97A;--theme-ui-colors-headSection:#fff;--theme-ui-colors-warning:#E67E22;--theme-ui-colors-warning02:#ED811C;--theme-ui-colors-sidebar:#F1F1F4;--theme-ui-colors-link:#6E56CF;--theme-ui-colors-choggleBox:#5163BA;--theme-ui-colors-darkBorder:#DCDBDD;--theme-ui-colors-code-border:#DFE1E5;--theme-ui-colors-code-blue:#3B41BD;--theme-ui-colors-code-gray:#667587;--theme-ui-colors-code-orange:#EA6D46;--theme-ui-colors-code-green:#3AB97A;color:var(--theme-ui-colors-text);background-color:var(--theme-ui-colors-background);}html.theme-ui-light,.theme-ui-light html{--theme-ui-colors-text:#25252D;--theme-ui-colors-textClear:#6F6E77;--theme-ui-colors-grayLight:#E8E8ED;--theme-ui-colors-hoverBackground:#f2f2f2;--theme-ui-colors-background:#FFF;--theme-ui-colors-backgroundClear:#FFF;--theme-ui-colors-primary:#5D40F7;--theme-ui-colors-purpleLight:#F6F1FC;--theme-ui-colors-purpleLight01:#6548FF1A;--theme-ui-colors-purple12:#F1EEFE;--theme-ui-colors-purpleStrong:#5842C3;--theme-ui-colors-whiteButtonText:#1A1523;--theme-ui-colors-codeBlockBackground:#32275F;--theme-ui-colors-failedConnectText:#86848D;--theme-ui-colors-changesWarning-background:#FFECC7;--theme-ui-colors-changesWarning-color:#5C0C17;--theme-ui-colors-greyIcon:#6F6E77;--theme-ui-colors-greyIconDisabled:#C9D0D8;--theme-ui-colors-missingScreenshotBanner-color:#5C0C17;--theme-ui-colors-missingScreenshotBanner-bg:#FFECC7;--theme-ui-colors-badge-new-bg:#DBEDDB;--theme-ui-colors-badge-new-color:#05644D;--theme-ui-colors-badge-modified-bg:#FFECC7;--theme-ui-colors-badge-modified-color:#5C0C17;--theme-ui-colors-badge-synced-bg:purple12;--theme-ui-colors-badge-synced-color:#5842C3;--theme-ui-colors-badge-deleted-bg:rgba(203, 36, 49, 0.1);--theme-ui-colors-badge-unknown-bg:#F3F5F7;--theme-ui-colors-badge-unknown-color:#9AA4AF;--theme-ui-colors-codeBlockBorder:#545454;--theme-ui-colors-secondary:#F9FAFB;--theme-ui-colors-danger:#CB2431;--theme-ui-colors-highlight:hsl(10, 40%, 90%);--theme-ui-colors-purple:#5B3DF5;--theme-ui-colors-purple08:#5842C3;--theme-ui-colors-muted:#F9F9FB;--theme-ui-colors-icons:#8091A5;--theme-ui-colors-gray:#F8F9FA;--theme-ui-colors-grey01:#F3F5F7;--theme-ui-colors-grey02:#E6E6EA;--theme-ui-colors-grey03:#F4F2F4;--theme-ui-colors-grey04:#9AA4AF;--theme-ui-colors-grey05:#667587;--theme-ui-colors-grey07:#F9F8F9;--theme-ui-colors-grey10:#86848D;--theme-ui-colors-grey12:#1A1523;--theme-ui-colors-greyTransparent:rgba(37, 37, 45, 0.4);--theme-ui-colors-borders:#E4E2E4;--theme-ui-colors-bordersFocused:#6E56CF;--theme-ui-colors-deep:#0E2150;--theme-ui-colors-deep1:#A0ADE7;--theme-ui-colors-lightGreen:#EBF8F1;--theme-ui-colors-lightOrange:#FDF4EC;--theme-ui-colors-darkOrange:#C17C10;--theme-ui-colors-error:#E55737;--theme-ui-colors-success:#3AB97A;--theme-ui-colors-headSection:#fff;--theme-ui-colors-warning:#E67E22;--theme-ui-colors-warning02:#ED811C;--theme-ui-colors-sidebar:#F1F1F4;--theme-ui-colors-link:#6E56CF;--theme-ui-colors-choggleBox:#5163BA;--theme-ui-colors-darkBorder:#DCDBDD;--theme-ui-colors-code-border:#DFE1E5;--theme-ui-colors-code-blue:#3B41BD;--theme-ui-colors-code-gray:#667587;--theme-ui-colors-code-orange:#EA6D46;--theme-ui-colors-code-green:#3AB97A;}html.theme-ui-dark,.theme-ui-dark html{--theme-ui-colors-text:#fff;--theme-ui-colors-textClear:#6E707B;--theme-ui-colors-hoverBackground:#202020;--theme-ui-colors-grey02:#E6E6EA;--theme-ui-colors-background:#202022;--theme-ui-colors-backgroundClear:#28282C;--theme-ui-colors-primary:#4E54D7;--theme-ui-colors-secondary:#28282C;--theme-ui-colors-icons:#5D5D71;--theme-ui-colors-gray:#1D1D1F;--theme-ui-colors-borders:#3A3A46;--theme-ui-colors-deep:#28282C;--theme-ui-colors-headSection:#28282C;--theme-ui-colors-warning:#E67E22;--theme-ui-colors-sidebar:#28282C;--theme-ui-colors-code-border:#5D5D6F;--theme-ui-colors-code-blue:#3B41BD;--theme-ui-colors-code-gray:#667587;--theme-ui-colors-code-orange:#EA6D46;--theme-ui-colors-code-green:#3AB97A;--theme-ui-colors-link:#A9A9C6;--theme-ui-colors-choggleBox:#fff;}</style><style data-emotion="css-global h19pgh">*{box-sizing:border-box;}html{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",sans-serif;line-height:1.5;font-weight:400;}body{margin:0;}</style><style data-emotion="css yvak7d">.css-yvak7d{box-sizing:border-box;margin:0;min-width:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;height:calc(100vh - 57px);width:100vw;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}</style><div class="css-yvak7d"><style data-emotion="css uqm8ih">.css-uqm8ih{box-sizing:border-box;margin:0;min-width:0;color:var(--theme-ui-colors-primary);overflow:visible;}</style><svg stroke-width="4" viewBox="0 0 32 32" width="48" height="48" fill="none" stroke="currentColor" role="img" id="spinner" class="css-uqm8ih"><title>Loading</title><circle stroke-width="4" r="12" cx="16" cy="16" fill="none" opacity="0.125"></circle><circle stroke-width="4" r="12" cx="16" cy="16" fill="none" stroke-dasharray="20 110"><animateTransform attributeName="transform" attributeType="XML" type="rotate" from="0 16 16" to="360 16 16" dur="750ms" repeatCount="indefinite"></animateTransform></circle></svg></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":404}},"page":"/_error","query":{},"buildId":"DcicAqW9Z1wJ8X-Tue3N3","runtimeConfig":{"sentryEnvironment":"alpha"},"nextExport":true,"isFallback":false,"gip":true,"appGip":true,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><title>Slice Machine</title><meta name="next-head-count" content="3"/><link rel="preload" href="/_next/static/css/66b3836ab88b0c5c.css" as="style"/><link rel="stylesheet" href="/_next/static/css/66b3836ab88b0c5c.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-c67a75d1b6f99dc8.js"></script><script src="/_next/static/chunks/webpack-2f903acb0cccbf9e.js" defer=""></script><script src="/_next/static/chunks/framework-cdccea7a52cc6e81.js" defer=""></script><script src="/_next/static/chunks/main-5e6780279ca21cb9.js" defer=""></script><script src="/_next/static/chunks/pages/_app-ee40681cde62eb80.js" defer=""></script><script src="/_next/static/chunks/pages/_error-69b4f498bafdd188.js" defer=""></script><script src="/_next/static/4sLbpIu3gX8jUmr0j0Shc/_buildManifest.js" defer=""></script><script src="/_next/static/4sLbpIu3gX8jUmr0j0Shc/_ssgManifest.js" defer=""></script></head><body><div id="__next"><style data-emotion="css-global 413pep">html{--theme-ui-colors-text:#25252D;--theme-ui-colors-textClear:#6F6E77;--theme-ui-colors-grayLight:#E8E8ED;--theme-ui-colors-hoverBackground:#f2f2f2;--theme-ui-colors-background:#FFF;--theme-ui-colors-backgroundClear:#FFF;--theme-ui-colors-primary:#5D40F7;--theme-ui-colors-purpleLight:#F6F1FC;--theme-ui-colors-purpleLight01:#6548FF1A;--theme-ui-colors-purple12:#F1EEFE;--theme-ui-colors-purpleStrong:#5842C3;--theme-ui-colors-whiteButtonText:#1A1523;--theme-ui-colors-codeBlockBackground:#32275F;--theme-ui-colors-failedConnectText:#86848D;--theme-ui-colors-changesWarning-background:#FFECC7;--theme-ui-colors-changesWarning-color:#5C0C17;--theme-ui-colors-greyIcon:#6F6E77;--theme-ui-colors-greyIconDisabled:#C9D0D8;--theme-ui-colors-missingScreenshotBanner-color:#5C0C17;--theme-ui-colors-missingScreenshotBanner-bg:#FFECC7;--theme-ui-colors-badge-new-bg:#DBEDDB;--theme-ui-colors-badge-new-color:#05644D;--theme-ui-colors-badge-modified-bg:#FFECC7;--theme-ui-colors-badge-modified-color:#5C0C17;--theme-ui-colors-badge-synced-bg:purple12;--theme-ui-colors-badge-synced-color:#5842C3;--theme-ui-colors-badge-deleted-bg:rgba(203, 36, 49, 0.1);--theme-ui-colors-badge-unknown-bg:#F3F5F7;--theme-ui-colors-badge-unknown-color:#9AA4AF;--theme-ui-colors-codeBlockBorder:#545454;--theme-ui-colors-secondary:#F9FAFB;--theme-ui-colors-danger:#CB2431;--theme-ui-colors-highlight:hsl(10, 40%, 90%);--theme-ui-colors-purple:#5B3DF5;--theme-ui-colors-purple08:#5842C3;--theme-ui-colors-muted:#F9F9FB;--theme-ui-colors-icons:#8091A5;--theme-ui-colors-gray:#F8F9FA;--theme-ui-colors-grey01:#F3F5F7;--theme-ui-colors-grey02:#E6E6EA;--theme-ui-colors-grey03:#F4F2F4;--theme-ui-colors-grey04:#9AA4AF;--theme-ui-colors-grey05:#667587;--theme-ui-colors-grey07:#F9F8F9;--theme-ui-colors-grey10:#86848D;--theme-ui-colors-grey12:#1A1523;--theme-ui-colors-greyTransparent:rgba(37, 37, 45, 0.4);--theme-ui-colors-borders:#E4E2E4;--theme-ui-colors-bordersFocused:#6E56CF;--theme-ui-colors-deep:#0E2150;--theme-ui-colors-deep1:#A0ADE7;--theme-ui-colors-lightGreen:#EBF8F1;--theme-ui-colors-lightOrange:#FDF4EC;--theme-ui-colors-darkOrange:#C17C10;--theme-ui-colors-error:#E55737;--theme-ui-colors-success:#3AB97A;--theme-ui-colors-headSection:#fff;--theme-ui-colors-warning:#E67E22;--theme-ui-colors-warning02:#ED811C;--theme-ui-colors-sidebar:#F1F1F4;--theme-ui-colors-link:#6E56CF;--theme-ui-colors-choggleBox:#5163BA;--theme-ui-colors-darkBorder:#DCDBDD;--theme-ui-colors-code-border:#DFE1E5;--theme-ui-colors-code-blue:#3B41BD;--theme-ui-colors-code-gray:#667587;--theme-ui-colors-code-orange:#EA6D46;--theme-ui-colors-code-green:#3AB97A;color:var(--theme-ui-colors-text);background-color:var(--theme-ui-colors-background);}html.theme-ui-light,.theme-ui-light html{--theme-ui-colors-text:#25252D;--theme-ui-colors-textClear:#6F6E77;--theme-ui-colors-grayLight:#E8E8ED;--theme-ui-colors-hoverBackground:#f2f2f2;--theme-ui-colors-background:#FFF;--theme-ui-colors-backgroundClear:#FFF;--theme-ui-colors-primary:#5D40F7;--theme-ui-colors-purpleLight:#F6F1FC;--theme-ui-colors-purpleLight01:#6548FF1A;--theme-ui-colors-purple12:#F1EEFE;--theme-ui-colors-purpleStrong:#5842C3;--theme-ui-colors-whiteButtonText:#1A1523;--theme-ui-colors-codeBlockBackground:#32275F;--theme-ui-colors-failedConnectText:#86848D;--theme-ui-colors-changesWarning-background:#FFECC7;--theme-ui-colors-changesWarning-color:#5C0C17;--theme-ui-colors-greyIcon:#6F6E77;--theme-ui-colors-greyIconDisabled:#C9D0D8;--theme-ui-colors-missingScreenshotBanner-color:#5C0C17;--theme-ui-colors-missingScreenshotBanner-bg:#FFECC7;--theme-ui-colors-badge-new-bg:#DBEDDB;--theme-ui-colors-badge-new-color:#05644D;--theme-ui-colors-badge-modified-bg:#FFECC7;--theme-ui-colors-badge-modified-color:#5C0C17;--theme-ui-colors-badge-synced-bg:purple12;--theme-ui-colors-badge-synced-color:#5842C3;--theme-ui-colors-badge-deleted-bg:rgba(203, 36, 49, 0.1);--theme-ui-colors-badge-unknown-bg:#F3F5F7;--theme-ui-colors-badge-unknown-color:#9AA4AF;--theme-ui-colors-codeBlockBorder:#545454;--theme-ui-colors-secondary:#F9FAFB;--theme-ui-colors-danger:#CB2431;--theme-ui-colors-highlight:hsl(10, 40%, 90%);--theme-ui-colors-purple:#5B3DF5;--theme-ui-colors-purple08:#5842C3;--theme-ui-colors-muted:#F9F9FB;--theme-ui-colors-icons:#8091A5;--theme-ui-colors-gray:#F8F9FA;--theme-ui-colors-grey01:#F3F5F7;--theme-ui-colors-grey02:#E6E6EA;--theme-ui-colors-grey03:#F4F2F4;--theme-ui-colors-grey04:#9AA4AF;--theme-ui-colors-grey05:#667587;--theme-ui-colors-grey07:#F9F8F9;--theme-ui-colors-grey10:#86848D;--theme-ui-colors-grey12:#1A1523;--theme-ui-colors-greyTransparent:rgba(37, 37, 45, 0.4);--theme-ui-colors-borders:#E4E2E4;--theme-ui-colors-bordersFocused:#6E56CF;--theme-ui-colors-deep:#0E2150;--theme-ui-colors-deep1:#A0ADE7;--theme-ui-colors-lightGreen:#EBF8F1;--theme-ui-colors-lightOrange:#FDF4EC;--theme-ui-colors-darkOrange:#C17C10;--theme-ui-colors-error:#E55737;--theme-ui-colors-success:#3AB97A;--theme-ui-colors-headSection:#fff;--theme-ui-colors-warning:#E67E22;--theme-ui-colors-warning02:#ED811C;--theme-ui-colors-sidebar:#F1F1F4;--theme-ui-colors-link:#6E56CF;--theme-ui-colors-choggleBox:#5163BA;--theme-ui-colors-darkBorder:#DCDBDD;--theme-ui-colors-code-border:#DFE1E5;--theme-ui-colors-code-blue:#3B41BD;--theme-ui-colors-code-gray:#667587;--theme-ui-colors-code-orange:#EA6D46;--theme-ui-colors-code-green:#3AB97A;}html.theme-ui-dark,.theme-ui-dark html{--theme-ui-colors-text:#fff;--theme-ui-colors-textClear:#6E707B;--theme-ui-colors-hoverBackground:#202020;--theme-ui-colors-grey02:#E6E6EA;--theme-ui-colors-background:#202022;--theme-ui-colors-backgroundClear:#28282C;--theme-ui-colors-primary:#4E54D7;--theme-ui-colors-secondary:#28282C;--theme-ui-colors-icons:#5D5D71;--theme-ui-colors-gray:#1D1D1F;--theme-ui-colors-borders:#3A3A46;--theme-ui-colors-deep:#28282C;--theme-ui-colors-headSection:#28282C;--theme-ui-colors-warning:#E67E22;--theme-ui-colors-sidebar:#28282C;--theme-ui-colors-code-border:#5D5D6F;--theme-ui-colors-code-blue:#3B41BD;--theme-ui-colors-code-gray:#667587;--theme-ui-colors-code-orange:#EA6D46;--theme-ui-colors-code-green:#3AB97A;--theme-ui-colors-link:#A9A9C6;--theme-ui-colors-choggleBox:#fff;}</style><style data-emotion="css-global h19pgh">*{box-sizing:border-box;}html{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",sans-serif;line-height:1.5;font-weight:400;}body{margin:0;}</style><style data-emotion="css yvak7d">.css-yvak7d{box-sizing:border-box;margin:0;min-width:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;height:calc(100vh - 57px);width:100vw;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}</style><div class="css-yvak7d"><style data-emotion="css uqm8ih">.css-uqm8ih{box-sizing:border-box;margin:0;min-width:0;color:var(--theme-ui-colors-primary);overflow:visible;}</style><svg stroke-width="4" viewBox="0 0 32 32" width="48" height="48" fill="none" stroke="currentColor" role="img" id="spinner" class="css-uqm8ih"><title>Loading</title><circle stroke-width="4" r="12" cx="16" cy="16" fill="none" opacity="0.125"></circle><circle stroke-width="4" r="12" cx="16" cy="16" fill="none" stroke-dasharray="20 110"><animateTransform attributeName="transform" attributeType="XML" type="rotate" from="0 16 16" to="360 16 16" dur="750ms" repeatCount="indefinite"></animateTransform></circle></svg></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":404}},"page":"/_error","query":{},"buildId":"4sLbpIu3gX8jUmr0j0Shc","runtimeConfig":{"sentryEnvironment":"alpha"},"nextExport":true,"isFallback":false,"gip":true,"appGip":true,"scriptLoader":[]}</script></body></html>
@@ -0,0 +1 @@
1
+ self.__BUILD_MANIFEST=function(s,c,e,a,t,i,b,n,f,u){return{__rewrites:{beforeFiles:[],afterFiles:[],fallback:[]},"/":[c,i,b,"static/chunks/pages/index-5266b7f0ca55025a.js"],"/_error":["static/chunks/pages/_error-69b4f498bafdd188.js"],"/changelog":["static/chunks/870-0c7a8a9622de78b7.js","static/chunks/pages/changelog-75b0bf58d1f3045d.js"],"/changes":[e,"static/chunks/8eec4907-b712959d9f984b68.js","static/chunks/918-38d08f1e885b222d.js",s,a,"static/css/f585032018f6024b.css","static/chunks/pages/changes-9dcb1cdaa8b10560.js"],"/custom-types":[c,i,b,"static/chunks/pages/custom-types-2f5664d9492b13fb.js"],"/custom-types/[customTypeId]":[n,s,c,t,f,u,"static/chunks/pages/custom-types/[customTypeId]-aa37e07c96c8f9b5.js"],"/labs":["static/chunks/pages/labs-2349c21fbac1bd23.js"],"/page-types/[pageTypeId]":[n,s,c,t,f,u,"static/chunks/pages/page-types/[pageTypeId]-d445f5cabeb460c0.js"],"/slices":[e,s,a,"static/css/22d69420bda374a7.css","static/chunks/pages/slices-247c480530e98426.js"],"/slices/[lib]/[sliceName]/[variation]":[e,s,a,t,"static/css/e4f4acc81f000d9c.css","static/chunks/pages/slices/[lib]/[sliceName]/[variation]-c9b5ff7076d2b19b.js"],"/slices/[lib]/[sliceName]/[variation]/simulator":[e,"static/chunks/72585f70-28b4d7d5384b3703.js","static/chunks/18539003-1bb05c8aa7db2bc2.js","static/chunks/585-f3dca093db4b3792.js","static/chunks/pages/slices/[lib]/[sliceName]/[variation]/simulator-5e441f8b049cf91b.js"],sortedPages:["/","/_app","/_error","/changelog","/changes","/custom-types","/custom-types/[customTypeId]","/labs","/page-types/[pageTypeId]","/slices","/slices/[lib]/[sliceName]/[variation]","/slices/[lib]/[sliceName]/[variation]/simulator"]}}("static/chunks/958-2b881a5b68ff11ba.js","static/chunks/550-1dafbcec5d50b384.js","static/chunks/c8eae200-966ce352f7b5d2b9.js","static/chunks/80-c513d12da6156fb7.js","static/chunks/482-e6bbd1fcdcdf79ad.js","static/chunks/840-c317c8ff8de0f202.js","static/css/26b51745402a92af.css","static/chunks/125-e3857af2068bbedf.js","static/chunks/904-d5dfccdb4d9ab010.js","static/css/1fbd45881dcf43c4.css"),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();