slice-machine-ui 1.18.1-dev-next-release.3 → 1.18.1-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 (210) hide show
  1. package/components/Button/index.tsx +2 -2
  2. package/components/Changelog/index.tsx +1 -1
  3. package/components/Changelog/versionDetails/UpdateCommandBox.tsx +1 -1
  4. package/components/ChangesItems/ChangesItems.tsx +2 -2
  5. package/components/CustomTypeTable/changesPage.tsx +1 -1
  6. package/components/DeleteDocumentsDrawer/HardDeleteDocumentsDrawer.tsx +3 -3
  7. package/components/DeleteDocumentsDrawer/ReferencesErrorDrawer.tsx +3 -3
  8. package/components/DeleteDocumentsDrawer/SoftDeleteDocumentsDrawer.tsx +3 -3
  9. package/components/DeleteSliceModal/index.tsx +1 -1
  10. package/components/FormFields/CheckboxControl.jsx +1 -1
  11. package/components/Forms/CreateCustomTypeModal/CreateCustomTypeModal.tsx +5 -5
  12. package/components/Forms/CreateSliceModal/CreateSliceModal.tsx +1 -1
  13. package/components/Forms/RenameSliceModal/RenameSliceModal.tsx +1 -1
  14. package/components/Forms/formsValidator.ts +2 -2
  15. package/components/Grid/index.tsx +1 -1
  16. package/components/Li/index.tsx +2 -2
  17. package/components/ListItem/index.tsx +2 -2
  18. package/components/ListItem/utils.js +1 -1
  19. package/components/LoginModal/index.tsx +2 -2
  20. package/components/ModalFormCard/index.tsx +2 -2
  21. package/components/Navigation/VideoItem.tsx +2 -2
  22. package/components/Navigation/index.test.tsx +8 -8
  23. package/components/Navigation/index.tsx +2 -2
  24. package/components/ReviewModal/ReviewForm.tsx +1 -1
  25. package/components/ReviewModal/ReviewModal.tsx +4 -4
  26. package/components/ScreenshotChangesModal/VariationDropZone.tsx +6 -6
  27. package/components/ScreenshotChangesModal/index.tsx +3 -3
  28. package/components/ScreenshotPreviewModal/index.tsx +2 -2
  29. package/components/Simulator/components/Header/index.tsx +1 -1
  30. package/components/Simulator/components/IframeRenderer/index.tsx +2 -2
  31. package/components/Simulator/components/SetupModal/index.tsx +1 -1
  32. package/components/Simulator/components/Toolbar/index.tsx +2 -2
  33. package/components/Simulator/index.tsx +5 -5
  34. package/components/Tooltip/TextWithTooltip.tsx +1 -1
  35. package/lib/builders/CustomTypeBuilder/SliceZone/List.tsx +2 -2
  36. package/lib/builders/CustomTypeBuilder/SliceZone/SlicesTemplatesModal.tsx +4 -4
  37. package/lib/builders/CustomTypeBuilder/SliceZone/UpdateSliceZoneModal.tsx +1 -1
  38. package/lib/builders/CustomTypeBuilder/SliceZone/index.tsx +12 -12
  39. package/lib/builders/CustomTypeBuilder/TabZone/index.tsx +1 -1
  40. package/lib/builders/CustomTypeBuilder/index.tsx +1 -1
  41. package/lib/builders/SliceBuilder/FieldZones/index.tsx +4 -4
  42. package/lib/builders/SliceBuilder/Header/SimulatorButton/index.tsx +1 -1
  43. package/lib/builders/SliceBuilder/Header/VariationsPopover/index.tsx +1 -1
  44. package/lib/builders/SliceBuilder/Header/index.tsx +2 -2
  45. package/lib/builders/SliceBuilder/index.tsx +2 -2
  46. package/lib/builders/common/EditModal/Form.jsx +1 -1
  47. package/lib/builders/common/EditModal/index.jsx +3 -3
  48. package/lib/builders/common/Zone/Card/components/NewField.tsx +7 -7
  49. package/lib/builders/common/Zone/index.jsx +2 -2
  50. package/lib/builders/utils/index.ts +1 -1
  51. package/lib/forms/defaults.ts +3 -3
  52. package/lib/forms/fields.ts +3 -3
  53. package/lib/forms/index.ts +3 -3
  54. package/lib/models/common/ComponentUI.ts +3 -3
  55. package/lib/models/common/CustomType/group.ts +2 -2
  56. package/lib/models/common/CustomType/index.ts +4 -4
  57. package/lib/models/common/CustomType/tab.ts +7 -7
  58. package/lib/models/common/ErrorWithStatus.ts +4 -1
  59. package/lib/models/common/Fields.ts +1 -1
  60. package/lib/models/common/Group.ts +5 -5
  61. package/lib/models/common/Library.ts +1 -1
  62. package/lib/models/common/Manifest.ts +4 -4
  63. package/lib/models/common/ModelData.ts +6 -6
  64. package/lib/models/common/ModelStatus/compareCustomTypeModels.ts +1 -1
  65. package/lib/models/common/ModelStatus/compareSliceModels.ts +4 -4
  66. package/lib/models/common/ModelStatus/index.ts +5 -5
  67. package/lib/models/common/Screenshots.ts +1 -1
  68. package/lib/models/common/Slice.ts +7 -7
  69. package/lib/models/common/Slices.ts +5 -5
  70. package/lib/models/common/UserProfile.ts +1 -1
  71. package/lib/models/common/Variation.ts +6 -6
  72. package/lib/models/common/normalizers/customType.ts +3 -3
  73. package/lib/models/common/normalizers/slices.ts +2 -2
  74. package/lib/models/common/widgets/Boolean/index.ts +2 -2
  75. package/lib/models/common/widgets/ContentRelationship/Form.tsx +2 -2
  76. package/lib/models/common/widgets/ContentRelationship/index.ts +2 -2
  77. package/lib/models/common/widgets/Group/ListItem/index.jsx +3 -3
  78. package/lib/models/common/widgets/Image/Form.tsx +3 -3
  79. package/lib/models/common/widgets/StructuredText/Form.tsx +2 -2
  80. package/lib/models/common/widgets/StructuredText/index.ts +2 -2
  81. package/lib/utils/index.ts +1 -1
  82. package/lib/utils/poll.ts +3 -3
  83. package/lib/utils/shared/customTypes.ts +1 -1
  84. package/next.config.mjs +3 -3
  85. package/out/404.html +1 -1
  86. package/out/_next/static/{cjz0yUXdEAw1xeqGTjS8s → HGF5llOreY_Hv9IuGfW25}/_buildManifest.js +1 -1
  87. package/out/_next/static/chunks/125-e3857af2068bbedf.js +11 -0
  88. package/out/_next/static/chunks/pages/{_app-24537d01d860293a.js → _app-925e9450acf20963.js} +12 -12
  89. package/out/changelog.html +1 -1
  90. package/out/changes.html +1 -1
  91. package/out/custom-types/[customTypeId].html +1 -1
  92. package/out/custom-types.html +1 -1
  93. package/out/index.html +1 -1
  94. package/out/labs.html +1 -1
  95. package/out/page-types/[pageTypeId].html +1 -1
  96. package/out/slices/[lib]/[sliceName]/[variation]/screenshot.html +1 -1
  97. package/out/slices/[lib]/[sliceName]/[variation]/simulator.html +1 -1
  98. package/out/slices/[lib]/[sliceName]/[variation].html +1 -1
  99. package/out/slices.html +1 -1
  100. package/package.json +5 -5
  101. package/pages/_app.tsx +1 -1
  102. package/pages/api/embed.js +1 -1
  103. package/pages/slices.tsx +4 -4
  104. package/src/apiClient.ts +11 -11
  105. package/src/components/BaseHoverCard/BaseHoverCard.test.tsx +1 -1
  106. package/src/components/HoverCard/HoverCard.tsx +1 -1
  107. package/src/components/SideNav/SideNav.tsx +2 -2
  108. package/src/components/Table/Table.test.tsx +1 -1
  109. package/src/components/TextLink/TextLink.tsx +1 -1
  110. package/src/domain/__tests__/CustomTypeModel.test.ts +19 -19
  111. package/src/domain/customType.ts +10 -10
  112. package/src/domain/slice.ts +5 -5
  113. package/src/features/changes/StatusBadge.tsx +1 -1
  114. package/src/features/customTypes/EditDropdown.tsx +1 -1
  115. package/src/features/customTypes/PageTypeOnboarding.tsx +2 -2
  116. package/src/features/customTypes/__tests__/CustomTypeBuilderPage.test.tsx +7 -7
  117. package/src/features/customTypes/__tests__/CustomTypesTablePage.test.tsx +24 -22
  118. package/src/features/customTypes/actions/convertCustomToPageType.ts +3 -3
  119. package/src/features/customTypes/actions/deleteCustomType.ts +1 -1
  120. package/src/features/customTypes/actions/renameCustomType.ts +1 -1
  121. package/src/features/customTypes/customTypesBuilder/CustomTypesBuilderPage.tsx +3 -3
  122. package/src/features/customTypes/customTypesConfig.ts +3 -3
  123. package/src/features/customTypes/customTypesTable/CustomTypesTable.tsx +2 -2
  124. package/src/features/customTypes/customTypesTable/CustomTypesTablePage.tsx +3 -3
  125. package/src/features/customTypes/customTypesTable/createCustomType.ts +2 -2
  126. package/src/features/customTypes/customTypesTable/useCustomTypes.ts +7 -7
  127. package/src/features/labs/labsList/LabsList.tsx +3 -3
  128. package/src/features/labs/labsList/useLab.tsx +1 -1
  129. package/src/features/slices/actions/addSlicesToSliceZone.ts +1 -1
  130. package/src/features/slices/convertLegacySlice/ConvertLegacySliceAsNewSliceDialog.tsx +2 -2
  131. package/src/features/slices/convertLegacySlice/ConvertLegacySliceAsNewVariationDialog.tsx +5 -5
  132. package/src/features/slices/convertLegacySlice/ConvertLegacySliceButton.tsx +11 -11
  133. package/src/features/slicesTemplates/useSlicesTemplates.ts +1 -1
  134. package/src/hooks/useCurrentSlice.tsx +2 -2
  135. package/src/hooks/useElementSize.ts +1 -1
  136. package/src/hooks/useModelStatus.ts +13 -10
  137. package/src/hooks/useRouteChange.tsx +1 -1
  138. package/src/hooks/useSMTracker.ts +2 -2
  139. package/src/hooks/useSliceMachineConfig.ts +1 -1
  140. package/src/hooks/useThrottle.ts +10 -7
  141. package/src/hooks/useUnSyncChanges.ts +5 -5
  142. package/src/hooks/useWindowDimensions.ts +1 -1
  143. package/src/modules/availableCustomTypes/index.ts +19 -19
  144. package/src/modules/environment/index.ts +6 -6
  145. package/src/modules/loading/index.ts +3 -3
  146. package/src/modules/modal/index.ts +2 -2
  147. package/src/modules/pushChangesSaga/index.ts +7 -7
  148. package/src/modules/pushChangesSaga/trackPushChangesSuccess.ts +3 -3
  149. package/src/modules/screenshots/actions.ts +2 -2
  150. package/src/modules/screenshots/sagas.ts +9 -9
  151. package/src/modules/selectedCustomType/actions.ts +10 -10
  152. package/src/modules/selectedCustomType/reducer.ts +26 -26
  153. package/src/modules/selectedCustomType/sagas.ts +5 -5
  154. package/src/modules/selectedCustomType/selectors.ts +4 -4
  155. package/src/modules/selectedCustomType/stateHelpers.ts +1 -1
  156. package/src/modules/selectedSlice/actions.ts +4 -4
  157. package/src/modules/selectedSlice/reducer.ts +7 -7
  158. package/src/modules/selectedSlice/sagas.ts +4 -4
  159. package/src/modules/selectedSlice/selectors.ts +5 -5
  160. package/src/modules/simulator/index.ts +20 -17
  161. package/src/modules/slices/index.ts +18 -18
  162. package/src/modules/toaster/index.tsx +3 -3
  163. package/src/modules/toaster/utils.tsx +1 -1
  164. package/src/modules/useSliceMachineActions.ts +43 -41
  165. package/src/modules/userContext/index.ts +9 -9
  166. package/src/redux/store.ts +2 -2
  167. package/src/theme.ts +1 -1
  168. package/src/utils/editor.ts +1 -1
  169. package/src/utils/fieldNameCreator.ts +2 -2
  170. package/test/__setup__.ts +18 -7
  171. package/test/__testutils__/createPrismicAuthLoginResponse.ts +1 -1
  172. package/test/__testutils__/createTestPlugin.ts +1 -1
  173. package/test/__testutils__/createTestProject.ts +3 -3
  174. package/test/__testutils__/index.tsx +1 -1
  175. package/test/__testutils__/mockAWSACLAPI.ts +9 -9
  176. package/test/__testutils__/mockCustomTypesAPI.ts +16 -16
  177. package/test/__testutils__/mockPrismicAuthAPI.ts +3 -3
  178. package/test/__testutils__/mockPrismicUserAPI.ts +4 -4
  179. package/test/__testutils__/readMSWFormData.ts +3 -3
  180. package/test/components/CreateCustomTypeModal.test.tsx +1 -1
  181. package/test/components/LoginModal.test.tsx +2 -2
  182. package/test/lib/builders/EditModal.test.tsx +5 -5
  183. package/test/lib/builders/buildersUtils.test.ts +13 -13
  184. package/test/lib/models/common/CustomType/sliceZone.test.ts +2 -2
  185. package/test/lib/models/common/ModelStatus.test.ts +1 -1
  186. package/test/lib/models/common/widgets/index.test.ts +6 -6
  187. package/test/lib/utils/shared/customTypes.test.ts +1 -1
  188. package/test/pages/custom-types.test.tsx +7 -7
  189. package/test/pages/simulator.test.tsx +5 -5
  190. package/test/pages/slices.test.tsx +4 -4
  191. package/test/src/hooks/useModelStatus.test.ts +2 -3
  192. package/test/src/modules/__fixtures__/sliceUtilsFactory.ts +2 -2
  193. package/test/src/modules/availableCustomTypes/index.test.ts +20 -18
  194. package/test/src/modules/environment.test.ts +2 -2
  195. package/test/src/modules/loading.test.ts +1 -1
  196. package/test/src/modules/modal.test.ts +1 -1
  197. package/test/src/modules/pushChangesSaga.test.ts +10 -10
  198. package/test/src/modules/screenshots/sagas.test.ts +5 -5
  199. package/test/src/modules/selectedCustomType/reducer.test.ts +25 -25
  200. package/test/src/modules/selectedCustomType/sagas.test.ts +3 -3
  201. package/test/src/modules/selectedSlice/__testutils__/getRefreshStateCreatorPayloadData.ts +1 -1
  202. package/test/src/modules/selectedSlice/reducer.test.ts +12 -12
  203. package/test/src/modules/selectedSlice/sagas.test.ts +6 -6
  204. package/test/src/modules/simulator.test.ts +10 -10
  205. package/test/src/modules/slices.test.ts +5 -5
  206. package/test/src/modules/toaster/utils.test.ts +3 -3
  207. package/test/src/normalizers/customType.test.ts +5 -5
  208. package/test/src/utils/fieldNameCreator.test.ts +1 -1
  209. package/out/_next/static/chunks/125-84464edfe25651eb.js +0 -19
  210. /package/out/_next/static/{cjz0yUXdEAw1xeqGTjS8s → HGF5llOreY_Hv9IuGfW25}/_ssgManifest.js +0 -0
