@getforma/core 0.3.1 → 0.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/README.md +190 -16
  2. package/dist/{chunk-KX5WRZH7.js → chunk-DPSAVBCP.js} +3 -4
  3. package/dist/chunk-DPSAVBCP.js.map +1 -0
  4. package/dist/{chunk-FPSLC62A.cjs → chunk-KH3F5NRU.cjs} +2 -4
  5. package/dist/chunk-KH3F5NRU.cjs.map +1 -0
  6. package/dist/{chunk-5H52PKGF.js → chunk-TKGUHASG.js} +20 -10
  7. package/dist/chunk-TKGUHASG.js.map +1 -0
  8. package/dist/{chunk-TSQ7AKFT.cjs → chunk-YSKF3VRA.cjs} +27 -17
  9. package/dist/chunk-YSKF3VRA.cjs.map +1 -0
  10. package/dist/forma-runtime-csp.js +1 -1
  11. package/dist/forma-runtime.js +1 -1
  12. package/dist/formajs-runtime-hardened.global.js +1 -1
  13. package/dist/formajs-runtime-hardened.global.js.map +1 -1
  14. package/dist/formajs-runtime.global.js +1 -1
  15. package/dist/formajs-runtime.global.js.map +1 -1
  16. package/dist/formajs.global.js +1 -1
  17. package/dist/formajs.global.js.map +1 -1
  18. package/dist/index.cjs +102 -75
  19. package/dist/index.cjs.map +1 -1
  20. package/dist/index.d.cts +41 -9
  21. package/dist/index.d.ts +41 -9
  22. package/dist/index.js +46 -17
  23. package/dist/index.js.map +1 -1
  24. package/dist/runtime-hardened.cjs +61 -13
  25. package/dist/runtime-hardened.cjs.map +1 -1
  26. package/dist/runtime-hardened.js +62 -14
  27. package/dist/runtime-hardened.js.map +1 -1
  28. package/dist/runtime.cjs +85 -36
  29. package/dist/runtime.cjs.map +1 -1
  30. package/dist/runtime.js +63 -14
  31. package/dist/runtime.js.map +1 -1
  32. package/dist/ssr/index.cjs +18 -10
  33. package/dist/ssr/index.cjs.map +1 -1
  34. package/dist/ssr/index.js +18 -10
  35. package/dist/ssr/index.js.map +1 -1
  36. package/dist/tc39-compat.cjs +3 -3
  37. package/dist/tc39-compat.js +1 -1
  38. package/package.json +1 -1
  39. package/dist/chunk-5H52PKGF.js.map +0 -1
  40. package/dist/chunk-FPSLC62A.cjs.map +0 -1
  41. package/dist/chunk-KX5WRZH7.js.map +0 -1
  42. package/dist/chunk-TSQ7AKFT.cjs.map +0 -1
package/dist/index.d.cts CHANGED
@@ -16,6 +16,11 @@ declare function createEffect(fn: () => void | (() => void)): () => void;
16
16
  /**
17
17
  * Create a lazy, cached computed value.
18
18
  *
19
+ * Note: Unlike SolidJS's createComputed (which is an eager synchronous
20
+ * side effect), this is a lazy cached derivation — equivalent to
21
+ * SolidJS's createMemo. Both createComputed and createMemo in FormaJS
22
+ * are identical.
23
+ *
19
24
  * ```ts
20
25
  * const [count, setCount] = createSignal(0);
21
26
  * const doubled = createComputed(() => count() * 2);
@@ -39,6 +44,11 @@ declare function createComputed<T>(fn: () => T): () => T;
39
44
  * Create a memoized computed value.
40
45
  * Identical to `createComputed` — provided for React/SolidJS familiarity.
41
46
  *
47
+ * Note: Unlike SolidJS's createComputed (which is an eager synchronous
48
+ * side effect), both createComputed and createMemo in FormaJS are lazy
49
+ * cached derivations — equivalent to SolidJS's createMemo. They are
50
+ * identical.
51
+ *
42
52
  * The computation runs lazily and caches the result. It only recomputes
43
53
  * when a signal it reads during computation changes.
44
54
  *
@@ -380,6 +390,7 @@ declare function cleanup(el: Element): void;
380
390
  * )
381
391
  * ```
382
392
  */
393
+ declare function h(tag: (props: Record<string, unknown>) => unknown, props?: Record<string, unknown> | null, ...children: unknown[]): Node;
383
394
  declare function h(tag: typeof Fragment, props?: null, ...children: unknown[]): DocumentFragment;
