pagepilot-visual-editor 1.0.42 → 1.0.43

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 (33) hide show
  1. package/dist/babel-BQODqR2n.js +7218 -0
  2. package/dist/babel-DWji6wpD.cjs +16 -0
  3. package/dist/editor-sample/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/VariableLinkHint.d.ts +7 -0
  4. package/dist/editor-sample/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/sanitizeAgainstSchema.d.ts +5 -3
  5. package/dist/editor-sample/App/InspectorDrawer/VariablesPanel/variableEditActions.d.ts +2 -0
  6. package/dist/editor-sample/App/TemplatePanel/hooks/index.d.ts +1 -0
  7. package/dist/editor-sample/App/TemplatePanel/hooks/useClearHoverOnCanvasScroll.d.ts +1 -0
  8. package/dist/editor-sample/App/TemplatePanel/hooks/useDragSelection.d.ts +1 -2
  9. package/dist/editor-sample/App/hooks/page/useSaveHandler.d.ts +2 -1
  10. package/dist/editor-sample/documents/blocks/helpers/EditorChildrenIds/AddBlockMenu/DividerButton.styles.d.ts +4 -0
  11. package/dist/editor-sample/documents/blocks/helpers/block-wrappers/EditorBlockWrapper.styles.d.ts +2 -0
  12. package/dist/editor-sample/documents/blocks/helpers/block-wrappers/TuneMenu.d.ts +4 -2
  13. package/dist/editor-sample/documents/blocks/helpers/block-wrappers/TuneMenu.styles.d.ts +1 -5
  14. package/dist/editor-sample/documents/editor/canvasScrollActivity.d.ts +5 -0
  15. package/dist/editor-sample/documents/editor/core.d.ts +199 -0
  16. package/dist/editor-sample/documents/editor/templateVariables.d.ts +6 -0
  17. package/dist/editor-sample/utils/rafThrottle.d.ts +4 -0
  18. package/dist/email-builder-core/blocks/EmailLayout/layoutType.d.ts +5 -0
  19. package/dist/estree-D0rbR2Tn.js +4824 -0
  20. package/dist/estree-DyF2pmOB.cjs +44 -0
  21. package/dist/{index-Dmila_IT.js → index-BUtnK58L.js} +1 -1
  22. package/dist/index-C-4OVLjk.cjs +1493 -0
  23. package/dist/{index-BAVxWIT3.cjs → index-DEnWBBqj.cjs} +1 -1
  24. package/dist/index-DvEcR48I.js +106322 -0
  25. package/dist/index.cjs +1 -1
  26. package/dist/index.js +1 -1
  27. package/dist/render.cjs +70 -70
  28. package/dist/render.js +2035 -2029
  29. package/dist/{xlsx-tAaq6OQa.cjs → xlsx-BsoVkcdE.cjs} +1 -1
  30. package/dist/{xlsx-CCp8zxUI.js → xlsx-D_Hwvvx2.js} +1 -1
  31. package/package.json +1 -1
  32. package/dist/index-D-9KGyY6.cjs +0 -1557
  33. package/dist/index-s2hs3IAv.js +0 -166284
