slice-machine-ui 1.23.2-beta.3 → 1.23.2-beta.5

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 (71) hide show
  1. package/components/DeleteSliceModal/index.tsx +34 -24
  2. package/components/Forms/CreateCustomTypeModal/CreateCustomTypeModal.tsx +61 -38
  3. package/components/Forms/RenameCustomTypeModal/RenameCustomTypeModal.tsx +2 -2
  4. package/components/Forms/RenameSliceModal/RenameSliceModal.tsx +33 -21
  5. package/components/Navigation/ChangesListItem.tsx +14 -32
  6. package/out/404.html +1 -1
  7. package/out/_next/static/W3x14bv5_NtxtSjAB0JUM/_buildManifest.js +1 -0
  8. package/out/_next/static/chunks/{183-aab7066c73ebde44.js → 183-4feb6bb3eddbc768.js} +1 -1
  9. package/out/_next/static/chunks/25-01f422cea8066349.js +1 -0
  10. package/out/_next/static/chunks/{318-2112803ca34b2f49.js → 318-34a2dea7cfd4661d.js} +1 -1
  11. package/out/_next/static/chunks/727-358d7fae68a880b3.js +1 -0
  12. package/out/_next/static/chunks/799-d95a93e965557aeb.js +1 -0
  13. package/out/_next/static/chunks/904-1ff7519adece2b55.js +1 -0
  14. package/out/_next/static/chunks/pages/{_app-9f3513533bb2dfb8.js → _app-a2fa2db79a1e9a1e.js} +37 -37
  15. package/out/_next/static/chunks/pages/{changes-2a976f9efeb719aa.js → changes-92c84f6cac0285fd.js} +1 -1
  16. package/out/_next/static/chunks/pages/custom-types/{[customTypeId]-3f862ad6111a1fc0.js → [customTypeId]-97ab3b90b85d645d.js} +1 -1
  17. package/out/_next/static/chunks/pages/{custom-types-94b8f8dbf7727412.js → custom-types-3c8e721ec6802127.js} +1 -1
  18. package/out/_next/static/chunks/pages/index-cf93d16e9c63b6db.js +1 -0
  19. package/out/_next/static/chunks/pages/page-types/{[pageTypeId]-d1ffca11c42f2603.js → [pageTypeId]-84a22c5e480d3fa9.js} +1 -1
  20. package/out/_next/static/chunks/pages/slices/[lib]/[sliceName]/[variation]/{simulator-897ca93c114a1435.js → simulator-52c3e1f9d14160b8.js} +1 -1
  21. package/out/_next/static/chunks/pages/slices/[lib]/[sliceName]/[variation]-608d206d10a719e3.js +1 -0
  22. package/out/_next/static/chunks/pages/slices-b0b58192a87df822.js +1 -0
  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/slices/[lib]/[sliceName]/[variation]/simulator.html +1 -1
  31. package/out/slices/[lib]/[sliceName]/[variation].html +1 -1
  32. package/out/slices.html +1 -1
  33. package/package.json +3 -3
  34. package/pages/slices.tsx +20 -8
  35. package/src/apiClient.ts +1 -22
  36. package/src/domain/__tests__/customType.test.ts +179 -0
  37. package/src/domain/customType.ts +110 -2
  38. package/src/domain/slice.ts +38 -0
  39. package/src/features/customTypes/PageTypeOnboarding.tsx +21 -26
  40. package/src/features/customTypes/actions/convertCustomToPageType.ts +14 -10
  41. package/src/features/customTypes/actions/createCustomType.ts +69 -0
  42. package/src/features/customTypes/actions/deleteCustomType.ts +13 -3
  43. package/src/features/customTypes/actions/renameCustomType.ts +10 -4
  44. package/src/features/customTypes/customTypesBuilder/CustomTypesBuilderPage.tsx +3 -1
  45. package/src/features/customTypes/customTypesTable/CustomTypesTable.tsx +8 -8
  46. package/src/features/customTypes/customTypesTable/CustomTypesTablePage.tsx +18 -17
  47. package/src/features/slices/actions/createSlice.ts +5 -29
  48. package/src/features/slices/actions/deleteSlice.ts +33 -0
  49. package/src/features/slices/actions/renameSlice.ts +37 -0
  50. package/src/modules/availableCustomTypes/index.ts +29 -135
  51. package/src/modules/loading/types.ts +0 -5
  52. package/src/modules/modal/types.ts +0 -3
  53. package/src/modules/slices/index.ts +27 -193
  54. package/src/modules/slices/selector.ts +0 -14
  55. package/src/modules/useSliceMachineActions.ts +70 -89
  56. package/src/modules/userContext/index.ts +3 -3
  57. package/src/redux/saga.ts +0 -4
  58. package/test/src/modules/availableCustomTypes/index.test.ts +2 -243
  59. package/test/src/modules/slices.test.ts +1 -267
  60. package/out/_next/static/RRBm5bm2F__Ws0vsvXhN6/_buildManifest.js +0 -1
  61. package/out/_next/static/chunks/25-37d6fa7f064be04b.js +0 -1
  62. package/out/_next/static/chunks/727-3a3bc32518778317.js +0 -1
  63. package/out/_next/static/chunks/731-501990ebe6a71b32.js +0 -1
  64. package/out/_next/static/chunks/904-9a4c1264727ae89a.js +0 -1
  65. package/out/_next/static/chunks/pages/index-64cfb8b0948ba8ef.js +0 -1
  66. package/out/_next/static/chunks/pages/slices/[lib]/[sliceName]/[variation]-b2a9d773ce5d7739.js +0 -1
  67. package/out/_next/static/chunks/pages/slices-e9c70c082ca3e3f9.js +0 -1
  68. package/src/features/customTypes/__tests__/createCustomType.test.ts +0 -159
  69. package/src/features/customTypes/customTypesTable/createCustomType.ts +0 -107
  70. package/test/components/CreateCustomTypeModal.test.tsx +0 -73
  71. /package/out/_next/static/{RRBm5bm2F__Ws0vsvXhN6 → W3x14bv5_NtxtSjAB0JUM}/_ssgManifest.js +0 -0
