{"version":3,"sources":["../src/renderer.tsx"],"sourcesContent":["import React, { ClassType, ComponentClass, FunctionComponent, Component as ReactComponent, createContext, useContext } from 'react';\nimport {\n    AnchorBlock,\n    AssetBlock,\n    Block,\n    CodeBlock,\n    ComponentBlock,\n    DecoratorType,\n    DividerBlock,\n    EntryBlock,\n    FormContentTypeBlock,\n    FragmentBlock,\n    HeadingBlock,\n    ImageBlock,\n    InlineEntryBlock,\n    LinkBlock,\n    LiquidBlock,\n    ListBlock,\n    ListItemBlock,\n    PanelBlock,\n    ParagraphBlock,\n    QuoteBlock,\n    TableBlock,\n    TableBodyBlock,\n    TableCaptionBlock, TableCellBlock,\n    TableFooterBlock,\n    TableHeaderBlock,\n    TableHeaderCellBlock,\n    TableRowBlock\n} from '@contensis/canvas-types';\n\ntype Attributes = Record<string, any>;\ntype WithChildren = { children?: JSX.Element | undefined };\n\ntype RendererProps = { data: Block[] };\ntype RenderBlocksProps = { blocks: Block[] };\ntype RenderBlockProps<T extends Block> = { block: T };\ntype RenderBlockPropsWithChildren<T extends Block>\n    = RenderBlockProps<T> & WithChildren & Attributes;\n\ntype RenderContentsProps = { contents: undefined | JSX.Element, fallback: JSX.Element };\ntype RenderTextProps = { text: string };\n\ntype DecoratorProps = { block: FragmentBlock, decorators: undefined | DecoratorType[] };\n\ntype TypedBlock<TType extends Block['type']> = Extract<Block, { type: TType }>;\n\ntype Renderer<TProps> = FunctionComponent<TProps> | ClassType<TProps, ReactComponent<TProps>, ComponentClass<TProps>>;\n\ntype BlockRenderer<T extends Block> = Renderer<RenderBlockPropsWithChildren<T>>;\ntype BlockRenderers = {\n    [TType in Block['type']]: BlockRenderer<TypedBlock<TType>>\n};\n\n\ntype RenderDecoratorProps = { block: FragmentBlock, decorator: undefined | DecoratorType, otherDecorators: undefined | DecoratorType[] };\ntype RenderDecoratorPropsWithChildren = RenderDecoratorProps & WithChildren & Attributes;\n\ntype DecoratorRenderer = Renderer<RenderDecoratorPropsWithChildren>;\ntype DecoratorRenderers = Record<DecoratorType, DecoratorRenderer>;\n\ntype ComponentRenderer = Renderer<RenderBlockPropsWithChildren<ComponentBlock>>;\ntype ComponentRenderers = Record<string, ComponentRenderer>;\ntype EntryRenderer = Renderer<RenderBlockPropsWithChildren<EntryBlock>>;\ntype EntryRenderers = Record<string, EntryRenderer>;\ntype AssetRenderer = Renderer<RenderBlockPropsWithChildren<AssetBlock>>;\ntype AssetRenderers = Record<string, AssetRenderer>;\n\ntype RendererContextValue = {\n    blocks?: BlockRenderers,\n    decorators?: DecoratorRenderers,\n    components?: ComponentRenderers,\n    entries?: EntryRenderers,\n    assets?: AssetRenderers,\n};\n\ntype RendererOverridesContextValue = {\n    blocks?: Partial<BlockRenderers>,\n    decorators?: Partial<DecoratorRenderers>,\n    components?: ComponentRenderers,\n    entries?: EntryRenderers,\n    assets?: AssetRenderers,\n};\n\ntype RendererContextProviderProps = WithChildren & RendererOverridesContextValue;\n\nexport type { BlockRenderer, RenderBlockProps, RenderBlockPropsWithChildren, RenderDecoratorProps, RenderDecoratorPropsWithChildren };\n\nexport const RendererContext = createContext<RendererContextValue>({});\n\nconst BlockRenderContext = createContext<{ ancestors: Block[] }>({ ancestors: [] });\n\nfunction findAncestorOfType<T extends Block>(ancestors: Block[], types: T['type'][]): T | undefined {\n    return ancestors?.slice().reverse().find(ancestor => types.includes(ancestor.type as T['type'])) as T | undefined;\n}\n\n/** \n * Provides context to the <Renderer> component to return Canvas data as React components\n *\n *  @link https://www.npmjs.com/package/@contensis/canvas-react#usage\n *\n * @param blocks - Override the default rendering of Canvas content blocks\n * @param components - Render method for Contensis Components within the Canvas field\n * @param decorators - Override the rendering of HTML elements within a text field\n * \n * @example \n * <RenderContextProvider blocks={{ _table: Table }} components={{ banner: Banner }} decorators={{ strong: Strong }}>\n *      <Renderer data={data} />\n * </RenderContextProvider>\n * \n */\nexport function RenderContextProvider(props: RendererContextProviderProps) {\n\n    const overrideBlocks = props.blocks;\n    const blocks = Object.keys(BLOCK_RENDERERS)\n        .reduce((prev, type) => {\n            const blockType = type as Block['type'];\n            const renderer: any = overrideBlocks?.[blockType] || BLOCK_RENDERERS[blockType];\n            (prev as any)[blockType] = renderer;\n            return prev;\n        }, {} as BlockRenderers);\n\n    const overrideDecorators = props.decorators;\n    const decorators = Object.keys(DECORATOR_RENDERERS)\n        .reduce((prev, type) => {\n            const decoratorType = type as DecoratorType;\n            prev[decoratorType] = overrideDecorators?.[decoratorType] || DECORATOR_RENDERERS[decoratorType];\n            return prev;\n        }, {} as DecoratorRenderers);\n\n    const value = { blocks, decorators, components: props.components, entries: props.entries, assets: props?.assets };\n\n    return (\n        <RendererContext.Provider value={value}>\n            {props.children}\n        </RendererContext.Provider>\n    );\n}\n\nfunction useBlocks() {\n    const value = useContext(RendererContext);\n    return value.blocks || BLOCK_RENDERERS;\n}\n\nfunction useDecorators() {\n    const value = useContext(RendererContext);\n    return value.decorators || DECORATOR_RENDERERS;\n}\n\nfunction useComponents() {\n    const value = useContext(RendererContext);\n    return value.components || {};\n}\n\nfunction useEntries() {\n    const value = useContext(RendererContext);\n    return value.entries || {};\n}\n\nfunction useAssets() {\n    const value = useContext(RendererContext);\n    return value.assets || {};\n}\n\nfunction RenderBlock<TBlock extends Block>(props: RenderBlockProps<TBlock>) {\n    const blocks = useBlocks();\n    const Component = blocks[props.block.type] as BlockRenderer<TBlock>;\n    const renderContext = useContext(BlockRenderContext);\n    const ancestors = [...renderContext.ancestors, props.block];\n    return !!Component ? (\n        <BlockRenderContext.Provider value={{ ancestors }}>\n            <Component block={props.block} />\n        </BlockRenderContext.Provider>\n    ) : null;\n}\n\nfunction RenderBlocks(props: RenderBlocksProps) {\n    return (<>{props.blocks.map(block => <RenderBlock block={block} key={block.id} />)}</>);\n}\n\nfunction RenderContents(props: RenderContentsProps) {\n    return (props.contents ? props.contents : props.fallback);\n}\n\nexport function RenderChildren(props: RenderBlockProps<Block>) {\n    const isArray = Array.isArray(props.block?.value);\n    const isString = typeof props.block?.value === 'string';\n\n    const render = () => {\n        if (isArray) {\n            return (<RenderBlocks blocks={props.block.value as any} />);\n        } else if (isString) {\n            return (<RenderText text={props.block.value as any} />);\n        } else {\n            return (<RenderText text={''} />);\n        }\n    };\n\n    return render();\n};\n\nfunction RenderText(props: RenderTextProps) {\n    return (<>{props.text}</>);\n};\n\n/** \n * The default render method for processing Canvas data \n * \n * @link https://www.npmjs.com/package/@contensis/canvas-react#usage\n * \n * @param data - Accepts Canvas data\n * \n * */\nexport function Renderer(props: RendererProps) {\n    return (<RenderBlocks blocks={props.data} />);\n}\n\ntype AttributeProps = RenderBlockProps<Block>\n    | RenderBlockPropsWithChildren<Block>\n    | RenderDecoratorProps\n    | RenderDecoratorPropsWithChildren;\n\nfunction getAttributes(props: AttributeProps, extra: Record<string, any> = {}) {\n    const { block, ...rest } = props;\n    let { children, decorator, otherDecorators, ...attributes } = rest as Record<string, any>;\n    attributes = {\n        id: block?.properties?.id,\n        ...extra,\n        ...attributes\n    };\n    return attributes;\n}\n\nfunction WithCaption(props: WithChildren & { caption: undefined | string }) {\n    return (\n        !!props.caption\n            ? (\n                <figure>\n                    {props.children}\n                    <figcaption>{props.caption}</figcaption>\n                </figure>\n            )\n            : (props.children || null)\n    );\n};\n\nfunction RenderBlockChildrenFactory<T extends Block>() {\n    return function (props: RenderBlockProps<T>) {\n        return (<RenderChildren block={props.block} />);\n    };\n}\n\nfunction EmptyChildrenFactory<T extends Block>() {\n    return function (props: RenderBlockProps<T>) {\n        return (<></>);\n    };\n}\n\nexport function Anchor(props: RenderBlockPropsWithChildren<AnchorBlock>) {\n    const attributes = getAttributes(props);\n    return (\n        <a {...attributes}>\n            <RenderContents contents={props.children} fallback={<Anchor.Children block={props.block} />} />\n        </a>\n    );\n}\n\nAnchor.Children = RenderBlockChildrenFactory<AnchorBlock>();\n\nexport function Asset(props: RenderBlockPropsWithChildren<AssetBlock>) {\n    const contentTypeId = props?.block?.value?.sys?.contentTypeId;\n    const components = useAssets();\n    const AssetElement = !!contentTypeId ? components?.[contentTypeId] : undefined;\n    const attributes = getAttributes(props);\n    return (!!AssetElement)\n        ? <AssetElement {...props} />\n        : (\n            <div {...attributes}>\n                <RenderContents contents={props.children} fallback={<Asset.Children block={props.block} />} />\n            </div>\n        );\n}\n\nAsset.Children = function (props: RenderBlockProps<AssetBlock>) {\n    const href = props?.block?.value?.sys?.uri;\n    const entryTitle = props?.block?.value?.entryTitle || '';\n    const entryDescription = props?.block?.value?.entryDescription || '';\n    return (<>\n        <div>\n            {!!href ? <a href={href}>{entryTitle}</a> : entryTitle}\n        </div>\n        {!!entryDescription ? <div>{entryDescription}</div> : null}\n    </>);\n};\n\nexport function Code(props: RenderBlockPropsWithChildren<CodeBlock>) {\n    const attributes = getAttributes(props, {\n        'data-language': props.block?.value?.language\n    });\n    const codeAttributes = getAttributes(props, {\n        className: `language-${props.block?.value?.language}`\n    });\n    return (\n        <pre {...attributes}>\n            <code {...codeAttributes}>\n                <RenderContents contents={props.children} fallback={<Code.Children block={props.block} />} />\n            </code>\n        </pre>\n    );\n}\n\nCode.Children = function (props: RenderBlockProps<CodeBlock>) {\n    return (<>{props.block?.value?.code}</>);\n};\n\nfunction CodeWithCaption(props: RenderBlockPropsWithChildren<CodeBlock>) {\n    return (\n        <WithCaption caption={props.block?.value?.caption}>\n            <Code {...props} />\n        </WithCaption>\n    );\n}\n\nexport function Component(props: RenderBlockPropsWithChildren<ComponentBlock>) {\n    const component = props?.block.properties?.component;\n    const components = useComponents();\n    const ComponentElement = !!component ? components?.[component] : undefined;\n\n    const value = props.block.value ? JSON.stringify(props.block.value) : '';\n    const attributes = getAttributes(props, {\n        className: 'component',\n        'data-component': props.block.properties?.component,\n        'data-component-value': value,\n    });\n\n    return (!!ComponentElement)\n        ? (<ComponentElement {...props} />)\n        : (\n            <div {...attributes}>\n                <RenderContents contents={props.children} fallback={<Component.Children block={props.block} />} />\n            </div>\n        );\n}\n\nComponent.Children = function (props: RenderBlockProps<ComponentBlock>) {\n    return (<>Component: {props.block?.properties?.component}</>);\n};\n\nexport function Divider(props: RenderBlockPropsWithChildren<DividerBlock>) {\n    const attributes = getAttributes(props);\n    return (<hr {...attributes} />);\n}\n\nDivider.Children = EmptyChildrenFactory<DividerBlock>();\n\nexport function Entry(props: RenderBlockPropsWithChildren<EntryBlock>) {\n    const contentTypeId = props?.block?.value?.sys?.contentTypeId;\n    const components = useEntries();\n    const EntryElement = !!contentTypeId ? components?.[contentTypeId] : undefined;\n    const attributes = getAttributes(props);\n    return (!!EntryElement)\n        ? <EntryElement {...props} />\n        : (\n            <div {...attributes}>\n                <RenderContents contents={props.children} fallback={<Entry.Children block={props.block} />} />\n            </div>\n        );\n}\n\nEntry.Children = function (props: RenderBlockProps<EntryBlock>) {\n    const href = props?.block?.value?.sys?.uri;\n    const entryTitle = props?.block?.value?.entryTitle || '';\n    const entryDescription = props?.block?.value?.entryDescription || '';\n    return (<>\n        <div>\n            {!!href ? <a href={href}>{entryTitle}</a> : entryTitle}\n        </div>\n        {!!entryDescription ? <div>{entryDescription}</div> : null}\n    </>);\n};\n\nexport function FormContentType(_props: RenderBlockPropsWithChildren<FormContentTypeBlock>) {\n    return null;\n}\n\nFormContentType.Children = function (_props: RenderBlockProps<FormContentTypeBlock>) {\n    return null;\n};\n\nexport function Fragment(props: RenderBlockPropsWithChildren<FragmentBlock>) {\n    const hasDecorators = !!props.block?.properties?.decorators?.length;\n    const decorators = props.block?.properties?.decorators;\n    return (\n        hasDecorators\n            ? (<Decorators block={props.block} decorators={decorators}></Decorators>)\n            : (<RenderContents contents={props.children} fallback={<Fragment.Children block={props.block} />} />)\n    );\n}\n\nFragment.Children = RenderBlockChildrenFactory<FragmentBlock>();\n\nexport function Heading(props: RenderBlockPropsWithChildren<HeadingBlock>) {\n    const attributes = getAttributes(props);\n    const render = () => {\n        switch (props?.block?.properties?.level) {\n            case 2: {\n                return (\n                    <h2 {...attributes}>\n                        <RenderContents contents={props.children} fallback={<Heading.Children block={props.block} />} />\n                    </h2>\n                );\n            }\n            case 3: {\n                return (\n                    <h3 {...attributes}>\n                        <RenderContents contents={props.children} fallback={<Heading.Children block={props.block} />} />\n                    </h3>\n                );\n            }\n            case 4: {\n                return (\n                    <h4 {...attributes}>\n                        <RenderContents contents={props.children} fallback={<Heading.Children block={props.block} />} />\n                    </h4>\n                );\n            }\n            case 5: {\n                return (\n                    <h5 {...attributes}>\n                        <RenderContents contents={props.children} fallback={<Heading.Children block={props.block} />} />\n                    </h5>\n                );\n            }\n            case 6: {\n                return (\n                    <h6 {...attributes}>\n                        <RenderContents contents={props.children} fallback={<Heading.Children block={props.block} />} />\n                    </h6>\n                );\n            }\n            default: {\n                return (\n                    <h1 {...attributes}>\n                        <RenderContents contents={props.children} fallback={<Heading.Children block={props.block} />} />\n                    </h1>\n                );\n            }\n        }\n    };\n    return render();\n}\n\nHeading.Children = RenderBlockChildrenFactory<HeadingBlock>();\n\nexport function Image(props: RenderBlockPropsWithChildren<ImageBlock>) {\n    const src = props.block?.value?.asset?.sys?.uri;\n    const attributes = getAttributes(props, {\n        src,\n        alt: props.block?.value?.altText,\n        title: props?.block?.value?.caption,\n    });\n    return (<img {...attributes} />);\n}\n\nImage.Children = EmptyChildrenFactory<ImageBlock>();\n\nfunction ImageWithCaption(props: RenderBlockPropsWithChildren<ImageBlock>) {\n    return (\n        <WithCaption caption={props.block?.value?.caption}>\n            <Image {...props} />\n        </WithCaption>\n    );\n}\n\nexport function InlineEntry(props: RenderBlockPropsWithChildren<InlineEntryBlock>) {\n    const href = props?.block?.value?.sys?.uri;\n    const attributes = getAttributes(props, {\n        href\n    });\n    return (!!attributes.href\n        ? (\n            <a {...attributes}>\n                <RenderContents contents={props.children} fallback={<InlineEntry.Children block={props.block} />} />\n            </a>\n        )\n        : (<RenderContents contents={props.children} fallback={<InlineEntry.Children block={props.block} />} />)\n    );\n}\n\nInlineEntry.Children = function (props: RenderBlockProps<InlineEntryBlock>) {\n    const entryTitle = props?.block?.value?.entryTitle || '';\n    return (<>{entryTitle}</>);\n};\n\nexport function Link(props: RenderBlockPropsWithChildren<LinkBlock>) {\n    const linkValue = props?.block?.properties?.link;\n    const attributes = getAttributes(props, {\n        href: linkValue?.sys?.uri,\n        target: props?.block?.properties?.newTab ? '_blank' : null,\n        rel: props?.block?.properties?.newTab ? 'noopener noreferrer' : null\n    });\n    return (!!attributes.href\n        ? (\n            <a {...attributes}>\n                <RenderContents contents={props.children} fallback={<Link.Children block={props.block} />} />\n            </a>\n        )\n        : (<RenderContents contents={props.children} fallback={<Link.Children block={props.block} />} />)\n    );\n}\n\nLink.Children = RenderBlockChildrenFactory<LinkBlock>();\n\nexport function Liquid(props: RenderBlockPropsWithChildren<LiquidBlock>) {\n    return (\n        <RenderContents contents={props.children} fallback={<Liquid.Children block={props.block} />} />\n    );\n}\n\nLiquid.Children = function (props: RenderBlockProps<LiquidBlock>) {\n    return (<>{props.block?.value}</>);\n};\n\nexport function List(props: RenderBlockPropsWithChildren<ListBlock>) {\n    const isOrdered = (props.block?.properties?.listType === 'ordered');\n    const attributes = getAttributes(props, {\n        start: isOrdered ? props.block?.properties?.start : null,\n    });\n    return (isOrdered\n        ? (\n            <ol {...attributes}>\n                <RenderContents contents={props.children} fallback={<List.Children block={props.block} />} />\n            </ol>\n        )\n        : (\n            <ul {...attributes}>\n                <RenderContents contents={props.children} fallback={<List.Children block={props.block} />} />\n            </ul>\n        )\n    );\n}\n\nList.Children = RenderBlockChildrenFactory<ListBlock>();\n\nexport function ListItem(props: RenderBlockPropsWithChildren<ListItemBlock>) {\n    const attributes = getAttributes(props);\n    return (\n        <li {...attributes}>\n            <RenderContents contents={props.children} fallback={<ListItem.Children block={props.block} />} />\n        </li>\n    );\n}\n\nListItem.Children = RenderBlockChildrenFactory<ListItemBlock>();\n\nexport function Panel(props: RenderBlockPropsWithChildren<PanelBlock>) {\n    const attributes = getAttributes(props, {\n        className: ['panel', props.block?.properties?.panelType || 'info'].join(' ')\n    });\n    return (\n        <aside {...attributes}>\n            <RenderContents contents={props.children} fallback={<Panel.Children block={props.block} />} />\n        </aside>\n    );\n}\n\nPanel.Children = RenderBlockChildrenFactory<PanelBlock>();\n\nexport function Paragraph(props: RenderBlockPropsWithChildren<ParagraphBlock>) {\n    const attributes = getAttributes(props, {\n        className: props.block?.properties?.paragraphType\n    });\n    return (\n        <p {...attributes}>\n            <RenderContents contents={props.children} fallback={<Paragraph.Children block={props.block} />} />\n        </p>\n    );\n}\n\nParagraph.Children = RenderBlockChildrenFactory<ParagraphBlock>();\n\n\nexport function Quote(props: RenderBlockPropsWithChildren<QuoteBlock>) {\n    const attributes = getAttributes(props, {\n        'cite': props.block?.properties?.url\n    });\n    return (\n        <blockquote {...attributes}>\n            <RenderContents contents={props.children} fallback={<Quote.Children block={props.block} />} />\n        </blockquote>\n    );\n}\n\nQuote.Children = function (props: RenderBlockProps<QuoteBlock>) {\n    const source = props.block?.properties?.source;\n    const citation = props.block?.properties?.citation;\n    const hasChildren = !!source || !!citation;\n    return (\n        hasChildren\n            ? (\n                <>\n                    <p>\n                        <RenderChildren block={props.block} />\n                    </p>\n                    <footer>{source} {!!citation ? (<cite>{citation}</cite>) : (<></>)}</footer>\n                </>\n            )\n            : (<RenderChildren block={props.block} />)\n    );\n};\n\n\nexport function Table(props: RenderBlockPropsWithChildren<TableBlock>) {\n    const attributes = getAttributes(props);\n    return (\n        <table {...attributes}>\n            <RenderContents contents={props.children} fallback={<Table.Children block={props.block} />} />\n        </table>\n    );\n}\n\nTable.Children = RenderBlockChildrenFactory<TableBlock>();\n\nexport function TableBody(props: RenderBlockPropsWithChildren<TableBodyBlock>) {\n    const attributes = getAttributes(props);\n    return (\n        <tbody {...attributes}>\n            <RenderContents contents={props.children} fallback={<TableBody.Children block={props.block} />} />\n        </tbody>\n    );\n}\n\nTableBody.Children = RenderBlockChildrenFactory<TableBodyBlock>();\n\nexport function TableCaption(props: RenderBlockPropsWithChildren<TableCaptionBlock>) {\n    const attributes = getAttributes(props);\n    return (\n        <caption {...attributes}>\n            <RenderContents contents={props.children} fallback={<TableCaption.Children block={props.block} />} />\n        </caption>\n    );\n}\n\nTableCaption.Children = RenderBlockChildrenFactory<TableCaptionBlock>();\n\nexport function TableCell(props: RenderBlockPropsWithChildren<TableCellBlock>) {\n    const attributes = getAttributes(props);\n    return (\n        <td {...attributes}>\n            <RenderContents contents={props.children} fallback={<TableCell.Children block={props.block} />} />\n        </td>\n    );\n}\n\nTableCell.Children = RenderBlockChildrenFactory<TableCellBlock>();\n\nexport function TableFooter(props: RenderBlockPropsWithChildren<TableFooterBlock>) {\n    const attributes = getAttributes(props);\n    return (\n        <tfoot {...attributes}>\n            <RenderContents contents={props.children} fallback={<TableFooter.Children block={props.block} />} />\n        </tfoot>\n    );\n}\n\nTableFooter.Children = RenderBlockChildrenFactory<TableFooterBlock>();\n\nexport function TableHeader(props: RenderBlockPropsWithChildren<TableHeaderBlock>) {\n    const attributes = getAttributes(props);\n    return (\n        <thead {...attributes}>\n            <RenderContents contents={props.children} fallback={<TableHeader.Children block={props.block} />} />\n        </thead>\n    );\n}\n\nTableHeader.Children = RenderBlockChildrenFactory<TableHeaderBlock>();\n\nexport function TableHeaderCell(props: RenderBlockPropsWithChildren<TableHeaderCellBlock>) {\n    const renderContext = useContext(BlockRenderContext);\n    const sectionAncestor = findAncestorOfType(renderContext.ancestors, ['_tableHeader', '_tableBody', '_tableFooter']);\n    const attributes = getAttributes(props, { scope: sectionAncestor?.type === '_tableHeader' ? 'col' : 'row' });\n    return (\n        <th {...attributes}>\n            <RenderContents contents={props.children} fallback={<TableHeaderCell.Children block={props.block} />} />\n        </th>\n    );\n}\n\nTableHeaderCell.Children = RenderBlockChildrenFactory<TableHeaderCellBlock>();\n\nexport function TableRow(props: RenderBlockPropsWithChildren<TableRowBlock>) {\n    const attributes = getAttributes(props);\n    return (\n        <tr {...attributes}>\n            <RenderContents contents={props.children} fallback={<TableRow.Children block={props.block} />} />\n        </tr>\n    );\n}\n\nTableRow.Children = RenderBlockChildrenFactory<TableRowBlock>();\n\n\nfunction Decorators(props: DecoratorProps) {\n    const decorators = useDecorators();\n    const remainingDecorators = !!props.decorators ? [...props.decorators] : undefined;\n    const firstDecorator = !!remainingDecorators ? remainingDecorators.shift() : undefined;\n    const DecoratorComponent = !!firstDecorator ? decorators[firstDecorator] : undefined;\n\n    const render = () => {\n        if (!!DecoratorComponent) {\n            return (<DecoratorComponent block={props.block} decorator={firstDecorator} otherDecorators={remainingDecorators} />);\n        } else if (firstDecorator) {\n            return (<Decorators block={props.block} decorators={remainingDecorators} />);\n        } else {\n            return (<Fragment.Children block={props.block} />);\n        }\n    };\n\n    return render();\n}\n\nfunction DecoratorChildren(props: RenderDecoratorPropsWithChildren) {\n    return (<Decorators block={props.block} decorators={props.otherDecorators} />)\n}\n\nexport function Abbreviation(props: RenderDecoratorPropsWithChildren) {\n    const title = props?.block?.properties?.abbreviation?.title;\n    const attributes = getAttributes(props, { title });\n    return (\n        <abbr {...attributes}>\n            <RenderContents contents={props.children} fallback={<InlineCode.Children block={props.block} decorator={props.decorator} otherDecorators={props.otherDecorators} />} />\n        </abbr>\n    );\n}\n\nAbbreviation.Children = DecoratorChildren;\n\nexport function InlineCode(props: RenderDecoratorPropsWithChildren) {\n    const attributes = getAttributes(props);\n    return (\n        <code {...attributes}>\n            <RenderContents contents={props.children} fallback={<InlineCode.Children block={props.block} decorator={props.decorator} otherDecorators={props.otherDecorators} />} />\n        </code>\n    );\n}\n\nInlineCode.Children = DecoratorChildren;\n\nexport function Delete(props: RenderDecoratorPropsWithChildren) {\n    const attributes = getAttributes(props);\n    return (\n        <del {...attributes}>\n            <RenderContents contents={props.children} fallback={<Delete.Children block={props.block} decorator={props.decorator} otherDecorators={props.otherDecorators} />} />\n        </del>\n    );\n}\n\nDelete.Children = DecoratorChildren;\n\nexport function Emphasis(props: RenderDecoratorPropsWithChildren) {\n    const attributes = getAttributes(props);\n    return (\n        <em {...attributes}>\n            <RenderContents contents={props.children} fallback={<Emphasis.Children block={props.block} decorator={props.decorator} otherDecorators={props.otherDecorators} />} />\n        </em>\n    );\n}\n\nEmphasis.Children = DecoratorChildren;\n\nexport function Insert(props: RenderDecoratorPropsWithChildren) {\n    const attributes = getAttributes(props);\n    return (\n        <ins {...attributes}>\n            <RenderContents contents={props.children} fallback={<Insert.Children block={props.block} decorator={props.decorator} otherDecorators={props.otherDecorators} />} />\n        </ins>\n    );\n}\n\nInsert.Children = DecoratorChildren;\n\nexport function Keyboard(props: RenderDecoratorPropsWithChildren) {\n    const attributes = getAttributes(props);\n    return (\n        <kbd {...attributes}>\n            <RenderContents contents={props.children} fallback={<Keyboard.Children block={props.block} decorator={props.decorator} otherDecorators={props.otherDecorators} />} />\n        </kbd>\n    );\n}\n\nKeyboard.Children = DecoratorChildren;\n\nexport function LineBreak(props: RenderDecoratorPropsWithChildren) {\n    const attributes = getAttributes(props);\n    return (<br {...attributes} />);\n}\n\nLineBreak.Children = function (props: RenderDecoratorPropsWithChildren) {\n    return (<></>)\n}\n\nexport function Mark(props: RenderDecoratorPropsWithChildren) {\n    const attributes = getAttributes(props);\n    return (\n        <mark {...attributes}>\n            <RenderContents contents={props.children} fallback={<Mark.Children block={props.block} decorator={props.decorator} otherDecorators={props.otherDecorators} />} />\n        </mark>\n    );\n}\n\nMark.Children = DecoratorChildren;\n\nexport function Strong(props: RenderDecoratorPropsWithChildren) {\n    const attributes = getAttributes(props);\n    return (\n        <strong {...attributes}>\n            <RenderContents contents={props.children} fallback={<Strong.Children block={props.block} decorator={props.decorator} otherDecorators={props.otherDecorators} />} />\n        </strong>\n    );\n}\n\nStrong.Children = DecoratorChildren;\n\nexport function Strikethrough(props: RenderDecoratorPropsWithChildren) {\n    const attributes = getAttributes(props);\n    return (\n        <s {...attributes}>\n            <RenderContents contents={props.children} fallback={<Strikethrough.Children block={props.block} decorator={props.decorator} otherDecorators={props.otherDecorators} />} />\n        </s>\n    );\n}\n\nStrikethrough.Children = DecoratorChildren;\n\nexport function Subscript(props: RenderDecoratorPropsWithChildren) {\n    const attributes = getAttributes(props);\n    return (\n        <sub {...attributes}>\n            <RenderContents contents={props.children} fallback={<Subscript.Children block={props.block} decorator={props.decorator} otherDecorators={props.otherDecorators} />} />\n        </sub>\n    );\n}\n\nSubscript.Children = DecoratorChildren;\n\nexport function Superscript(props: RenderDecoratorPropsWithChildren) {\n    const attributes = getAttributes(props);\n    return (\n        <sup {...attributes}>\n            <RenderContents contents={props.children} fallback={<Superscript.Children block={props.block} decorator={props.decorator} otherDecorators={props.otherDecorators} />} />\n        </sup>\n    );\n}\n\nSuperscript.Children = DecoratorChildren;\n\nexport function Underline(props: RenderDecoratorPropsWithChildren) {\n    const attributes = getAttributes(props);\n    return (\n        <u {...attributes}>\n            <RenderContents contents={props.children} fallback={<Underline.Children block={props.block} decorator={props.decorator} otherDecorators={props.otherDecorators} />} />\n        </u>\n    );\n}\n\nUnderline.Children = DecoratorChildren;\n\nexport function Variable(props: RenderDecoratorPropsWithChildren) {\n    const attributes = getAttributes(props);\n    return (\n        <var {...attributes}>\n            <RenderContents contents={props.children} fallback={<Variable.Children block={props.block} decorator={props.decorator} otherDecorators={props.otherDecorators} />} />\n        </var>\n    );\n}\n\nVariable.Children = DecoratorChildren;\n\nconst BLOCK_RENDERERS: BlockRenderers = {\n    '_anchor': Anchor,\n    '_asset': Asset,\n    '_code': CodeWithCaption,\n    '_component': Component,\n    '_divider': Divider,\n    '_entry': Entry,\n    '_formContentType': FormContentType,\n    '_fragment': Fragment,\n    '_heading': Heading,\n    '_image': ImageWithCaption,\n    '_inlineEntry': InlineEntry,\n    '_link': Link,\n    '_liquid': Liquid,\n    '_list': List,\n    '_listItem': ListItem,\n    '_panel': Panel,\n    '_paragraph': Paragraph,\n    '_quote': Quote,\n    '_table': Table,\n    '_tableBody': TableBody,\n    '_tableCaption': TableCaption,\n    '_tableCell': TableCell,\n    '_tableFooter': TableFooter,\n    '_tableHeader': TableHeader,\n    '_tableHeaderCell': TableHeaderCell,\n    '_tableRow': TableRow,\n};\n\nconst DECORATOR_RENDERERS: DecoratorRenderers = {\n    'abbreviation': Abbreviation,\n    'code': InlineCode,\n    'delete': Delete,\n    'emphasis': Emphasis,\n    'insert': Insert,\n    'keyboard': Keyboard,\n    'linebreak': LineBreak,\n    'mark': Mark,\n    'strikethrough': Strikethrough,\n    'strong': Strong,\n    'subscript': Subscript,\n    'superscript': Superscript,\n    'underline': Underline,\n    'variable': Variable\n};"],"mappings":"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","names":["Component"]}