@@ -28,6 +28,13 @@ export declare function VariableBoundClickArea({ bound, value, fieldId, children
28
28
  export declare function VariableLinkIcon({ value }: {
29
29
  value: string;
30
30
  }): import("react/jsx-runtime").JSX.Element;
31
+ /**
32
+ * Label badge shown when the selected block's `prop` had its variable replaced
33
+ * by a literal value. Clicking it offers restoring the original token.
34
+ */
35
+ export declare function TokenOverrideBadge({ prop }: {
36
+ prop: string;
37
+ }): import("react/jsx-runtime").JSX.Element;
31
38
  /**
32
39
  * Text hint shown under a locked, variable-bound input — jumps to the variable.
33
40
  * Pass `fieldId` when the variable is known directly (e.g. a repeatable block's
@@ -4,8 +4,10 @@ import { z } from 'zod';
4
4
  * `safeParse`. That means a single stale/invalid field anywhere in the object
5
5
  * fails validation for the entire object, silently dropping whatever field the
6
6
  * user just touched along with it. This walks a failed `z.object()` (recursing
7
- * into nested `z.object()` shapes, e.g. `props`/`style`) and drops only the
8
- * keys that individually fail their own schema, so a legitimate edit isn't
9
- * blocked by an unrelated poisoned field elsewhere on the same block.
7
+ * into nested `z.object()` shapes, e.g. `props`/`style`, including ones wrapped
8
+ * in optional/nullable) and drops only the keys that individually fail their
9
+ * own schema, so a legitimate edit isn't blocked by an unrelated poisoned field
10
+ * elsewhere on the same block.
10
11
  */
11
12
  export declare function sanitizeAgainstSchema<T extends z.ZodTypeAny>(schema: T, value: unknown): unknown;
13
+ export declare function safeParseSanitized<T extends z.ZodTypeAny>(schema: T, value: unknown): ReturnType<T['safeParse']>;
@@ -26,6 +26,8 @@ export declare const getValueVariableTargets: (value: string, blockId: string |
26
26
  * against each other within the dialog.
27
27
  */
28
28
  export declare function validateVariableIds(targets: VariableEditTarget[], nextIds: string[]): (VariableIdError | null)[];
29
+ /** Puts a block prop's token back, restoring its variable if it was unlinked. */
30
+ export declare function revertTokenOverride(blockId: string, prop: string): void;
29
31
  /** Renames every changed key, as ONE undo step. */
30
32
  export declare function renameVariables(targets: VariableEditTarget[], nextIds: string[]): void;
31
33
  /** Turns every target back into plain text, as ONE undo step. */
@@ -1,3 +1,4 @@
1
1
  export { useDragSelection } from './useDragSelection';
2
2
  export { usePanelPositioning } from './usePanelPositioning';
3
3
  export { useMainBoxStyles } from './useMainBoxStyles';
4
+ export { useClearHoverOnCanvasScroll } from './useClearHoverOnCanvasScroll';
@@ -0,0 +1 @@
1
+ export declare function useClearHoverOnCanvasScroll(): void;
@@ -4,7 +4,6 @@ interface UseDragSelectionProps {
4
4
  pageHtml?: string | null;
5
5
  activeStepIndex?: number;
6
6
  panelRef: React.RefObject<HTMLDivElement>;
7
- document: any;
8
7
  setDocument: (doc: any) => void;
9
8
  setPanelPosition: (position: {
10
9
  top: string;
@@ -12,7 +11,7 @@ interface UseDragSelectionProps {
12
11
  }) => void;
13
12
  setSelectionBox: (box: SelectionBox | null) => void;
14
13
  }
15
- export declare const useDragSelection: ({ backgroundImage, pageHtml, activeStepIndex, panelRef, document, setDocument, setPanelPosition, setSelectionBox, }: UseDragSelectionProps) => {
14
+ export declare const useDragSelection: ({ backgroundImage, pageHtml, activeStepIndex, panelRef, setDocument, setPanelPosition, setSelectionBox, }: UseDragSelectionProps) => {
16
15
  isDragging: boolean;
17
16
  handleMouseDown: (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;
18
17
  handleMouseMove: (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;
@@ -1,3 +1,4 @@
1
+ import { useDocumentPruned } from '../../../../render-core/stubs/editorContext.tsx';
1
2
  type UseSaveHandlerReturn = {
2
3
  onShowHtml: (type: 'live' | 'draft' | null, options?: {
3
4
  injectTabsScrollSyncScript?: boolean;
@@ -20,5 +21,5 @@ type RecordType = {
20
21
  }>;
21
22
  [key: string]: any;
22
23
  };
23
- declare const useSaveHandler: (record?: RecordType, activeSectionIndex?: number) => UseSaveHandlerReturn;
24
+ declare const useSaveHandler: (record?: RecordType, activeSectionIndex?: number, documentOverride?: ReturnType<typeof useDocumentPruned> | null) => UseSaveHandlerReturn;
24
25
  export default useSaveHandler;
@@ -0,0 +1,4 @@
1
+ import { SxProps, Theme } from '@mui/material';
2
+ export declare const DIVIDER_BUTTON_TOP_OFFSET = 12;
3
+ export declare const pageTourDividerButtonSx: (theme: Theme) => SxProps<Theme>;
4
+ export declare const dividerButtonSx: (theme: Theme) => SxProps<Theme>;
@@ -0,0 +1,2 @@
1
+ import { SxProps, Theme } from '@mui/material';
2
+ export declare const blockWrapperSx: (theme: Theme) => SxProps<Theme>;
@@ -1,5 +1,7 @@
1
+ import { default as React } from 'react';
1
2
  type Props = {
2
3
  blockId: string;
3
4
  };
4
- export default function TuneMenu({ blockId }: Props): import("react/jsx-runtime").JSX.Element;
5
- export {};
5
+ declare function TuneMenu({ blockId }: Props): import("react/jsx-runtime").JSX.Element;
6
+ declare const _default: React.MemoExoticComponent<typeof TuneMenu>;
7
+ export default _default;
@@ -2,11 +2,7 @@ import { SxProps, Theme } from '@mui/material';
2
2
  export declare const TUNE_MENU_HEIGHT = 44;
3
3
  export declare const TUNE_MENU_Z_INDEX = 1200;
4
4
  export declare const pillSx: (theme: Theme) => SxProps<Theme>;
5
- export declare const pillPositionedSx: (theme: Theme, position: {
6
- top: number;
7
- left: number;
8
- }) => SxProps<Theme>;
9
- export declare const pillHiddenSx: (theme: Theme) => SxProps<Theme>;
5
+ export declare const pillPositionedSx: (theme: Theme) => SxProps<Theme>;
10
6
  export declare const iconButtonSx: (theme: Theme) => SxProps<Theme>;
11
7
  export declare const dangerIconButtonSx: (theme: Theme) => SxProps<Theme>;
12
8
  export declare const dividerSx: (theme: Theme) => SxProps<Theme>;
@@ -0,0 +1,5 @@
1
+ export declare const CANVAS_SCROLLING_ATTR = "data-canvas-scrolling";
2
+ type Listener = (scrolling: boolean) => void;
3
+ export declare function isCanvasScrolling(): boolean;
4
+ export declare function subscribeCanvasScroll(fn: Listener): () => void;
5
+ export {};
@@ -2153,6 +2153,205 @@ export declare const EditorBlock: ({ type, data }: import('@usewaypoint/document
2153
2153
  "bottom-center": "bottom-center";
2154
2154
  }>>>;
2155
2155
  }, z.core.$strip>;
2156
+ PagePilotLayout: z.ZodObject<{
2157
+ lang: z.ZodNullable<z.ZodOptional<z.ZodString>>;
2158
+ skipLink: z.ZodNullable<z.ZodOptional<z.ZodObject<{
2159
+ enabled: z.ZodNullable<z.ZodOptional<z.ZodBoolean>>;
2160
+ text: z.ZodNullable<z.ZodOptional<z.ZodString>>;
2161
+ backgroundColor: z.ZodNullable<z.ZodOptional<z.ZodString>>;
2162
+ textColor: z.ZodNullable<z.ZodOptional<z.ZodString>>;
2163
+ borderRadius: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
2164
+ paddingX: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
2165
+ paddingY: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
2166
+ marginX: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
2167
+ marginY: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
2168
+ position: z.ZodNullable<z.ZodOptional<z.ZodEnum<{
2169
+ "top-left": "top-left";
2170
+ "top-center": "top-center";
2171
+ "top-right": "top-right";
2172
+ }>>>;
2173
+ displayMode: z.ZodNullable<z.ZodOptional<z.ZodEnum<{
2174
+ "focus-only": "focus-only";
2175
+ "always-visible": "always-visible";
2176
+ }>>>;
2177
+ }, z.core.$strip>>>;
2178
+ accessibilityTools: z.ZodNullable<z.ZodOptional<z.ZodObject<{
2179
+ enabled: z.ZodNullable<z.ZodOptional<z.ZodBoolean>>;
2180
+ position: z.ZodNullable<z.ZodOptional<z.ZodEnum<{
2181
+ "top-left": "top-left";
2182
+ "top-right": "top-right";
2183
+ "bottom-right": "bottom-right";
2184
+ "bottom-left": "bottom-left";
2185
+ }>>>;
2186
+ features: z.ZodNullable<z.ZodOptional<z.ZodObject<{
2187
+ contrast: z.ZodNullable<z.ZodOptional<z.ZodBoolean>>;
2188
+ invert: z.ZodNullable<z.ZodOptional<z.ZodBoolean>>;
2189
+ saturation: z.ZodNullable<z.ZodOptional<z.ZodBoolean>>;
2190
+ highlightLinks: z.ZodNullable<z.ZodOptional<z.ZodBoolean>>;
2191
+ textSize: z.ZodNullable<z.ZodOptional<z.ZodBoolean>>;
2192
+ textSpacing: z.ZodNullable<z.ZodOptional<z.ZodBoolean>>;
2193
+ lineHeight: z.ZodNullable<z.ZodOptional<z.ZodBoolean>>;
2194
+ hideImages: z.ZodNullable<z.ZodOptional<z.ZodBoolean>>;
2195
+ bigCursor: z.ZodNullable<z.ZodOptional<z.ZodBoolean>>;
2196
+ reset: z.ZodNullable<z.ZodOptional<z.ZodBoolean>>;
2197
+ }, z.core.$strip>>>;
2198
+ }, z.core.$strip>>>;
2199
+ formFields: z.ZodNullable<z.ZodOptional<z.ZodArray<z.ZodObject<{
2200
+ id: z.ZodString;
2201
+ name: z.ZodString;
2202
+ type: z.ZodDefault<z.ZodOptional<z.ZodString>>;
2203
+ value: z.ZodOptional<z.ZodString>;
2204
+ }, z.core.$strip>>>>;
2205
+ maxWidth: z.ZodDefault<z.ZodString>;
2206
+ maxHeight: z.ZodDefault<z.ZodString>;
2207
+ backdropColor: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodString, z.ZodString, z.ZodString, z.ZodLiteral<"transparent">]>>>>;
2208
+ borderColor: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodString, z.ZodString, z.ZodString, z.ZodLiteral<"transparent">]>>>>;
2209
+ borderRadius: z.ZodNullable<z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
2210
+ topLeft: z.ZodNumber;
2211
+ topRight: z.ZodNumber;
2212
+ bottomRight: z.ZodNumber;
2213
+ bottomLeft: z.ZodNumber;
2214
+ }, z.core.$strip>]>>>;
2215
+ padding: z.ZodNullable<z.ZodOptional<z.ZodObject<{
2216
+ top: z.ZodNumber;
2217
+ bottom: z.ZodNumber;
2218
+ right: z.ZodNumber;
2219
+ left: z.ZodNumber;
2220
+ }, z.core.$strip>>>;
2221
+ margin: z.ZodNullable<z.ZodOptional<z.ZodObject<{
2222
+ top: z.ZodNumber;
2223
+ bottom: z.ZodNumber;
2224
+ right: z.ZodNumber;
2225
+ left: z.ZodNumber;
2226
+ }, z.core.$strip>>>;
2227
+ maxWidthTablet: z.ZodNullable<z.ZodOptional<z.ZodString>>;
2228
+ maxWidthMobile: z.ZodNullable<z.ZodOptional<z.ZodString>>;
2229
+ maxHeightTablet: z.ZodNullable<z.ZodOptional<z.ZodString>>;
2230
+ maxHeightMobile: z.ZodNullable<z.ZodOptional<z.ZodString>>;
2231
+ paddingTablet: z.ZodNullable<z.ZodOptional<z.ZodObject<{
2232
+ top: z.ZodNumber;
2233
+ bottom: z.ZodNumber;
2234
+ right: z.ZodNumber;
2235
+ left: z.ZodNumber;
2236
+ }, z.core.$strip>>>;
2237
+ paddingMobile: z.ZodNullable<z.ZodOptional<z.ZodObject<{
2238
+ top: z.ZodNumber;
2239
+ bottom: z.ZodNumber;
2240
+ right: z.ZodNumber;
2241
+ left: z.ZodNumber;
2242
+ }, z.core.$strip>>>;
2243
+ marginTablet: z.ZodNullable<z.ZodOptional<z.ZodObject<{
2244
+ top: z.ZodNumber;
2245
+ bottom: z.ZodNumber;
2246
+ right: z.ZodNumber;
2247
+ left: z.ZodNumber;
2248
+ }, z.core.$strip>>>;
2249
+ marginMobile: z.ZodNullable<z.ZodOptional<z.ZodObject<{
2250
+ top: z.ZodNumber;
2251
+ bottom: z.ZodNumber;
2252
+ right: z.ZodNumber;
2253
+ left: z.ZodNumber;
2254
+ }, z.core.$strip>>>;
2255
+ canvasColor: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodString, z.ZodString, z.ZodString, z.ZodLiteral<"transparent">]>>>>;
2256
+ textColor: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodString, z.ZodString, z.ZodString, z.ZodLiteral<"transparent">]>>>;
2257
+ hostTheme: z.ZodNullable<z.ZodOptional<z.ZodEnum<{
2258
+ light: "light";
2259
+ follow: "follow";
2260
+ }>>>;
2261
+ fontFamily: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
2262
+ MODERN_SANS: "MODERN_SANS";
2263
+ BOOK_SANS: "BOOK_SANS";
2264
+ ORGANIC_SANS: "ORGANIC_SANS";
2265
+ GEOMETRIC_SANS: "GEOMETRIC_SANS";
2266
+ HEAVY_SANS: "HEAVY_SANS";
2267
+ ROUNDED_SANS: "ROUNDED_SANS";
2268
+ MODERN_SERIF: "MODERN_SERIF";
2269
+ BOOK_SERIF: "BOOK_SERIF";
2270
+ MONOSPACE: "MONOSPACE";
2271
+ ROBOTO: "ROBOTO";
2272
+ OPEN_SANS: "OPEN_SANS";
2273
+ LATO: "LATO";
2274
+ POPPINS: "POPPINS";
2275
+ INTER: "INTER";
2276
+ MONTSERRAT: "MONTSERRAT";
2277
+ RALEWAY: "RALEWAY";
2278
+ NUNITO: "NUNITO";
2279
+ PLAYFAIR_DISPLAY: "PLAYFAIR_DISPLAY";
2280
+ MERRIWEATHER: "MERRIWEATHER";
2281
+ PT_SANS: "PT_SANS";
2282
+ OSWALD: "OSWALD";
2283
+ SOURCE_SANS_PRO: "SOURCE_SANS_PRO";
2284
+ RUBIK: "RUBIK";
2285
+ WORK_SANS: "WORK_SANS";
2286
+ NOTO_SANS: "NOTO_SANS";
2287
+ DANCING_SCRIPT: "DANCING_SCRIPT";
2288
+ PACIFICO: "PACIFICO";
2289
+ LOBSTER: "LOBSTER";
2290
+ BEBAS_NEUE: "BEBAS_NEUE";
2291
+ }>>>;
2292
+ childrenIds: z.ZodNullable<z.ZodOptional<z.ZodArray<z.ZodString>>>;
2293
+ top: z.ZodNullable<z.ZodDefault<z.ZodString>>;
2294
+ left: z.ZodNullable<z.ZodDefault<z.ZodString>>;
2295
+ borderWidth: z.ZodNullable<z.ZodOptional<z.ZodObject<{
2296
+ top: z.ZodNumber;
2297
+ bottom: z.ZodNumber;
2298
+ right: z.ZodNumber;
2299
+ left: z.ZodNumber;
2300
+ }, z.core.$strip>>>;
2301
+ boxShadow: z.ZodNullable<z.ZodOptional<z.ZodObject<{
2302
+ color: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodString, z.ZodString, z.ZodString, z.ZodLiteral<"transparent">]>>>>;
2303
+ offsetX: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
2304
+ offsetY: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
2305
+ blur: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
2306
+ spread: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
2307
+ inset: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
2308
+ }, z.core.$strip>>>;
2309
+ backgroundImage: z.ZodNullable<z.ZodDefault<z.ZodString>>;
2310
+ backgroundSize: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2311
+ backgroundRepeat: z.ZodNullable<z.ZodOptional<z.ZodEnum<{
2312
+ repeat: "repeat";
2313
+ "no-repeat": "no-repeat";
2314
+ }>>>;
2315
+ canvasWidth: z.ZodNullable<z.ZodDefault<z.ZodString>>;
2316
+ canvasHeight: z.ZodNullable<z.ZodDefault<z.ZodString>>;
2317
+ highlightStyle: z.ZodNullable<z.ZodOptional<z.ZodObject<{
2318
+ color: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodString, z.ZodString, z.ZodString, z.ZodLiteral<"transparent">]>>>>;
2319
+ opacity: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodNumber>>>;
2320
+ borderColor: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodString, z.ZodString, z.ZodString, z.ZodLiteral<"transparent">]>>>>;
2321
+ borderWidth: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodNumber>>>;
2322
+ borderRadius: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodNumber>>>;
2323
+ }, z.core.$strip>>>;
2324
+ behaviour: z.ZodNullable<z.ZodOptional<z.ZodObject<{
2325
+ position: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
2326
+ top: "top";
2327
+ bottom: "bottom";
2328
+ right: "right";
2329
+ left: "left";
2330
+ center: "center";
2331
+ "top-left": "top-left";
2332
+ "top-right": "top-right";
2333
+ "bottom-right": "bottom-right";
2334
+ "bottom-left": "bottom-left";
2335
+ }>>>;
2336
+ isCaret: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2337
+ selector: z.ZodDefault<z.ZodOptional<z.ZodString>>;
2338
+ }, z.core.$loose>>>;
2339
+ linkHref: z.ZodDefault<z.ZodOptional<z.ZodString>>;
2340
+ showCtaBtn: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2341
+ ctaButtonBgColor: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodString, z.ZodString, z.ZodString, z.ZodLiteral<"transparent">]>>>>;
2342
+ ctaButtonText: z.ZodDefault<z.ZodOptional<z.ZodString>>;
2343
+ ctaButtonTextColor: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodString, z.ZodString, z.ZodString, z.ZodLiteral<"transparent">]>>>>;
2344
+ ctaNavigationLink: z.ZodDefault<z.ZodOptional<z.ZodString>>;
2345
+ ctaButtonPosition: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
2346
+ center: "center";
2347
+ "top-left": "top-left";
2348
+ "top-center": "top-center";
2349
+ "top-right": "top-right";
2350
+ "bottom-right": "bottom-right";
2351
+ "bottom-left": "bottom-left";
2352
+ "bottom-center": "bottom-center";
2353
+ }>>>;
2354
+ }, z.core.$strip>;
2156
2355
  Spacer: any;
