//#region src/generated/overlay/_internal.gen.d.ts /** * A component schema field. Discriminated by the literal `type` enum on each variant. */ type Field = TextField | TextareaField | RichtextField | MarkdownField | NumberField | DatetimeField | BooleanField | OptionField | OptionsField | AssetField | MultiassetField | ImageField | FileField | MultilinkField | LinkField | BloksField | TableField | SectionField | TabField | GroupField | CommerceField | CustomField; type AssetFieldValue = AssetFieldValue2; type BlockContentBase = BlockContent2; type BlockContentInputBase = BlockContentInput2; type MultilinkFieldValue = MultilinkFieldValue2; type PluginFieldValue = PluginFieldValue2; type RichTextFieldValue = RichTextFieldValue2; type TableFieldValue = TableFieldValue2; type TextField = BaseField & ValueField & { /** * Field type discriminant */ type: 'text'; /** * Default value for the field */ default_value?: string; /** * Maximum length of the input. The schema form persists the number * input's raw value, so a space can hold `"60"` just as legitimately as * `60`. Coerce before comparing. * */ max_length?: number | string; /** * Maximum length for text fields (legacy alias for max_length) */ maxlength?: number; /** * Minimum length for text fields */ minlength?: number; /** * Field size (small, medium, large) */ size?: string; /** * Whether to enable right-to-left text direction */ rtl?: boolean; }; type TextareaField = BaseField & ValueField & { /** * Field type discriminant */ type: 'textarea'; /** * Default value for the field */ default_value?: string; /** * Maximum length of the input. The schema form persists the number * input's raw value, so a space can hold `"60"` just as legitimately as * `60`. Coerce before comparing. * */ max_length?: number | string; /** * Maximum length for text fields (legacy alias for max_length) */ maxlength?: number; /** * Minimum length for text fields */ minlength?: number; /** * Field size (small, medium, large) */ size?: string; /** * Whether to enable right-to-left text direction */ rtl?: boolean; /** * Whether rich text is enabled */ rich_text?: boolean; /** * Whether markdown is enabled */ markdown?: boolean; }; type RichtextField = BaseField & ValueField & { /** * Field type discriminant */ type: 'richtext'; /** * Default value for the field */ default_value?: string; /** * Whether to allow toolbar customization */ customize_toolbar?: boolean; /** * Array of enabled toolbar elements */ toolbar?: Array<'ai-complete' | 'ai-shorten' | 'ai-extend' | 'ai-rephrase' | 'ai-summarize' | 'ai-simplify' | 'ai-tone' | 'ai-emoji' | 'ai-translate' | 'ai-tldr' | 'ai-spelling' | 'blok' | 'ltr' | 'rtl' | 'export' | 'import' | 'bold' | 'list' | 'inlinecode' | 'code' | 'color' | 'copy' | 'cut' | 'emoji' | 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'highlight' | 'unset' | 'hrule' | 'image' | 'italic' | 'link' | 'anchor' | 'olist' | 'paragraph' | 'paste-action' | 'paste' | 'quote' | 'redo' | 'strike' | 'subscript' | 'superscript' | 'underline' | 'undo' | 'align-left' | 'align-center' | 'align-right' | 'align-justify'>; /** * Custom CSS styles for the rich text field */ style_options?: Array<{ _uid?: string; name?: string; value?: string; }>; /** * Restriction type for component selection (groups, tags, or empty for specific blocks) */ restrict_type?: string; /** * Whether to restrict which components can be inserted */ restrict_components?: boolean; /** * List of allowed component names */ component_whitelist?: Array; /** * List of denied component names */ component_denylist?: Array; /** * List of allowed tag IDs for component filtering */ component_tag_whitelist?: Array; /** * List of denied tag IDs for component filtering */ component_tag_denylist?: Array; /** * List of allowed component group UUIDs */ component_group_whitelist?: Array; /** * List of denied component group UUIDs */ component_group_denylist?: Array; /** * Whether to allow links to open in a new tab */ allow_target_blank?: boolean; /** * Whether to allow custom link attributes */ allow_custom_attributes?: boolean; /** * Path of the folder internal links are restricted to. The richtext * schema form does not write this option itself; it belongs to the * multilink field's editor. Kept here because a space can carry it as * a legacy value, not because the richtext editor produces it. * */ link_scope?: string; /** * Maximum length of the input. The schema form persists the number * input's raw value, so a space can hold `"60"` just as legitimately as * `60`. Coerce before comparing. * */ max_length?: number | string; /** * Whether to enable right-to-left text direction. The richtext schema * form does not write this option itself; it belongs to the text, * textarea, and markdown fields' editors. Kept here because a space * can carry it as a legacy value, not because the richtext editor * produces it. * */ rtl?: boolean; }; type MarkdownField = BaseField & ValueField & { /** * Field type discriminant */ type: 'markdown'; /** * Default value for the field */ default_value?: string; /** * Whether to display markdown as rich text */ rich_markdown?: boolean; /** * Whether to enable right-to-left text direction */ rtl?: boolean; /** * Whether to enable a customized toolbar */ customize_toolbar?: boolean; /** * Array of enabled toolbar elements */ toolbar?: Array<'bold' | 'italic' | 'inlinecode' | 'code' | 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'list' | 'olist' | 'quote' | 'hrule' | 'link' | 'image' | 'paragraph' | 'help' | 'toggle-richtext' | 'auto' | 'ltr' | 'rtl'>; /** * Whether to allow empty paragraphs */ allow_multiline?: boolean; /** * Maximum length of the input. The schema form persists the number * input's raw value, so a space can hold `"60"` just as legitimately as * `60`. Coerce before comparing. * */ max_length?: number | string; }; type NumberField = BaseField & ValueField & { /** * Field type discriminant */ type: 'number'; /** * Default value for the field */ default_value?: string; /** * Minimum value allowed */ min_value?: number; /** * Maximum value allowed */ max_value?: number; /** * Number of decimal places */ decimals?: number; /** * Step size for the number input */ steps?: number; }; type DatetimeField = BaseField & ValueField & { /** * Field type discriminant */ type: 'datetime'; /** * Default value for the field */ default_value?: string; /** * Whether to disable time selection (date-only mode) */ disable_time?: boolean; }; type BooleanField = BaseField & ValueField & { /** * Field type discriminant */ type: 'boolean'; /** * Default value for the field */ default_value?: boolean; /** * Whether to display the label next to the toggle */ inline_label?: boolean; }; type OptionField = BaseField & ValueField & { /** * Field type discriminant */ type: 'option'; /** * Default value for the field */ default_value?: string; /** * Array of selectable options */ options?: ReadonlyArray<{ _uid?: string; name?: string; value?: string; }>; /** * Source of the options (undefined=self, internal_stories, internal_languages, external, internal) */ source?: string; /** * Datasource slug when source is internal */ datasource_slug?: string; /** * External datasource JSON URL when source is external */ external_datasource?: string; /** * Path of allowed stories folder when source is internal_stories */ folder_slug?: string; /** * Allowed content type blocks when source is internal_stories */ filter_content_type?: Array; /** * Whether to exclude the empty option */ exclude_empty_option?: boolean; /** * Whether to include an empty option */ include_empty_option?: boolean; /** * Whether to use UUID for the option value */ use_uuid?: boolean; /** * Display appearance (link or card) when source is internal_stories */ entry_appearance?: string; /** * Whether to allow advanced search in a modal when source is internal_stories */ allow_advanced_search?: boolean; /** * Maximum number of selectable options */ max_options?: string; /** * Minimum number of selectable options */ min_options?: string; /** * Whether multiple values are allowed */ multiple?: boolean; }; type OptionsField = BaseField & ValueField & { /** * Field type discriminant */ type: 'options'; /** * Default value for the field: either a space-separated list of option * values or the array of values itself. * */ default_value?: string | Array; /** * Array of selectable options */ options?: ReadonlyArray<{ _uid?: string; name?: string; value?: string; }>; /** * Source of the options (undefined=self, internal_stories, internal_languages, external, internal) */ source?: string; /** * Datasource slug when source is internal */ datasource_slug?: string; /** * External datasource JSON URL when source is external */ external_datasource?: string; /** * Path of allowed stories folder when source is internal_stories */ folder_slug?: string; /** * Allowed content type blocks when source is internal_stories */ filter_content_type?: Array; /** * Whether to use UUID for the option values */ use_uuid?: boolean; /** * Whether to exclude the empty option */ exclude_empty_option?: boolean; /** * Whether this Multi-Options field is a References field */ is_reference_type?: boolean; /** * Display appearance (link or card) when source is internal_stories */ entry_appearance?: string; /** * Whether to allow advanced search in a modal when source is internal_stories */ allow_advanced_search?: boolean; /** * Maximum number of selectable options */ max_options?: string; /** * Minimum number of selectable options */ min_options?: string; /** * Whether multiple values are allowed */ multiple?: boolean; }; type AssetField = BaseField & ValueField & { /** * Field type discriminant */ type: 'asset'; /** * Default value for the field */ default_value?: string; /** * Allowed file types (images, videos, audios, texts) */ filetypes?: Array; /** * Numeric ID of the allowed asset folder */ asset_folder_id?: number; /** * Whether to allow external URLs */ allow_external_url?: boolean; /** * Field height in pixels */ height?: number; /** * Field width in pixels */ width?: number; /** * Whether to restrict assets */ restrict_assets?: boolean; /** * List of allowed asset types */ asset_whitelist?: Array; }; type MultiassetField = BaseField & ValueField & { /** * Field type discriminant */ type: 'multiasset'; /** * Default value for the field */ default_value?: string; /** * Allowed file types (images, videos, audios, texts) */ filetypes?: Array; /** * Numeric ID of the allowed asset folder */ asset_folder_id?: number; /** * Whether to allow external URLs */ allow_external_url?: boolean; /** * Field height in pixels */ height?: number; /** * Field width in pixels */ width?: number; /** * Whether to restrict assets */ restrict_assets?: boolean; /** * List of allowed asset types */ asset_whitelist?: Array; /** * Maximum number of entries */ maximum_entries?: number; /** * Minimum number of entries */ minimum_entries?: number; }; type ImageField = BaseField & ValueField & { /** * Field type discriminant */ type: 'image'; /** * Default value for the field */ default_value?: string; /** * Whether to prepend `https:` to the asset URL */ add_https?: boolean; /** * Whether to force editors to crop the image to a fixed size */ image_crop?: boolean; /** * Crop width in pixels, applied when `image_crop` is true. The editor * writes an empty string when the input is cleared, so the value is not * always numeric. * */ image_width?: number | string; /** * Crop height in pixels, applied when `image_crop` is true. The editor * writes an empty string when the input is cleared, so the value is not * always numeric. * */ image_height?: number | string; /** * Whether to keep the original image size when `image_crop` is true */ keep_image_size?: boolean; /** * Numeric ID of the allowed asset folder */ asset_folder_id?: number; }; type FileField = BaseField & ValueField & { /** * Field type discriminant */ type: 'file'; /** * Default value for the field */ default_value?: string; /** * Whether to prepend `https:` to the asset URL */ add_https?: boolean; /** * Numeric ID of the allowed asset folder */ asset_folder_id?: number; }; type MultilinkField = BaseField & ValueField & { /** * Field type discriminant */ type: 'multilink'; /** * Default value for the field */ default_value?: string; /** * Whether to restrict linkable content types */ restrict_content_types?: boolean; /** * List of allowed content type blocks for internal links */ component_whitelist?: Array; /** * Whether to allow opening links in a new tab */ allow_target_blank?: boolean; /** * Whether to allow setting custom link attributes */ allow_custom_attributes?: boolean; /** * Whether to restrict to a specific folder */ force_link_scope?: boolean; /** * Path of the allowed folder when force_link_scope is true */ link_scope?: string; /** * Whether to allow defining an anchor ID for internal links */ show_anchor?: boolean; /** * Whether to allow specifying an email address */ email_link_type?: boolean; /** * Whether to allow specifying an asset URL */ asset_link_type?: boolean; }; type LinkField = BaseField & ValueField & { /** * Field type discriminant */ type: 'link'; /** * Default value for the field */ default_value?: string; }; type BloksField = BaseField & ValueField & { /** * Field type discriminant */ type: 'bloks'; /** * Default value for the field: either a JSON-encoded array of blocks or * the array itself. * */ default_value?: string | Array<{ [key: string]: unknown; }>; /** * Restriction type for component selection (groups, tags, or empty for specific blocks) */ restrict_type?: string; /** * Whether to restrict which components can be inserted */ restrict_components?: boolean; /** * List of allowed component names */ component_whitelist?: Array; /** * List of denied component names */ component_denylist?: Array; /** * List of allowed tag IDs for component filtering */ component_tag_whitelist?: Array; /** * List of denied tag IDs for component filtering */ component_tag_denylist?: Array; /** * List of allowed component group UUIDs */ component_group_whitelist?: Array; /** * List of denied component group UUIDs */ component_group_denylist?: Array; /** * Minimum number of bloks */ minimum?: number; /** * Maximum number of bloks */ maximum?: number; /** * Maximum number of entries */ maximum_entries?: number; /** * Minimum number of entries */ minimum_entries?: number; }; type TableField = BaseField & ValueField & { /** * Field type discriminant */ type: 'table'; /** * Default value for the field */ default_value?: string; }; type SectionField = BaseField & { /** * Field type discriminant */ type: 'section'; /** * Field keys that belong to this section */ keys?: Array; /** * Fieldset configuration */ fieldset?: { /** * Fieldset title */ title?: string; /** * Fieldset description */ description?: string; /** * Whether the fieldset is collapsible */ collapsible?: boolean; /** * Whether the fieldset is collapsed by default */ collapsed?: boolean; }; }; type TabField = BaseField & { /** * Field type discriminant */ type: 'tab'; /** * Field keys that belong to this tab */ keys?: Array; }; type GroupField = BaseField & { /** * Field type discriminant */ type: 'group'; }; type CommerceField = BaseField & ValueField & { /** * Field type discriminant */ type: 'commerce'; }; type CustomField = BaseField & ValueField & { /** * Field type discriminant */ type: 'custom'; /** * Default value for the field */ default_value?: string; /** * Technical name of the field plugin */ field_type?: string; /** * Plugin-specific options */ options?: ReadonlyArray<{ name?: string; value?: string; }>; /** * Comma-separated list of required field names in the plugin */ required_fields?: string; /** * Source for plugin-provided options (`self` or `internal` for datasource) */ source?: 'self' | 'internal'; /** * Slug of the internal datasource when `source` is `internal` */ datasource_slug?: string; /** * URL to an external datasource when `source` is set accordingly */ external_datasource?: string; }; /** * Asset field type - single asset (image, video, audio, or document) */ type AssetFieldValue2 = { /** * Identifies this as an asset field */ fieldtype: 'asset'; /** * Numeric ID of the asset */ id: number | null; /** * Alternative text for the asset */ alt: string | null; /** * Name of the asset */ name?: string; /** * Focal point coordinates for cropping (format "123x456:789x1011") */ focus?: string | null; /** * Title of the asset */ title?: string | null; /** * Source attribution for the asset */ source?: string | null; /** * URL to the asset file */ filename: string; /** * Copyright information */ copyright?: string | null; /** * Additional metadata for the asset */ meta_data?: { [key: string]: unknown; }; /** * Whether the asset is hosted externally */ is_external_url?: boolean; }; /** * Content object representing a component instance. Contains a _uid, a component technical name, and dynamic fields whose values depend on the component's schema field types (text, textarea, richtext, markdown, number, datetime, boolean, option, options, asset, multiasset, multilink, bloks, table, section, custom/plugin). */ type BlockContent2 = { /** * Unique identifier for this component instance */ _uid: string; /** * Technical name of the component (content type or nestable block) */ component: string; /** * Storyblok editor markup string for inline editing (present in draft/preview mode) */ _editable?: string; [key: string]: null | string | number | boolean | Array | AssetFieldValue2 | MultilinkFieldValue2 | TableFieldValue2 | RichTextFieldValue2 | PluginFieldValue2 | undefined; }; /** * Content object for creating or updating a component instance. Contains a component technical name and dynamic fields whose values depend on the component's schema field types. The _uid is optional — Storyblok will auto-generate one if not provided. */ type BlockContentInput2 = { /** * Unique identifier for this component instance (auto-generated when omitted) */ _uid?: string; /** * Technical name of the component (content type or nestable block) */ component: string; /** * Storyblok editor markup string for inline editing (present in draft/preview mode) */ _editable?: string; [key: string]: null | string | number | boolean | Array | AssetFieldValue2 | MultilinkFieldValue2 | TableFieldValue2 | RichTextFieldValue2 | PluginFieldValue2 | undefined; }; /** * Multilink field type - link to internal stories, external URLs, emails, or assets. */ type MultilinkFieldValue2 = StoryLink | UrlLink | EmailLink | AssetLink; /** * Plugin/Custom field type - field plugin with custom structure */ type PluginFieldValue2 = { /** * Technical name of the field plugin */ plugin: string; /** * Unique identifier for this plugin field instance */ _uid?: string; [key: string]: unknown; }; /** * Rich text field type - structured rich text document (ProseMirror/Tiptap format) */ type RichTextFieldValue2 = { /** * Root node type — always "doc" */ type: 'doc'; /** * Top-level rich text nodes */ content: Array; }; /** * Table field type - structured table data */ type TableFieldValue2 = { /** * Table header cells */ thead: Array<{ _uid?: string; component?: '_table_head'; /** * Header cell content */ value?: string; }>; /** * Table body rows */ tbody: Array<{ _uid?: string; component?: '_table_row'; /** * Cells in this row */ body?: Array<{ _uid?: string; component?: '_table_col'; /** * Cell content */ value?: string; }>; }>; }; /** * Universal identity and display properties shared by every field type */ type BaseField = { /** * Field type discriminant */ type?: string; /** * The ID of the field */ id?: string; /** * Human-readable display name */ display_name?: string; /** * Field description displayed in the editor */ description?: string; /** * Whether to display the description as a tooltip */ tooltip?: boolean; /** * Position of the field within the block */ pos?: number; /** * Conditions set on the field for conditional visibility. The editor writes * one setting and reads only the first, so an extra entry is invisible to it. * It is not inert server-side: the conditional-required check requires every * setting to match, so a second entry can only make a field harder to leave * empty. Write one setting unless you mean that. * */ conditional_settings?: Array; }; /** * Properties shared by content-bearing fields (i.e. fields that hold a value). * Layout-only field types like `section` and `tab` do not include these. * * `default_value` is deliberately NOT here: its type depends on the field type * (boolean fields hold a real boolean, bloks/options also accept an array), and * these properties are merged via `allOf`, so a per-field-type override would * intersect into `never` instead of replacing. Each field type declares its own. * */ type ValueField = { /** * Whether the field is required */ required?: boolean; /** * Regular expression for validation */ regex?: string; /** * Whether the field is translatable */ translatable?: boolean; /** * Exclude the field from translation exports */ no_translate?: boolean; /** * Exclude the field from AI translations */ exclude_from_ai_translation?: boolean; /** * Exclude the field when merging (Dimensions App) */ exclude_from_merge?: boolean; /** * Exclude the field when overwriting (Dimensions App) */ exclude_from_overwrite?: boolean; /** * Overwrite the field when merging (Dimensions App) */ force_merge?: boolean; }; /** * Link to an internal Storyblok story. */ type StoryLink = SharedLink & { linktype: 'story'; /** * Anchor/fragment identifier for the story link */ anchor?: string | null; /** * Link relationship attribute */ rel?: string; /** * Link title attribute */ title?: string; } & { [key: string]: string | null; }; /** * Link to an external URL. */ type UrlLink = SharedLink & { linktype: 'url'; /** * Link relationship attribute */ rel?: string; /** * Link title attribute */ title?: string; } & { [key: string]: string; }; /** * Link to an email address. */ type EmailLink = SharedLink & { linktype: 'email'; /** * Email address */ email?: string; }; /** * Link to a Storyblok asset. */ type AssetLink = SharedLink & { linktype: 'asset'; }; /** * A rich text document node */ type RichTextFieldValueRichTextNode = ParagraphNode | TextNode | HeadingNode | BlockquoteNode | BulletListNode | OrderedListNode | ListItemNode | CodeBlockNode | HardBreakNode | HorizontalRuleNode | ImageNode | EmojiNode | TableNode | TableRowNode | TableCellNode | TableHeaderNode | BlockNode; /** * A conditional rule attached to a field: when `rule_conditions` match the * block's content, the editor applies `modifications` to this field. * * Nothing here is required. The editor writes a setting the moment the operator * adds a rule row, before any of it is filled in, so a saved block can hold a * half-configured setting. * */ type ConditionalSetting = { /** * Whether every condition must match (`all`) or any one of them (`any`). * A setting the editor creates starts out as `any`. * */ rule_match?: 'all' | 'any'; /** * The conditions evaluated against the block's content */ rule_conditions?: Array<{ /** * The field this condition reads. `null` until the operator picks one. * */ validated_object?: { /** * What the condition reads; only a sibling field is supported */ type?: 'field'; /** * Key of the sibling field within the same block */ field_key?: string; /** * Which attribute of that field is compared */ field_attr?: 'value'; } | null; /** * The comparison to run. `null` until the operator picks one. * `gt`/`lt` compare numbers, or dates when both sides parse as * `YYYY-MM-DD HH:mm`. * */ validation?: 'equals' | 'not_equals' | 'empty' | 'not_empty' | 'gt' | 'lt' | null; /** * The value compared against. Its shape follows the validated field: * a string, number or boolean for most types, an asset object for an * `asset` field, and `null` for `empty`/`not_empty`, which ignore it. * */ value?: unknown; }>; /** * What to apply to this field when the conditions match. The editor writes * one entry and reads only the first. * */ modifications?: Array<{ /** * Hides the field. Both spellings are live: the editor writes `hide` * and reads it back, while the server's conditional-required check * recognizes only `hidden`. Neither side accepts the other's value, so * a rule authored through the API with `hidden` hides nothing in the * editor, and one authored in the editor does not relax a required * field on save. Both are declared because real spaces hold both; * prefer `hide` for anything the editor will open. * */ display?: 'hide' | 'hidden'; /** * `true` makes the field required, `false` makes it explicitly not * required. Setting it alongside `display` is ambiguous rather than * layered: the editor lets `display` win, while the server only skips * the required check for the `hidden` spelling. Set one or the other. * */ required?: boolean; }>; }; type SharedLink = { /** * Identifies this as a multilink field */ fieldtype: 'multilink'; /** * Type of link */ linktype: string; /** * UUID of the linked story for internal links */ id: string; /** * URL for external links */ url: string; /** * Cached URL path for the linked story */ cached_url: string; /** * Link target attribute */ target?: '_self' | '_blank'; }; type ParagraphNode = { type: 'paragraph'; attrs?: { /** * Text alignment */ textAlign: 'left' | 'center' | 'right' | 'justify' | null; /** * Text direction */ dir?: 'ltr' | 'rtl' | null; }; content?: Array; marks?: Array; }; type TextNode = { type: 'text'; /** * The text content */ text: string; marks?: Array; }; type HeadingNode = { type: 'heading'; attrs: { /** * Heading level (h1–h6) */ level: 1 | 2 | 3 | 4 | 5 | 6 | null; /** * Text alignment */ textAlign: 'left' | 'center' | 'right' | 'justify' | null; /** * Text direction */ dir?: 'ltr' | 'rtl' | null; }; content?: Array; marks?: Array; }; type BlockquoteNode = { type: 'blockquote'; attrs?: { /** * Text direction */ dir?: 'ltr' | 'rtl' | null; }; content?: Array; marks?: Array; }; type BulletListNode = { type: 'bullet_list'; content?: Array; marks?: Array; }; type OrderedListNode = { type: 'ordered_list'; attrs: { /** * Starting number for the ordered list */ order?: number; }; content?: Array; marks?: Array; }; type ListItemNode = { type: 'list_item'; attrs?: { /** * Text direction */ dir?: 'ltr' | 'rtl' | null; }; content?: Array; marks?: Array; }; type CodeBlockNode = { type: 'code_block'; attrs: { /** * Language class (e.g. "language-typescript") */ class: string | null; /** * Text direction */ dir?: 'ltr' | 'rtl' | null; }; content?: Array; marks?: Array; }; type HardBreakNode = { type: 'hard_break'; }; type HorizontalRuleNode = { type: 'horizontal_rule'; }; type ImageNode = { type: 'image'; attrs: { /** * Storyblok asset ID */ id: number | null; /** * Image URL */ src: string | null; /** * Alternative text */ alt: string | null; title: string | null; source: string | null; copyright: string | null; /** * Asset metadata */ meta_data: { alt?: string | null; title?: string | null; source?: string | null; copyright?: string | null; [key: string]: string | null | undefined; } | null; }; }; type EmojiNode = { type: 'emoji'; attrs: { /** * Emoji name/slug */ name: string; /** * Emoji character */ emoji: string; /** * URL to a fallback image for unsupported environments */ fallbackImage: string; }; }; type TableNode = { type: 'table'; content?: Array; }; type TableRowNode = { type: 'tableRow'; content?: Array; }; type TableCellNode = { type: 'tableCell'; attrs: { colspan?: number; rowspan?: number; /** * Column widths in pixels */ colwidth?: Array | null; backgroundColor?: string | null; }; content?: Array; }; type TableHeaderNode = { type: 'tableHeader'; attrs: { colspan?: number; rowspan?: number; /** * Column widths in pixels */ colwidth?: Array | null; }; content?: Array; }; type BlockNode = { type: 'blok'; attrs: { /** * Block instance ID */ id: string | null; /** * Array of embedded component instances */ body: Array | null; }; }; /** * Inline formatting mark applied to a text node */ type RichTextFieldValueRichTextMark = LinkMark | BoldMark | ItalicMark | StrikeMark | UnderlineMark | CodeMark | SuperscriptMark | SubscriptMark | HighlightMark | TextStyleMark | AnchorMark | StyledMark; type LinkMark = { type: 'link'; /** * Link attributes */ attrs: { /** * Link URL */ href: string | null; /** * UUID of the linked story (for internal links) */ uuid: string | null; /** * Anchor/fragment identifier */ anchor: string | null; /** * Link target attribute */ target: '_self' | '_blank' | '_parent' | '_top' | null; /** * Type of link */ linktype: 'story' | 'url' | 'email' | 'asset' | null; /** * Custom link attributes */ custom?: { [key: string]: unknown; } | null; }; }; type BoldMark = { type: 'bold'; }; type ItalicMark = { type: 'italic'; }; type StrikeMark = { type: 'strike'; }; type UnderlineMark = { type: 'underline'; }; type CodeMark = { type: 'code'; }; type SuperscriptMark = { type: 'superscript'; }; type SubscriptMark = { type: 'subscript'; }; type HighlightMark = { type: 'highlight'; attrs: { /** * Highlight color (CSS color value) */ color: string | null; }; }; type TextStyleMark = { type: 'textStyle'; attrs: { color?: string | null; id?: string | null; class?: string | null; }; }; type AnchorMark = { type: 'anchor'; attrs: { /** * Anchor identifier */ id: string; }; }; type StyledMark = { type: 'styled'; attrs: { /** * CSS class name */ class: string | null; }; }; //#endregion export { AnchorMark, AssetField, AssetFieldValue, AssetFieldValue2, AssetLink, BaseField, BlockContent2, BlockContentBase, BlockContentInput2, BlockContentInputBase, BlockNode, BlockquoteNode, BloksField, BoldMark, BooleanField, BulletListNode, CodeBlockNode, CodeMark, CommerceField, ConditionalSetting, CustomField, DatetimeField, EmailLink, EmojiNode, Field, FileField, GroupField, HardBreakNode, HeadingNode, HighlightMark, HorizontalRuleNode, ImageField, ImageNode, ItalicMark, LinkField, LinkMark, ListItemNode, MarkdownField, MultiassetField, MultilinkField, MultilinkFieldValue, MultilinkFieldValue2, NumberField, OptionField, OptionsField, OrderedListNode, ParagraphNode, PluginFieldValue, PluginFieldValue2, RichTextFieldValue, RichTextFieldValue2, RichTextFieldValueRichTextMark, RichTextFieldValueRichTextNode, RichtextField, SectionField, SharedLink, StoryLink, StrikeMark, StyledMark, SubscriptMark, SuperscriptMark, TabField, TableCellNode, TableField, TableFieldValue, TableFieldValue2, TableHeaderNode, TableNode, TableRowNode, TextField, TextNode, TextStyleMark, TextareaField, UnderlineMark, UrlLink, ValueField }; //# sourceMappingURL=_internal.gen.d.cts.map