@@ -7,7 +7,7 @@ export const LibraryMeta = {
7
7
  t.partial({
8
8
  name: t.string,
9
9
  version: t.string,
10
- })
10
+ }),
11
11
  ),
12
12
  };
13
13
 
@@ -13,7 +13,7 @@ const apiEndpoint = new t.Type<string>(
13
13
  return t.failure(
14
14
  input,
15
15
  context,
16
- "could not parse apiEndpoint: invalid url."
16
+ "could not parse apiEndpoint: invalid url.",
17
17
  );
18
18
  }
19
19
 
@@ -23,13 +23,13 @@ const apiEndpoint = new t.Type<string>(
23
23
  return t.failure(
24
24
  input,
25
25
  context,
26
- 'apiEndpoint should end with "/api/v2".'
26
+ 'apiEndpoint should end with "/api/v2".',
27
27
  );
28
28
  }
29
29
 
30
30
  const regx = new RegExp(
31
31
  "^https?://[a-z0-9][a-z0-9-]{2,}[a-z0-9](.cdn)?.(prismic.io|wroom.io|wroom.test|wroom-qa.com)/api/v2/?$",
32
- "gi"
32
+ "gi",
33
33
  );
34
34
  const result = regx.test(input);
35
35
 
@@ -37,7 +37,7 @@ const apiEndpoint = new t.Type<string>(
37
37
  ? t.success(input)
38
38
  : t.failure(input, context, `apiEndpoint should match ${regx.source}`);
39
39
  },