384
395
  declare function h(tag: string, props?: Record<string, unknown> | null, ...children: unknown[]): HTMLElement;
385
396
  /**
@@ -473,12 +484,6 @@ interface CreateListOptions {
473
484
  */
474
485
  updateOnItemChange?: 'none' | 'rerender';
475
486
  }
476
- /**
477
- * Find the longest increasing subsequence.
478
- * Returns indices into the input array.
479
- * O(n log n) time, O(n) space.
480
- */
481
- declare function longestIncreasingSubsequence(arr: number[]): number[];
482
487
  /**
483
488
  * Reconcile a DOM parent's children to match a new array of items.
484
489
  * Uses keyed reconciliation with LIS for minimum DOM operations.
@@ -712,8 +717,20 @@ declare function hydrateIsland(component: () => unknown, target: Element): Eleme
712
717
  * loads props (inline or script_tag), and hydrates each island inside
713
718
  * an independent createRoot scope with try/catch error isolation.
714
719
  */
715
- /** Function that creates a component's DOM tree (same for CSR and hydration). */
716
- type IslandHydrateFn = (props: Record<string, unknown> | null) => unknown;
720
+ /**
721
+ * Function that hydrates an island.
722
+ *
723
+ * @param el The root element of the island (`[data-forma-island]`).
724
+ * Useful for layout measurement, focus management, CSS class
725
+ * toggling, third-party library init, or reading extra `data-*`
726
+ * attributes from the server-rendered shell.
727
+ * @param props Parsed props from `data-forma-props` (inline or script block),
728
+ * or `null` if no props were provided.
729
+ * @returns A component tree (from `h()` calls) for descriptor-based
730
+ * hydration, or `undefined` for imperative islands that set up
731
+ * their own effects.
732
+ */
733
+ type IslandHydrateFn = (el: HTMLElement, props: Record<string, unknown> | null) => unknown;
717
734
  /**
718
735
  * Discover and activate all SSR-rendered islands on the page.
719
736
  *
@@ -723,6 +740,21 @@ type IslandHydrateFn = (props: Record<string, unknown> | null) => unknown;
723
740
  * @param registry Map of component names to hydration functions.
724
741
  */
725
742
  declare function activateIslands(registry: Record<string, IslandHydrateFn>): void;
743
+ /**
744
+ * Dispose a single island, tearing down its reactive root and all effects.
745
+ *
746
+ * Safe to call multiple times (idempotent). Sets `data-forma-status` to
747
+ * `"disposed"` so the island can be distinguished from active/error states.
748
+ */
749
+ declare function deactivateIsland(el: HTMLElement): void;
750
+ /**
751
+ * Dispose ALL active islands under a root element (or the whole document).
752
+ *
753
+ * Use this when swapping module content — e.g., replacing the contents of
754
+ * a `<forma-stage>` Shadow DOM during AI generation. Prevents leaked effects
755
+ * and event listeners from accumulating across swaps.
756
+ */
757
+ declare function deactivateAllIslands(root?: Element | Document): void;
726
758
 
727
759
  /**
728
760
  * Forma Component - Define
@@ -1407,4 +1439,4 @@ declare function renderLocal(slotsJson: string): Promise<string>;
1407
1439
  /** Fragment render (single island) via WASM. */
1408
1440
  declare function renderIsland(slotsJson: string, islandId: number): Promise<string>;
1409
1441
 
