@livetemplate/client 0.11.3 → 0.11.5

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.
@@ -45,6 +45,42 @@ export declare function setupFxLifecycleListeners(rootElement: Element): void;
45
45
  */
46
46
  export declare function teardownFxLifecycleListeners(rootElement: Element): void;
47
47
  export declare function handleScrollDirectives(rootElement: Element): void;
48
+ /**
49
+ * Cancel and forget all active `lvt-fx:auto-click` timers. Called from
50
+ * the LiveTemplate client's `disconnect()` so per-session timer state
51
+ * doesn't survive across a session boundary (the next session re-arms
52
+ * fresh on its first render pass). Safe to call when no timers exist.
53
+ *
54
+ * Multi-client scope warning: the timer Map is module-level (matching
55
+ * the existing `animatedElements` / `scrollResetPriors` pattern), so
56
+ * this teardown cancels timers across every `LiveTemplateClient`
57
+ * instance on the page. If two clients coexist (e.g. a layout client
58
+ * and a widget client), disconnect order matters — the surviving
59
+ * client's pending auto-clicks are cancelled along with the
60
+ * disconnecting client's. Surviving clients re-arm on their next
61
+ * render pass, but any auto-click that was about to fire mid-window
62
+ * is lost. Per-instance scoping would solve this but is a larger
63
+ * refactor (the existing two singletons would need the same
64
+ * treatment) and is deferred until a real multi-client use case
65
+ * appears.
66
+ */
67
+ export declare function teardownAutoClickTimers(): void;
68
+ /**
69
+ * Apply auto-click directives. `lvt-fx:auto-click="<delay-ms>:<button-name>"`
70
+ * arms a timer when the element is first seen with this spec; on fire, the
71
+ * directive locates a descendant `[name=<button-name>]` and synthesizes a
72
+ * click on it — funneling through the existing event-delegation pipeline
73
+ * so the server-side action runs identically to a user click. Use case:
74
+ * auto-dismiss a toast/banner after N ms by clicking its existing dismiss
75
+ * button (which already fires the dismissBanner server action).
76
+ *
77
+ * Idempotent across renders: an element that re-appears with the same
78
+ * spec keeps its existing timer. A spec change cancels and re-arms. An
79
+ * element that disappears has its timer canceled on the next render's
80
+ * sweep (and even if the sweep doesn't run first, the fire-time
81
+ * isConnected check skips the click).
82
+ */
83
+ export declare function handleAutoClickDirectives(rootElement: Element): void;
48
84
  /**
49
85
  * Apply highlight directives to elements with lvt-fx:highlight attributes.
50
86
  * Configuration read from CSS custom properties:
@@ -68,4 +104,53 @@ export declare function handleToastDirectives(rootElement: Element): void;
68
104
  * the user clicks outside the toast stack. Called once at connect time.
69
105
  */
70
106
  export declare function setupToastClickOutside(): void;