40
- t.identity
40
+ t.identity,
41
41
  );
42
42
 
43
43
  export const Manifest = t.intersection([
@@ -13,31 +13,31 @@ type LocalOnly<L = unknown> = { local: L };
13
13
  type RemoteOnly<R = unknown> = { remote: R };
14
14
 
15
15
  export function hasLocalAndRemote<T extends LocalOrRemote>(
16
- obj: T
16
+ obj: T,
17
17
  ): obj is T extends LocalAndRemote ? T : never {
18
18
  return "local" in obj && "remote" in obj;
19
19
  }
20
20
 
21
21
  export function hasLocal<T extends LocalOrRemote>(
22
- obj: T
22
+ obj: T,
23
23
  ): obj is T extends LocalAndRemote | LocalOnly ? T : never {
24
24
  return "local" in obj;
25
25
  }
26
26
 
27
27
  export function hasRemote<T extends LocalOrRemote>(
28
- obj: T
28
+ obj: T,
29
29
  ): obj is T extends LocalAndRemote | RemoteOnly ? T : never {
30
30
  return "remote" in obj;
31
31
  }
32
32
 
33
33
  export function isRemoteOnly<T extends LocalOrRemote>(
34
- obj: T
34
+ obj: T,
35
35
  ): obj is T extends RemoteOnly ? T : never {
36
36
  return hasRemote(obj) && !hasLocal(obj);
37
37
  }
38
38
 
39
39
  export function isLocalOnly<T extends LocalOrRemote>(
40
- obj: T
40
+ obj: T,
41
41
  ): obj is T extends LocalOnly ? T : never {
42
42
  return !hasRemote(obj) && hasLocal(obj);
43
43
  }
@@ -70,7 +70,7 @@ export type RemoteOnlySlice = RemoteOnly<SliceSM> & {
70
70
  export type LocalOrRemoteModel = LocalOrRemoteCustomType | LocalOrRemoteSlice;
71
71
 
72
72
  export function getModelId<M extends CustomTypeSM | SliceSM>(
73
- model: LocalOrRemote<M>
73
+ model: LocalOrRemote<M>,
74
74
  ): M["id"] {
75
75
  return hasLocal(model) ? model.local.id : model.remote.id;
76
76
  }
@@ -3,7 +3,7 @@ import { ModelStatus } from ".";
3
3
  import { LocalAndRemoteCustomType } from "../ModelData";
4
4
 
5
5
  export function compareCustomTypeLocalToRemote(
6
- model: LocalAndRemoteCustomType
6
+ model: LocalAndRemoteCustomType,
7
7
  ): ModelStatus.Modified | ModelStatus.Synced {
8
8
  // If Custom Types are not equals then it was modified locally
9
9
  if (!equal(model.local, model.remote)) return ModelStatus.Modified;
@@ -5,17 +5,17 @@ import { ModelStatus } from ".";
5
5
  import { LocalAndRemoteSlice } from "../ModelData";
6
6
 
7
7
  export function compareSliceLocalToRemote(
8
- model: LocalAndRemoteSlice
8
+ model: LocalAndRemoteSlice,
9
9
  ): ModelStatus.Modified | ModelStatus.Synced {
10
10
  const areScreenshotsEqual = compareScreenshots(
11
11
  model.remote,
12
- model.localScreenshots
12
+ model.localScreenshots,
13
13
  );
14
14
  if (!areScreenshotsEqual) return ModelStatus.Modified;
15
15
 
16
16
  const areModelsEquals = equal(
17
17
  stripImageUrl(model.local),
18
- stripImageUrl(model.remote)
18
+ stripImageUrl(model.remote),
19
19
  );
20
20
  if (!areModelsEquals) return ModelStatus.Modified;
21
21
 
@@ -29,7 +29,7 @@ const stripImageUrl = (slice: SliceSM) => ({
29
29
 
30
30
  export function compareScreenshots(
31
31
  remoteModel: SliceSM,
32
- localScreenshots: Partial<Record<string, Screenshot>>
32
+ localScreenshots: Partial<Record<string, Screenshot>>,
33
33
  ) {
34
34
  return remoteModel.variations.every((variation) => {
35
35
  const localScreenshotHash = localScreenshots[variation.id]?.hash;
@@ -36,14 +36,14 @@ export type ChangedCustomType = {
36
36
  };
37
37
 
38
38
  const isSliceModel = (
39
- model: LocalAndRemoteSlice | LocalAndRemoteCustomType
39
+ model: LocalAndRemoteSlice | LocalAndRemoteCustomType,
40
40
  ): model is LocalAndRemoteSlice => {
41
41
  return "variations" in model.local && "variations" in model.remote;
42
42
  };
43
43
 
44
44
  export function computeModelStatus(
45
45
  model: LocalOrRemoteSlice,
46
- userHasAccessToPrismic: boolean
46
+ userHasAccessToPrismic: boolean,
47
47
  ):
48
48
  | { status: ModelStatus.Unknown; model: LocalOrRemoteSlice }
49
49
  | { status: ModelStatus.Deleted; model: RemoteOnlySlice }
@@ -53,7 +53,7 @@ export function computeModelStatus(
53
53
 
54
54
  export function computeModelStatus(
55
55
  model: LocalOrRemoteCustomType,
56
- userHasAccessToPrismic: boolean
56
+ userHasAccessToPrismic: boolean,
57
57
  ):
58
58
  | { status: ModelStatus.Unknown; model: LocalOrRemoteCustomType }
59
59
  | { status: ModelStatus.Deleted; model: RemoteOnlyCustomType }
@@ -63,7 +63,7 @@ export function computeModelStatus(
63
63
 
64
64
  export function computeModelStatus(
65
65
  model: LocalOrRemoteModel,
66
- userHasAccessToPrismic: boolean
66
+ userHasAccessToPrismic: boolean,
67
67
  ):
68
68
  | {
69
69
  status: ModelStatus.Unknown;
@@ -85,7 +85,7 @@ export function computeModelStatus(
85
85
 
86
86
  export function computeModelStatus(
87
87
  model: LocalOrRemoteModel,
88
- userHasAccessToPrismic: boolean
88
+ userHasAccessToPrismic: boolean,
89
89
  ):
90
90
  | {
91
91
  status: ModelStatus.Unknown;
@@ -31,7 +31,7 @@ export type ScreenshotResponse =
31
31
  | ScreenshotSuccessResponse;
32
32
 
33
33
  export const isError = (
34
- response: ScreenshotResponse
34
+ response: ScreenshotResponse,
35
35
  ): response is ScreenshotErrorResponse => "err" in response;
36
36
 
37
37
  export type TmpFile = File & { path: string };
@@ -56,13 +56,13 @@ export const Variations = {
56
56
  ...variation,
57
57
  primary: variation.primary?.reduce(
58
58
  (acc, { key, value }) => ({ ...acc, [key]: value }),
59
- {}
59
+ {},
60
60
  ),
61
61
  items: variation.items?.reduce(
62
62
  (acc, { key, value }) => ({ ...acc, [key]: value }),
63
- {}
63
+ {},
64
64
  ),
65
- })
65
+ }),
66
66
  );
67
67
  },
68
68
 
@@ -81,14 +81,14 @@ export const Variations = {
81
81
  ([key, value]) => ({
82
82
  key,
83
83
  value,
84
- })
84
+ }),
85
85
  ),
86
86
  // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
87
87
  items: Object.entries(variation.items || {}).map(([key, value]) => ({
88
88
  key,
89
89
  value,
90
90
  })),
91
- })
91
+ }),
92
92
  );
93
93
  },
94
94
  };
@@ -101,7 +101,7 @@ export const Slices = {
101
101
  ...slice,
102
102
  // eslint-disable-next-line @typescript-eslint/unbound-method
103
103
  variations: slice.variations.map(Variations.fromSM),
104
- })
104
+ }),
105
105
  );
