import {extension as domExtension} from '@watching/clips'; import type {Api, ExtensionPoint} from '@watching/clips'; import '@remote-dom/react/polyfill'; import {type ReactNode} from 'react'; import {createRoot} from 'react-dom/client'; import {ClipRenderContext, type ClipRenderDetails} from './context.ts'; export function extension< Target extends ExtensionPoint, Query = Record, Settings = Record, >( renderReact: ( api: Api, ) => ReactNode | Promise, ) { return domExtension(async (root: any, api: any) => { const rendered = await renderReact(api); const renderDetails: ClipRenderDetails = { api, root, }; createRoot(root).render( {rendered} , ); }); }