1410
- export { $, $$, $$serverFunction, type Action, type ActionOptions, Fragment, type IslandHydrateFn, type MutationResponse, type RPCRequest, type RPCResponse, activateIslands, addClass, applyRevalidation, batch, children, cleanup, closest, createAction, createBus, createComputed, createContext, createEffect, createErrorBoundary, createFetch, createHistory, createIndexedDB, createList, createLocalStorage, createMemo, createPortal, createRPCMiddleware, createReducer, createRef, createResource, createRoot, createSSE, createSessionStorage, createShow, createStore, createSuspense, createSwitch, createText, createWebSocket, defineComponent, delegate, disposeComponent, enableAutoRevalidation, fetchJSON, fragment, getRegisteredEndpoints, getServerFunction, h, handleRPC, hydrateIsland, inject, longestIncreasingSubsequence, mount, nextSibling, on, onCleanup, onError, onIntersect, onKey, onMount, onMutation, onResize, onUnmount, parent, persist, prevSibling, provide, reconcileList, registerResource, registerServerFunction, removeClass, renderIsland, renderLocal, setAttr, setHTML, setHTMLUnsafe, setStyle, setText, siblings, toggleClass, trackDisposer, unprovide, unregisterResource, untrack, withRevalidation };
1442
+ export { $, $$, $$serverFunction, type Action, type ActionOptions, Fragment, type IslandHydrateFn, type MutationResponse, type RPCRequest, type RPCResponse, activateIslands, addClass, applyRevalidation, batch, children, cleanup, closest, createAction, createBus, createComputed, createContext, createEffect, createErrorBoundary, createFetch, createHistory, createIndexedDB, createList, createLocalStorage, createMemo, createPortal, createRPCMiddleware, createReducer, createRef, createResource, createRoot, createSSE, createSessionStorage, createShow, createStore, createSuspense, createSwitch, createText, createWebSocket, deactivateAllIslands, deactivateIsland, defineComponent, delegate, disposeComponent, enableAutoRevalidation, fetchJSON, fragment, getRegisteredEndpoints, getServerFunction, h, handleRPC, hydrateIsland, inject, mount, nextSibling, on, onCleanup, onError, onIntersect, onKey, onMount, onMutation, onResize, onUnmount, parent, persist, prevSibling, provide, reconcileList, registerResource, registerServerFunction, removeClass, renderIsland, renderLocal, setAttr, setHTML, setHTMLUnsafe, setStyle, setText, siblings, toggleClass, trackDisposer, unprovide, unregisterResource, untrack, withRevalidation };
package/dist/index.d.ts CHANGED
@@ -16,6 +16,11 @@ declare function createEffect(fn: () => void | (() => void)): () => void;
16
16
  /**
17
17
  * Create a lazy, cached computed value.
18
18
  *
19
+ * Note: Unlike SolidJS's createComputed (which is an eager synchronous
20
+ * side effect), this is a lazy cached derivation — equivalent to
21
+ * SolidJS's createMemo. Both createComputed and createMemo in FormaJS
22
+ * are identical.
23
+ *
19
24
  * ```ts
20
25
  * const [count, setCount] = createSignal(0);
21
26
  * const doubled = createComputed(() => count() * 2);
@@ -39,6 +44,11 @@ declare function createComputed<T>(fn: () => T): () => T;
39
44
  * Create a memoized computed value.
40
45
  * Identical to `createComputed` — provided for React/SolidJS familiarity.
41
46
  *
47
+ * Note: Unlike SolidJS's createComputed (which is an eager synchronous
48
+ * side effect), both createComputed and createMemo in FormaJS are lazy
49
+ * cached derivations — equivalent to SolidJS's createMemo. They are
50
+ * identical.
51
+ *
42
52
  * The computation runs lazily and caches the result. It only recomputes
43
53
  * when a signal it reads during computation changes.
44
54
  *
@@ -380,6 +390,7 @@ declare function cleanup(el: Element): void;
380
390
  * )
381
391
  * ```
382
392
  */
393
+ declare function h(tag: (props: Record<string, unknown>) => unknown, props?: Record<string, unknown> | null, ...children: unknown[]): Node;
383
394
  declare function h(tag: typeof Fragment, props?: null, ...children: unknown[]): DocumentFragment;
384
395
  declare function h(tag: string, props?: Record<string, unknown> | null, ...children: unknown[]): HTMLElement;
385
396
  /**
@@ -473,12 +484,6 @@ interface CreateListOptions {
473
484
  */
474
485
  updateOnItemChange?: 'none' | 'rerender';
475
486
  }
476
- /**
477
- * Find the longest increasing subsequence.
478
- * Returns indices into the input array.
479
- * O(n log n) time, O(n) space.
480
- */
481
- declare function longestIncreasingSubsequence(arr: number[]): number[];
482
487
  /**
483
488
  * Reconcile a DOM parent's children to match a new array of items.
484
489
  * Uses keyed reconciliation with LIS for minimum DOM operations.
@@ -712,8 +717,20 @@ declare function hydrateIsland(component: () => unknown, target: Element): Eleme
712
717
  * loads props (inline or script_tag), and hydrates each island inside
713
718
  * an independent createRoot scope with try/catch error isolation.
714
719
  */
