@toyz/loom 0.13.5 → 0.13.7

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.
@@ -19,8 +19,8 @@ declare const LAZY_OPTS: import("..").LoomSymbol<LazyOptions>;
19
19
  declare const LAZY_LOADED: import("..").LoomSymbol<boolean>;
20
20
  declare const LAZY_IMPL: import("..").LoomSymbol<unknown>;
21
21
  export interface LazyOptions {
22
- /** Tag name of a loading component to show while the chunk loads */
23
- loading?: string;
22
+ /** Loading indicator — tag name string or factory returning a DOM node (JSX works) */
23
+ loading?: string | (() => Node);
24
24
  }
25
25
  /**
26
26
  * @lazy(loader, opts?) — Stackable class decorator
@@ -1 +1 @@
1
- {"version":3,"file":"lazy.d.ts","sourceRoot":"","sources":["../../src/element/lazy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,QAAA,MAAM,WAAW,kCAA8B,CAAC;AAChD,QAAA,MAAM,SAAS,sCAA2C,CAAC;AAC3D,QAAA,MAAM,WAAW,kCAAuC,CAAC;AACzD,QAAA,MAAM,SAAS,kCAA8B,CAAC;AAE9C,MAAM,WAAW,WAAW;IAC1B,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;GAMG;AACH,wBAAgB,IAAI,CAClB,MAAM,EAAE,MAAM,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,EACrD,IAAI,CAAC,EAAE,WAAW,IAED,OAAO,QAAQ,EAAE,UAAU,qBAAqB,UA8FlE;AAED,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC"}
1
+ {"version":3,"file":"lazy.d.ts","sourceRoot":"","sources":["../../src/element/lazy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,QAAA,MAAM,WAAW,kCAA8B,CAAC;AAChD,QAAA,MAAM,SAAS,sCAA2C,CAAC;AAC3D,QAAA,MAAM,WAAW,kCAAuC,CAAC;AACzD,QAAA,MAAM,SAAS,kCAA8B,CAAC;AAE9C,MAAM,WAAW,WAAW;IAC1B,sFAAsF;IACtF,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC;CACjC;AAED;;;;;;GAMG;AACH,wBAAgB,IAAI,CAClB,MAAM,EAAE,MAAM,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,EACrD,IAAI,CAAC,EAAE,WAAW,IAED,OAAO,QAAQ,EAAE,UAAU,qBAAqB,UAgGlE;AAED,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC"}
@@ -46,18 +46,20 @@ export function lazy(loader, opts) {
46
46
  }
47
47
  };
48
48
  ctor.prototype.connectedCallback = async function () {
49
- // Already loaded — if we have a hosted impl, just call its connected
49
+ // Already loaded — mount the impl for this (possibly new) instance
50
50
  if (ctor[LAZY_LOADED.key]) {
51
51
  origConnected?.call(this);
52
- // Re-mount the impl if disconnected/reconnected
52
+ // Mount impl if this instance doesn't have one yet
53
53
  if (!this[LAZY_IMPL.key] || !this[LAZY_IMPL.key].isConnected) {
54
- this._mountLazyImpl?.();
54
+ ctor.__mountLazyImpl.call(this);
55
55
  }
56
56
  return;
57
57
  }
58
58
  // Show loading indicator
59
59
  if (opts?.loading) {
60
- const loadingEl = document.createElement(opts.loading);
60
+ const loadingEl = typeof opts.loading === "function"
61
+ ? opts.loading()
62
+ : document.createElement(opts.loading);
61
63
  this.shadow.appendChild(loadingEl);
62
64
  }
63
65
  try {
@@ -69,12 +71,12 @@ export function lazy(loader, opts) {
69
71
  if (!customElements.get(implTag)) {
70
72
  customElements.define(implTag, RealClass);
71
73
  }
72
- // Store the impl tag for future mounts
74
+ // Store the impl tag and shared mount function on the constructor
73
75
  ctor[LAZY_LOADED.key] = true;
74
76
  ctor.__lazy_impl_tag = implTag;
75
- // Clear loading indicator and mount
76
- this.shadow.innerHTML = "";
77
- this._mountLazyImpl = () => {
77
+ // Shared mount function can be called by any instance
78
+ ctor.__mountLazyImpl = function () {
79
+ this.shadow.innerHTML = "";
78
80
  const realEl = document.createElement(ctor.__lazy_impl_tag);
79
81
  // Forward all attributes from shell → real instance
80
82
  for (const attr of this.attributes) {
@@ -100,7 +102,7 @@ export function lazy(loader, opts) {
100
102
  this.shadow.appendChild(realEl);
101
103
  this[LAZY_IMPL.key] = realEl;
102
104
  };
103
- this._mountLazyImpl();
105
+ ctor.__mountLazyImpl.call(this);
104
106
  }
105
107
  catch (err) {
106
108
  console.error("[Loom @lazy] Failed to load module:", err);
@@ -1 +1 @@
1
- {"version":3,"file":"lazy.js","sourceRoot":"","sources":["../../src/element/lazy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lazy.js","sourceRoot":"","sources":["../../src/element/lazy.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@toyz/loom",
3
- "version": "0.13.5",
3
+ "version": "0.13.7",
4
4
  "type": "module",
5
5
  "description": "Decorator-driven web component framework with reactive state, DOM morphing, DI, and JSX",
6
6
  "license": "MIT",