107
+ /**
108
+ * Activate Declarative Shadow DOM for `<template shadowrootmode>` elements
109
+ * that the client inserted via DOM APIs (innerHTML setter, morphdom's
110
+ * createElement+appendChild path). The HTML parser activates declarative
111
+ * shadow roots only at parse time or via setHTMLUnsafe / parseHTMLUnsafe;
112
+ * a `<template shadowrootmode>` set via `.innerHTML = ...` is parked as a
113
+ * plain template with content but no attached shadow root. This sweep
114
+ * closes that gap so server-emitted shadow roots survive a client
115
+ * re-render.
116
+ *
117
+ * For each matching template found under rootElement:
118
+ * - attach a shadow root on the parent (open by default; "closed" when
119
+ * shadowrootmode="closed");
120
+ * - move the template's content into the shadow root (replaceChildren
121
+ * accepts a DocumentFragment and re-parents its children atomically,
122
+ * so re-renders cleanly reset prior shadow content);
123
+ * - remove the template.
124
+ *
125
+ * Hosts that can't accept a shadow root (a small fixed set: <input>,
126
+ * <textarea>, void elements, etc.) silently drop the template — better
127
+ * than an unhandled exception that kills the render.
128
+ *
129
+ * Closed-mode roots are tracked in a module-level WeakMap so re-renders
130
+ * can locate them (parent.shadowRoot returns null for closed roots).
131
+ *
132
+ * Idempotent: a re-run with no remaining templates is one qsa walk and
133
+ * an early return (sub-millisecond on hundreds-of-rows pages).
134
+ *
135
+ * Known limitations:
136
+ *
137
+ * - Nested DSD is inert on EVERY render, not just re-renders. A
138
+ * `<template>`'s content lives in a DocumentFragment (`tpl.content`),
139
+ * not in the light DOM, and `querySelectorAll` does not descend into
140
+ * that fragment. So a `<template shadowrootmode>` nested inside
141
+ * another `<template>` is never in the qsa result. Once the outer
142
+ * shadow has been attached, the inner template ends up behind a
143
+ * shadow boundary — still unreachable. The fix would be a recursive
144
+ * sweep per new shadow root from within this loop.
145
+ *
146
+ * - Shadow-root options (`delegatesFocus`, `clonable`, `serializable`,
147
+ * even `mode`) are fixed at first attach. A re-render that toggles
148
+ * `shadowrootdelegatesfocus` on a host that already has a shadow root
149
+ * won't change the existing root's focus behaviour — re-attach isn't
150
+ * possible. Matches the HTML parser, which would have made the same
151
+ * one-shot decision; if the server needs to flip these flags, it
152
+ * needs to swap the host element entirely. The mode-mismatch case
153
+ * also logs a console.warn so the divergence is visible.
154
+ */
155
+ export declare function handleShadowRootHydration(rootElement: Element): void;
71
156
  //# sourceMappingURL=directives.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"directives.d.ts","sourceRoot":"","sources":["../../dom/directives.ts"],"names":[],"mappings":"AAmBA;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iCAAiC,IAAI,IAAI,CAExD;AAsBD;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,IAAI,CA0CvF;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,WAAW,EAAE,OAAO,GAAG,IAAI,CAWrE;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAC1C,WAAW,EAAE,OAAO,EACpB,SAAS,EAAE,MAAM,EACjB,UAAU,CAAC,EAAE,MAAM,GAClB,IAAI,CAiBN;AAsJD;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,OAAO,GAAG,IAAI,CAiBpE;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,WAAW,EAAE,OAAO,GAAG,IAAI,CAUvE;AAaD,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,OAAO,GAAG,IAAI,CAMjE;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,OAAO,GAAG,IAAI,CAMpE;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,OAAO,GAAG,IAAI,CAQlE;AAwCD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,OAAO,GAAG,IAAI,CA4BhE;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,IAAI,CAW7C"}
1
+ {"version":3,"file":"directives.d.ts","sourceRoot":"","sources":["../../dom/directives.ts"],"names":[],"mappings":"AA4CA;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iCAAiC,IAAI,IAAI,CAKxD;AAsBD;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,IAAI,CA0CvF;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,WAAW,EAAE,OAAO,GAAG,IAAI,CAWrE;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAC1C,WAAW,EAAE,OAAO,EACpB,SAAS,EAAE,MAAM,EACjB,UAAU,CAAC,EAAE,MAAM,GAClB,IAAI,CAiBN;AAiLD;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,OAAO,GAAG,IAAI,CAiBpE;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,WAAW,EAAE,OAAO,GAAG,IAAI,CAUvE;AAaD,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,OAAO,GAAG,IAAI,CAMjE;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,uBAAuB,IAAI,IAAI,CAG9C;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,OAAO,GAAG,IAAI,CA8FpE;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,OAAO,GAAG,IAAI,CAMpE;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,OAAO,GAAG,IAAI,CAQlE;AAwCD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,OAAO,GAAG,IAAI,CA4BhE;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,IAAI,CAW7C;AAkFD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,OAAO,GAAG,IAAI,CAyGpE"}
@@ -7,10 +7,13 @@ exports.processFxLifecycleAttributes = processFxLifecycleAttributes;
7
7
  exports.setupFxLifecycleListeners = setupFxLifecycleListeners;
