/** * The page-metadata field set for the Puck root config. * * Values live at `root.props._meta` in the page snapshot — branch-scoped, * versioned and autosaved like any other authored content. The stored shape is * defined alongside these fields, so the editor fields that write it are * versioned with it: a field set copied into a project could not follow the * shape as it evolved. * * The built-in field set is fixed: no admin-defined fields, no template or site * tiers. Fields are declared flat inside one `_meta` object field — grouping * them would nest object fields, deepening the prop paths the root-prop * migration applier has to handle. A site is free to merge its own field onto * the returned group; it templates like the rest and reaches `
` through * the renderer's `transform`. */ /** * The `_meta` field for a root config's `fields`. * * Pass the live root props from `resolveFields` to show what an empty field * will inherit, as a placeholder. It has to be a placeholder and not a value: * autosave persists the whole snapshot, so a derived value written into the * field would be saved and the field would stop inheriting for good. Reading * the source from root props is what makes it track edits — the fields slice * subscribes to the root node, so changing the title re-resolves. * * The chains mirror what the head tags actually emit: `twitter:title` from * `og:title` before `title`, `twitter:image` from `og:image`. A placeholder * that disagreed with the rendered tag would be worse than none. The site * default tier cannot be shown this way, since it does not live in root props. * * No `defaultProps` companion: an unset field falls back at render time, and a * default here would freeze boilerplate metadata into every new page. */ export declare function createSeoRootFields(rootProps?: Record