@repobit/dex-store-elements 1.2.1 → 1.2.3

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 (36) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/README.md +33 -16
  3. package/dist/src/actions/action.button.d.ts +2 -1
  4. package/dist/src/actions/action.button.js +2 -1
  5. package/dist/src/actions/action.button.js.map +1 -1
  6. package/dist/src/actions/action.input.d.ts +2 -1
  7. package/dist/src/actions/action.input.js.map +1 -1
  8. package/dist/src/actions/action.select.d.ts +2 -1
  9. package/dist/src/actions/action.select.js.map +1 -1
  10. package/dist/src/actions/index.js +12 -1
  11. package/dist/src/actions/index.js.map +1 -1
  12. package/dist/src/actions/utilty.d.ts +7 -1
  13. package/dist/src/actions/utilty.js +36 -5
  14. package/dist/src/actions/utilty.js.map +1 -1
  15. package/dist/src/events/events.d.ts +15 -0
  16. package/dist/src/events/events.js +22 -0
  17. package/dist/src/events/events.js.map +1 -1
  18. package/dist/src/nodes/node.context.d.ts +1 -0
  19. package/dist/src/nodes/node.context.js +4 -0
  20. package/dist/src/nodes/node.context.js.map +1 -1
  21. package/dist/src/nodes/node.option.js +10 -2
  22. package/dist/src/nodes/node.option.js.map +1 -1
  23. package/dist/src/nodes/node.product.js +10 -2
  24. package/dist/src/nodes/node.product.js.map +1 -1
  25. package/dist/src/nodes/node.state.d.ts +17 -0
  26. package/dist/src/nodes/node.state.js +220 -33
  27. package/dist/src/nodes/node.state.js.map +1 -1
  28. package/dist/src/renders/index.js +11 -1
  29. package/dist/src/renders/index.js.map +1 -1
  30. package/dist/src/renders/utility.d.ts +4 -1
  31. package/dist/src/renders/utility.js +52 -2
  32. package/dist/src/renders/utility.js.map +1 -1
  33. package/dist/src/templating/eta.d.ts +1 -1
  34. package/dist/src/templating/eta.js +1 -1
  35. package/dist/src/templating/eta.js.map +1 -1
  36. package/package.json +2 -2
@@ -8,7 +8,7 @@ import { derivedContext } from "../contexts/context.derived.js";
8
8
  import { eventContext } from "../contexts/context.event.js";
9
9
  import { stateContext } from "../contexts/context.state.js";
10
10
  import { storeContext } from "../contexts/context.store.js";
11
- import { ActionEvent, CollectActionEvent, CollectOptionEvent, CollectUpdateByDeltaEvent, UpdateByDeltaEvent } from "../events/events.js";
11
+ import { ActionEvent, CollectActionEvent, CollectChildEvent, CollectChildRemovedEvent, CollectOptionEvent, CollectUpdateByDeltaEvent, UpdateByDeltaEvent } from "../events/events.js";
12
12
  import { toDSLContext } from "../renders/context.js";
13
13
  import eta from "../templating/eta.js";
14
14
  import { consume, provide } from "@lit/context";
@@ -234,11 +234,54 @@ export class StateNode extends LitElement {
234
234
  if (!this.shouldRunEtaStateRender())
235
235
  return;
236
236
  // Provide 'it' derived from DSL context
237
- const it = await toDSLContext({ state, derived });
238
- await this._renderEtaTemplates(it);
237
+ // Mark cause (mutation-triggered vs state/derived-triggered)
238
+ this._etaRenderCurrentFromMutation = this._etaRenderTriggeredByMutation;
239
+ this._etaRenderTriggeredByMutation = false;
240
+ this._etaRenderInProgress = true;
241
+ try {
242
+ const it = await toDSLContext({ state, derived });
243
+ await this._renderEtaTemplates(it);
244
+ }
245
+ finally {
246
+ this._etaRenderInProgress = false;
247
+ this._etaRenderCurrentFromMutation = false;
248
+ // If mutations arrived while rendering, schedule one more pass
249
+ if (this._etaRenderNeedsRun) {
250
+ this._etaRenderNeedsRun = false;
251
+ this._scheduleEtaRenderFromMutation();
252
+ }
253
+ this._notifyEtaIdle();
254
+ }
239
255
  },