715
- /** Function that creates a component's DOM tree (same for CSR and hydration). */
716
- type IslandHydrateFn = (props: Record<string, unknown> | null) => unknown;
720
+ /**
721
+ * Function that hydrates an island.
722
+ *
723
+ * @param el The root element of the island (`[data-forma-island]`).
724
+ * Useful for layout measurement, focus management, CSS class
725
+ * toggling, third-party library init, or reading extra `data-*`
726
+ * attributes from the server-rendered shell.
727
+ * @param props Parsed props from `data-forma-props` (inline or script block),
728
+ * or `null` if no props were provided.
729
+ * @returns A component tree (from `h()` calls) for descriptor-based
730
+ * hydration, or `undefined` for imperative islands that set up
731
+ * their own effects.
732
+ */
733
+ type IslandHydrateFn = (el: HTMLElement, props: Record<string, unknown> | null) => unknown;
717
734
  /**
718
735
  * Discover and activate all SSR-rendered islands on the page.
719
736
  *
@@ -723,6 +740,21 @@ type IslandHydrateFn = (props: Record<string, unknown> | null) => unknown;
723
740
  * @param registry Map of component names to hydration functions.
724
741
  */
725
742
  declare function activateIslands(registry: Record<string, IslandHydrateFn>): void;
743
+ /**
744
+ * Dispose a single island, tearing down its reactive root and all effects.
745
+ *
746
+ * Safe to call multiple times (idempotent). Sets `data-forma-status` to
747
+ * `"disposed"` so the island can be distinguished from active/error states.
748
+ */
749
+ declare function deactivateIsland(el: HTMLElement): void;
750
+ /**
751
+ * Dispose ALL active islands under a root element (or the whole document).
752
+ *
753
+ * Use this when swapping module content — e.g., replacing the contents of
754
+ * a `<forma-stage>` Shadow DOM during AI generation. Prevents leaked effects
755
+ * and event listeners from accumulating across swaps.
756
+ */
757
+ declare function deactivateAllIslands(root?: Element | Document): void;
726
758
 
727
759
  /**
728
760
  * Forma Component - Define
@@ -1407,4 +1439,4 @@ declare function renderLocal(slotsJson: string): Promise<string>;
1407
1439
  /** Fragment render (single island) via WASM. */
1408
1440
  declare function renderIsland(slotsJson: string, islandId: number): Promise<string>;
1409
1441
 
1410
- export { $, $$, $$serverFunction, type Action, type ActionOptions, Fragment, type IslandHydrateFn, type MutationResponse, type RPCRequest, type RPCResponse, activateIslands, addClass, applyRevalidation, batch, children, cleanup, closest, createAction, createBus, createComputed, createContext, createEffect, createErrorBoundary, createFetch, createHistory, createIndexedDB, createList, createLocalStorage, createMemo, createPortal, createRPCMiddleware, createReducer, createRef, createResource, createRoot, createSSE, createSessionStorage, createShow, createStore, createSuspense, createSwitch, createText, createWebSocket, defineComponent, delegate, disposeComponent, enableAutoRevalidation, fetchJSON, fragment, getRegisteredEndpoints, getServerFunction, h, handleRPC, hydrateIsland, inject, longestIncreasingSubsequence, mount, nextSibling, on, onCleanup, onError, onIntersect, onKey, onMount, onMutation, onResize, onUnmount, parent, persist, prevSibling, provide, reconcileList, registerResource, registerServerFunction, removeClass, renderIsland, renderLocal, setAttr, setHTML, setHTMLUnsafe, setStyle, setText, siblings, toggleClass, trackDisposer, unprovide, unregisterResource, untrack, withRevalidation };
1442
+ export { $, $$, $$serverFunction, type Action, type ActionOptions, Fragment, type IslandHydrateFn, type MutationResponse, type RPCRequest, type RPCResponse, activateIslands, addClass, applyRevalidation, batch, children, cleanup, closest, createAction, createBus, createComputed, createContext, createEffect, createErrorBoundary, createFetch, createHistory, createIndexedDB, createList, createLocalStorage, createMemo, createPortal, createRPCMiddleware, createReducer, createRef, createResource, createRoot, createSSE, createSessionStorage, createShow, createStore, createSuspense, createSwitch, createText, createWebSocket, deactivateAllIslands, deactivateIsland, defineComponent, delegate, disposeComponent, enableAutoRevalidation, fetchJSON, fragment, getRegisteredEndpoints, getServerFunction, h, handleRPC, hydrateIsland, inject, mount, nextSibling, on, onCleanup, onError, onIntersect, onKey, onMount, onMutation, onResize, onUnmount, parent, persist, prevSibling, provide, reconcileList, registerResource, registerServerFunction, removeClass, renderIsland, renderLocal, setAttr, setHTML, setHTMLUnsafe, setStyle, setText, siblings, toggleClass, trackDisposer, unprovide, unregisterResource, untrack, withRevalidation };
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
- import { internalEffect, createRoot, hydrateIsland, untrack, createEffect, pushSuspenseContext, popSuspenseContext, __DEV__, batch } from './chunk-5H52PKGF.js';
2
- export { Fragment, batch, cleanup, createEffect, createList, createMemo, createReducer, createRef, createResource, createRoot, createShow, fragment, h, hydrateIsland, longestIncreasingSubsequence, on, onCleanup, onError, reconcileList, untrack } from './chunk-5H52PKGF.js';
3
- import { createSignal, createValueSignal } from './chunk-KX5WRZH7.js';
4
- export { createComputed, createSignal } from './chunk-KX5WRZH7.js';
1
+ import { internalEffect, createRoot, hydrateIsland, untrack, createEffect, pushSuspenseContext, popSuspenseContext, __DEV__, reportError, batch } from './chunk-TKGUHASG.js';
2
+ export { Fragment, batch, cleanup, createEffect, createList, createMemo, createReducer, createRef, createResource, createRoot, createShow, fragment, h, hydrateIsland, on, onCleanup, onError, reconcileList, untrack } from './chunk-TKGUHASG.js';
3
+ import { createSignal } from './chunk-DPSAVBCP.js';
4
+ export { createComputed, createSignal } from './chunk-DPSAVBCP.js';
5
5
 
