a reactive (signals based) hypermedia web framework (wip) stormlightlabs.github.io/volt/
hypermedia frontend signals
1--- 2version: 1.0 3updated: 2025-10-18 4--- 5 6# plugin 7 8Plugin system for extending VoltX.js with custom bindings 9 10## registerPlugin 11 12Register a custom plugin with a given name. 13Plugins extend VoltX.js with custom data-volt-* attribute bindings. 14 15```typescript 16export function registerPlugin(name: string, handler: PluginHandler): void 17``` 18 19**Example:** 20 21```typescript 22registerPlugin('tooltip', (context, value) => { 23 const tooltip = document.createElement('div'); 24 tooltip.className = 'tooltip'; 25 tooltip.textContent = value; 26 context.element.addEventListener('mouseenter', () => { 27 document.body.appendChild(tooltip); 28 }); 29 context.element.addEventListener('mouseleave', () => { 30 tooltip.remove(); 31 }); 32 context.addCleanup(() => tooltip.remove()); 33}); 34``` 35 36## getPlugin 37 38Get a plugin handler by name. 39 40```typescript 41export function getPlugin(name: string): PluginHandler | undefined 42``` 43 44## hasPlugin 45 46Check if a plugin is registered. 47 48```typescript 49export function hasPlugin(name: string): boolean 50``` 51 52## unregisterPlugin 53 54Unregister a plugin by name. 55 56```typescript 57export function unregisterPlugin(name: string): boolean 58``` 59 60## getRegisteredPlugins 61 62Get all registered plugin names. 63 64```typescript 65export function getRegisteredPlugins(): string[] 66``` 67 68## clearPlugins 69 70Clear all registered plugins. 71 72```typescript 73export function clearPlugins(): void 74```