240
256
  args: () => [this.state, this._derived]
241
257
  });
258
+ // Track DOM changes in the light DOM (slot content) to rerun Eta when SPA rewrites
259
+ this._etaRenderInProgress = false;
260
+ this._etaRenderScheduled = false;
261
+ this._etaRenderNeedsRun = false;
262
+ this._etaRenderTriggeredByMutation = false;
263
+ this._etaRenderCurrentFromMutation = false;
264
+ this._etaIdleWaiters = [];
265
+ // Track nearest contextual children (register via CollectChildEvent)
266
+ this._contextualChildren = new Set();
267
+ this._onCollectChild = (e) => {
268
+ if (e.target === this)
269
+ return;
270
+ e.stopPropagation();
271
+ const { child } = e.detail;
272
+ if (child && child !== this) {
273
+ this._contextualChildren.add(child);
274
+ }
275
+ };
276
+ this._onCollectChildRemoved = (e) => {
277
+ if (e.target === this)
278
+ return;
279
+ e.stopPropagation();
280
+ const { child } = e.detail;
281
+ if (child && child !== this) {
282
+ this._contextualChildren.delete(child);
283
+ }
284
+ };
242
285
  }
243
286
  /**
244
287
  * all options computed by this node
@@ -250,6 +293,45 @@ export class StateNode extends LitElement {
250
293
  // Allow subclasses (e.g., OptionNode) to disable the base Eta render
251
294
  // when they provide their own option-specific rendering pipeline.
252
295
  shouldRunEtaStateRender() { return true; }
296
+ _isEtaIdle() {
297
+ return !this._etaRenderInProgress && !this._etaRenderDebounce && !this._etaRenderNeedsRun;
298
+ }
299
+ _waitEtaSettled() {
300
+ if (this._isEtaIdle())
301
+ return Promise.resolve();
302
+ return new Promise((resolve) => {
303
+ this._etaIdleWaiters.push(resolve);
304
+ });
305
+ }
306
+ _notifyEtaIdle() {
307
+ if (!this._isEtaIdle())
308
+ return;
309
+ if (this._etaIdleWaiters.length === 0)
310
+ return;
311
+ const waiters = this._etaIdleWaiters.splice(0);
312
+ for (const w of waiters)
313
+ w();
314
+ }
315
+ _scheduleEtaRenderFromMutation() {
316
+ // If a render is already in progress, remember to run again once it finishes.
317
+ if (this._etaRenderInProgress) {
318
+ this._etaRenderNeedsRun = true;
319
+ return;
320
+ }
321
+ if (!this.shouldRunEtaStateRender())
322
+ return;
323
+ // Coalesce to next macrotask: restart timer on every mutation and run ASAP
324
+ if (this._etaRenderDebounce) {
325
+ clearTimeout(this._etaRenderDebounce);
326
+ }
327
+ this._etaRenderTriggeredByMutation = true;
328
+ this._etaRenderDebounce = window.setTimeout(() => {
329
+ this._etaRenderDebounce = undefined;
330
+ this._etaRenderTask.run();
331
+ // If nothing else is scheduled and not in-progress, resolve any idle waiters
332
+ queueMicrotask(() => this._notifyEtaIdle());
333
+ }, 0);
334
+ }
253
335
  _isStateNodeElement(el) {
254
336
  if (el instanceof StateNode)
255
337
  return true;
@@ -317,7 +399,13 @@ export class StateNode extends LitElement {
317
399
  // Traverse descendants; for any element that does NOT contain a nested state node,
318
400
  // treat its innerHTML as a single Eta template and render/morph the entire subtree.
319
401
  const visit = async (root) => {
402
+ // If a follow-up Eta run is already requested (DOM still changing)
403
+ // and this pass was triggered by mutation, bail out to avoid unstable writes.
404
+ if (this._etaRenderCurrentFromMutation && this._etaRenderNeedsRun)
405
+ return;
320
406
  for (const child of Array.from(root.children)) {
407
+ if (this._etaRenderCurrentFromMutation && this._etaRenderNeedsRun)
408
+ return;
321
409
  if (!(child instanceof HTMLElement))
322
410
  continue;
323
411
  // Always allow attribute-level Eta on any node in this subtree
@@ -339,13 +427,24 @@ export class StateNode extends LitElement {
339
427
  if (child.hasAttribute('data-store-render')) {
340
428
  continue;
341
429
  }
430
+ // Reuse cached template, but refresh if DOM source changed (e.g., SPA mutated innerHTML)
431
+ const currentSrc = child.innerHTML ?? '';
342
432
  let entry = this._tplElementTemplates.get(child);
343
433
  if (!entry) {
344
- const src = child.innerHTML ?? '';
345
- entry = { src };
434
+ entry = { src: currentSrc };
346
435
  this._tplElementTemplates.set(child, entry);
347
436
  }
437
+ else if (entry.src !== currentSrc) {
438
+ const isTemplateLike = currentSrc.includes('{{');
439
+ // Accept SPA-authored changes (even without templates) only when this pass is mutation-triggered.
440
+ if (isTemplateLike || this._etaRenderCurrentFromMutation) {
441
+ entry.src = currentSrc;
442
+ delete entry.fn;
443
+ }
444
+ }
348
445
  const out = this._safeEtaRender(entry, context, { onErrorReturnInput: true });
446
+ if (this._etaRenderCurrentFromMutation && this._etaRenderNeedsRun)
447
+ return;
349
448
  await this._morphElementFromHTML(child, out);
350
449
  }
351
450
  };
@@ -353,16 +452,57 @@ export class StateNode extends LitElement {
353
452
  }
354
453
  connectedCallback() {
355
454
  super.connectedCallback();
455
+ // Listen for child registration/unregistration
456
+ this.addEventListener(CollectChildEvent.eventName, this._onCollectChild);
457
+ this.addEventListener(CollectChildRemovedEvent.eventName, this._onCollectChildRemoved);
356
458
  this.addEventListener(CollectActionEvent.eventName, this._collectActionEvent);
357
459
  this.addEventListener(CollectUpdateByDeltaEvent.eventName, this._collectUpdateByDeltaEvent);
358
460
  this.addEventListener(CollectOptionEvent.eventName, this._collectOptionEvent);
359
461
  [ActionEvent, UpdateByDeltaEvent].forEach(e => this.addEventListener(e.eventName, this._eventChange));
462
+ // Observe slot/light DOM changes to trigger Eta re-rendering in SPA scenarios
463
+ if (!this._slotMo && this.shouldRunEtaStateRender()) {
464
+ const isWithinRenderSubtree = (n) => {
465
+ while (n && n !== this) {
466
+ if (n instanceof HTMLElement && n.hasAttribute('data-store-render'))
467
+ return true;
468
+ n = n.parentNode;
469
+ }
470
+ return false;
471
+ };
472
+ this._slotMo = new MutationObserver((muts) => {
473
+ for (const m of muts) {
474
+ // Ignore changes happening under render-managed subtrees
475
+ const targets = [];
476
+ if (m.type === 'characterData')
477
+ targets.push(m.target);
478
+ else
479
+ targets.push(...Array.from(m.addedNodes));
480
+ if (targets.some(t => isWithinRenderSubtree(t)))
481
+ continue;
482
+ this._scheduleEtaRenderFromMutation();
483
+ break; // one schedule is enough per batch
484
+ }
485
+ });
486
+ this._slotMo.observe(this, {
487
+ childList: true,
488
+ subtree: true,
489
+ characterData: true
490
+ });
491
+ }
492
+ // Announce this node as a contextual child of its nearest parent StateNode
493
+ // so parents can await our updateComplete as part of theirs.
494
+ this._announceAsContextualChild();
360
495
  }
361
496
  remove() {
497
+ // Announce removal to parent before DOM detaches, so it can unregister us
498
+ this._announceContextualChildRemoved();
362
499
  this.dispatchEvent(new CollectOptionEvent({ name: this.storeName, options: null }));
363
500
  super.remove();
364
501
  }
365
502
  disconnectedCallback() {
503
+ // Stop listening for contextual child events
504
+ this.removeEventListener(CollectChildEvent.eventName, this._onCollectChild);
505
+ this.removeEventListener(CollectChildRemovedEvent.eventName, this._onCollectChildRemoved);
366
506
  this.removeEventListener(CollectActionEvent.eventName, this._collectActionEvent);
367
507
  this.removeEventListener(CollectUpdateByDeltaEvent.eventName, this._collectUpdateByDeltaEvent);
368
508
  this.removeEventListener(CollectOptionEvent.eventName, this._collectOptionEvent);
@@ -370,8 +510,21 @@ export class StateNode extends LitElement {
370
510
  this._options.clear();
371
511
  this._actions.clear();
372
512
  this._partialOptions.clear();
513
+ this._contextualChildren.clear();
514
+ if (this._etaRenderDebounce) {
515
+ clearTimeout(this._etaRenderDebounce);
516
+ this._etaRenderDebounce = undefined;
517
+ }
518
+ this._slotMo?.disconnect();
519
+ this._slotMo = undefined;
373
520
  super.disconnectedCallback();
374
521
  }
522
+ _announceAsContextualChild() {
523
+ this.dispatchEvent(new CollectChildEvent({ child: this }));
524
+ }
525
+ _announceContextualChildRemoved() {
526
+ this.dispatchEvent(new CollectChildRemovedEvent({ child: this }));
527
+ }
375
528
  _eventChange(e) {
376
529
  e.stopPropagation();
377
530
  // ignore if source matches ignore list
@@ -446,28 +599,41 @@ export class StateNode extends LitElement {
446
599
  this._notifyParent();
447
600
  }
448
601
  async _computeState(isActive) {
602
+ // We'll iteratively expand the set of options using actions and delta updates
603
+ // until we reach a fixed point (no new options discovered). This ensures
604
+ // combinations across different dimensions are included (e.g., 10-24).
449
605
  const computed = new Set();
450
- // 1) collect base options + partialOptions
606
+ const queue = [];
607
+ const enqueue = (opt) => {
608
+ if (!computed.has(opt)) {
609
+ computed.add(opt);
610
+ queue.push(opt);
611
+ }
612
+ };
613
+ // 1) collect base options + partialOptions and seed the queue
451
614
  for (const optsPromise of this._options.values()) {
452
615
  isActive();
453
616
  const opts = await optsPromise;
454
617
  for (const opt of opts) {
455
618
  isActive();
456
- computed.add(opt);
457
- await this._applyPartials(opt, computed, isActive);
619
+ enqueue(opt);
620
+ const partials = await this._applyPartials(opt, isActive);
621
+ for (const p of partials)
622
+ enqueue(p);
458
623
  }
459
624
  }
460
- // 2) apply full “actions”
461
- for (const opt of [...computed]) {
625
+ // 2) Repeatedly apply actions and delta updates to closure
626
+ while (queue.length) {
462
627
  isActive();
463
- await this._applyActions(opt, computed, isActive);
628
+ const current = queue.shift();
629
+ const actionResults = await this._applyActions(current, isActive);
630
+ for (const a of actionResults)
631
+ enqueue(a);
632
+ const deltaResults = await this._applyDeltaUpdates(current, isActive);
633
+ for (const d of deltaResults)
634
+ enqueue(d);
464
635
  }
465
- // 3) apply full "delta updates"
466
- for (const opt of [...computed]) {
467
- isActive();
468
- await this._applyDeltaUpdates(opt, computed, isActive);
469
- }
470
- // 3) combine bundles
636
+ // 3) combine bundles on the full set
471
637
  for (const opt of [...computed]) {
472
638
  isActive();
473
639
  const bundles = [...this._partialBundleOptions.values()];
@@ -476,7 +642,8 @@ export class StateNode extends LitElement {
476
642
  }
477
643
  return [...computed];
478
644
  }
479
- async _applyPartials(baseOpt, computed, isActive) {
645
+ async _applyPartials(baseOpt, isActive) {
646
+ const results = [];
480
647
  for (const partial of this._partialOptions.values()) {
481
648
  isActive();
482
649
  if (!partial.id) {
@@ -485,27 +652,37 @@ export class StateNode extends LitElement {
485
652
  const newProduct = await baseOpt.switchProduct({ id: partial.id, campaign: partial.campaign });
486
653
  const newOpt = await newProduct?.getOption({ devices: partial.devices, subscription: partial.subscription });
487
654
  if (newOpt)
488
- computed.add(newOpt);
655
+ results.push(newOpt);
489
656
  }
657
+ return results;
490
658
  }
491
- async _applyActions(baseOpt, computed, isActive) {
659
+ async _applyActions(baseOpt, isActive) {
660
+ const results = [];
492
661
  for (const action of this._actions.values()) {
493
662
  isActive();
663
+ const targetDevices = action.devices ?? baseOpt.getDevices();
664
+ const targetSubscription = action.subscription ?? baseOpt.getSubscription();
665
+ // Skip no-op actions that don't change anything
666
+ if (targetDevices === baseOpt.getDevices() && targetSubscription === baseOpt.getSubscription()) {
667
+ continue;
668
+ }
494
669
  const newOpt = await baseOpt.getOption({
495
- devices: action.devices ?? baseOpt.getDevices(),
496
- subscription: action.subscription ?? baseOpt.getSubscription()
670
+ devices: targetDevices,
671
+ subscription: targetSubscription
497
672
  });
498
673
  if (newOpt)
499
- computed.add(newOpt);
674
+ results.push(newOpt);
500
675
  }
676
+ return results;
501
677
  }
502
- async _applyDeltaUpdates(baseOpt, computed, isActive) {
678
+ async _applyDeltaUpdates(baseOpt, isActive) {
679
+ const results = [];
503
680
  const product = baseOpt.getProduct();
504
681
  const baseDevices = product.getDevices().values;
505
682
  const baseSubscriptions = product.getSubscriptions().values;
506
683
  let devices = baseOpt.getDevices();
507
684
  let subscription = baseOpt.getSubscription();
508
- //corner case for input types that define an interval by themselves
685
+ // corner case for input types that define an interval by themselves
509
686
  const getValue = (action, startValue, minValue) => {
510
687
  if (action.useAsValue) {
511
688
  action.delta = 1;
@@ -520,9 +697,7 @@ export class StateNode extends LitElement {
520
697
  // Loop until we can no longer apply the delta
521
698
  while (true) {
522
699
  isActive();
523
- const values = action.type === "devices"
524
- ? baseDevices
525
- : baseSubscriptions;
700
+ const values = action.type === "devices" ? baseDevices : baseSubscriptions;
526
701
  const current = action.type === "devices"
527
702
  ? getValue(action, devices, baseDevices[0])
528
703
  : getValue(action, subscription, baseSubscriptions[0]);
@@ -536,13 +711,13 @@ export class StateNode extends LitElement {
536
711
  else {
537
712
  subscription = newValue;
538
713
  }
539
- // Fetch the new option and add it if exists
714
+ // Fetch the new option and collect it if exists
540
715
  const newOpt = await baseOpt.getOption({ devices, subscription });
541
- if (newOpt) {
542
- computed.add(newOpt);
543
- }
716
+ if (newOpt)
717
+ results.push(newOpt);
544
718
  }
545
719
  }
720
+ return results;
546
721
  }
547
722
  /**
548
723
  * Attempts to apply the given delta action to the current value.
@@ -653,6 +828,18 @@ export class StateNode extends LitElement {
653
828
  await this._syncEventTask.taskComplete;
654
829
  await this._collectToggleTask.taskComplete;
655
830
  await this._etaRenderTask.taskComplete;
831
+ // Ensure any debounced/mutation-triggered Eta runs have settled
832
+ await this._waitEtaSettled();
833
+ // Await all registered contextual children (nearest descendants only)
834
+ try {
835
+ const children = Array.from(this._contextualChildren);
836
+ const waits = children
837
+ .map((c) => c.updateComplete)
838
+ .filter((p) => !!p);
839
+ if (waits.length > 0)
840
+ await Promise.allSettled(waits);
841
+ }
842
+ catch { /* ignore */ }
656
843
  return result;