6
6
  // src/dom/text.ts
7
7
  function createText(value) {
@@ -243,9 +243,6 @@ function activateIslands(registry2) {
243
243
  continue;
244
244
  }
245
245
  const trigger = root.getAttribute("data-forma-hydrate") || "load";
246
- if (trigger === "interaction" || trigger === "idle") {
247
- if (__DEV__) console.warn(`[forma] Trigger "${trigger}" not yet implemented for island "${componentName}" (id=${id}), falling back to load`);
248
- }
249
246
  if (trigger === "visible") {
250
247
  const observer = new IntersectionObserver(
251
248
  (entries) => {
@@ -258,18 +255,47 @@ function activateIslands(registry2) {
258
255
  { rootMargin: "200px" }
259
256
  );
260
257
  observer.observe(root);
258
+ } else if (trigger === "idle") {
259
+ const hydrate = () => hydrateIslandRoot(root, id, componentName, hydrateFn, sharedProps);
260
+ if (typeof requestIdleCallback === "function") {
261
+ requestIdleCallback(hydrate);
262
+ } else {
263
+ setTimeout(hydrate, 200);
264
+ }
265
+ } else if (trigger === "interaction") {
266
+ const hydrate = () => {
267
+ root.removeEventListener("pointerdown", hydrate, true);
268
+ root.removeEventListener("focusin", hydrate, true);
269
+ hydrateIslandRoot(root, id, componentName, hydrateFn, sharedProps);
270
+ };
271
+ root.addEventListener("pointerdown", hydrate, { capture: true, once: true });
272
+ root.addEventListener("focusin", hydrate, { capture: true, once: true });
261
273
  } else {
262
274
  hydrateIslandRoot(root, id, componentName, hydrateFn, sharedProps);
263
275
  }
264
276
  }
265
277
  }
278
+ function deactivateIsland(el) {
279
+ const dispose = el.__formaDispose;
280
+ if (typeof dispose === "function") {
281
+ dispose();
282
+ delete el.__formaDispose;
283
+ el.setAttribute("data-forma-status", "disposed");
284
+ }
285
+ }
286
+ function deactivateAllIslands(root = document) {
287
+ const islands = root.querySelectorAll('[data-forma-status="active"]');
288
+ for (const island of islands) {
289
+ deactivateIsland(island);
290
+ }
291
+ }
266
292
  function hydrateIslandRoot(root, id, componentName, hydrateFn, sharedProps) {
267
293
  try {
268
294
  const props = loadIslandProps(root, id, sharedProps);
269
295
  root.setAttribute("data-forma-status", "hydrating");
270
296
  let activeRoot = root;
271
297
  createRoot((dispose) => {
272
- activeRoot = hydrateIsland(() => hydrateFn(props), root);
298
+ activeRoot = hydrateIsland(() => hydrateFn(root, props), root);
273
299
  activeRoot.__formaDispose = dispose;
274
300
  });
275
301
  activeRoot.setAttribute("data-forma-status", "active");
@@ -322,13 +348,15 @@ function defineComponent(setupOrDef) {
322
348
  for (const cb of ctx.unmountCallbacks) {
323
349
  try {
324
350
  cb();
325
- } catch {
351
+ } catch (e) {
352
+ reportError(e, "onUnmount");
326
353
  }
327
354
  }
328
355
  for (const d of ctx.disposers) {
329
356
  try {
330
357
  d();
331
- } catch {
358
+ } catch (e) {
359
+ reportError(e, "component disposer");
332
360
  }
333
361
  }
334
362
  ctx.disposers.length = 0;
@@ -342,7 +370,8 @@ function defineComponent(setupOrDef) {
342
370
  if (typeof cleanup2 === "function") {
343
371
  ctx.unmountCallbacks.push(cleanup2);
344
372
  }
345
- } catch {
373
+ } catch (e) {
374
+ reportError(e, "onMount");
346
375
  }
347
376
  }
348
377
  return dom;
@@ -616,9 +645,9 @@ function createHistory(source, options) {
616
645
  const maxLength = options?.maxLength ?? 100;
617
646
  let _stack = [sourceGet()];
618
647
  let _cursor = 0;
619
- const [stackSignal, setStackSignal] = createValueSignal([..._stack]);
620
- const [cursorSignal, setCursorSignal] = createValueSignal(_cursor);
621
- const [stackLenSignal, setStackLenSignal] = createValueSignal(_stack.length);
648
+ const [stackSignal, setStackSignal] = createSignal([..._stack]);
649
+ const [cursorSignal, setCursorSignal] = createSignal(_cursor);
650
+ const [stackLenSignal, setStackLenSignal] = createSignal(_stack.length);
622
651
  function syncSignals() {
623
652
  batch(() => {
624
653
  setStackSignal([..._stack]);
@@ -1315,8 +1344,8 @@ function createWebSocket(url, options) {
1315
1344
 
1316
1345
  // src/server/action.ts
1317
1346
  function createAction(serverFn, options) {
1318
- const [pending, setPending] = createValueSignal(false);
1319
- const [error, setError] = createValueSignal(void 0);
1347
+ const [pending, setPending] = createSignal(false);
1348
+ const [error, setError] = createSignal(void 0);
1320
1349
  const action = async (...args) => {
1321
1350
  setPending(true);
1322
1351
  setError(void 0);
@@ -1507,6 +1536,6 @@ async function renderIsland(slotsJson, islandId) {
1507
1536
  return wasm.render_island(ir, slotsJson, islandId);
1508
1537
  }
1509
1538
 
1510
- export { $, $$, $$serverFunction, activateIslands, addClass, applyRevalidation, children, closest, createAction, createBus, createContext, createErrorBoundary, createFetch, createHistory, createIndexedDB, createLocalStorage, createPortal, createRPCMiddleware, createSSE, createSessionStorage, createStore, createSuspense, createSwitch, createText, createWebSocket, defineComponent, delegate, disposeComponent, enableAutoRevalidation, fetchJSON, getRegisteredEndpoints, getServerFunction, handleRPC, inject, mount, nextSibling, onIntersect, onKey, onMount, onMutation, onResize, onUnmount, parent, persist, prevSibling, provide, registerResource, registerServerFunction, removeClass, renderIsland, renderLocal, setAttr, setHTML, setHTMLUnsafe, setStyle, setText, siblings, toggleClass, trackDisposer, unprovide, unregisterResource, withRevalidation };
1539
+ export { $, $$, $$serverFunction, activateIslands, addClass, applyRevalidation, children, closest, createAction, createBus, createContext, createErrorBoundary, createFetch, createHistory, createIndexedDB, createLocalStorage, createPortal, createRPCMiddleware, createSSE, createSessionStorage, createStore, createSuspense, createSwitch, createText, createWebSocket, deactivateAllIslands, deactivateIsland, defineComponent, delegate, disposeComponent, enableAutoRevalidation, fetchJSON, getRegisteredEndpoints, getServerFunction, handleRPC, inject, mount, nextSibling, onIntersect, onKey, onMount, onMutation, onResize, onUnmount, parent, persist, prevSibling, provide, registerResource, registerServerFunction, removeClass, renderIsland, renderLocal, setAttr, setHTML, setHTMLUnsafe, setStyle, setText, siblings, toggleClass, trackDisposer, unprovide, unregisterResource, withRevalidation };
1511
1540
  //# sourceMappingURL=index.js.map
1512
1541
  //# sourceMappingURL=index.js.map