Skip to components
ONE LIBRARY. YOUR STACK.

Vanilla TypeScript integration

The same components, styling, and interaction patterns for financial apps, reporting, and project management—across React, Vue, Angular, Svelte, Preact, and vanilla TypeScript.

Vanilla TypeScript

@revolist/ui/framework

Mount a catalog component into a DOM element without an application framework. Render again to update props, then destroy the mount when its host is removed. Native controller entries are also available for framework-owned controls.

Usage example · TypeScript
import { createFrameworkMount, uiComponents } from '@revolist/ui/framework';

const host = document.querySelector<HTMLElement>('#report-action')!;
const mount = createFrameworkMount(host, () => {});
let count = 0;

function update() {
  mount.render(uiComponents.Button, {
    rounded: true,
    variant: 'primary',
    children: 'Create report · ' + count,
    onClick: () => { count++; update(); },
  });
}
update();

// Call when your view is disposed:
// mount.destroy();

Framework adapters manage their mount lifecycle. For manual mounts, always call destroy() when the view is removed. Styles are shared; application state stays in your framework.