657
844
  }
658
845
  isDeviceAndSubscriptionChange(evt) {
@@ -697,7 +884,7 @@ export class StateNode extends LitElement {
697
884
  }
698
885
  }
699
886
  __decorate([
700
- property({ type: Boolean, attribute: 'auto-forward' })
887
+ property({ type: Boolean })
701
888
  ], StateNode.prototype, "autoForward", void 0);
702
889
  __decorate([
703
890
  property({ type: Boolean, attribute: 'no-collect' })
@@ -1 +1 @@
1
- {"version":3,"file":"node.state.js","sourceRoot":"","sources":["../../../src/nodes/node.state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"node.state.js","sourceRoot":"","sources":["../../../src/nodes/node.state.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { DATA_RENDER_NODE, handleRenderNode } from "./utility.js";
1
+ import { DATA_RENDER_NODE, handleRenderNode, cleanupRenderNode } from "./utility.js";
2
2
  const registerRenderNodes = (document) => {
3
3
  // On page load, “announce” the ones already in the DOM:
4
4
  document
@@ -18,6 +18,16 @@ const registerRenderNodes = (document) => {
18
18
  .querySelectorAll(DATA_RENDER_NODE)
19
19
  .forEach(handleRenderNode);
20
20
  }
21
+ for (const node of Array.from(m.removedNodes)) {
22
+ if (!(node instanceof HTMLElement))
23
+ continue;
24
+ if (node.matches(DATA_RENDER_NODE)) {
25
+ cleanupRenderNode(node);
26
+ }
27
+ node
28
+ .querySelectorAll(DATA_RENDER_NODE)
29
+ .forEach(n => cleanupRenderNode(n));
30
+ }
21
31
  }
22
32
  });
23
33
  // make sure to observe subtree so deep inserts fire here:
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/renders/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAc,MAAM,WAAW,CAAC;AAE3E,MAAM,mBAAmB,GAAG,CAAC,QAAqB,EAAE,EAAE;IACtD,wDAAwD;IACtD,QAAQ;SACL,gBAAgB,CAAa,gBAAgB,CAAC;SAC9C,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAE7B,kCAAkC;IAClC,MAAM,EAAE,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,EAAE;QACrC,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YACrB,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC5C,IAAI,CAAC,CAAC,IAAI,YAAY,WAAW,CAAC;oBAAE,SAAS;gBAE7C,wBAAwB;gBACxB,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;oBACnC,gBAAgB,CAAC,IAAkB,CAAC,CAAC;gBACvC,CAAC;gBAED,IAAI;qBACD,gBAAgB,CAAa,gBAAgB,CAAC;qBAC9C,OAAO,CAAC,gBAAgB,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,0DAA0D;IAC1D,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE;QACnB,SAAS,EAAE,IAAI;QACf,OAAO,EAAI,IAAI;KAChB,CAAC,CAAC;AACL,CAAC,CAAA;AAED,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/renders/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAc,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9F,MAAM,mBAAmB,GAAG,CAAC,QAAqB,EAAE,EAAE;IACtD,wDAAwD;IACtD,QAAQ;SACL,gBAAgB,CAAa,gBAAgB,CAAC;SAC9C,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAE7B,kCAAkC;IAClC,MAAM,EAAE,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,EAAE;QACrC,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YACrB,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC5C,IAAI,CAAC,CAAC,IAAI,YAAY,WAAW,CAAC;oBAAE,SAAS;gBAE7C,wBAAwB;gBACxB,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;oBACnC,gBAAgB,CAAC,IAAkB,CAAC,CAAC;gBACvC,CAAC;gBAED,IAAI;qBACD,gBAAgB,CAAa,gBAAgB,CAAC;qBAC9C,OAAO,CAAC,gBAAgB,CAAC,CAAC;YAC/B,CAAC;YACD,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC9C,IAAI,CAAC,CAAC,IAAI,YAAY,WAAW,CAAC;oBAAE,SAAS;gBAE7C,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;oBACnC,iBAAiB,CAAC,IAAkB,CAAC,CAAC;gBACxC,CAAC;gBACD,IAAI;qBACD,gBAAgB,CAAa,gBAAgB,CAAC;qBAC9C,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAe,CAAC,CAAC,CAAC;YACtD,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,0DAA0D;IAC1D,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE;QACnB,SAAS,EAAE,IAAI;QACf,OAAO,EAAI,IAAI;KAChB,CAAC,CAAC;AACL,CAAC,CAAA;AAED,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
@@ -12,7 +12,9 @@ type BindContext<M extends ContextMap> = {
12
12
  observedAttrs: string[];
13
13
  requireAll?: boolean;
14
14
  };
15
- export type RenderNode = HTMLElement;
15
+ export type RenderNode = HTMLElement & {
16
+ updateComplete?: Promise<void>;
17
+ };
16
18
  export declare const DATA_RENDER_NODE = "[data-store-render]";
17
19
  export declare const attachContext: <C extends AnyContext>(el: HTMLElement, context: C, onValue: (value: ContextType<C>) => void, { subscribe }?: {
18
20
  subscribe?: boolean;
@@ -25,4 +27,5 @@ export declare const observeAttributes: (el: HTMLElement, onChange: () => void,
25
27
  */
26
28
  export declare function bindContext<M extends ContextMap>({ el, contexts, logic, observedAttrs, requireAll }: BindContext<M>): () => void;
27
29
  export declare const handleRenderNode: (el: RenderNode) => void;
30
+ export declare const cleanupRenderNode: (el: RenderNode) => void;
28
31
  export {};
@@ -6,7 +6,12 @@ import { stateContext } from '../contexts/context.state.js';
6
6
  import { renderAttributes } from '../renders/attributes/index.js';
7
7
  import { OBS_ATTRS_OPTION_PLUS_STATE } from '../renders/observe.js';
8
8
  import { ContextEvent } from '@lit/context';
9
+ import { CollectChildEvent, CollectChildRemovedEvent } from '../events/events.js';
9
10
  export const DATA_RENDER_NODE = "[data-store-render]";
11
+ // Track initialized render nodes to avoid duplicate bindings
12
+ const RENDER_BOUND = new WeakSet();
13
+ const RENDER_DISPOSE = new WeakMap();
14
+ const RENDER_RESOLVE = new WeakMap();
10
15
  export const attachContext = (el, context, onValue, { subscribe = true } = {}) => {
11
16
  let dispose;
12
17
  el.dispatchEvent(new ContextEvent(context, el, (value, d) => {
@@ -104,7 +109,7 @@ export function bindContext({ el, contexts, logic, observedAttrs = [], requireAl
104
109
  d();
105
110
  };
106
111
  }
107
- const addLogic = (el) => {
112
+ const addLogic = (el, rendered) => {
108
113
  // Single binder aggregates both contexts and renders when either changes
109
114
  return bindContext({
110
115
  el,
@@ -117,16 +122,61 @@ const addLogic = (el) => {
117
122
  product: productContext,
118
123
  derived: derivedContext
119
124
  });
125
+ rendered();
120
126
  },
121
127
  observedAttrs: [...OBS_ATTRS_OPTION_PLUS_STATE]
122
128
  });
123
129
  };
124
130
  export const handleRenderNode = (el) => {
125
- const dispose = addLogic(el);
131
+ // Idempotent: don't re-bind the same node
132
+ if (RENDER_BOUND.has(el))
133
+ return;
134
+ RENDER_BOUND.add(el);
135
+ const { promise, resolve } = Promise.withResolvers();
136
+ el.updateComplete = promise;
137
+ const dispose = addLogic(el, resolve);
138
+ RENDER_DISPOSE.set(el, dispose);
139
+ RENDER_RESOLVE.set(el, resolve);
140
+ // Register as contextual child so nearest StateNode parents can await it
141
+ try {
142
+ el.dispatchEvent(new CollectChildEvent({ child: el }));
143
+ }
144
+ catch { /* ignore */ }
126
145
  const originalRemove = el.remove;
127
146
  el.remove = () => {
128
147
  dispose();
148
+ try {
149
+ resolve();
150
+ }
151
+ catch { /* ignore */ }
152
+ try {
153
+ el.dispatchEvent(new CollectChildRemovedEvent({ child: el }));
154
+ }
155
+ catch { /* ignore */ }
156
+ RENDER_BOUND.delete(el);
157
+ RENDER_DISPOSE.delete(el);
158
+ RENDER_RESOLVE.delete(el);
129
159
  originalRemove.call(el);
130
160
  };
131
161
  };
162
+ export const cleanupRenderNode = (el) => {
163
+ const dispose = RENDER_DISPOSE.get(el);
164
+ try {
165
+ dispose?.();
166
+ }
167
+ catch { /* ignore */ }
168
+ // Resolve any outstanding updateComplete so parents don't hang
169
+ const resolve = RENDER_RESOLVE.get(el);
170
+ try {
171
+ resolve?.();
172
+ }
173
+ catch { /* ignore */ }
174
+ try {
175
+ el.dispatchEvent(new CollectChildRemovedEvent({ child: el }));
176
+ }
177
+ catch { /* ignore */ }
178
+ RENDER_DISPOSE.delete(el);
179
+ RENDER_BOUND.delete(el);
180
+ RENDER_RESOLVE.delete(el);
181
+ };
132
182
  //# sourceMappingURL=utility.js.map