@livetemplate/client 0.9.2 → 0.11.4

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:
@@ -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"}
@@ -7,6 +7,8 @@ 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;
@@ -26,6 +28,26 @@ const FX_LIFECYCLE_SET = new Set(["pending", "success", "error", "done"]);
26
28
  // in-place updates (already in the set, so they skip). Use cases that
27
29
  // want a visible pulse on every update should reach for lvt-fx:highlight.
28
30
  let animatedElements = new WeakSet();
31
+ // Tracks the prior value of the watched attribute for each element using
32
+ // `lvt-fx:scroll="reset-on:<attr>"`. We can't stash the prior value as a
33
+ // data-* attribute — morphdom would diff against it and constantly fight
34
+ // the reset. WeakMap auto-cleans when the element is GC'd.
35
+ let scrollResetPriors = new WeakMap();
36
+ // Active timers for `lvt-fx:auto-click="<delay-ms>:<button-name>"`. Stored
37
+ // keyed by element so we can detect: (a) element re-renders unchanged →
38
+ // don't re-arm, (b) spec changed → cancel + re-arm, (c) element removed →
39
+ // cancel. Strong Map (not WeakMap) so we can iterate for the disconnected-
40
+ // element sweep on each render pass.
41
+ //
42
+ // Leak management: cleanup of stale entries depends on render continuity —
43
+ // `handleAutoClickDirectives` runs the sweep on every render pass, so an
44
+ // element removed between renders is collected on the next one. If the
45
+ // page stops rendering entirely (e.g. websocket dies and is never
46
+ // reconnected) while elements still have timers, those entries hold
47
+ // strong refs until tear-down. In practice the timer's own fire-time
48
+ // `isConnected` guard makes any leftover harmless — it would skip the
49
+ // `.click()` for a disconnected node — but the Map itself remains.
50
+ let autoClickTimers = new Map();
29
51
  /**
30
52
  * Test-only: reset the module-level animatedElements WeakSet. Required
31
53
  * for tests that reuse the same DOM nodes across cases — without this,
@@ -43,6 +65,10 @@ let animatedElements = new WeakSet();
43
65
  */
44
66
  function __resetAnimatedElementsForTesting() {
45
67
  animatedElements = new WeakSet();
68
+ scrollResetPriors = new WeakMap();
69
+ for (const { timer } of autoClickTimers.values())
70
+ clearTimeout(timer);
71
+ autoClickTimers = new Map();
46
72
  }
