@humjs/core 0.0.1 → 0.1.0

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.
@@ -1,7 +1,8 @@
1
1
  import { Component, Fragment, h, render, } from "preact";
2
2
  import { computed, signal } from "@preact/signals";
3
3
  import { parse } from "../../jsonify/parse.js";
4
- import { DATA_HUM_KEY, parseMarker, PartialMode, } from "../shared_internal.js";
4
+ import { hum_factories } from "../events.js";
5
+ import { DATA_HUM_KEY, FACET_HANDLER_ATTR, FACET_SIGNAL_ATTR, parseMarker, PartialMode, } from "../shared_internal.js";
5
6
  const RootKind = {
6
7
  Island: 0,
7
8
  Partial: 1,
@@ -11,12 +12,27 @@ export const Marker = {
11
12
  Island: 0,
12
13
  Partial: 1,
13
14
  Slot: 2,
15
+ Signal: 3,
16
+ };
17
+ /**
18
+ * Which kind of page level facet a DOM node carries. A facet is owned by the
19
+ * Preact tree instead of by a marker scanner: a signal rendered as a child
20
+ * becomes a `SignalText` component leaf, and a bound prop or handler stays a
21
+ * prop on the element's vnode.
22
+ */
23
+ const FacetKind = {
24
+ Signal: 0,
25
+ Element: 1,
14
26
  };
15
27
  const SLOT_SYMBOL = Symbol.for("_HUM_SLOT");
16
28
  function isSlotRef(x) {
17
29
  return (x !== null && typeof x === "object" && "kind" in x &&
18
30
  x.kind === SLOT_SYMBOL);
19
31
  }
32
+ /** Returns the signal held by a payload entry, if it is a signal entry. */
33
+ function entrySignal(entry) {
34
+ return entry !== undefined && "signal" in entry ? entry.signal : undefined;
35
+ }
20
36
  /** Partials that are currently mounted, keyed by partial name. */
21
37
  export const ACTIVE_PARTIALS = new Map();
22
38
  /**
@@ -60,6 +76,12 @@ export function maybeHideMarker(marker) {
60
76
  }
61
77
  /** Registered island components, keyed by island name. */
62
78
  export const ISLAND_REGISTRY = new Map();
79
+ /**
80
+ * Placeholders standing in for an island whose module never loaded. The tree
81
+ * renderer keeps their markup as plain children and has nowhere to hand a slot
82
+ * to, so slots are rendered in place instead of becoming props.
83
+ */
84
+ const ISLAND_PASSTHROUGH = new WeakSet();
63
85
  export const CUSTOM_PARSER = {
64
86
  Signal: (value) => signal(value),
65
87
  Computed: (value) => computed(() => value),
@@ -68,9 +90,79 @@ export const CUSTOM_PARSER = {
68
90
  name: value.name,
69
91
  id: value.id,
70
92
  }),
93
+ // A page level handler travels as the factory name plus the arguments it was
94
+ // called with; calling the factory again rebuilds the closure here.
95
+ Fn: (value) => {
96
+ const [factory, args] = value;
97
+ const fn = hum_factories[factory];
98
+ if (fn === undefined) {
99
+ throw new Error(`Hum: the handler factory "${factory}" is not registered on the ` +
100
+ `client. Import the module that defines it from the client entry or ` +
101
+ `from an island, so it is evaluated before the page hydrates.`);
102
+ }
103
+ return fn(...args);
104
+ },
71
105
  };