106
106
  },
107
107
 
@@ -113,7 +113,7 @@ export const Slices = {
113
113
  ...slice,
114
114
  // eslint-disable-next-line @typescript-eslint/unbound-method
115
115
  variations: slice.variations.map(Variations.toSM),
116
- })
116
+ }),
117
117
  );
118
118
  },
119
119
  };
@@ -13,7 +13,7 @@ export const SlicesSM = t.type({
13
13
  t.type({
14
14
  key: t.string,
15
15
  value: t.union([LegacySlice, CompositeSlice, SharedSliceRef]),
16
- })
16
+ }),
17
17
  ),
18
18
  });
19
19
  export type SlicesSM = t.TypeOf<typeof SlicesSM>;
@@ -29,10 +29,10 @@ export const SliceZone = {
29
29
  config: {
30
30
  choices: slices.value.reduce(
31
31
  (acc, { key, value }) => ({ ...acc, [key]: value }),
32
- {}
32
+ {},
33
33
  ),
34
34
  },
35
- })
35
+ }),
36
36
  );
37
37
  },
38
38
 
@@ -44,9 +44,9 @@ export const SliceZone = {
44
44
  key,
45
45
  // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
46
46
  value: Object.entries(slices.config?.choices || []).map(
47
- ([key, value]) => ({ key, value })
47
+ ([key, value]) => ({ key, value }),
48
48
  ),
49
- })
49
+ }),
50
50
  );
