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```