72
106
  export function createReviveCtx() {
73
- return { roots: [], stack: [], slots: new Map(), slotIdStack: [] };
107
+ return {
108
+ roots: [],
109
+ stack: [],
110
+ slots: new Map(),
111
+ slotIdStack: [],
112
+ facets: [],
113
+ signalStack: [],
114
+ };
115
+ }
116
+ /**
117
+ * Component leaf owning a page level signal that was rendered as a child.
118
+ * Returning the signal itself hands the text node over to `@preact/signals`,
119
+ * which patches it in place: no component above it re-renders.
120
+ */
121
+ export function SignalText(props) {
122
+ return props.signal;
123
+ }
124
+ /**
125
+ * Moves the facet attributes of an adopted element into its props: a bound
126
+ * signal stays a signal (so `@preact/signals` keeps the DOM property in sync)
127
+ * and a bound handler stays a function (so Preact attaches the listener).
128
+ */
129
+ function applyFacetAttrs(el, props, payload) {
130
+ const bindings = parseFacetAttr(el.getAttribute(FACET_SIGNAL_ATTR));
131
+ if (bindings !== null) {
132
+ delete props[FACET_SIGNAL_ATTR];
133
+ for (const name in bindings) {
134
+ const value = entrySignal(payload[bindings[name]]);
135
+ if (value !== undefined)
136
+ props[name] = value;
137
+ }
138
+ }
139
+ const events = parseFacetAttr(el.getAttribute(FACET_HANDLER_ATTR));
140
+ if (events !== null) {
141
+ delete props[FACET_HANDLER_ATTR];
142
+ for (const name in events) {
143
+ const entry = payload[events[name]];
144
+ if (entry !== undefined && "handler" in entry) {
145
+ props[name] = entry.handler;
146
+ }
147
+ }
148
+ }
149
+ }
150
+ /**
151
+ * Parses a `data-hum-signal` / `data-hum-handler` attribute, tolerating
152
+ * anything that is not one.
153
+ */
154
+ function parseFacetAttr(raw) {
155
+ if (raw === null)
156
+ return null;
157
+ try {
158
+ const parsed = JSON.parse(raw);
159
+ return parsed !== null && typeof parsed === "object"
160
+ ? parsed
161
+ : null;
162
+ }
163
+ catch {
164
+ return null;
165
+ }
74
166
  }