8
8
  exports.teardownFxLifecycleListeners = teardownFxLifecycleListeners;
9
9
  exports.handleScrollDirectives = handleScrollDirectives;
10
+ exports.teardownAutoClickTimers = teardownAutoClickTimers;
11
+ exports.handleAutoClickDirectives = handleAutoClickDirectives;
10
12
  exports.handleHighlightDirectives = handleHighlightDirectives;
11
13
  exports.handleAnimateDirectives = handleAnimateDirectives;
12
14
  exports.handleToastDirectives = handleToastDirectives;
13
15
  exports.setupToastClickOutside = setupToastClickOutside;
16
+ exports.handleShadowRootHydration = handleShadowRootHydration;
14
17
  const reactive_attributes_1 = require("./reactive-attributes");
15
18
  // ─── Trigger parsing for lvt-fx: attributes ─────────────────────────────────
16
19
  const FX_LIFECYCLE_SET = new Set(["pending", "success", "error", "done"]);
@@ -26,6 +29,26 @@ const FX_LIFECYCLE_SET = new Set(["pending", "success", "error", "done"]);
26
29
  // in-place updates (already in the set, so they skip). Use cases that
27
30
  // want a visible pulse on every update should reach for lvt-fx:highlight.
28
31
  let animatedElements = new WeakSet();
32
+ // Tracks the prior value of the watched attribute for each element using
33
+ // `lvt-fx:scroll="reset-on:<attr>"`. We can't stash the prior value as a
34
+ // data-* attribute — morphdom would diff against it and constantly fight
35
+ // the reset. WeakMap auto-cleans when the element is GC'd.
36
+ let scrollResetPriors = new WeakMap();
37
+ // Active timers for `lvt-fx:auto-click="<delay-ms>:<button-name>"`. Stored
38
+ // keyed by element so we can detect: (a) element re-renders unchanged →
39
+ // don't re-arm, (b) spec changed → cancel + re-arm, (c) element removed →
40
+ // cancel. Strong Map (not WeakMap) so we can iterate for the disconnected-
41
+ // element sweep on each render pass.
42
+ //
43
+ // Leak management: cleanup of stale entries depends on render continuity —
44
+ // `handleAutoClickDirectives` runs the sweep on every render pass, so an
45
+ // element removed between renders is collected on the next one. If the
46
+ // page stops rendering entirely (e.g. websocket dies and is never
47
+ // reconnected) while elements still have timers, those entries hold
48
+ // strong refs until tear-down. In practice the timer's own fire-time
49
+ // `isConnected` guard makes any leftover harmless — it would skip the
50
+ // `.click()` for a disconnected node — but the Map itself remains.
51
+ let autoClickTimers = new Map();
29
52
  /**
30
53
  * Test-only: reset the module-level animatedElements WeakSet. Required
31
54
  * for tests that reuse the same DOM nodes across cases — without this,
@@ -43,6 +66,10 @@ let animatedElements = new WeakSet();
43
66
  */
44
67
  function __resetAnimatedElementsForTesting() {
45
68
  animatedElements = new WeakSet();
69
+ scrollResetPriors = new WeakMap();
70
+ for (const { timer } of autoClickTimers.values())
71
+ clearTimeout(timer);
72
+ autoClickTimers = new Map();
46
73
  }
