import '@app/styles.css'; import '@videojs/html/video/player'; import '@videojs/html/media/vimeo-video'; import { createHtmlSandboxState, createLatestLoader } from '@app/shared/html/sandbox-state'; import { loadVideoSkinTag } from '@app/shared/html/skins'; import { onSkinChange } from '@app/shared/sandbox-listener'; import { VIMEO_VIDEO_SRC } from '@app/shared/sources'; const html = String.raw; const state = createHtmlSandboxState(); const loadLatest = createLatestLoader(); async function render() { const tag = await loadLatest(() => loadVideoSkinTag(state.skin, state.styling)); if (!tag) return; document.getElementById('root')!.innerHTML = html` <${tag} class="aspect-video max-w-4xl mx-auto"> `; } render(); onSkinChange((skin) => { state.skin = skin; render(); });