47
73
  /**
48
74
  * Parse a lvt-fx:{effect}[:on:[{action}:]{trigger}] attribute name.
@@ -281,8 +307,36 @@ function applyFxEffect(htmlElement, effect, config) {
281
307
  }
282
308
  case "preserve":
283
309
  break;
284
- default:
310
+ default: {
311
+ // `reset-on:<attr-name>` — reset scrollLeft/scrollTop to 0
312
+ // whenever the value of `<attr-name>` differs from the last
313
+ // render. Use case: an element whose content swaps without the
314
+ // node itself being replaced (morphdom reuse), where the
315
+ // previous scroll position is meaningless for the new content.
316
+ if (mode.startsWith("reset-on:")) {
317
+ const attrName = mode.slice("reset-on:".length);
318
+ if (!attrName) {
319
+ console.warn(`lvt-fx:scroll="reset-on:" requires an attribute name`);
320
+ break;
321
+ }
322
+ const currentValue = htmlElement.getAttribute(attrName);
323
+ const seen = scrollResetPriors.has(htmlElement);
324
+ if (!seen) {
325
+ // First paint — establish the prior, don't reset. The
326
+ // directive's semantic is "reset on *change*"; if a caller
327
+ // has set scroll programmatically before our first sweep
328
+ // (session restore, deep link, etc.), we must not clobber it.
329
+ scrollResetPriors.set(htmlElement, currentValue);
330
+ }
331
+ else if (scrollResetPriors.get(htmlElement) !== currentValue) {
332
+ scrollResetPriors.set(htmlElement, currentValue);
333
+ htmlElement.scrollLeft = 0;
334
+ htmlElement.scrollTop = 0;
335
+ }
336
+ break;
337
+ }
285
338
  console.warn(`Unknown lvt-fx:scroll mode: ${mode}`);
339
+ }
286
340
  }
287
341
  break;
288
342
  }
@@ -345,6 +399,130 @@ function handleScrollDirectives(rootElement) {
345
399
  applyFxEffect(element, "scroll", mode);
346
400
  });
347
401
  }
402
+ /**
403
+ * Cancel and forget all active `lvt-fx:auto-click` timers. Called from
404
+ * the LiveTemplate client's `disconnect()` so per-session timer state
405
+ * doesn't survive across a session boundary (the next session re-arms
406
+ * fresh on its first render pass). Safe to call when no timers exist.
407
+ *
408
+ * Multi-client scope warning: the timer Map is module-level (matching
409
+ * the existing `animatedElements` / `scrollResetPriors` pattern), so
410
+ * this teardown cancels timers across every `LiveTemplateClient`
411
+ * instance on the page. If two clients coexist (e.g. a layout client
412
+ * and a widget client), disconnect order matters — the surviving
413
+ * client's pending auto-clicks are cancelled along with the
414
+ * disconnecting client's. Surviving clients re-arm on their next
415
+ * render pass, but any auto-click that was about to fire mid-window
416
+ * is lost. Per-instance scoping would solve this but is a larger
417
+ * refactor (the existing two singletons would need the same
418
+ * treatment) and is deferred until a real multi-client use case
419
+ * appears.
420
+ */
421
+ function teardownAutoClickTimers() {
422
+ for (const { timer } of autoClickTimers.values())
423
+ clearTimeout(timer);
424
+ autoClickTimers.clear();
425
+ }
426
+ /**
427
+ * Apply auto-click directives. `lvt-fx:auto-click="<delay-ms>:<button-name>"`
428
+ * arms a timer when the element is first seen with this spec; on fire, the
429
+ * directive locates a descendant `[name=<button-name>]` and synthesizes a
430
+ * click on it — funneling through the existing event-delegation pipeline
431
+ * so the server-side action runs identically to a user click. Use case:
432
+ * auto-dismiss a toast/banner after N ms by clicking its existing dismiss
433
+ * button (which already fires the dismissBanner server action).
434
+ *
435
+ * Idempotent across renders: an element that re-appears with the same
436
+ * spec keeps its existing timer. A spec change cancels and re-arms. An
437
+ * element that disappears has its timer canceled on the next render's
438
+ * sweep (and even if the sweep doesn't run first, the fire-time
439
+ * isConnected check skips the click).
440
+ */
441
+ function handleAutoClickDirectives(rootElement) {
442
+ // Fast path: nothing armed and no matching elements → no work to do.
443
+ // `querySelector` returns on the first hit, so this is cheaper than
444
+ // the `querySelectorAll` below when there are no matches at all
445
+ // (the common case for pages that don't use this directive).
446
+ if (autoClickTimers.size === 0 &&
447
+ rootElement.querySelector("[lvt-fx\\:auto-click]") === null) {
448
+ return;
449
+ }
450
+ // Sweep: cancel timers for elements that have disconnected OR whose
451
+ // attribute was cleared while they remain in the DOM (e.g. the server
452
+ // resolved the toast's dismiss state without removing the element).
453
+ // Without this, the Map grows unbounded across renders, and a stale
454
+ // timer could fire `.click()` on a button whose owning element no
455
+ // longer wants the auto-action.
456
+ for (const [element, entry] of Array.from(autoClickTimers)) {
457
+ if (!element.isConnected ||
458
+ !element.hasAttribute("lvt-fx:auto-click")) {
459
+ clearTimeout(entry.timer);
460
+ autoClickTimers.delete(element);
461
+ }
462
+ }
463
+ rootElement.querySelectorAll("[lvt-fx\\:auto-click]").forEach((element) => {
464
+ const spec = element.getAttribute("lvt-fx:auto-click");
465
+ if (!spec)
466
+ return;
467
+ const existing = autoClickTimers.get(element);
468
+ if (existing && existing.spec === spec)
469
+ return;
470
+ if (existing)
471
+ clearTimeout(existing.timer);
472
+ const colonIdx = spec.indexOf(":");
473
+ const delayStr = colonIdx > 0 ? spec.slice(0, colonIdx) : "";
474
+ // Pre-validate as a pure integer string: parseInt is lenient and
475
+ // would accept "200abc" as 200, silently masking a typo in the
476
+ // attribute. Authors expect "<delay>:<name>" — anything else warns.
477
+ const delayMs = /^\d+$/.test(delayStr) ? parseInt(delayStr, 10) : NaN;
478
+ const name = colonIdx > 0 ? spec.slice(colonIdx + 1) : "";
479
+ // `delayMs === 0` is intentionally allowed: it means "click on the
480
+ // next tick after this element first appears" — a useful primitive
481
+ // for "auto-execute action on render" patterns. Authors who want
482
+ // visible debounce should pass a non-zero value.
483
+ //
484
+ // Name is restricted to characters that cannot escape the CSS
485
+ // attribute-selector interpolation below (no quotes, brackets,
486
+ // whitespace, or backslashes). Word characters and hyphens cover
487
+ // every valid HTML name attribute we expect to encounter — including
488
+ // digit-prefixed names — while keeping the selector safe. JavaScript
489
+ // `\w` is ASCII-only (`[A-Za-z0-9_]`), so a Unicode button name
490
+ // would warn here; revisit if i18n button naming becomes a real
491
+ // requirement.
492
+ if (!Number.isFinite(delayMs) ||
493
+ delayMs < 0 ||
494
+ !name ||
495
+ !/^[\w-]+$/.test(name)) {
496
+ console.warn(`lvt-fx:auto-click expects "<delay-ms>:<button-name>", got: ${spec}`);
497
+ // Reached when an element's spec changes from valid to malformed
498
+ // mid-life. The valid-spec branch above already cleared its
499
+ // existing timer; this delete removes the now-stale map entry so
500
+ // the next render doesn't see a phantom prior spec.
501
+ autoClickTimers.delete(element);
502
+ return;
503
+ }
504
+ const timer = setTimeout(() => {
505
+ // Intentionally NOT deleting the map entry here. Doing so would
506
+ // make the next render pass see "no entry, attribute still set"
507
+ // and re-arm a fresh timer, firing `.click()` a second time —
508
+ // reachable whenever a render lands between fire and the server
509
+ // removing the element. Leave the entry in place; the next
510
+ // sweep cleans it up when the element disconnects or the
511
+ // attribute is cleared. The fired timeout itself is now a no-op
512
+ // (clearTimeout on a fired handle is harmless).
513
+ if (!element.isConnected)
514
+ return;
515
+ // Scoped to <button>: clicking an arbitrary [name=…] match (e.g.
516
+ // a checkbox, a text input) would have surprising side effects
517
+ // unrelated to the action-submission semantic this directive
518
+ // promises. Buttons are the only correct target.
519
+ const button = element.querySelector(`button[name="${name}"]`);
520
+ if (button)
521
+ button.click();
522
+ }, delayMs);
523
+ autoClickTimers.set(element, { timer, spec });
524
+ });
525
+ }
348
526
  /**
349
527
  * Apply highlight directives to elements with lvt-fx:highlight attributes.
350
528
  * Configuration read from CSS custom properties:
@@ -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"}
@@ -3,15 +3,37 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.LoadingIndicator = void 0;
4
4
  /**
5
5
  * Handles showing and hiding the global LiveTemplate loading indicator.
6
+ *
7
+ * Two activation paths share the same physical bar:
8
+ *
9
+ * 1. Initial connect — `data-lvt-loading="true"` on the wrapper triggers
10
+ * `show()` in autoInit; `hide()` fires from the first server payload.
11
+ * 2. Per-action wait — `data-lvt-loading-debounce-ms="<ms>"` on the wrapper
12
+ * enables `enablePerActionIndicator(ms)`, which arms a timer on
13
+ * `lvt:pending` (capture-phase) and hides on `lvt:updated`. Idempotent.
6
14
  */