47
74
  /**
48
75
  * Parse a lvt-fx:{effect}[:on:[{action}:]{trigger}] attribute name.
@@ -281,8 +308,36 @@ function applyFxEffect(htmlElement, effect, config) {
281
308
  }
282
309
  case "preserve":
283
310
  break;
284
- default:
311
+ default: {
312
+ // `reset-on:<attr-name>` — reset scrollLeft/scrollTop to 0
313
+ // whenever the value of `<attr-name>` differs from the last
314
+ // render. Use case: an element whose content swaps without the
315
+ // node itself being replaced (morphdom reuse), where the
316
+ // previous scroll position is meaningless for the new content.
317
+ if (mode.startsWith("reset-on:")) {
318
+ const attrName = mode.slice("reset-on:".length);
319
+ if (!attrName) {
320
+ console.warn(`lvt-fx:scroll="reset-on:" requires an attribute name`);
321
+ break;
322
+ }
323
+ const currentValue = htmlElement.getAttribute(attrName);
324
+ const seen = scrollResetPriors.has(htmlElement);
325
+ if (!seen) {
326
+ // First paint — establish the prior, don't reset. The
327
+ // directive's semantic is "reset on *change*"; if a caller
328
+ // has set scroll programmatically before our first sweep
329
+ // (session restore, deep link, etc.), we must not clobber it.
330
+ scrollResetPriors.set(htmlElement, currentValue);
331
+ }
332
+ else if (scrollResetPriors.get(htmlElement) !== currentValue) {
333
+ scrollResetPriors.set(htmlElement, currentValue);
334
+ htmlElement.scrollLeft = 0;
335
+ htmlElement.scrollTop = 0;
336
+ }
337
+ break;
338
+ }
285
339
  console.warn(`Unknown lvt-fx:scroll mode: ${mode}`);
340
+ }
286
341
  }
287
342
  break;
288
343
  }
@@ -345,6 +400,130 @@ function handleScrollDirectives(rootElement) {
345
400
  applyFxEffect(element, "scroll", mode);
346
401
  });
347
402
  }
403
+ /**
404
+ * Cancel and forget all active `lvt-fx:auto-click` timers. Called from
405
+ * the LiveTemplate client's `disconnect()` so per-session timer state
406
+ * doesn't survive across a session boundary (the next session re-arms
407
+ * fresh on its first render pass). Safe to call when no timers exist.
408
+ *
409
+ * Multi-client scope warning: the timer Map is module-level (matching
410
+ * the existing `animatedElements` / `scrollResetPriors` pattern), so
411
+ * this teardown cancels timers across every `LiveTemplateClient`
412
+ * instance on the page. If two clients coexist (e.g. a layout client
413
+ * and a widget client), disconnect order matters — the surviving
414
+ * client's pending auto-clicks are cancelled along with the
415
+ * disconnecting client's. Surviving clients re-arm on their next
416
+ * render pass, but any auto-click that was about to fire mid-window
417
+ * is lost. Per-instance scoping would solve this but is a larger
418
+ * refactor (the existing two singletons would need the same
419
+ * treatment) and is deferred until a real multi-client use case
420
+ * appears.
421
+ */
422
+ function teardownAutoClickTimers() {
423
+ for (const { timer } of autoClickTimers.values())
424
+ clearTimeout(timer);
425
+ autoClickTimers.clear();
426
+ }
427
+ /**
428
+ * Apply auto-click directives. `lvt-fx:auto-click="<delay-ms>:<button-name>"`
429
+ * arms a timer when the element is first seen with this spec; on fire, the
430
+ * directive locates a descendant `[name=<button-name>]` and synthesizes a
431
+ * click on it — funneling through the existing event-delegation pipeline
432
+ * so the server-side action runs identically to a user click. Use case:
433
+ * auto-dismiss a toast/banner after N ms by clicking its existing dismiss
434
+ * button (which already fires the dismissBanner server action).
435
+ *
436
+ * Idempotent across renders: an element that re-appears with the same
437
+ * spec keeps its existing timer. A spec change cancels and re-arms. An
438
+ * element that disappears has its timer canceled on the next render's
439
+ * sweep (and even if the sweep doesn't run first, the fire-time
440
+ * isConnected check skips the click).
441
+ */
442
+ function handleAutoClickDirectives(rootElement) {
443
+ // Fast path: nothing armed and no matching elements → no work to do.
444
+ // `querySelector` returns on the first hit, so this is cheaper than
445
+ // the `querySelectorAll` below when there are no matches at all
446
+ // (the common case for pages that don't use this directive).
447
+ if (autoClickTimers.size === 0 &&
448
+ rootElement.querySelector("[lvt-fx\\:auto-click]") === null) {
449
+ return;
450
+ }
451
+ // Sweep: cancel timers for elements that have disconnected OR whose
452
+ // attribute was cleared while they remain in the DOM (e.g. the server
453
+ // resolved the toast's dismiss state without removing the element).
454
+ // Without this, the Map grows unbounded across renders, and a stale
455
+ // timer could fire `.click()` on a button whose owning element no
456
+ // longer wants the auto-action.
457
+ for (const [element, entry] of Array.from(autoClickTimers)) {
458
+ if (!element.isConnected ||
459
+ !element.hasAttribute("lvt-fx:auto-click")) {
460
+ clearTimeout(entry.timer);
461
+ autoClickTimers.delete(element);
462
+ }
463
+ }
464
+ rootElement.querySelectorAll("[lvt-fx\\:auto-click]").forEach((element) => {
465
+ const spec = element.getAttribute("lvt-fx:auto-click");
466
+ if (!spec)
467
+ return;
468
+ const existing = autoClickTimers.get(element);
469
+ if (existing && existing.spec === spec)
470
+ return;
471
+ if (existing)
472
+ clearTimeout(existing.timer);
473
+ const colonIdx = spec.indexOf(":");
474
+ const delayStr = colonIdx > 0 ? spec.slice(0, colonIdx) : "";
475
+ // Pre-validate as a pure integer string: parseInt is lenient and
476
+ // would accept "200abc" as 200, silently masking a typo in the
477
+ // attribute. Authors expect "<delay>:<name>" — anything else warns.
478
+ const delayMs = /^\d+$/.test(delayStr) ? parseInt(delayStr, 10) : NaN;
479
+ const name = colonIdx > 0 ? spec.slice(colonIdx + 1) : "";
480
+ // `delayMs === 0` is intentionally allowed: it means "click on the
481
+ // next tick after this element first appears" — a useful primitive
482
+ // for "auto-execute action on render" patterns. Authors who want
483
+ // visible debounce should pass a non-zero value.
484
+ //
485
+ // Name is restricted to characters that cannot escape the CSS
486
+ // attribute-selector interpolation below (no quotes, brackets,
487
+ // whitespace, or backslashes). Word characters and hyphens cover
488
+ // every valid HTML name attribute we expect to encounter — including
489
+ // digit-prefixed names — while keeping the selector safe. JavaScript
490
+ // `\w` is ASCII-only (`[A-Za-z0-9_]`), so a Unicode button name
491
+ // would warn here; revisit if i18n button naming becomes a real
492
+ // requirement.
493
+ if (!Number.isFinite(delayMs) ||
494
+ delayMs < 0 ||
495
+ !name ||
496
+ !/^[\w-]+$/.test(name)) {
497
+ console.warn(`lvt-fx:auto-click expects "<delay-ms>:<button-name>", got: ${spec}`);
498
+ // Reached when an element's spec changes from valid to malformed
499
+ // mid-life. The valid-spec branch above already cleared its
500
+ // existing timer; this delete removes the now-stale map entry so
501
+ // the next render doesn't see a phantom prior spec.
502
+ autoClickTimers.delete(element);
503
+ return;
504
+ }
505
+ const timer = setTimeout(() => {
506
+ // Intentionally NOT deleting the map entry here. Doing so would
507
+ // make the next render pass see "no entry, attribute still set"
508
+ // and re-arm a fresh timer, firing `.click()` a second time —
509
+ // reachable whenever a render lands between fire and the server
510
+ // removing the element. Leave the entry in place; the next
511
+ // sweep cleans it up when the element disconnects or the
512
+ // attribute is cleared. The fired timeout itself is now a no-op
513
+ // (clearTimeout on a fired handle is harmless).
514
+ if (!element.isConnected)
515
+ return;
516
+ // Scoped to <button>: clicking an arbitrary [name=…] match (e.g.
517
+ // a checkbox, a text input) would have surprising side effects
518
+ // unrelated to the action-submission semantic this directive
519
+ // promises. Buttons are the only correct target.
520
+ const button = element.querySelector(`button[name="${name}"]`);
521
+ if (button)
522
+ button.click();
523
+ }, delayMs);
524
+ autoClickTimers.set(element, { timer, spec });
525
+ });
526
+ }
348
527
  /**
349
528
  * Apply highlight directives to elements with lvt-fx:highlight attributes.
350
529
  * Configuration read from CSS custom properties:
@@ -522,4 +701,161 @@ function createToastElement(msg) {
522
701
  }
523
702
  return el;
524
703
  }
704
+ // closedShadowRoots tracks shadow roots created in "closed" mode. The
705
+ // platform makes them unreachable via `parent.shadowRoot` (it returns
706
+ // null) — closed mode's whole point is that the host's normal DOM API
707
+ // can't see them. On a re-render, without this side channel, the code
708
+ // would call attachShadow a second time on the same host, throw
709
+ // NotSupportedError, hit the catch, and silently drop the new content.
710
+ // Open roots are reachable via parent.shadowRoot, so they don't need
711
+ // the map.
712
+ //
713
+ // Module-scoped on purpose: WeakMap keys are garbage-collected with
714
+ // their hosts, so detached elements don't leak. A function-scoped map
715
+ // would forget closed roots across renders and the bug would return.
716
+ const closedShadowRoots = new WeakMap();
717
+ /**
718
+ * Activate Declarative Shadow DOM for `<template shadowrootmode>` elements
719
+ * that the client inserted via DOM APIs (innerHTML setter, morphdom's
720
+ * createElement+appendChild path). The HTML parser activates declarative
721
+ * shadow roots only at parse time or via setHTMLUnsafe / parseHTMLUnsafe;
722
+ * a `<template shadowrootmode>` set via `.innerHTML = ...` is parked as a
723
+ * plain template with content but no attached shadow root. This sweep
724
+ * closes that gap so server-emitted shadow roots survive a client
725
+ * re-render.
726
+ *
727
+ * For each matching template found under rootElement:
728
+ * - attach a shadow root on the parent (open by default; "closed" when
729
+ * shadowrootmode="closed");
730
+ * - move the template's content into the shadow root (replaceChildren
731
+ * accepts a DocumentFragment and re-parents its children atomically,
732
+ * so re-renders cleanly reset prior shadow content);
733
+ * - remove the template.
734
+ *
735
+ * Hosts that can't accept a shadow root (a small fixed set: <input>,
736
+ * <textarea>, void elements, etc.) silently drop the template — better
737
+ * than an unhandled exception that kills the render.
738
+ *
739
+ * Closed-mode roots are tracked in a module-level WeakMap so re-renders
740
+ * can locate them (parent.shadowRoot returns null for closed roots).
741
+ *
742
+ * Idempotent: a re-run with no remaining templates is one qsa walk and
743
+ * an early return (sub-millisecond on hundreds-of-rows pages).
744
+ *
745
+ * Known limitations:
746
+ *
747
+ * - Nested DSD is inert on EVERY render, not just re-renders. A
748
+ * `<template>`'s content lives in a DocumentFragment (`tpl.content`),
749
+ * not in the light DOM, and `querySelectorAll` does not descend into
750
+ * that fragment. So a `<template shadowrootmode>` nested inside
751
+ * another `<template>` is never in the qsa result. Once the outer
752
+ * shadow has been attached, the inner template ends up behind a
753
+ * shadow boundary — still unreachable. The fix would be a recursive
754
+ * sweep per new shadow root from within this loop.
755
+ *
756
+ * - Shadow-root options (`delegatesFocus`, `clonable`, `serializable`,
757
+ * even `mode`) are fixed at first attach. A re-render that toggles
758
+ * `shadowrootdelegatesfocus` on a host that already has a shadow root
759
+ * won't change the existing root's focus behaviour — re-attach isn't
760
+ * possible. Matches the HTML parser, which would have made the same
761
+ * one-shot decision; if the server needs to flip these flags, it
762
+ * needs to swap the host element entirely. The mode-mismatch case
763
+ * also logs a console.warn so the divergence is visible.
764
+ */
765
+ function handleShadowRootHydration(rootElement) {
766
+ // Single qsa for both the empty-fast-path and the actual work — a
767
+ // leading querySelector check would double-walk the tree when
768
+ // templates are present. NodeList from querySelectorAll is static
769
+ // (not live), so removing templates inside the loop doesn't disturb
770
+ // iteration; no Array.from copy needed.
771
+ // The selector guarantees <template> elements, so the typed qsa
772
+ // overload removes the `as HTMLTemplateElement` cast inside the loop.
773
+ const templates = rootElement.querySelectorAll("template[shadowrootmode]");
774
+ if (templates.length === 0)
775
+ return;
776
+ for (const tpl of templates) {
777
+ // qsa on an Element always returns descendants with a parentElement,
778
+ // so !parent should be unreachable today. Kept as a defensive guard
779
+ // in case a future caller passes a DocumentFragment-rooted tree
780
+ // where the matched template could be a fragment's direct child.
781
+ const parent = tpl.parentElement;
782
+ if (!parent) {
783
+ tpl.remove();
784
+ continue;
785
+ }
786
+ const modeAttr = tpl.getAttribute("shadowrootmode");
787
+ // Align with the HTML parser: only "open" and "closed" trigger
788
+ // activation. A typo like shadowrootmode="opne" was previously
789
+ // left in place "so the author can inspect" — but on every
790
+ // subsequent render the qsa would re-find it, defeating the
791
+ // fast-path advertised in the docblock. Remove it AND log a
792
+ // console.warn so authors actually see the typo (the next morphdom
793
+ // pass would overwrite it anyway).
794
+ if (modeAttr !== "open" && modeAttr !== "closed") {
795
+ console.warn(`livetemplate: invalid shadowrootmode=${JSON.stringify(modeAttr)}; ` +
796
+ `expected "open" or "closed". Template removed.`, tpl);
797
+ tpl.remove();
798
+ continue;
799
+ }
800
+ const mode = modeAttr;
801
+ // For open roots, parent.shadowRoot is the reachable handle. For
802
+ // closed roots, the platform returns null on purpose — consult the
803
+ // WeakMap that we populated when we first attached the root.
804
+ let shadow = parent.shadowRoot ?? closedShadowRoots.get(parent);
805
+ // If the server flips shadowrootmode on a re-render (e.g. open →
806
+ // closed), attachShadow can't be called a second time — the existing
807
+ // mode silently wins. Warn so the author notices the mistake instead
808
+ // of debugging mysterious focus/encapsulation behaviour later.
809
+ if (shadow && shadow.mode !== modeAttr) {
810
+ console.warn(`livetemplate: shadowrootmode changed from "${shadow.mode}" to "${modeAttr}" ` +
811
+ `on re-render — mode is fixed at first attach and cannot be changed.`, parent);
812
+ }
813
+ if (!shadow) {
814
+ try {
815
+ // Forward all Declarative Shadow DOM attributes so the hydrated
816
+ // root matches the one the HTML parser would build natively:
817
+ // - shadowrootdelegatesfocus → delegatesFocus
818
+ // - shadowrootclonable → clonable (Chrome 124+)
819
+ // - shadowrootserializable → serializable (Chrome 125+)
820
+ // Unknown flags from older runtimes are silently ignored by
821
+ // attachShadow, so we don't need a feature-detect.
822
+ shadow = parent.attachShadow({
823
+ mode,
824
+ delegatesFocus: tpl.hasAttribute("shadowrootdelegatesfocus"),
825
+ clonable: tpl.hasAttribute("shadowrootclonable"),
826
+ serializable: tpl.hasAttribute("shadowrootserializable"),
827
+ });
828
+ if (mode === "closed") {
829
+ closedShadowRoots.set(parent, shadow);
830
+ }
831
+ }
832
+ catch (e) {
833
+ // attachShadow throws DOMException for hosts that can't accept
834
+ // one (void elements, <input>, <textarea>, custom elements that
835
+ // declared a different mode, etc.). Drop the template so it
836
+ // doesn't keep tripping this hook on every render, AND warn so
837
+ // a developer accidentally putting shadow content on an invalid
838
+ // host gets a console signal rather than a mysteriously empty
839
+ // preview.
840
+ //
841
+ // Anything OTHER than a DOMException is a real bug (typo in the
842
+ // options object, runtime fault); re-raise so it surfaces in the
843
+ // console instead of getting silently masked as "unsupported
844
+ // host".
845
+ if (!(e instanceof DOMException))
846
+ throw e;
847
+ console.warn(`livetemplate: attachShadow rejected on <${parent.tagName.toLowerCase()}> ` +
848
+ `(${e.name}: ${e.message}). Template removed.`, parent);
849
+ tpl.remove();
850
+ continue;
851
+ }
852
+ }
853
+ // Pass the DocumentFragment directly — replaceChildren moves its
854
+ // children into the shadow root in one atomic platform call. Avoids
855
+ // both the spread (which could hit call-stack argument limits on
856
+ // very large NodeLists) and the intermediate Array.from allocation.
857
+ shadow.replaceChildren(tpl.content);
858
+ tpl.remove();
859
+ }
860
+ }
525
861
  //# sourceMappingURL=directives.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"directives.js","sourceRoot":"","sources":["../../dom/directives.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"directives.js","sourceRoot":"","sources":["../../dom/directives.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,42 @@
