import type { useEmailDocumentStyles } from "../../hooks/useEmailDocumentStyles"; export type EmailDocumentStyles = ReturnType; interface EmailDocumentStyleFieldProps { documentStyles: EmailDocumentStyles; /** Slot for the host's own info icon, so studio can pass a Font Awesome one. */ renderInfoIcon?: () => React.ReactNode; } /** * Document-level body padding — the frame around the email content. * * Left/right becomes the body gutter and top/bottom the body spacers, matching * how the renderer expands the `padding` shorthand on the email channel node. * The inputs are seeded with the renderer's own default inset, so what they show * is what the email has; reset removes the property again. */ export declare const EmailFramePaddingFields: ({ documentStyles, renderInfoIcon, }: EmailDocumentStyleFieldProps) => import("react/jsx-runtime").JSX.Element | null; /** * Document-level base font size and line spacing, in px. * * The inputs are seeded with the renderer's base text metrics when the * properties are unset, the same way the Frame inputs are, so they show the * sizing the email actually has instead of sitting empty. Clearing a field still * means "unset" — it removes the property and the input falls back to showing * that default. The section's "Reset to default" link is what distinguishes * unset from explicitly set to the default value. * * The base size reaches the body tiers (text, quote, list, button label) while * headings keep their presets; the base line spacing reaches every tier. Any * block can override both. */ export declare const EmailBaseTypographyFields: ({ documentStyles, renderInfoIcon, }: EmailDocumentStyleFieldProps) => import("react/jsx-runtime").JSX.Element | null; /** * The document body frame applied to the editor canvas, so the editor shows the * same inset the sent email has. Wrap the content editor (not the brand * header/footer, which the renderer pads separately). * * The frame owns the *whole* vertical inset, which is why it zeroes the * `.ProseMirror` vertical padding underneath it. That global padding predates * document-level padding and stood in for an inset the author could not set; * leaving it would add a constant 40px to whatever the author chooses, so a * Frame of 20px would preview as 60px and dialling it down to 0 would preview * *more* space than 20px did. Scoped to this wrapper so the other channels and * the brand/translation editors keep their own `.ProseMirror` padding. * * Preview and read-only mode add their own `.courier-editor-main .ProseMirror * { py-5 }`, which outweighs this wrapper's two-class override. Rather than * force it with `!important` here, `styles.css` exempts the email editor from * that rule — `!important` also stripped the padding read-only mode relies on * elsewhere, and the rule still has to apply to Slack, MSTeams and the brand * editor, which have no Frame of their own. */ export declare const EmailBodyFrame: ({ documentStyles, children, }: { /** * Only the resolved inset is needed, so a read-only surface can pass * `resolveEmailDocumentStyles(channel)` instead of the live editor's hook. */ documentStyles: Pick; children: React.ReactNode; }) => import("react/jsx-runtime").JSX.Element; export {};