@@ -1,46 +1,54 @@
1
+ import { useState } from "react";
2
+ import { MdOutlineDelete } from "react-icons/md";
3
+ import { Close, Flex, Heading, Paragraph, Text, useThemeUI } from "theme-ui";
4
+
1
5
  import SliceMachineModal from "@components/SliceMachineModal";
2
- import { useSelector } from "react-redux";
3
- import { SliceMachineStoreType } from "@src/redux/type";
4
- import { isModalOpen } from "@src/modules/modal";
5
- import { ModalKeysEnum } from "@src/modules/modal/types";
6
6
  import useSliceMachineActions from "@src/modules/useSliceMachineActions";
7
- import { Close, Flex, Heading, Paragraph, Text, useThemeUI } from "theme-ui";
8
7
  import Card from "@components/Card";
9
- import { MdOutlineDelete } from "react-icons/md";
10
8
  import { Button } from "@components/Button";
11
- import { LoadingKeysEnum } from "@src/modules/loading/types";
12
- import { isLoading } from "@src/modules/loading";
9
+ import { deleteSlice } from "@src/features/slices/actions/deleteSlice";
13
10
 
14
11
  type DeleteSliceModalProps = {
12
+ isOpen: boolean;
13
+ libName: string;
15
14
  sliceId: string;
16
15
  sliceName: string;
17
- libName: string;
16
+ onClose: () => void;
18
17
  };
19
18
 
20
19
  export const DeleteSliceModal: React.FunctionComponent<
21
20
  DeleteSliceModalProps