75
167
  function markerData(node) {
76
168
  return isHumMarkerText(node) ? node._humMarker : node.data;
@@ -83,6 +175,12 @@ function walkInner(ctx, node) {
83
175
  ctx.slotIdStack.length > 0) {
84
176
  return;
85
177
  }
178
+ // Facets inside an island or a partial are owned by that root's own tree.
179
+ if (ctx.stack.length === 0 && ctx.signalStack.length === 0 &&
180
+ (node.hasAttribute(FACET_SIGNAL_ATTR) ||
181
+ node.hasAttribute(FACET_HANDLER_ATTR))) {
182
+ ctx.facets.push({ kind: FacetKind.Element, el: node });
183
+ }
86
184
  for (let i = 0; i < node.childNodes.length; i++) {
87
185
  walkInner(ctx, node.childNodes[i]);
88
186
  }
@@ -133,6 +231,22 @@ function walkInner(ctx, node) {
133
231
  ctx.stack.push(found);
134
232
  return;
135
233
  }
234
+ if (marker.kind === "signal") {
235
+ const hidden = maybeHideMarker(node);
236
+ const facet = {
237
+ kind: FacetKind.Signal,
238
+ idx: Number(marker.parts[0]),
239
+ start: hidden,
240
+ end: null,
241
+ };
242
+ ctx.signalStack.push(facet);
243
+ // Only a signal outside every root needs a root of its own; the others
244
+ // are turned into vnodes while their region is adopted.
245
+ if (ctx.stack.length === 0 && ctx.signalStack.length === 1) {
246
+ ctx.facets.push(facet);
247
+ }
248
+ return;
249
+ }
136
250
  if (marker.kind === "close-island" || marker.kind === "close-partial") {
137
251
  const hidden = maybeHideMarker(node);
138
252
  const item = ctx.stack.pop();
@@ -140,6 +254,13 @@ function walkInner(ctx, node) {
140
254
  item.end = hidden;
141
255
  return;
142
256
  }
257
+ if (marker.kind === "close-signal") {
258
+ const hidden = maybeHideMarker(node);
259
+ const facet = ctx.signalStack.pop();
260
+ if (facet !== undefined)
261
+ facet.end = hidden;
262
+ return;
263
+ }
143
264
  if (marker.kind === "close-slot") {
144
265
  const hidden = maybeHideMarker(node);
145
266
  const id = ctx.slotIdStack.pop();
@@ -224,11 +345,12 @@ export function copyOldChildren(props, oldChildren) {
224
345
  : [oldChildren];
225
346
  }
226
347
  /**
227
- * Rebuilds a VNode tree from the DOM between `node` and `end`. Used for slots
228
- * and partial regions: the children rendered by the server are turned back
229
- * into VNodes so Preact can take over the region.
348
+ * Rebuilds a VNode tree from the DOM between `node` and `end`. Used for slots,
349
+ * partial regions and page level facets: the markup rendered by the server is
350
+ * turned back into VNodes so Preact can take over the region. Bound signals and
351
+ * handlers come back from the payload, so the adopted tree is already reactive.
230
352
  */
231
- export function domToVNode(allProps, vnodeStack, markerStack, node, end) {
353
+ export function domToVNode(payload, vnodeStack, markerStack, node, end) {
232
354
  let sib = node;
233
355
  while (sib !== null) {
234
356
  if (sib === end)
@@ -236,7 +358,7 @@ export function domToVNode(allProps, vnodeStack, markerStack, node, end) {
236
358
  if (sib._humRootFrag === true || sib instanceof DocumentFragment) {
237
359
  const first = sib.firstChild;
238
360
  if (first !== null) {
239
- domToVNode(allProps, vnodeStack, markerStack, first, end);
361
+ domToVNode(payload, vnodeStack, markerStack, first, end);
240
362
  }
241
363
  }
242
364
  else if (isElementNode(sib)) {
@@ -244,16 +366,15 @@ export function domToVNode(allProps, vnodeStack, markerStack, node, end) {
244
366
  const el = sib;
245
367
  for (let i = 0; i < el.attributes.length; i++) {
246
368
  const attr = el.attributes[i];
247
- if (attr.nodeName === DATA_HUM_KEY) {
248
- props.key = attr.nodeValue ?? undefined;
369
+ if (attr.name === DATA_HUM_KEY) {
370
+ props.key = attr.value;
249
371
  continue;
250
372
  }
251
373
  // Boolean attributes are `true` whenever they are present.
252
- props[attr.nodeName] =
253
- typeof el[attr.nodeName] === "boolean"
254
- ? true
255
- : attr.nodeValue;
374
+ props[attr.name] =
375
+ typeof el[attr.name] === "boolean" ? true : attr.value;
256
376
  }
377
+ applyFacetAttrs(el, props, payload);
257
378
  const vnode = h(el.localName, props);
258
379
  const marker = markerStack.at(-1);
259
380
  const append = marker === Marker.Slot || marker === Marker.Partial;
@@ -262,7 +383,7 @@ export function domToVNode(allProps, vnodeStack, markerStack, node, end) {
262
383
  vnodeStack.push(vnode);
263
384
  }
264
385
  if (el.firstChild !== null) {
265
- domToVNode(allProps, vnodeStack, markerStack, el.firstChild, end);
386
+ domToVNode(payload, vnodeStack, markerStack, el.firstChild, end);
266
387
  }
267
388
  if (append)
268
389
  vnodeStack.pop();
@@ -275,15 +396,38 @@ export function domToVNode(allProps, vnodeStack, markerStack, node, end) {
275
396
  const hidden = maybeHideMarker(sib);
276
397
  markerStack.push(Marker.Island);
277
398
  const name = marker.parts[0];
399
+ const key = marker.parts[2] === "" ? undefined : marker.parts[2];
278
400
  const island = ISLAND_REGISTRY.get(name);
401
+ let vnode;
279
402
  if (island === undefined) {
280
- throw new Error(`Hum: encountered unknown island "${name}".`);
403
+ // An island whose module never loaded must not take the rest of the
404
+ // tree down with it: `boot` skips such a root as well, and the
405
+ // enclosing region still has to hydrate. Its markup is kept as
406
+ // plain children, with the slots it would have received.
407
+ console.error(`Hum: unknown island "${name}".`);
408
+ vnode = h(Fragment, { key });
409
+ ISLAND_PASSTHROUGH.add(vnode);
281
410
  }
282
- const props = allProps[Number(marker.parts[1])].props;
283
- props.key = marker.parts[2] === "" ? undefined : marker.parts[2];
284
- const islandVNode = h(island, props);
285
- addVNodeChild(vnodeStack.at(-1), islandVNode);
286
- vnodeStack.push(islandVNode);
411
+ else {
412
+ const entry = payload[Number(marker.parts[1])];
413
+ const props = entry !== undefined && "props" in entry
414
+ ? entry.props
415
+ : {};
416
+ props.key = key;
417
+ vnode = h(island, props);
418
+ }
419
+ addVNodeChild(vnodeStack.at(-1), vnode);
420
+ vnodeStack.push(vnode);
421
+ sib = hidden;
422
+ }
423
+ else if (marker.kind === "signal") {
424
+ const hidden = maybeHideMarker(sib);
425
+ markerStack.push(Marker.Signal);
426
+ const vnode = h(SignalText, {
427
+ signal: entrySignal(payload[Number(marker.parts[0])]),
428
+ });
429
+ addVNodeChild(vnodeStack.at(-1), vnode);
430
+ vnodeStack.push(vnode);
287
431
  sib = hidden;
288
432
  }
289
433
  else if (marker.kind === "slot") {
@@ -297,7 +441,14 @@ export function domToVNode(allProps, vnodeStack, markerStack, node, end) {
297
441
  children: [],
298
442
  });
299
443
  const parent = vnodeStack.at(-1);
300
- parent.props[name] = vnode;
444
+ if (ISLAND_PASSTHROUGH.has(parent)) {
445
+ // Nothing is there to receive the slot, so keep its content where
446
+ // it was rendered instead.
447
+ addVNodeChild(parent, vnode);
448
+ }
449
+ else {
450
+ parent.props[name] = vnode;
451
+ }
301
452
  vnodeStack.push(vnode);
302
453
  sib = hidden;
303
454
  }
@@ -347,7 +498,7 @@ export function domToVNode(allProps, vnodeStack, markerStack, node, end) {
347
498
  continue;
348
499
  }
349
500
  else if (marker.kind === "close-island" || marker.kind === "close-slot" ||
350
- marker.kind === "close-partial") {
501
+ marker.kind === "close-partial" || marker.kind === "close-signal") {
351
502
  vnodeStack.pop();
352
503
  markerStack.pop();
353
504
  sib = maybeHideMarker(sib);
@@ -368,7 +519,7 @@ export function domToVNode(allProps, vnodeStack, markerStack, node, end) {
368
519
  }
369
520
  }
370
521
  /** Renders an island into the DOM range it was server rendered into. */
371
- export function revive(props, component, container, slots, allProps) {
522
+ export function revive(props, component, container, slots, payload) {
372
523
  const doRender = () => {
373
524
  for (const propName in props) {
374
525
  const value = props[propName];
@@ -378,41 +529,54 @@ export function revive(props, component, container, slots, allProps) {
378
529
  if (marker !== undefined && marker.end !== null) {
379
530
  const root = h(Fragment, null);
380
531
  const slotContainer = createRootFragment(container, marker.start, marker.end);
381
- domToVNode(allProps, [root], [Marker.Slot], slotContainer, marker.end);
532
+ domToVNode(payload, [root], [Marker.Slot], slotContainer, marker.end);
382
533
  props[propName] = root;
383
534
  continue;
384
535
  }
385
536
  const template = document.querySelector(`#hum-${value.id}-${value.name}`);
386
537
  if (template !== null) {
387
538
  const root = h(Fragment, null);
388
- domToVNode(allProps, [root], [Marker.Slot], template.content, null);
539
+ domToVNode(payload, [root], [Marker.Slot], template.content, null);
389
540
  props[propName] = root;
390
541
  }
391
542
  }
392
543
  render(h(component, props), container);
393
544
  };
394
- // `scheduler.postTask` keeps long hydration work off the critical path.
395
- const scheduler = globalThis
396
- .scheduler;
545
+ schedule(doRender);
546
+ }
547
+ /**
548
+ * Runs hydration work once `boot` has returned, so that neither an island nor a
549
+ * page level facet pays for a render on the critical path. Every render goes
550
+ * through here, which also keeps the order they were scheduled in.
551
+ */
552
+ function schedule(callback) {
553
+ const scheduler = globalThis.scheduler;
397
554
  if (typeof scheduler?.postTask === "function") {
398
- scheduler.postTask(doRender);
555
+ scheduler.postTask(callback);
399
556
  }
400
557
  else {
401
- setTimeout(doRender, 0);
558
+ setTimeout(callback, 0);
402
559
  }
403
560
  }
404
561
  /**
405
- * Entry point of the client runtime. Scans the server rendered DOM for island
406
- * markers and hydrates each of them with the props that were serialized into
407
- * the document.
562
+ * Entry point of the client runtime. Scans the server rendered DOM for islands,
563
+ * partials and page level facets, and hydrates each of them with what was
564
+ * serialized into the document.
565
+ *
566
+ * The scan is synchronous, but every render is scheduled through {@link
567
+ * schedule}: nothing is live yet when `boot` returns, and the document is only
568
+ * touched from the task after it.
408
569
  */
409
- export function boot(initialIslands, islandProps) {
570
+ export function boot(initialIslands, payloadJson) {
410
571
  const ctx = createReviveCtx();
411
572
  walkInner(ctx, document.body);
412
573
  for (const name in initialIslands) {
413
574
  ISLAND_REGISTRY.set(name, initialIslands[name]);
414
575
  }
415
- const allProps = parse(islandProps, CUSTOM_PARSER);
576
+ const payload = parse(payloadJson, CUSTOM_PARSER);
577
+ // Planned before the roots are revived: a host takes over the roots that fall
578
+ // inside it, so they have to be removed before anything schedules a render.
579
+ const facets = planFacets(ctx);
416
580
  for (let i = 0; i < ctx.roots.length; i++) {
417
581
  const root = ctx.roots[i];
418
582
  if (root.end === null)
@@ -424,15 +588,15 @@ export function boot(initialIslands, islandProps) {
424
588
  }
425
589
  const container = createRootFragment(root.start.parentNode, root.start, root.end);
426
590
  if (root.kind === RootKind.Island) {
427
- const entry = allProps[root.propsIdx];
428
- if (entry === undefined)
591
+ const entry = payload[root.propsIdx];
592
+ if (entry === undefined || !("props" in entry))
429
593
  continue;
430
594
  const component = ISLAND_REGISTRY.get(root.name);
431
595
  if (component === undefined) {
432
596
  console.error(`Hum: unknown island "${root.name}".`);
433
597
  continue;
434
598
  }
435
- revive(entry.props, component, container, ctx.slots, allProps);
599
+ revive(entry.props, component, container, ctx.slots, payload);
436
600
  }
437
601
  else {
438
602
  const props = {
@@ -441,10 +605,101 @@ export function boot(initialIslands, islandProps) {
441
605
  children: null,
442
606
  };
443
607
  const domRoot = h(Fragment, null);
444
- domToVNode(allProps, [domRoot], [Marker.Partial], container, root.end);
608
+ domToVNode(payload, [domRoot], [Marker.Partial], container, root.end);
445
609
  props.children = domRoot.props.children;
446
- revive(props, PartialComp, container, ctx.slots, allProps);
610
+ revive(props, PartialComp, container, ctx.slots, payload);
447
611
  }
448
612
  }
613
+ // Scheduled after the roots are, so a host renders before the facets that sit
614
+ // outside it and the order matches the code above.
615
+ schedule(() => {
616
+ for (const facet of facets) {
617
+ if (facet.kind === FacetKind.Signal) {
618
+ hydrateSignalFacet(facet, payload);
619
+ }
620
+ else {
621
+ hydrateElementFacet(facet, payload);
622
+ }
623
+ }
624
+ });
625
+ }
626
+ /**
627
+ * Facets that sit outside every island and partial need a Preact root of their
628
+ * own, because nothing else owns their DOM. This orders and filters the facets
629
+ * found by `walkInner`, and hands back the roots a host takes over:
630
+ *
631
+ * - an element facet covered by an already accepted host is dropped, the host's
632
+ * adopted tree turns it into a component leaf while it walks that subtree;
633
+ * - a host renders its whole subtree, islands and partials included, so a root
634
+ * starting inside a host is removed from `ctx.roots`: one range must never be
635
+ * rendered by two roots, which would fight over the same DOM;
636
+ * - a signal facet inside a host is dropped for the same reason.
637
+ *
638
+ * Removing the roots also removes the diagnostics `boot` runs for them, so an
639
+ * unbalanced root of a host is reported here instead.
640
+ */
641
+ function planFacets(ctx) {
642
+ const hosts = [];
643
+ for (const facet of ctx.facets) {
644
+ if (facet.kind !== FacetKind.Element)
645
+ continue;
646
+ if (hosts.some((host) => host.el.contains(facet.el)))
647
+ continue;
648
+ hosts.push(facet);
649
+ }
650
+ if (hosts.length > 0) {
651
+ ctx.roots = ctx.roots.filter((root) => {
652
+ if (!hosts.some((host) => host.el.contains(root.start)))
653
+ return true;
654
+ if (root.end !== null && root.start.parentNode !== root.end.parentNode) {
655
+ console.error(`Hum hydration error: the ${root.kind === RootKind.Island ? "island" : "partial"} "${root.name}" has invalid HTML nesting: its start and end markers ` +
656
+ `were reparented into different nodes by the browser.`);
657
+ }
658
+ return false;
659
+ });
660
+ }
661
+ const out = [...hosts];
662
+ for (const facet of ctx.facets) {
663
+ if (facet.kind !== FacetKind.Signal)
664
+ continue;
665
+ if (hosts.some((host) => host.el.contains(facet.start)))
666
+ continue;
667
+ out.push(facet);
668
+ }
669
+ return out;
670
+ }
671
+ /**
672
+ * Hands the text node of a page level signal to a `SignalText` component leaf.
673
+ * The signal patches the text node directly, so nothing above it re-renders.
674
+ */
675
+ function hydrateSignalFacet(facet, payload) {
676
+ if (facet.end === null)
677
+ return;
678
+ const parent = facet.start.parentNode;
679
+ if (parent === null || facet.end.parentNode !== parent)
680
+ return;
681
+ const container = createRootFragment(parent, facet.start, facet.end);
682
+ render(h(SignalText, { signal: entrySignal(payload[facet.idx]) }), container);
683
+ }
684
+ /**
685
+ * Adopts a page level element as a component leaf: its markup becomes a VNode
686
+ * tree (with bound signals and handlers restored from the payload) which Preact
687
+ * renders back over the range. Because the tree was derived from that very
688
+ * markup, Preact reuses the existing DOM nodes instead of recreating them.
689
+ */
690
+ function hydrateElementFacet(facet, payload) {
691
+ const el = facet.el;
692
+ const parent = el.parentNode;
693
+ if (parent === null)
694
+ return;
695
+ // A root fragment needs an anchor on either side; the element is the range.
696
+ const start = document.createTextNode("");
697
+ const end = document.createTextNode("");
698
+ parent.insertBefore(start, el);
699
+ parent.insertBefore(end, el.nextSibling);
700
+ const container = createRootFragment(parent, start, end);
701
+ const root = h(Fragment, null);
702
+ domToVNode(payload, [root], [Marker.Slot], el, end);
703
+ render(h(Fragment, null, root.props.children), container);
449
704
  }
450
705
  //# sourceMappingURL=reviver.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"reviver.js","sourceRoot":"","sources":["../../../src/runtime/client/reviver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reviver.js","sourceRoot":"","sources":["../../../src/runtime/client/reviver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ import type { Signal } from "@preact/signals";
2
+ /**
3
+ * Property stamped on every value a factory produced. It is what lets the
4
+ * server serialize a handler that would otherwise be an un-serializable
5
+ * closure, and what lets the client rebuild it: the marker carries the factory
6
+ * name plus the arguments it was called with.
7
+ */
8
+ export declare const FACTORY_MARKER = "__humFactory";
9
+ export interface FactoryMarker {
10
+ /** Name the factory is exported under, e.g. `"setFromProp"`. */
11
+ factory: string;
12
+ /** Arguments the factory was called with, in declaration order. */
13
+ args: unknown[];
14
+ }
15
+ /**
16
+ * Factories available to the client runtime, keyed by the name used in the
17
+ * payload. The client rebuilds handlers by calling these again with the revived
18
+ * arguments, which is why a handler must be created by a factory instead of a
19
+ * closure.
20
+ */
21
+ export declare const hum_factories: Record<string, (...args: any[]) => unknown>;
22
+ /** Returns the factory marker of a value, if it was produced by a factory. */
23
+ export declare function factoryMarkerOf(value: unknown): FactoryMarker | undefined;
24
+ /**
25
+ * Wraps a handler factory so its result carries a serializable marker, and
26
+ * registers it under `name` for the client runtime.
27
+ *
28
+ * `name` travels in the payload instead of the function, so it has to be unique
29
+ * in the app and stable across versions. The module a factory is defined in
30
+ * must also be evaluated in the browser—import it from the client entry, or
31
+ * from an island the page loads—otherwise the client has no implementation to
32
+ * rebuild the handler with. Arguments follow the same rules as any other page
33
+ * level prop: plain data, signals, or other factory results.
34
+ */
35
+ export declare function defineFactory<A extends unknown[], R>(name: string, fn: (...args: A) => R): (...args: A) => R;
36
+ /**
37
+ * Coerces a value read off a DOM property to the type the signal currently
38
+ * holds, so `<input type="number">` (whose `value` is a string) round-trips
39
+ * through a `Signal<number>`. Unparseable input is passed through unchanged,
40
+ * which lets a partially typed value survive.
41
+ */
42
+ export declare function coerceToSignalType(value: unknown, previous: unknown): unknown;
43
+ export interface AddOptions {
44
+ /** Upper bound, inclusive. */
45
+ max?: number;
46
+ /** Lower bound, inclusive. */
47
+ min?: number;
48
+ }
49
+ /**
50
+ * Returns an event handler that adds `delta` to a numeric signal, clamped to
51
+ * `options.min` / `options.max`.
52
+ */
53
+ export declare const add: (signal: Signal<number>, delta: number, options?: AddOptions | undefined) => (event: Event) => void;
54
+ /** Returns an event handler that sets a signal to a fixed value. */
55
+ export declare const setValue: <T>(signal: Signal<T>, value: T) => (event: Event) => void;
56
+ /** Returns an event handler that flips a boolean signal. */
57
+ export declare const toggle: (signal: Signal<boolean>) => (event: Event) => void;
58
+ /**
59
+ * Returns an event handler that copies a property off the event's
60
+ * `currentTarget` (e.g. `"value"`, `"checked"`, `"open"`) into a signal, so a
61
+ * native form control can drive a signal without a component in between.
62
+ */
63
+ export declare const setFromProp: (signal: Signal<unknown>, key: string) => (event: Event) => void;
64
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/runtime/events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE9C;;;;;GAKG;AACH,eAAO,MAAM,cAAc,iBAAiB,CAAC;AAE7C,MAAM,WAAW,aAAa;IAC5B,gEAAgE;IAChE,OAAO,EAAE,MAAM,CAAC;IAChB,mEAAmE;IACnE,IAAI,EAAE,OAAO,EAAE,CAAC;CACjB;AAED;;;;;GAKG;AACH,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CACjD,CAAC;AAEtB,8EAA8E;AAC9E,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa,GAAG,SAAS,CAKzE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,CAAC,EAClD,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,GACpB,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,CAyBnB;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAS7E;AAED,MAAM,WAAW,UAAU;IACzB,8BAA8B;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,8BAA8B;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,eAAO,MAAM,GAAG,uFAMF,KAAK,KAAK,IAOvB,CAAC;AAEF,oEAAoE;AACpE,eAAO,MAAM,QAAQ,GAElB,CAAC,0CAAyC,KAAK,KAAK,IAItD,CAAC;AAEF,4DAA4D;AAC5D,eAAO,MAAM,MAAM,uCAEmB,KAAK,KAAK,IAG/C,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,WAAW,oDAKV,KAAK,KAAK,IAQvB,CAAC"}