7
15
  class LoadingIndicator {
8
16
  constructor() {
9
17
  this.bar = null;
18
+ this.actionTimer = null;
19
+ // Counts in-flight actions so concurrent server roundtrips don't hide
20
+ // the bar prematurely: the bar stays visible as long as at least one
21
+ // `lvt:pending` is outstanding. Without this counter, action B
22
+ // completing first would clear the bar even though action A is still
23
+ // in flight.
24
+ this.pendingCount = 0;
25
+ this.pendingHandler = null;
26
+ this.updatedHandler = null;
27
+ // Current per-action debounce — tracked so a follow-up enable call
28
+ // with a different value reconfigures cleanly instead of silently
29
+ // dropping the new value.
30
+ this.currentDebounceMs = null;
10
31
  }
11
32
  show() {
12
33
  if (this.bar)
13
34
  return;
14
35
  const bar = document.createElement("div");
36
+ bar.className = "lvt-loading-bar";
15
37
  bar.style.cssText = `
16
38
  position: fixed;
17
39
  top: 0;
@@ -45,6 +67,91 @@ class LoadingIndicator {
45
67
  }
46
68
  this.bar = null;
47
69
  }
70
+ /**
71
+ * Show the loading bar after `debounceMs` of an action being in flight;
72
+ * hide on the next `lvt:updated`. Capture-phase listeners on document
73
+ * catch both events regardless of dispatch target. Safe to call more
74
+ * than once — repeat calls are no-ops.
75
+ */
76
+ enablePerActionIndicator(debounceMs) {
77
+ // Same value as already enabled → no-op (idempotent).
78
+ // Different value → tear down and re-register cleanly. This
79
+ // matters for callers that re-read the debounce attribute after
80
+ // a config change; without it, the second call would silently
81
+ // discard the new value.
82
+ if (this.pendingHandler) {
83
+ if (this.currentDebounceMs === debounceMs)
84
+ return;
85
+ this.disablePerActionIndicator();
86
+ }
87
+ this.pendingCount = 0;
88
+ this.currentDebounceMs = debounceMs;
89
+ this.pendingHandler = () => {
90
+ this.pendingCount++;
91
+ // Only arm a debounce timer on the 0→1 transition. Subsequent
92
+ // concurrent actions don't reset the timer or re-show the bar —
93
+ // the bar that is or will become visible already represents "at
94
+ // least one action in flight".
95
+ if (this.pendingCount === 1 &&
96
+ this.actionTimer === null &&
97
+ this.bar === null) {
98
+ this.actionTimer = setTimeout(() => {
99
+ this.actionTimer = null;
100
+ // Re-check pendingCount at fire time. In single-threaded JS
101
+ // `updatedHandler` would have called `clearTimeout` before the
102
+ // count could reach zero, so this guard is defensive: it
103
+ // documents the invariant and protects against any future
104
+ // reordering of teardown vs. show.
105
+ if (this.pendingCount > 0)
106
+ this.show();
107
+ }, debounceMs);
108
+ }
109
+ };
110
+ this.updatedHandler = () => {
111
+ // Math.max guards against an `lvt:updated` arriving without a
112
+ // matching `lvt:pending` (e.g. a server push, or an action whose
113
+ // pending event was dispatched before the listener was attached).
114
+ this.pendingCount = Math.max(0, this.pendingCount - 1);
115
+ if (this.pendingCount === 0) {
116
+ if (this.actionTimer !== null) {
117
+ clearTimeout(this.actionTimer);
118
+ this.actionTimer = null;
119
+ }
120
+ this.hide();
121
+ }
122
+ };
123
+ document.addEventListener("lvt:pending", this.pendingHandler, true);
124
+ document.addEventListener("lvt:updated", this.updatedHandler, true);
125
+ }
126
+ /**
127
+ * Teardown for `enablePerActionIndicator`. Stops the listeners, cancels
128
+ * any pending debounce timer, resets the counter, and hides the bar
129
+ * if it's currently visible. Hiding is part of teardown so a caller
130
+ * that reconfigures (different debounce → disable + re-enable) doesn't
131
+ * leave the prior cycle's bar orphaned waiting for an `lvt:updated`
132
+ * that no listener will receive.
133
+ *
134
+ * Production callers reach this path via two routes: an explicit
135
+ * reconfigure inside `enablePerActionIndicator`, and the LiveTemplate
136
+ * client's `disconnect()` teardown.
137
+ */
138
+ disablePerActionIndicator() {
139
+ if (this.pendingHandler) {
140
+ document.removeEventListener("lvt:pending", this.pendingHandler, true);
141
+ this.pendingHandler = null;
142
+ }
143
+ if (this.updatedHandler) {
144
+ document.removeEventListener("lvt:updated", this.updatedHandler, true);
145
+ this.updatedHandler = null;
146
+ }
147
+ if (this.actionTimer !== null) {
148
+ clearTimeout(this.actionTimer);
149
+ this.actionTimer = null;
150
+ }
151
+ this.pendingCount = 0;
152
+ this.currentDebounceMs = null;
153
+ this.hide();
154
+ }
48
155
  }
49
156
  exports.LoadingIndicator = LoadingIndicator;
50
157
  //# sourceMappingURL=loading-indicator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"loading-indicator.js","sourceRoot":"","sources":["../../dom/loading-indicator.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,MAAa,gBAAgB;IAA7B;QACU,QAAG,GAAuB,IAAI,CAAC;IA0CzC,CAAC;IAxCC,IAAI;QACF,IAAI,IAAI,CAAC,GAAG;YAAE,OAAO;QAErB,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC1C,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG;;;;;;;;;;KAUnB,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,oBAAoB,CAAC,EAAE,CAAC;YACnD,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YAC9C,KAAK,CAAC,EAAE,GAAG,oBAAoB,CAAC;YAChC,KAAK,CAAC,WAAW,GAAG;;;;;OAKnB,CAAC;YACF,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC;QAED,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1D,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,IAAI;QACF,IAAI,CAAC,IAAI,CAAC,GAAG;YAAE,OAAO;QAEtB,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;YACxB,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5C,CAAC;QACD,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;IAClB,CAAC;CACF;AA3CD,4CA2CC"}
1
+ {"version":3,"file":"loading-indicator.js","sourceRoot":"","sources":["../../dom/loading-indicator.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;GAUG;AACH,MAAa,gBAAgB;IAA7B;QACU,QAAG,GAAuB,IAAI,CAAC;QAC/B,gBAAW,GAAyC,IAAI,CAAC;QACjE,sEAAsE;QACtE,qEAAqE;QACrE,+DAA+D;QAC/D,qEAAqE;QACrE,aAAa;QACL,iBAAY,GAAG,CAAC,CAAC;QACjB,mBAAc,GAAiC,IAAI,CAAC;QACpD,mBAAc,GAAiC,IAAI,CAAC;QAC5D,mEAAmE;QACnE,kEAAkE;QAClE,0BAA0B;QAClB,sBAAiB,GAAkB,IAAI,CAAC;IAmIlD,CAAC;IAjIC,IAAI;QACF,IAAI,IAAI,CAAC,GAAG;YAAE,OAAO;QAErB,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC1C,GAAG,CAAC,SAAS,GAAG,iBAAiB,CAAC;QAClC,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG;;;;;;;;;;KAUnB,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,oBAAoB,CAAC,EAAE,CAAC;YACnD,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YAC9C,KAAK,CAAC,EAAE,GAAG,oBAAoB,CAAC;YAChC,KAAK,CAAC,WAAW,GAAG;;;;;OAKnB,CAAC;YACF,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC;QAED,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1D,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,IAAI;QACF,IAAI,CAAC,IAAI,CAAC,GAAG;YAAE,OAAO;QAEtB,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;YACxB,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5C,CAAC;QACD,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;IAClB,CAAC;IAED;;;;;OAKG;IACH,wBAAwB,CAAC,UAAkB;QACzC,sDAAsD;QACtD,4DAA4D;QAC5D,gEAAgE;QAChE,8DAA8D;QAC9D,yBAAyB;QACzB,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,IAAI,IAAI,CAAC,iBAAiB,KAAK,UAAU;gBAAE,OAAO;YAClD,IAAI,CAAC,yBAAyB,EAAE,CAAC;QACnC,CAAC;QACD,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,iBAAiB,GAAG,UAAU,CAAC;QAEpC,IAAI,CAAC,cAAc,GAAG,GAAG,EAAE;YACzB,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,8DAA8D;YAC9D,gEAAgE;YAChE,gEAAgE;YAChE,+BAA+B;YAC/B,IACE,IAAI,CAAC,YAAY,KAAK,CAAC;gBACvB,IAAI,CAAC,WAAW,KAAK,IAAI;gBACzB,IAAI,CAAC,GAAG,KAAK,IAAI,EACjB,CAAC;gBACD,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,GAAG,EAAE;oBACjC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;oBACxB,4DAA4D;oBAC5D,+DAA+D;oBAC/D,yDAAyD;oBACzD,0DAA0D;oBAC1D,mCAAmC;oBACnC,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC;wBAAE,IAAI,CAAC,IAAI,EAAE,CAAC;gBACzC,CAAC,EAAE,UAAU,CAAC,CAAC;YACjB,CAAC;QACH,CAAC,CAAC;QACF,IAAI,CAAC,cAAc,GAAG,GAAG,EAAE;YACzB,8DAA8D;YAC9D,iEAAiE;YACjE,kEAAkE;YAClE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;YACvD,IAAI,IAAI,CAAC,YAAY,KAAK,CAAC,EAAE,CAAC;gBAC5B,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;oBAC9B,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBAC/B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;gBAC1B,CAAC;gBACD,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,CAAC;QACH,CAAC,CAAC;QACF,QAAQ,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;QACpE,QAAQ,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;IACtE,CAAC;IAED;;;;;;;;;;;OAWG;IACH,yBAAyB;QACvB,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,QAAQ,CAAC,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;YACvE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC7B,CAAC;QACD,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,QAAQ,CAAC,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;YACvE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC7B,CAAC;QACD,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;YAC9B,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC/B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC1B,CAAC;QACD,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;CACF;AAjJD,4CAiJC"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Scroll-spy directive.
3
+ *
4
+ * Highlights navigation links as the user scrolls past corresponding section
5
+ * targets. Pure client-side state — no server round-trip per scroll tick.
6
+ *
7
+ * <article lvt-spy="h1, h2, h3"> // container mode: descendants
8
+ * <h1 id="intro">Intro</h1> matching the selector are
9
+ * <h2 id="usage">Usage</h2> the spy targets.
10
+ * </article>
11
+ *
12
+ * <h2 id="other" lvt-spy>Other</h2> // element mode: this element
13
+ * IS the target. Empty value.
14
+ *
15
+ * <a href="#intro" lvt-spy-link>Intro</a> // gets the `lvt-active` class
16
+ * <a href="#usage" lvt-spy-link>Usage</a> when its href="#<id>" matches
17
+ * the currently active target.
18
+ *
19
+ * Activation rule: walk targets in document order; the latest one whose top
20
+ * edge has scrolled above a trigger line near the top of the viewport is
21
+ * active. That way the first link stays active until the reader has actually
22
+ * passed the first heading, and the active link advances in step with the
23
+ * reader.
24
+ *
25
+ * Configuration via CSS custom property on the spy container:
26
+ * --lvt-spy-margin: <length> (default: 25vh from the top)
27
+ * The trigger line below the viewport top. A target counts as "passed"
28
+ * once its top edge is at or above this line.
29
+ *
30
+ * Implementation: a rAF-throttled scroll listener on the nearest scrollable
31
+ * ancestor (or window). Mirrors the lifecycle shape of `scroll-away.ts` so
32
+ * the morphdom re-scan story is identical.
33
+ */
34
+ export declare function setupSpy(scanRoot: Element): void;
35
+ export declare function teardownSpy(wrapper?: Element): void;
36
+ //# sourceMappingURL=spy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spy.d.ts","sourceRoot":"","sources":["../../dom/spy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AA0VH,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAQhD;AAED,wBAAgB,WAAW,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CA0BnD"}