22
- > = ({ sliceId, sliceName, libName }) => {
23
- const { isSliceModalOpen, isDeletingSlice } = useSelector(
24
- (store: SliceMachineStoreType) => ({
25
- isSliceModalOpen: isModalOpen(store, ModalKeysEnum.DELETE_SLICE),
26
- isDeletingSlice: isLoading(store, LoadingKeysEnum.DELETE_SLICE),
27
- }),
28
- );
21
+ > = ({ sliceId, sliceName, libName, isOpen, onClose }) => {
22
+ const [isDeleting, setIsDeleting] = useState(false);
23
+ const { deleteSliceSuccess } = useSliceMachineActions();
24
+ const { theme } = useThemeUI();
29
25
 
30
- const { closeModals, deleteSlice } = useSliceMachineActions();
26
+ const onDelete = async () => {
27
+ setIsDeleting(true);
31
28
 
32
- const { theme } = useThemeUI();
29
+ await deleteSlice({
30
+ sliceID: sliceId,
31
+ sliceName,
32
+ libraryID: libName,
33
+ onSuccess: () => {
34
+ deleteSliceSuccess(sliceId, libName);
35
+ },
36
+ });
37
+
38
+ onClose();
39
+ setIsDeleting(false);
40
+ };
33
41
 
34
42
  return (
35
43
  <SliceMachineModal
36
- isOpen={isSliceModalOpen}
44
+ isOpen={isOpen}
37
45
  shouldCloseOnOverlayClick={true}
38
46
  style={{
39
47
  content: {
40
48
  maxWidth: 612,
41
49
  },
42
50
  }}
43
- onRequestClose={closeModals}
51
+ onRequestClose={onClose}
44
52
  >
45
53
  <Card
46
54
  bodySx={{
@@ -79,7 +87,7 @@ export const DeleteSliceModal: React.FunctionComponent<
79
87
  Delete Slice
80
88
  </Heading>
81
89
  </Flex>
82
- <Close type="button" onClick={closeModals} />
90
+ <Close type="button" onClick={onClose} />
83
91
  </Flex>
84
92
  )}
85
93
  Footer={() => (
@@ -96,7 +104,7 @@ export const DeleteSliceModal: React.FunctionComponent<
96
104
  <Button
97
105
  label="Cancel"
98
106
  variant="secondary"
99
- onClick={() => closeModals()}
107
+ onClick={onClose}
100
108
  sx={{
101
109
  mr: "10px",
102
110
  fontWeight: "bold",
@@ -107,9 +115,11 @@ export const DeleteSliceModal: React.FunctionComponent<
107
115
  <Button
108
116
  label="Delete"
109
117
  variant="danger"
110
- isLoading={isDeletingSlice}
118
+ isLoading={isDeleting}
111
119
  sx={{ minHeight: 39, minWidth: 78 }}
112
- onClick={() => deleteSlice(sliceId, sliceName, libName)}
120
+ onClick={() => {
121
+ void onDelete();
122
+ }}
113
123
  />
114
124
  </Flex>
115
125
  )}
@@ -2,25 +2,28 @@ import { SetStateAction, useState } from "react";
2
2
  import { Box } from "theme-ui";
3
3
  import { FormikErrors } from "formik";
4
4
  import { useSelector } from "react-redux";
5
+ import { useRouter } from "next/router";
5
6
 
6
7
  import ModalFormCard from "@components/ModalFormCard";
7
- import { InputBox } from "../components/InputBox";
8
- import { SelectRepeatable } from "../components/SelectRepeatable";
9
8
  import useSliceMachineActions from "@src/modules/useSliceMachineActions";
10
9
  import { SliceMachineStoreType } from "@src/redux/type";
11
10
  import {
12
11
  selectAllCustomTypeIds,
13
12
  selectAllCustomTypeLabels,
14
13
  } from "@src/modules/availableCustomTypes";
15
- import { isModalOpen } from "@src/modules/modal";
16
- import { ModalKeysEnum } from "@src/modules/modal/types";
17
- import { isLoading } from "@src/modules/loading";
18
- import { LoadingKeysEnum } from "@src/modules/loading/types";
19
- import { telemetry } from "@src/apiClient";
20
14
  import { slugify } from "@lib/utils/str";
21
15
  import { API_ID_REGEX } from "@lib/consts";
22
16
  import type { CustomTypeFormat } from "@slicemachine/manager";
23
17
  import { CUSTOM_TYPES_MESSAGES } from "@src/features/customTypes/customTypesMessages";
18
+ import {
19
+ CustomTypeOrigin,
20
+ createCustomType,
21
+ } from "@src/features/customTypes/actions/createCustomType";
22
+ import { CUSTOM_TYPES_CONFIG } from "@src/features/customTypes/customTypesConfig";
23
+ import { getFormat } from "@src/domain/customType";
24
+
25
+ import { InputBox } from "../components/InputBox";
26
+ import { SelectRepeatable } from "../components/SelectRepeatable";
24
27
 
25
28
  interface FormValues {
26
29
  id: string;
@@ -30,46 +33,64 @@ interface FormValues {
30
33
 
31
34
  type CreateCustomTypeModalProps = {
32
35
  format: CustomTypeFormat;
33
- origin?: "onboarding" | "table";
36
+ isCreating: boolean;
37
+ isOpen: boolean;
38
+ origin?: CustomTypeOrigin;
39
+ onCreateChange: (isCreating: boolean) => void;
40
+ onOpenChange: (isOpen: boolean) => void;
34
41
  };
35
42
 
36
43
  export const CreateCustomTypeModal: React.FC<CreateCustomTypeModalProps> = ({
37
44
  format,
45
+ isCreating,
46
+ isOpen,
38
47
  origin = "table",
48
+ onCreateChange,
49
+ onOpenChange,
39
50
  }) => {
40
- const { createCustomType, closeModals } = useSliceMachineActions();
41
-
42
- const {
43
- customTypeIds,
44
- isCreateCustomTypeModalOpen,
45
- isCreatingCustomType,
46
- customTypeLabels,
47
- } = useSelector((store: SliceMachineStoreType) => ({
48
- customTypeIds: selectAllCustomTypeIds(store),
49
- customTypeLabels: selectAllCustomTypeLabels(store),
50
- isCreateCustomTypeModalOpen: isModalOpen(
51
- store,
52
- ModalKeysEnum.CREATE_CUSTOM_TYPE,
53
- ),
54
- isCreatingCustomType: isLoading(store, LoadingKeysEnum.CREATE_CUSTOM_TYPE),
55
- }));
51
+ const { createCustomTypeSuccess } = useSliceMachineActions();
52
+
53
+ const { customTypeIds, customTypeLabels } = useSelector(
54
+ (store: SliceMachineStoreType) => ({
55
+ customTypeIds: selectAllCustomTypeIds(store),
56
+ customTypeLabels: selectAllCustomTypeLabels(store),
57
+ }),
58
+ );
56
59
  const customTypesMessages = CUSTOM_TYPES_MESSAGES[format];
57
60
  const [isIdFieldPristine, setIsIdFieldPristine] = useState(true);
61
+ const router = useRouter();
58
62
 
59
- const createCustomTypeAndTrack = ({ id, label, repeatable }: FormValues) => {
60
- const name = label || id;
63
+ const onSubmit = async ({ id, label, repeatable }: FormValues) => {
64
+ onCreateChange(true);
61
65
 
62
- void telemetry.track({
63
- event: "custom-type:created",
64
- id,
65
- name,
66
+ await createCustomType({
66
67
  format,
67
- type: repeatable ? "repeatable" : "single",
68
+ id,
69
+ label,
68
70
  origin,
71
+ repeatable,
72
+ onSuccess: async (newCustomType) => {
73
+ createCustomTypeSuccess(newCustomType);
74
+
75
+ const format = getFormat(newCustomType);
76
+ const customTypesConfig = CUSTOM_TYPES_CONFIG[format];
77
+
78
+ setIsIdFieldPristine(true);
79
+
80
+ await router.push({
81
+ pathname: customTypesConfig.getBuilderPagePathname(id),
82
+ query:
83
+ newCustomType.format === "page"
84
+ ? {
85
+ newPageType: true,
86
+ }
87
+ : undefined,
88
+ });
89
+ },
69
90
  });
70
- createCustomType(id, name, repeatable, format);
71
- closeModals();
72
- setIsIdFieldPristine(true);
91
+
92
+ onCreateChange(false);
93
+ onOpenChange(false);
73
94
  };
74
95
 
75
96
  const handleLabelChange = (
@@ -106,16 +127,18 @@ export const CreateCustomTypeModal: React.FC<CreateCustomTypeModalProps> = ({
106
127
  return (
107
128
  <ModalFormCard
108
129
  dataCy="create-ct-modal"
109
- isOpen={isCreateCustomTypeModalOpen}
130
+ isOpen={isOpen}
110
131
  widthInPx="530px"
111
132
  formId="create-custom-type"
112
133
  buttonLabel={"Create"}
113
134
  close={() => {
114
- closeModals();
135
+ onOpenChange(false);
115
136
  setIsIdFieldPristine(true);
116
137
  }}
117
- onSubmit={createCustomTypeAndTrack}
118
- isLoading={isCreatingCustomType}
138
+ onSubmit={(values) => {
139
+ void onSubmit(values);
140
+ }}
141
+ isLoading={isCreating}
119
142
  initialValues={{
120
143
  repeatable: true,
121
144
  id: "",
@@ -31,7 +31,7 @@ export const RenameCustomTypeModal: React.FC<RenameCustomTypeModalProps> = ({
31
31
  }) => {
32
32
  const customTypeName = customType?.label ?? "";
33
33
  const customTypeId = customType?.id ?? "";
34
- const { renameAvailableCustomTypeSuccess } = useSliceMachineActions();
34
+ const { renameCustomTypeSuccess } = useSliceMachineActions();
35
35
 
36
36
  const [isRenaming, setIsRenaming] = useState(false);
37
37
 
@@ -46,7 +46,7 @@ export const RenameCustomTypeModal: React.FC<RenameCustomTypeModalProps> = ({
46
46
  await renameCustomType({
47
47
  model: customType,
48
48
  newLabel: values.customTypeName,
49
- onSuccess: renameAvailableCustomTypeSuccess,
49
+ onSuccess: renameCustomTypeSuccess,
50
50
  });
51
51
  }
52
52
  setIsRenaming(false);
@@ -1,50 +1,62 @@
1
1
  import { Box } from "theme-ui";
2
- import useSliceMachineActions from "@src/modules/useSliceMachineActions";
3
- import ModalFormCard from "../../ModalFormCard";
4
- import { InputBox } from "../components/InputBox";
5
2
  import { useSelector } from "react-redux";
3
+
4
+ import useSliceMachineActions from "@src/modules/useSliceMachineActions";
6
5
  import { SliceMachineStoreType } from "@src/redux/type";
7
- import { isModalOpen } from "@src/modules/modal";
8
- import { ModalKeysEnum } from "@src/modules/modal/types";
9
6
  import { getLibraries, getRemoteSlices } from "@src/modules/slices";
7
+ import { ComponentUI } from "@lib/models/common/ComponentUI";
8
+ import { renameSlice } from "@src/features/slices/actions/renameSlice";
9
+
10
+ import { InputBox } from "../components/InputBox";
11
+ import ModalFormCard from "../../ModalFormCard";
10
12
  import { SliceModalValues } from "../formsTypes";
11
13
  import { validateSliceModalValues } from "../formsValidator";
12
14
 
13
15
  interface RenameSliceModalProps {
14
- sliceName: string;
15
- sliceId: string;
16
- libName: string;
16
+ isOpen: boolean;
17
+ slice?: ComponentUI;
18
+ onClose: () => void;
17
19
  }
18
20
 
19
21
  export const RenameSliceModal: React.FC<RenameSliceModalProps> = ({
20
- sliceName,
21
- sliceId,
22
- libName,
22
+ slice,
23
+ isOpen,
24
+ onClose,
23
25
  }) => {
24
- const { renameSlice, closeModals } = useSliceMachineActions();
25
- const { isRenameSliceModalOpen, localLibs, remoteLibs } = useSelector(
26
+ const { renameSliceSuccess } = useSliceMachineActions();
27
+ const { localLibs, remoteLibs } = useSelector(
26
28
  (store: SliceMachineStoreType) => ({
27
- isRenameSliceModalOpen: isModalOpen(store, ModalKeysEnum.RENAME_SLICE),
28
29
  localLibs: getLibraries(store),
29
30
  remoteLibs: getRemoteSlices(store),
30
31
  }),
31
32
  );
33
+ const initialSliceName = slice?.model.name ?? "";
34
+
35
+ const handleOnSubmit = async (values: SliceModalValues) => {
36
+ if (slice) {
37
+ await renameSlice({
38
+ slice,
39
+ newSliceName: values.sliceName,
40
+ onSuccess: (renamedSlice) => {
41
+ renameSliceSuccess(renamedSlice.from, renamedSlice.model);
42
+ },
43
+ });
32
44
 
33
- const handleOnSubmit = (values: SliceModalValues) => {
34
- renameSlice(libName, sliceId, values.sliceName);
45
+ onClose();
46
+ }
35
47
  };
36
48
 
37
49
  return (
38
50
  <ModalFormCard<SliceModalValues>
39
51
  dataCy="rename-slice-modal"
40
- isOpen={isRenameSliceModalOpen}
52
+ isOpen={isOpen}
41
53
  widthInPx="530px"
42
- formId={`rename-slice-modal-${sliceId}`}
43
- close={closeModals}
54
+ formId={`rename-slice-modal-${slice?.model.id ?? ""}`}
55
+ close={onClose}
44
56
  buttonLabel="Rename"
45
- onSubmit={handleOnSubmit}
57
+ onSubmit={(values) => void handleOnSubmit(values)}
46
58
  initialValues={{
47
- sliceName: sliceName,
59
+ sliceName: initialSliceName,
48
60
  }}
49
61
  content={{
50
62
  title: "Rename a slice",
@@ -1,13 +1,9 @@
1
- import { type FC, useState } from "react";
1
+ import { type FC } from "react";
2
2
  import Link from "next/link";
3
3
  import { useRouter } from "next/router";
4
- import { SliceMachineStoreType } from "@src/redux/type";
5
- import { useSelector } from "react-redux";
6
4
 
7
5
  import { SideNavLink, SideNavListItem } from "@src/components/SideNav";
8
6
  import { RadarIcon } from "@src/icons/RadarIcon";
9
- import { isLoading } from "@src/modules/loading";
10
- import { LoadingKeysEnum } from "@src/modules/loading/types";
11
7
  import {
12
8
  HoverCard,
13
9
  HoverCardCloseButton,
@@ -15,11 +11,8 @@ import {
15
11
  HoverCardMedia,
16
12
  HoverCardTitle,
17
13
  } from "@src/components/HoverCard";
18
- import {
19
- userHasSeenChangesToolTip,
20
- userHasSeenSimulatorToolTip,
21
- } from "@src/modules/userContext";
22
14
  import useSliceMachineActions from "@src/modules/useSliceMachineActions";
15
+
23
16
  import { ChangesRightElement } from "./ChangesRightElement";
24
17
 
25
18
  export const ChangesListItem: FC = () => {
@@ -63,30 +56,19 @@ export const ChangesListItem: FC = () => {
63
56
  );
64
57
  };
65
58
 
59
+ // TODO(DT-1925): Reactivate this feature
66
60
  const useOpenChangesHoverCard = () => {
67
- const {
68
- hasSeenChangesToolTip,
69
- hasSeenSimulatorToolTip,
70
- isSavingCustomType,
71
- isSavingSlice,
72
- } = useSelector((store: SliceMachineStoreType) => ({
73
- hasSeenChangesToolTip: userHasSeenChangesToolTip(store),
74
- hasSeenSimulatorToolTip: userHasSeenSimulatorToolTip(store),
75
- isSavingCustomType: isLoading(store, LoadingKeysEnum.SAVE_CUSTOM_TYPE),
76
- isSavingSlice: isLoading(store, LoadingKeysEnum.SAVE_SLICE),
77
- }));
78
-
79
- const isSaving = isSavingCustomType || isSavingSlice;
80
- const [prevIsSaving, setPrevIsSaving] = useState(isSaving);
61
+ // const { hasSeenChangesToolTip, hasSeenSimulatorToolTip } = useSelector(
62
+ // (store: SliceMachineStoreType) => ({
63
+ // hasSeenChangesToolTip: userHasSeenChangesToolTip(store),
64
+ // hasSeenSimulatorToolTip: userHasSeenSimulatorToolTip(store),
65
+ // }),
66
+ // );
81
67
 
82
- if (!prevIsSaving && isSaving) {
83
- setPrevIsSaving(isSaving);
84
- }
68
+ // return (
69
+ // !hasSeenChangesToolTip &&
70
+ // hasSeenSimulatorToolTip
71
+ // );
85
72
 
86
- return (
87
- !hasSeenChangesToolTip &&
88
- hasSeenSimulatorToolTip &&
89
- !isSaving &&
90
- prevIsSaving
91
- );
73
+ return false;
92
74
  };
package/out/404.html CHANGED
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/_next/static/css/200244e3e0463c39.css" as="style"/><link rel="stylesheet" href="/_next/static/css/200244e3e0463c39.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-9f3513533bb2dfb8.js" defer=""></script><script src="/_next/static/chunks/pages/_error-69b4f498bafdd188.js" defer=""></script><script src="/_next/static/RRBm5bm2F__Ws0vsvXhN6/_buildManifest.js" defer=""></script><script src="/_next/static/RRBm5bm2F__Ws0vsvXhN6/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":404}},"page":"/_error","query":{},"buildId":"RRBm5bm2F__Ws0vsvXhN6","runtimeConfig":{"sentryEnvironment":"beta"},"nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/_next/static/css/200244e3e0463c39.css" as="style"/><link rel="stylesheet" href="/_next/static/css/200244e3e0463c39.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-a2fa2db79a1e9a1e.js" defer=""></script><script src="/_next/static/chunks/pages/_error-69b4f498bafdd188.js" defer=""></script><script src="/_next/static/W3x14bv5_NtxtSjAB0JUM/_buildManifest.js" defer=""></script><script src="/_next/static/W3x14bv5_NtxtSjAB0JUM/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":404}},"page":"/_error","query":{},"buildId":"W3x14bv5_NtxtSjAB0JUM","runtimeConfig":{"sentryEnvironment":"beta"},"nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
@@ -0,0 +1 @@
1
+ self.__BUILD_MANIFEST=function(s,c,a,e,t,i,b,f,n,u,d,h,l,k,j,p,g,o,r){return{__rewrites:{beforeFiles:[],afterFiles:[],fallback:[]},"/":[a,j,p,"static/chunks/pages/index-cf93d16e9c63b6db.js"],"/_error":["static/chunks/pages/_error-69b4f498bafdd188.js"],"/changelog":[s,e,"static/chunks/870-0c7a8a9622de78b7.js","static/chunks/pages/changelog-afd18276fe018b24.js"],"/changes":[s,t,"static/chunks/8eec4907-b712959d9f984b68.js",i,"static/chunks/918-5bb55fb464e34768.js",c,f,"static/css/37153180c3b0dd66.css","static/chunks/pages/changes-92c84f6cac0285fd.js"],"/custom-types":[a,j,p,"static/chunks/pages/custom-types-3c8e721ec6802127.js"],"/custom-types/[customTypeId]":[s,n,u,d,h,e,b,i,l,g,c,a,k,o,r,"static/chunks/pages/custom-types/[customTypeId]-97ab3b90b85d645d.js"],"/labs":["static/chunks/pages/labs-ee206005948f8e87.js"],"/page-types/[pageTypeId]":[s,n,u,d,h,e,b,i,l,g,c,a,k,o,r,"static/chunks/pages/page-types/[pageTypeId]-84a22c5e480d3fa9.js"],"/slices":[s,t,b,c,f,"static/css/f8eb526e10bc2441.css","static/chunks/pages/slices-b0b58192a87df822.js"],"/slices/[lib]/[sliceName]/[variation]":[s,t,n,u,d,h,e,b,i,l,c,k,f,"static/css/b22c0750c14cc089.css","static/chunks/pages/slices/[lib]/[sliceName]/[variation]-608d206d10a719e3.js"],"/slices/[lib]/[sliceName]/[variation]/simulator":[t,"static/chunks/72585f70-28b4d7d5384b3703.js","static/chunks/18539003-5cc559566b738915.js","static/chunks/376-7e784d6069e01654.js","static/chunks/pages/slices/[lib]/[sliceName]/[variation]/simulator-52c3e1f9d14160b8.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/59b4e022-7a3b5554b806349f.js","static/chunks/25-01f422cea8066349.js","static/chunks/799-d95a93e965557aeb.js","static/chunks/183-4feb6bb3eddbc768.js","static/chunks/c8eae200-966ce352f7b5d2b9.js","static/chunks/543-f8766685f7f451e2.js","static/chunks/50-cfc2514205b86001.js","static/chunks/286-ed90373e9a469944.js","static/chunks/f36c6662-03bb5e9d9aa0b0aa.js","static/chunks/4c744e84-e3161d754618373f.js","static/chunks/065a3ddb-9a38ca0d60f0bf2f.js","static/chunks/1cc2734a-2c5b6c0367fcde86.js","static/chunks/696-b12edad30a3617e5.js","static/chunks/318-34a2dea7cfd4661d.js","static/chunks/727-358d7fae68a880b3.js","static/css/be1f49e49a5aa7eb.css","static/chunks/474-5a072e6fac61f703.js","static/chunks/904-1ff7519adece2b55.js","static/css/72465cc1225f28a2.css"),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();