2157
2356
  SkipLink: z.ZodObject<{
2158
2357
  style: z.ZodNullable<z.ZodOptional<z.ZodObject<{
@@ -213,6 +213,12 @@ export declare function resolveEditableTokenField(rawText: string, blockId: stri
213
213
  export declare function dropStaleMenuRepeatFields(document: TEditorConfiguration | null | undefined, fields: TemplateFormField[]): TemplateFormField[];
214
214
  export declare function pruneOrphanFormFields(document: TEditorConfiguration | null | undefined, fields: TemplateFormField[] | null | undefined): TemplateFormField[];
215
215
  export declare function getTextFieldsForType(type: string | undefined): string[] | undefined;
216
+ /**
217
+ * Remember the `{{token}}` a block prop held when an edit replaces it with a
218
+ * literal value, under `data.tokenOverrides[prop]`, so the sidebar can flag the
219
+ * override and revert it. Binding the prop to a token again clears the entry.
220
+ */
221
+ export declare function trackTokenOverrides(type: string, prevData: any, nextData: any): any;
216
222
  export declare function getTemplateForms(document: TEditorConfiguration | null | undefined): TemplateFormField[];
217
223
  export declare function applyVariables(input: string | null | undefined, fields: TemplateFormField[] | null | undefined, rowContext?: TemplateArrayRow | null): string;
218
224
  /**
@@ -0,0 +1,4 @@
1
+ export type RafThrottled = (() => void) & {
2
+ cancel: () => void;
3
+ };
4
+ export declare function rafThrottle(fn: () => void): RafThrottled;
@@ -0,0 +1,5 @@
1
+ export declare const PAGE_PILOT_LAYOUT_TYPE: "PagePilotLayout";
2
+ export declare const LEGACY_LAYOUT_TYPE: "EmailLayout";
3
+ export declare const LAYOUT_BLOCK_TYPES: ReadonlySet<string>;
4
+ export declare function isLayoutType(type: unknown): boolean;
5
+ export declare function normalizeLayoutType<T>(doc: T): T;