1
1
  /**
2
2
  * Handles showing and hiding the global LiveTemplate loading indicator.
3
+ *
4
+ * Two activation paths share the same physical bar:
5
+ *
6
+ * 1. Initial connect — `data-lvt-loading="true"` on the wrapper triggers
7
+ * `show()` in autoInit; `hide()` fires from the first server payload.
8
+ * 2. Per-action wait — `data-lvt-loading-debounce-ms="<ms>"` on the wrapper
9
+ * enables `enablePerActionIndicator(ms)`, which arms a timer on
10
+ * `lvt:pending` (capture-phase) and hides on `lvt:updated`. Idempotent.
3
11
  */
4
12
  export declare class LoadingIndicator {
5
13
  private bar;
14
+ private actionTimer;
15
+ private pendingCount;
16
+ private pendingHandler;
17
+ private updatedHandler;
18
+ private currentDebounceMs;
6
19
  show(): void;
7
20
  hide(): void;
21
+ /**
22
+ * Show the loading bar after `debounceMs` of an action being in flight;
23
+ * hide on the next `lvt:updated`. Capture-phase listeners on document
24
+ * catch both events regardless of dispatch target. Safe to call more
25
+ * than once — repeat calls are no-ops.
26
+ */
27
+ enablePerActionIndicator(debounceMs: number): void;
28
+ /**
29
+ * Teardown for `enablePerActionIndicator`. Stops the listeners, cancels
30
+ * any pending debounce timer, resets the counter, and hides the bar
31
+ * if it's currently visible. Hiding is part of teardown so a caller
32
+ * that reconfigures (different debounce → disable + re-enable) doesn't
33
+ * leave the prior cycle's bar orphaned waiting for an `lvt:updated`
34
+ * that no listener will receive.
35
+ *
36
+ * Production callers reach this path via two routes: an explicit
37
+ * reconfigure inside `enablePerActionIndicator`, and the LiveTemplate
38
+ * client's `disconnect()` teardown.
39
+ */
40
+ disablePerActionIndicator(): void;
8
41
  }
9
42
  //# sourceMappingURL=loading-indicator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"loading-indicator.d.ts","sourceRoot":"","sources":["../../dom/loading-indicator.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,GAAG,CAA4B;IAEvC,IAAI,IAAI,IAAI;IAgCZ,IAAI,IAAI,IAAI;CAQb"}
1
+ {"version":3,"file":"loading-indicator.d.ts","sourceRoot":"","sources":["../../dom/loading-indicator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,GAAG,CAA4B;IACvC,OAAO,CAAC,WAAW,CAA8C;IAMjE,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,cAAc,CAAsC;IAC5D,OAAO,CAAC,cAAc,CAAsC;IAI5D,OAAO,CAAC,iBAAiB,CAAuB;IAEhD,IAAI,IAAI,IAAI;IAiCZ,IAAI,IAAI,IAAI;IASZ;;;;;OAKG;IACH,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAoDlD;;;;;;;;;;;OAWG;IACH,yBAAyB,IAAI,IAAI;CAiBlC"}