51
51
  },
52
52
  };
@@ -8,7 +8,7 @@ export const UserProfile = t.exact(
8
8
  email: t.string,
9
9
  firstName: t.string,
10
10
  lastName: t.string,
11
- })
11
+ }),
12
12
  );
13
13
 
14
14
  export type UserProfile = t.TypeOf<typeof UserProfile>;
@@ -13,7 +13,7 @@ export const Variation = {
13
13
  variation: VariationSM,
14
14
  widgetsArea: WidgetsArea,
15
15
  start: number,
16
- end: number
16
+ end: number,
17
17
  ): VariationSM {
18
18
  // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
19
19
  const widgets = variation[widgetsArea] || [];
@@ -23,7 +23,7 @@ export const Variation = {
23
23
  // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions
24
24
  if (!reorderedWidget)
25
25
  throw new Error(
26
- `Unable to reorder the widget at index ${start}. the list of widgets contains only ${widgets.length} elements.`
26
+ `Unable to reorder the widget at index ${start}. the list of widgets contains only ${widgets.length} elements.`,
27
27
  );
28
28
 
29
29
  const reorderedArea = widgets.reduce<FieldsSM>((acc, widget, index) => {
@@ -48,7 +48,7 @@ export const Variation = {
48
48
  widgetsArea: WidgetsArea,
49
49
  previousKey: string,
50
50
  newKey: string,
51
- newValue: NestableWidget
51
+ newValue: NestableWidget,
52
52
  ): VariationSM {
53
53
  // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
54
54
  const widgets = variation[widgetsArea] || [];
@@ -69,7 +69,7 @@ export const Variation = {
69
69
  variation: VariationSM,
70
70
  widgetsArea: WidgetsArea,
71
71
  key: string,
72
- value: NestableWidget
72
+ value: NestableWidget,
73
73
  ): VariationSM {
74
74
  return {
75
75
  ...variation,
@@ -80,12 +80,12 @@ export const Variation = {
80
80
  deleteWidget(
81
81
  variation: VariationSM,
82
82
  widgetsArea: WidgetsArea,
83
- widgetKey: string
83
+ widgetKey: string,
84
84
  ): VariationSM {
85
85
  return {
86
86
  ...variation,
87
87
  [widgetsArea]: variation[widgetsArea]?.filter(
88
- ({ key }) => widgetKey !== key
88
+ ({ key }) => widgetKey !== key,
89
89
  ),
90
90
  };
91
91
  },
@@ -3,7 +3,7 @@ import { CustomTypeSM } from "@lib/models/common/CustomType";
3
3
 
4
4
  export const normalizeFrontendCustomType = (
5
5
  localCustomType: CustomTypeSM,
6
- remoteCustomType?: CustomTypeSM
6
+ remoteCustomType?: CustomTypeSM,
7
7
  ) => {
8
8
  return remoteCustomType
9
9
  ? {
@@ -21,13 +21,13 @@ export const normalizeFrontendCustomType = (
21
21
 
22
22
  export const normalizeFrontendCustomTypes = (
23
23
  localCustomTypes: ReadonlyArray<CustomTypeSM>,
24
- remoteCustomTypes: ReadonlyArray<CustomTypeSM>
24
+ remoteCustomTypes: ReadonlyArray<CustomTypeSM>,
25
25
  ): Record<string, LocalOrRemoteCustomType> => {
26
26
  const customTypes: Record<string, LocalOrRemoteCustomType> = {};
27
27
 
28
28
  localCustomTypes.forEach((t) => (customTypes[t.id] = { local: t }));
29
29
  remoteCustomTypes.forEach(
30
- (t) => (customTypes[t.id] = { ...customTypes[t.id], remote: t })
30
+ (t) => (customTypes[t.id] = { ...customTypes[t.id], remote: t }),
31
31
  );
32
32
 
33
33
  return customTypes;
@@ -4,12 +4,12 @@ import { Library, Component } from "@lib/models/common/Library";
4
4
 
5
5
  export const normalizeFrontendSlices = (
6
6
  localLibraries: ReadonlyArray<Library<Component>>,
7
- remoteSlices: ReadonlyArray<SliceSM>
7
+ remoteSlices: ReadonlyArray<SliceSM>,
8
8
  ): LocalOrRemoteSlice[] => {
9
9
  const slices: Record<string, LocalOrRemoteSlice> = {};
10
10
 
11
11
  const localComponents = localLibraries.flatMap(
12
- (library) => library.components
12
+ (library) => library.components,
13
13
  );
14
14
 
15
15
  localComponents.forEach((component) => {
@@ -36,7 +36,7 @@ const FormFields = {
36
36
  { required: false },
37
37
  null,
38
38
  "false",
39
- "Value the content creator sees (Output as 'false' in the API)."
39
+ "Value the content creator sees (Output as 'false' in the API).",
40
40
  ),
41
41
  // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-call
42
42
  placeholder_true: Input(
@@ -44,7 +44,7 @@ const FormFields = {
44
44
  { required: false },
45
45
  null,
46
46
  "true",
47
- "Value the content creator sees (Output as 'true' in the API)"
47
+ "Value the content creator sees (Output as 'true' in the API)",
48
48
  ),
49
49
  default_value: CheckBox("Default to true"),
50
50
  };
@@ -43,7 +43,7 @@ const WidgetForm = ({
43
43
  const selectValues = formValues.config.customtypes
44
44
  ? formValues.config.customtypes.map((id) => {
45
45
  const ct = customTypes.find(
46
- (frontendCustomType) => frontendCustomType.local.id === id
46
+ (frontendCustomType) => frontendCustomType.local.id === id,
47
47
  );
48
48
  return { value: ct?.local.id, label: ct?.local.label };
49
49
  })
@@ -82,7 +82,7 @@ const WidgetForm = ({
82
82
  if (v) {
83
83
  void setFieldValue(
84
84
  "config.customtypes",
85
- v.map(({ value }) => value)
85
+ v.map(({ value }) => value),
86
86
  );
87
87
  }
88
88
  }}
@@ -76,8 +76,8 @@ export const ContentRelationshipWidget: Widget<Link, typeof schema> = {
76
76
  ...initialValues,
77
77
  customtypes: initialValues.customtypes.filter((ct) =>
78
78
  customTypes.find(
79
- (frontendCustomType) => frontendCustomType.local.id === ct
80
- )
79
+ (frontendCustomType) => frontendCustomType.local.id === ct,
80
+ ),
81
81
  ),
82
82
  };
83
83
  },
@@ -95,7 +95,7 @@ const CustomListItem = ({
95
95
  // eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access
96
96
  result.source.index,
97
97
  // eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access
98
- result.destination.index
98
+ result.destination.index,
99
99
  );
100
100
  };
101
101
 
@@ -151,7 +151,7 @@ const CustomListItem = ({
151
151
  Widgets,
152
152
  config,
153
153
  // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
154
- type
154
+ type,
155
155
  );
156
156
  if (!widget) {
157
157
  return null;
@@ -185,7 +185,7 @@ const CustomListItem = ({
185
185
  renderHintBase={({ item }) =>
186
186
  // eslint-disable-next-line @typescript-eslint/restrict-template-expressions, @typescript-eslint/no-unsafe-member-access
187
187
  `data.${groupItem.key}${transformKeyAccessor(
188
- item.key
188
+ item.key,
189
189
  )}`
190
190
  }
191
191
  Widgets={Widgets}
@@ -23,7 +23,7 @@ const nullableNumberSchema = () => {
23
23
  .nullable()
24
24
  .transform((value: string | number, originalValue: string | number) =>
25
25
  // When the user empties the field, it should convert it to null so that "auto" dimensions are set
26
- originalValue === "" ? null : value
26
+ originalValue === "" ? null : value,
27
27
  );
28
28
  };
29
29
 
@@ -56,7 +56,7 @@ const FormFields = {
56
56
  const hasWidthOrHeight = hasWidth || hasHeight;
57
57
  return value.name && hasWidthOrHeight;
58
58
  },
59
- })
59
+ }),
60
60
  ),
61
61
  },
62
62
  };
@@ -80,7 +80,7 @@ const thumbText = (
80
80
  width?: number | string;
81
81
  height?: number | string;
82
82
  } = {},
83
- allowAuto = false
83
+ allowAuto = false,
84
84
  ) => {
85
85
  // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions
86
86
  if (allowAuto && !width && !height) {
@@ -29,7 +29,7 @@ const _createInitialOptions = (str: string) => {
29
29
 
30
30
  function getValueFromYupContext(
31
31
  ctx: yup.TestContext<AnyObject>,
32
- key: string
32
+ key: string,
33
33
  ): string | null {
34
34
  if (
35
35
  has("parent", ctx) &&
@@ -193,7 +193,7 @@ const WidgetForm: React.FC<{
193
193
  // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions
194
194
  if (acceptOptions.find((e) => e === opt.value)) {
195
195
  return setAcceptOptions(
196
- acceptOptions.filter((e) => e !== opt.value)
196
+ acceptOptions.filter((e) => e !== opt.value),
197
197
  );
198
198
  }
199
199
  setAcceptOptions([...acceptOptions, opt.value]);
@@ -39,8 +39,8 @@ const schema = yup.object().shape({
39
39
  config: createValidationSchema(
40
40
  removeProp(
41
41
  { ...(FormFields as Record<string, unknown>), ...ManualFields },
42
- "id"
43
- )
42
+ "id",
43
+ ),
44
44
  ),
45
45
  });
46
46
 
@@ -26,7 +26,7 @@ export const ensureDnDDestination = (result: DropResult): boolean => {
26
26
  export const ensureWidgetTypeExistence = (
27
27
  // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-explicit-any
28
28
  Widgets: { [x: string]: Widget<any, any> },
29
- type: string
29
+ type: string,
30
30
  ) => {
31
31
  // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-explicit-any
32
32
  const widget: Widget<any, any> = Widgets[type];
package/lib/utils/poll.ts CHANGED
@@ -1,16 +1,16 @@
1
1
  export async function startPolling<
2
2
  Result,
3
- ValidatedResult extends Result = Result
3
+ ValidatedResult extends Result = Result,
4
4
  >(
5
5
  fn: () => Promise<Result>,
6
6
  validate: (result: Result) => result is ValidatedResult,
7
7
  interval: number,
8
- maxAttempts: number
8
+ maxAttempts: number,
9
9
  ): Promise<ValidatedResult> {
10
10
  let attempts = 0;
11
11
  const checkCondition = (
12
12
  resolve: (value: ValidatedResult | PromiseLike<ValidatedResult>) => void,
13
- reject: (reason?: Error) => void
13
+ reject: (reason?: Error) => void,
14
14
  ): void => {
15
15
  Promise.resolve(fn())
16
16
  .then((result) => {
@@ -2,7 +2,7 @@ import { CustomTypeSM } from "@lib/models/common/CustomType";
2
2
 
3
3
  export const filterSliceFromCustomType = <T extends CustomTypeSM | undefined>(
4
4
  ct: T,
5
- sliceId: string
5
+ sliceId: string,
6
6
  ): T => {
7
7
  if (ct === undefined) {
8
8
  return ct;
package/next.config.mjs CHANGED
@@ -9,7 +9,7 @@ const __dirname = path.dirname(url.fileURLToPath(import.meta.url));
9
9
 
10
10
  /** @type {{ version: string }} */
11
11
  const pkg = JSON.parse(
12
- fs.readFileSync(path.resolve(__dirname, "package.json"), "utf8")
12
+ fs.readFileSync(path.resolve(__dirname, "package.json"), "utf8"),
13
13
  );
14
14
 
15
15
  /** @type string */
@@ -31,7 +31,7 @@ if (process.env.NODE_ENV !== "development") {
31
31
  if (!process.env.SENTRY_AUTH_TOKEN) {
32
32
  console.warn("⚠️ Creating a production build with no Sentry config");
33
33
  console.warn(
34
- "⚠️ A release won't be created and the sourcemap won't be uploaded"
34
+ "⚠️ A release won't be created and the sourcemap won't be uploaded",
35
35
  );
36
36
  console.warn("⚠️ To fix this add SENTRY_AUTH_TOKEN to your environment");
37
37
  } else {
@@ -78,7 +78,7 @@ if (process.env.NODE_ENV !== "development") {
78
78
  widenClientFileUpload: true,
79
79
  },
80
80
  },
81
- sentryWebpackPluginOptions
81
+ sentryWebpackPluginOptions,
82
82
  );
83
83
  }
84
84
  }
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-24537d01d860293a.js" defer=""></script><script src="/_next/static/chunks/pages/_error-69b4f498bafdd188.js" defer=""></script><script src="/_next/static/cjz0yUXdEAw1xeqGTjS8s/_buildManifest.js" defer=""></script><script src="/_next/static/cjz0yUXdEAw1xeqGTjS8s/_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":"cjz0yUXdEAw1xeqGTjS8s","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-925e9450acf20963.js" defer=""></script><script src="/_next/static/chunks/pages/_error-69b4f498bafdd188.js" defer=""></script><script src="/_next/static/HGF5llOreY_Hv9IuGfW25/_buildManifest.js" defer=""></script><script src="/_next/static/HGF5llOreY_Hv9IuGfW25/_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":"HGF5llOreY_Hv9IuGfW25","runtimeConfig":{"sentryEnvironment":"alpha"},"nextExport":true,"isFallback":false,"gip":true,"appGip":true,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- self.__BUILD_MANIFEST=function(s,c,a,e,t,i,b,n,l,u,d,f){return{__rewrites:{beforeFiles:[],afterFiles:[],fallback:[]},"/":[s,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-11c9e241f5a8a4cb.js"],"/changes":[c,"static/chunks/8eec4907-b712959d9f984b68.js","static/chunks/918-38d08f1e885b222d.js",a,e,"static/css/f585032018f6024b.css","static/chunks/pages/changes-e58a6f4217ec2d9e.js"],"/custom-types":[s,i,b,"static/chunks/pages/custom-types-2f5664d9492b13fb.js"],"/custom-types/[customTypeId]":[n,s,a,t,l,u,"static/chunks/pages/custom-types/[customTypeId]-1b420cadc2703ffc.js"],"/labs":["static/chunks/pages/labs-395232bcec99d42a.js"],"/page-types/[pageTypeId]":[n,s,a,t,l,u,"static/chunks/pages/page-types/[pageTypeId]-926e762906e3ab7a.js"],"/slices":[c,a,e,"static/css/22d69420bda374a7.css","static/chunks/pages/slices-b686960d7d228e36.js"],"/slices/[lib]/[sliceName]/[variation]":[c,d,e,t,"static/css/a3838b28ab738f1e.css","static/chunks/pages/slices/[lib]/[sliceName]/[variation]-5b6c6912b66de61f.js"],"/slices/[lib]/[sliceName]/[variation]/screenshot":[f,"static/chunks/pages/slices/[lib]/[sliceName]/[variation]/screenshot-76d40513025fd76d.js"],"/slices/[lib]/[sliceName]/[variation]/simulator":[c,"static/chunks/72585f70-28b4d7d5384b3703.js","static/chunks/18539003-1bb05c8aa7db2bc2.js",f,d,"static/chunks/113-34b6cf41a62f08ce.js","static/chunks/pages/slices/[lib]/[sliceName]/[variation]/simulator-37ba73cd3c821e04.js"],sortedPages:["/","/_app","/_error","/changelog","/changes","/custom-types","/custom-types/[customTypeId]","/labs","/page-types/[pageTypeId]","/slices","/slices/[lib]/[sliceName]/[variation]","/slices/[lib]/[sliceName]/[variation]/screenshot","/slices/[lib]/[sliceName]/[variation]/simulator"]}}("static/chunks/550-1dafbcec5d50b384.js","static/chunks/c8eae200-966ce352f7b5d2b9.js","static/chunks/590-ab38d53732035bf0.js","static/chunks/573-8678a91b09707f5d.js","static/chunks/377-404ac40f863464df.js","static/chunks/840-39dbcc97d7813e7f.js","static/css/26b51745402a92af.css","static/chunks/125-84464edfe25651eb.js","static/chunks/933-a14914fafa262353.js","static/css/1fbd45881dcf43c4.css","static/chunks/909-e4eec905c21ad8ad.js","static/chunks/746-2ca4784811bde7c1.js"),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();
1
+ self.__BUILD_MANIFEST=function(s,c,e,a,t,i,b,n,l,u,f,h){return{__rewrites:{beforeFiles:[],afterFiles:[],fallback:[]},"/":[s,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-11c9e241f5a8a4cb.js"],"/changes":[c,"static/chunks/8eec4907-b712959d9f984b68.js","static/chunks/918-38d08f1e885b222d.js",e,a,"static/css/f585032018f6024b.css","static/chunks/pages/changes-e58a6f4217ec2d9e.js"],"/custom-types":[s,i,b,"static/chunks/pages/custom-types-2f5664d9492b13fb.js"],"/custom-types/[customTypeId]":[n,s,e,t,l,u,"static/chunks/pages/custom-types/[customTypeId]-1b420cadc2703ffc.js"],"/labs":["static/chunks/pages/labs-395232bcec99d42a.js"],"/page-types/[pageTypeId]":[n,s,e,t,l,u,"static/chunks/pages/page-types/[pageTypeId]-926e762906e3ab7a.js"],"/slices":[c,e,a,"static/css/22d69420bda374a7.css","static/chunks/pages/slices-b686960d7d228e36.js"],"/slices/[lib]/[sliceName]/[variation]":[c,f,a,t,"static/css/a3838b28ab738f1e.css","static/chunks/pages/slices/[lib]/[sliceName]/[variation]-5b6c6912b66de61f.js"],"/slices/[lib]/[sliceName]/[variation]/screenshot":[h,"static/chunks/pages/slices/[lib]/[sliceName]/[variation]/screenshot-76d40513025fd76d.js"],"/slices/[lib]/[sliceName]/[variation]/simulator":[c,"static/chunks/72585f70-28b4d7d5384b3703.js","static/chunks/18539003-1bb05c8aa7db2bc2.js",h,f,"static/chunks/113-34b6cf41a62f08ce.js","static/chunks/pages/slices/[lib]/[sliceName]/[variation]/simulator-37ba73cd3c821e04.js"],sortedPages:["/","/_app","/_error","/changelog","/changes","/custom-types","/custom-types/[customTypeId]","/labs","/page-types/[pageTypeId]","/slices","/slices/[lib]/[sliceName]/[variation]","/slices/[lib]/[sliceName]/[variation]/screenshot","/slices/[lib]/[sliceName]/[variation]/simulator"]}}("static/chunks/550-1dafbcec5d50b384.js","static/chunks/c8eae200-966ce352f7b5d2b9.js","static/chunks/590-ab38d53732035bf0.js","static/chunks/573-8678a91b09707f5d.js","static/chunks/377-404ac40f863464df.js","static/chunks/840-39dbcc97d7813e7f.js","static/css/26b51745402a92af.css","static/chunks/125-e3857af2068bbedf.js","static/chunks/933-a14914fafa262353.js","static/css/1fbd45881dcf43c4.css","static/chunks/909-e4eec905c21ad8ad.js","static/chunks/746-2ca4784811bde7c1.js"),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();