@penn-libraries/web 0.3.0-dev.2 → 0.3.0-dev.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.
Files changed (109) hide show
  1. package/dist/cjs/app-globals-V2Kpy_OQ.js +8 -0
  2. package/dist/cjs/app-globals-V2Kpy_OQ.js.map +1 -0
  3. package/dist/cjs/{index-c02f277e.js → index-B6Rjt_WH.js} +339 -196
  4. package/dist/cjs/index-B6Rjt_WH.js.map +1 -0
  5. package/dist/cjs/index.cjs.js +2 -3
  6. package/dist/cjs/index.cjs.js.map +1 -1
  7. package/dist/cjs/loader.cjs.js +4 -5
  8. package/dist/cjs/loader.cjs.js.map +1 -1
  9. package/dist/cjs/pennlibs-banner.cjs.entry.js +3 -5
  10. package/dist/cjs/pennlibs-banner.cjs.entry.js.map +1 -1
  11. package/dist/cjs/pennlibs-banner.entry.cjs.js.map +1 -0
  12. package/dist/cjs/pennlibs-chat.pennlibs-feedback.pennlibs-footer.pennlibs-header.pennlibs-hero.entry.cjs.js.map +1 -0
  13. package/dist/cjs/{pennlibs-chat_4.cjs.entry.js → pennlibs-chat_5.cjs.entry.js} +69 -50
  14. package/dist/cjs/pennlibs-chat_5.cjs.entry.js.map +1 -0
  15. package/dist/cjs/pennlibs-colors.cjs.entry.js +3 -6
  16. package/dist/cjs/pennlibs-colors.cjs.entry.js.map +1 -1
  17. package/dist/cjs/pennlibs-colors.entry.cjs.js.map +1 -0
  18. package/dist/cjs/web.cjs.js +8 -7
  19. package/dist/cjs/web.cjs.js.map +1 -1
  20. package/dist/collection/collection-manifest.json +4 -3
  21. package/dist/collection/components/pennlibs-chat/pennlibs-chat.js.map +1 -1
  22. package/dist/collection/components/pennlibs-colors/pennlibs-colors.js +4 -4
  23. package/dist/collection/components/pennlibs-colors/pennlibs-colors.js.map +1 -1
  24. package/dist/collection/components/pennlibs-feedback/pennlibs-feedback.js.map +1 -1
  25. package/dist/collection/components/pennlibs-footer/pennlibs-footer.js +4 -5
  26. package/dist/collection/components/pennlibs-footer/pennlibs-footer.js.map +1 -1
  27. package/dist/collection/components/pennlibs-header/pennlibs-header.css +2 -114
  28. package/dist/collection/components/pennlibs-header/pennlibs-header.js +35 -27
  29. package/dist/collection/components/pennlibs-header/pennlibs-header.js.map +1 -1
  30. package/dist/collection/components/pennlibs-hero/pennlibs-hero.css +133 -0
  31. package/dist/collection/components/pennlibs-hero/pennlibs-hero.js +71 -0
  32. package/dist/collection/components/pennlibs-hero/pennlibs-hero.js.map +1 -0
  33. package/dist/components/index.d.ts +2 -0
  34. package/dist/components/index.js +2 -0
  35. package/dist/components/index.js.map +1 -1
  36. package/dist/components/pennlibs-banner.js +2 -2
  37. package/dist/components/pennlibs-banner.js.map +1 -1
  38. package/dist/components/pennlibs-chat.js +2 -2
  39. package/dist/components/pennlibs-chat.js.map +1 -1
  40. package/dist/components/pennlibs-colors.js +2 -3
  41. package/dist/components/pennlibs-colors.js.map +1 -1
  42. package/dist/components/pennlibs-feedback.js +2 -2
  43. package/dist/components/pennlibs-feedback.js.map +1 -1
  44. package/dist/components/pennlibs-footer.js +2 -4
  45. package/dist/components/pennlibs-footer.js.map +1 -1
  46. package/dist/components/pennlibs-header.js +10 -41
  47. package/dist/components/pennlibs-header.js.map +1 -1
  48. package/dist/components/pennlibs-hero.d.ts +11 -0
  49. package/dist/components/pennlibs-hero.js +83 -0
  50. package/dist/components/pennlibs-hero.js.map +1 -0
  51. package/dist/esm/app-globals-DQuL1Twl.js +6 -0
  52. package/dist/esm/app-globals-DQuL1Twl.js.map +1 -0
  53. package/dist/{web/p-085cc320.js → esm/index-BQRdy1TQ.js} +339 -176
  54. package/dist/esm/index-BQRdy1TQ.js.map +1 -0
  55. package/dist/esm/index.js +2 -1
  56. package/dist/esm/index.js.map +1 -1
  57. package/dist/esm/loader.js +5 -4
  58. package/dist/esm/loader.js.map +1 -1
  59. package/dist/esm/pennlibs-banner.entry.js +3 -3
  60. package/dist/esm/pennlibs-banner.entry.js.map +1 -1
  61. package/dist/esm/pennlibs-chat.pennlibs-feedback.pennlibs-footer.pennlibs-header.pennlibs-hero.entry.js.map +1 -0
  62. package/dist/esm/{pennlibs-chat_4.entry.js → pennlibs-chat_5.entry.js} +69 -49
  63. package/dist/esm/pennlibs-chat_5.entry.js.map +1 -0
  64. package/dist/esm/pennlibs-colors.entry.js +3 -4
  65. package/dist/esm/pennlibs-colors.entry.js.map +1 -1
  66. package/dist/esm/web.js +7 -5
  67. package/dist/esm/web.js.map +1 -1
  68. package/dist/types/components/pennlibs-header/pennlibs-header.d.ts +4 -3
  69. package/dist/types/components/pennlibs-hero/pennlibs-hero.d.ts +13 -0
  70. package/dist/types/components.d.ts +21 -0
  71. package/dist/types/stencil-public-runtime.d.ts +9 -0
  72. package/dist/web/index.esm.js +2 -1
  73. package/dist/web/index.esm.js.map +1 -1
  74. package/dist/web/loader.esm.js.map +1 -0
  75. package/dist/web/{p-1910ca46.entry.js → p-2edaa432.entry.js} +4 -5
  76. package/dist/web/p-2edaa432.entry.js.map +1 -0
  77. package/dist/{esm/index-99779d4a.js → web/p-BQRdy1TQ.js} +339 -176
  78. package/dist/web/p-BQRdy1TQ.js.map +1 -0
  79. package/dist/web/p-DQuL1Twl.js +6 -0
  80. package/dist/web/p-DQuL1Twl.js.map +1 -0
  81. package/dist/web/{p-9cc59a0b.entry.js → p-a24d914e.entry.js} +69 -49
  82. package/dist/web/p-a24d914e.entry.js.map +1 -0
  83. package/dist/web/{p-9cf4cb70.entry.js → p-dac033ee.entry.js} +4 -4
  84. package/dist/web/p-dac033ee.entry.js.map +1 -0
  85. package/dist/web/pennlibs-banner.entry.esm.js.map +1 -0
  86. package/dist/web/pennlibs-chat.pennlibs-feedback.pennlibs-footer.pennlibs-header.pennlibs-hero.entry.esm.js.map +1 -0
  87. package/dist/web/pennlibs-colors.entry.esm.js.map +1 -0
  88. package/dist/web/web.css +1 -0
  89. package/dist/web/web.esm.js +7 -5
  90. package/dist/web/web.esm.js.map +1 -1
  91. package/package.json +4 -4
  92. package/dist/cjs/app-globals-3a1e7e63.js +0 -7
  93. package/dist/cjs/app-globals-3a1e7e63.js.map +0 -1
  94. package/dist/cjs/index-c02f277e.js.map +0 -1
  95. package/dist/cjs/pennlibs-chat_4.cjs.entry.js.map +0 -1
  96. package/dist/collection/components/pennlibs-header/container.js +0 -8
  97. package/dist/collection/components/pennlibs-header/container.js.map +0 -1
  98. package/dist/esm/app-globals-0f993ce5.js +0 -5
  99. package/dist/esm/app-globals-0f993ce5.js.map +0 -1
  100. package/dist/esm/index-99779d4a.js.map +0 -1
  101. package/dist/esm/pennlibs-chat_4.entry.js.map +0 -1
  102. package/dist/types/components/pennlibs-header/container.d.ts +0 -8
  103. package/dist/web/p-085cc320.js.map +0 -1
  104. package/dist/web/p-1910ca46.entry.js.map +0 -1
  105. package/dist/web/p-9cc59a0b.entry.js.map +0 -1
  106. package/dist/web/p-9cf4cb70.entry.js.map +0 -1
  107. package/dist/web/p-e1255160.js +0 -5
  108. package/dist/web/p-e1255160.js.map +0 -1
  109. package/loader/package.json +0 -11
@@ -1,39 +1,32 @@
1
1
  'use strict';
2
2
 
3
- function _interopNamespace(e) {
4
- if (e && e.__esModule) return e;
5
- var n = Object.create(null);
6
- if (e) {
7
- Object.keys(e).forEach(function (k) {
8
- if (k !== 'default') {
9
- var d = Object.getOwnPropertyDescriptor(e, k);
10
- Object.defineProperty(n, k, d.get ? d : {
11
- enumerable: true,
12
- get: function () {
13
- return e[k];
14
- }
15
- });
16
- }
17
- });
18
- }
19
- n['default'] = e;
20
- return Object.freeze(n);
21
- }
22
-
23
3
  const NAMESPACE = 'web';
24
- const BUILD = /* web */ { allRenderFn: true, appendChildSlotFix: false, asyncLoading: true, asyncQueue: false, attachStyles: true, cloneNodeFix: false, cmpDidLoad: false, cmpDidRender: true, cmpDidUnload: false, cmpDidUpdate: false, cmpShouldUpdate: false, cmpWillLoad: true, cmpWillRender: false, cmpWillUpdate: false, connectedCallback: true, constructableCSS: true, cssAnnotations: true, devTools: false, disconnectedCallback: false, element: false, event: true, experimentalScopedSlotChanges: false, experimentalSlotFixes: false, formAssociated: false, hasRenderFn: true, hostListener: false, hostListenerTarget: false, hostListenerTargetBody: false, hostListenerTargetDocument: false, hostListenerTargetParent: false, hostListenerTargetWindow: false, hotModuleReplacement: false, hydrateClientSide: false, hydrateServerSide: false, hydratedAttribute: false, hydratedClass: true, hydratedSelectorName: "hydrated", initializeNextTick: false, invisiblePrehydration: true, isDebug: false, isDev: false, isTesting: false, lazyLoad: true, lifecycle: true, lifecycleDOMEvents: false, member: true, method: false, mode: false, observeAttribute: true, profile: false, prop: true, propBoolean: false, propMutable: false, propNumber: false, propString: true, reflect: false, scoped: false, scopedSlotTextContentFix: false, scriptDataOpts: false, shadowDelegatesFocus: false, shadowDom: true, slot: true, slotChildNodesFix: false, slotRelocation: false, state: true, style: true, svg: true, taskQueue: true, transformTagName: false, updatable: true, vdomAttribute: true, vdomClass: true, vdomFunctional: true, vdomKey: true, vdomListener: true, vdomPropOrAttr: true, vdomRef: true, vdomRender: true, vdomStyle: true, vdomText: true, vdomXlink: false, watchCallback: false };
4
+ const BUILD = /* web */ { hydratedSelectorName: "hydrated", lazyLoad: true, updatable: true, watchCallback: false };
25
5
 
26
6
  /*
27
- Stencil Client Platform v4.20.0 | MIT Licensed | https://stenciljs.com
7
+ Stencil Client Platform v4.29.3 | MIT Licensed | https://stenciljs.com
28
8
  */
29
9
  var __defProp = Object.defineProperty;
30
10
  var __export = (target, all) => {
31
11
  for (var name in all)
32
12
  __defProp(target, name, { get: all[name], enumerable: true });
33
13
  };
34
- var hostRefs = /* @__PURE__ */ new WeakMap();
35
- var getHostRef = (ref) => hostRefs.get(ref);
36
- var registerInstance = (lazyInstance, hostRef) => hostRefs.set(hostRef.$lazyInstance$ = lazyInstance, hostRef);
14
+
15
+ // src/utils/constants.ts
16
+ var SVG_NS = "http://www.w3.org/2000/svg";
17
+ var HTML_NS = "http://www.w3.org/1999/xhtml";
18
+
19
+ // src/client/client-host-ref.ts
20
+ var getHostRef = (ref) => {
21
+ if (ref.__stencil__getHostRef) {
22
+ return ref.__stencil__getHostRef();
23
+ }
24
+ return void 0;
25
+ };
26
+ var registerInstance = (lazyInstance, hostRef) => {
27
+ lazyInstance.__stencil__getHostRef = () => hostRef;
28
+ hostRef.$lazyInstance$ = lazyInstance;
29
+ };
37
30
  var registerHost = (hostElement, cmpMeta) => {
38
31
  const hostRef = {
39
32
  $flags$: 0,
@@ -46,7 +39,9 @@ var registerHost = (hostElement, cmpMeta) => {
46
39
  hostElement["s-p"] = [];
47
40
  hostElement["s-rc"] = [];
48
41
  }
49
- return hostRefs.set(hostElement, hostRef);
42
+ const ref = hostRef;
43
+ hostElement.__stencil__getHostRef = () => ref;
44
+ return ref;
50
45
  };
51
46
  var isMemberInElement = (elm, memberName) => memberName in elm;
52
47
  var consoleError = (e, el) => (0, console.error)(e, el);
@@ -64,26 +59,31 @@ var loadModule = (cmpMeta, hostRef, hmrVersionId) => {
64
59
  return module[exportName];
65
60
  }
66
61
  /*!__STENCIL_STATIC_IMPORT_SWITCH__*/
67
- return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require(
62
+ return import(
68
63
  /* @vite-ignore */
69
64
  /* webpackInclude: /\.entry\.js$/ */
70
65
  /* webpackExclude: /\.system\.entry\.js$/ */
71
66
  /* webpackMode: "lazy" */
72
67
  `./${bundleId}.entry.js${""}`
73
- )); }).then((importedModule) => {
74
- {
75
- cmpModules.set(bundleId, importedModule);
68
+ ).then(
69
+ (importedModule) => {
70
+ {
71
+ cmpModules.set(bundleId, importedModule);
72
+ }
73
+ return importedModule[exportName];
74
+ },
75
+ (e) => {
76
+ consoleError(e, hostRef.$hostElement$);
76
77
  }
77
- return importedModule[exportName];
78
- }, consoleError);
78
+ );
79
79
  };
80
80
 
81
81
  // src/client/client-style.ts
82
82
  var styles = /* @__PURE__ */ new Map();
83
+ var HYDRATED_STYLE_ID = "sty-id";
83
84
  var HYDRATED_CSS = "{visibility:hidden}.hydrated{visibility:inherit}";
84
85
  var SLOT_FB_CSS = "slot-fb{display:contents}slot-fb[hidden]{display:none}";
85
86
  var win = typeof window !== "undefined" ? window : {};
86
- var doc = win.document || { head: {} };
87
87
  var plt = {
88
88
  $flags$: 0,
89
89
  $resourcesUrl$: "",
@@ -144,25 +144,22 @@ var getAssetPath = (path) => {
144
144
  return assetUrl.origin !== win.location.origin ? assetUrl.href : assetUrl.pathname;
145
145
  };
146
146
  var setAssetPath = (path) => plt.$resourcesUrl$ = path;
147
-
148
- // src/utils/constants.ts
149
- var EMPTY_OBJ = {};
150
- var SVG_NS = "http://www.w3.org/2000/svg";
151
- var HTML_NS = "http://www.w3.org/1999/xhtml";
152
-
153
- // src/utils/helpers.ts
154
- var isDef = (v) => v != null;
155
147
  var isComplexType = (o) => {
156
148
  o = typeof o;
157
149
  return o === "object" || o === "function";
158
150
  };
159
151
 
160
152
  // src/utils/query-nonce-meta-tag-content.ts
161
- function queryNonceMetaTagContent(doc2) {
153
+ function queryNonceMetaTagContent(doc) {
162
154
  var _a, _b, _c;
163
- return (_c = (_b = (_a = doc2.head) == null ? void 0 : _a.querySelector('meta[name="csp-nonce"]')) == null ? void 0 : _b.getAttribute("content")) != null ? _c : void 0;
155
+ return (_c = (_b = (_a = doc.head) == null ? void 0 : _a.querySelector('meta[name="csp-nonce"]')) == null ? void 0 : _b.getAttribute("content")) != null ? _c : void 0;
164
156
  }
165
157
 
158
+ // src/utils/regular-expression.ts
159
+ var escapeRegExpSpecialCharacters = (text) => {
160
+ return text.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
161
+ };
162
+
166
163
  // src/utils/result.ts
167
164
  var result_exports = {};
168
165
  __export(result_exports, {
@@ -326,6 +323,18 @@ var convertToPrivate = (node) => {
326
323
  vnode.$name$ = node.vname;
327
324
  return vnode;
328
325
  };
326
+ var createSupportsRuleRe = (selector) => {
327
+ const safeSelector2 = escapeRegExpSpecialCharacters(selector);
328
+ return new RegExp(
329
+ // First capture group: match any context before the selector that's not inside @supports selector()
330
+ // Using negative lookahead to avoid matching inside @supports selector(...) condition
331
+ `(^|[^@]|@(?!supports\\s+selector\\s*\\([^{]*?${safeSelector2}))(${safeSelector2}\\b)`,
332
+ "g"
333
+ );
334
+ };
335
+ createSupportsRuleRe("::slotted");
336
+ createSupportsRuleRe(":host");
337
+ createSupportsRuleRe(":host-context");
329
338
  var parsePropertyValue = (propValue, propType) => {
330
339
  if (propValue != null && !isComplexType(propValue)) {
331
340
  if (propType & 1 /* String */) {
@@ -343,9 +352,9 @@ var createEvent = (ref, name, flags) => {
343
352
  return {
344
353
  emit: (detail) => {
345
354
  return emitEvent(elm, name, {
346
- bubbles: !!(flags & 4 /* Bubbles */),
347
- composed: !!(flags & 2 /* Composed */),
348
- cancelable: !!(flags & 1 /* Cancellable */),
355
+ bubbles: true,
356
+ composed: true,
357
+ cancelable: true,
349
358
  detail
350
359
  });
351
360
  }
@@ -375,7 +384,10 @@ var addStyle = (styleContainerNode, cmpMeta, mode) => {
375
384
  var _a;
376
385
  const scopeId2 = getScopeId(cmpMeta);
377
386
  const style = styles.get(scopeId2);
378
- styleContainerNode = styleContainerNode.nodeType === 11 /* DocumentFragment */ ? styleContainerNode : doc;
387
+ if (!win.document) {
388
+ return scopeId2;
389
+ }
390
+ styleContainerNode = styleContainerNode.nodeType === 11 /* DocumentFragment */ ? styleContainerNode : win.document;
379
391
  if (style) {
380
392
  if (typeof style === "string") {
381
393
  styleContainerNode = styleContainerNode.head || styleContainerNode;
@@ -386,23 +398,39 @@ var addStyle = (styleContainerNode, cmpMeta, mode) => {
386
398
  }
387
399
  if (!appliedStyles.has(scopeId2)) {
388
400
  {
389
- styleElm = doc.createElement("style");
401
+ styleElm = document.querySelector(`[${HYDRATED_STYLE_ID}="${scopeId2}"]`) || win.document.createElement("style");
390
402
  styleElm.innerHTML = style;
391
- const nonce = (_a = plt.$nonce$) != null ? _a : queryNonceMetaTagContent(doc);
403
+ const nonce = (_a = plt.$nonce$) != null ? _a : queryNonceMetaTagContent(win.document);
392
404
  if (nonce != null) {
393
405
  styleElm.setAttribute("nonce", nonce);
394
406
  }
395
- const injectStyle = (
396
- /**
397
- * we render a scoped component
398
- */
399
- !(cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */) || /**
400
- * we are using shadow dom and render the style tag within the shadowRoot
401
- */
402
- cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */ && styleContainerNode.nodeName !== "HEAD"
403
- );
404
- if (injectStyle) {
405
- styleContainerNode.insertBefore(styleElm, styleContainerNode.querySelector("link"));
407
+ if (!(cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */)) {
408
+ if (styleContainerNode.nodeName === "HEAD") {
409
+ const preconnectLinks = styleContainerNode.querySelectorAll("link[rel=preconnect]");
410
+ const referenceNode2 = preconnectLinks.length > 0 ? preconnectLinks[preconnectLinks.length - 1].nextSibling : styleContainerNode.querySelector("style");
411
+ styleContainerNode.insertBefore(
412
+ styleElm,
413
+ (referenceNode2 == null ? void 0 : referenceNode2.parentNode) === styleContainerNode ? referenceNode2 : null
414
+ );
415
+ } else if ("host" in styleContainerNode) {
416
+ if (supportsConstructableStylesheets) {
417
+ const stylesheet = new CSSStyleSheet();
418
+ stylesheet.replaceSync(style);
419
+ styleContainerNode.adoptedStyleSheets = [stylesheet, ...styleContainerNode.adoptedStyleSheets];
420
+ } else {
421
+ const existingStyleContainer = styleContainerNode.querySelector("style");
422
+ if (existingStyleContainer) {
423
+ existingStyleContainer.innerHTML = style + existingStyleContainer.innerHTML;
424
+ } else {
425
+ styleContainerNode.prepend(styleElm);
426
+ }
427
+ }
428
+ } else {
429
+ styleContainerNode.append(styleElm);
430
+ }
431
+ }
432
+ if (cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */) {
433
+ styleContainerNode.insertBefore(styleElm, null);
406
434
  }
407
435
  }
408
436
  if (cmpMeta.$flags$ & 4 /* hasSlotRelocation */) {
@@ -426,117 +454,144 @@ var attachStyles = (hostRef) => {
426
454
  const scopeId2 = addStyle(
427
455
  elm.shadowRoot ? elm.shadowRoot : elm.getRootNode(),
428
456
  cmpMeta);
429
- if (flags & 10 /* needsScopedEncapsulation */ && flags & 2 /* scopedCssEncapsulation */) {
457
+ if (flags & 10 /* needsScopedEncapsulation */) {
430
458
  elm["s-sc"] = scopeId2;
431
459
  elm.classList.add(scopeId2 + "-h");
432
460
  }
433
461
  endAttachStyles();
434
462
  };
435
463
  var getScopeId = (cmp, mode) => "sc-" + (cmp.$tagName$);
436
- var setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => {
437
- if (oldValue !== newValue) {
438
- let isProp = isMemberInElement(elm, memberName);
439
- let ln = memberName.toLowerCase();
440
- if (memberName === "class") {
441
- const classList = elm.classList;
442
- const oldClasses = parseClassList(oldValue);
443
- const newClasses = parseClassList(newValue);
464
+ var setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags, initialRender) => {
465
+ if (oldValue === newValue) {
466
+ return;
467
+ }
468
+ let isProp = isMemberInElement(elm, memberName);
469
+ let ln = memberName.toLowerCase();
470
+ if (memberName === "class") {
471
+ const classList = elm.classList;
472
+ const oldClasses = parseClassList(oldValue);
473
+ let newClasses = parseClassList(newValue);
474
+ {
444
475
  classList.remove(...oldClasses.filter((c) => c && !newClasses.includes(c)));
445
476
  classList.add(...newClasses.filter((c) => c && !oldClasses.includes(c)));
446
- } else if (memberName === "style") {
447
- {
448
- for (const prop in oldValue) {
449
- if (!newValue || newValue[prop] == null) {
450
- if (prop.includes("-")) {
451
- elm.style.removeProperty(prop);
452
- } else {
453
- elm.style[prop] = "";
454
- }
455
- }
456
- }
457
- }
458
- for (const prop in newValue) {
459
- if (!oldValue || newValue[prop] !== oldValue[prop]) {
477
+ }
478
+ } else if (memberName === "style") {
479
+ {
480
+ for (const prop in oldValue) {
481
+ if (!newValue || newValue[prop] == null) {
460
482
  if (prop.includes("-")) {
461
- elm.style.setProperty(prop, newValue[prop]);
483
+ elm.style.removeProperty(prop);
462
484
  } else {
463
- elm.style[prop] = newValue[prop];
485
+ elm.style[prop] = "";
464
486
  }
465
487
  }
466
488
  }
467
- } else if (memberName === "key") ; else if (memberName === "ref") {
468
- if (newValue) {
469
- newValue(elm);
470
- }
471
- } else if ((!isProp ) && memberName[0] === "o" && memberName[1] === "n") {
472
- if (memberName[2] === "-") {
473
- memberName = memberName.slice(3);
474
- } else if (isMemberInElement(win, ln)) {
475
- memberName = ln.slice(2);
476
- } else {
477
- memberName = ln[2] + memberName.slice(3);
478
- }
479
- if (oldValue || newValue) {
480
- const capture = memberName.endsWith(CAPTURE_EVENT_SUFFIX);
481
- memberName = memberName.replace(CAPTURE_EVENT_REGEX, "");
482
- if (oldValue) {
483
- plt.rel(elm, memberName, oldValue, capture);
484
- }
485
- if (newValue) {
486
- plt.ael(elm, memberName, newValue, capture);
489
+ }
490
+ for (const prop in newValue) {
491
+ if (!oldValue || newValue[prop] !== oldValue[prop]) {
492
+ if (prop.includes("-")) {
493
+ elm.style.setProperty(prop, newValue[prop]);
494
+ } else {
495
+ elm.style[prop] = newValue[prop];
487
496
  }
488
497
  }
498
+ }
499
+ } else if (memberName === "key") ; else if (memberName === "ref") {
500
+ if (newValue) {
501
+ newValue(elm);
502
+ }
503
+ } else if ((!isProp ) && memberName[0] === "o" && memberName[1] === "n") {
504
+ if (memberName[2] === "-") {
505
+ memberName = memberName.slice(3);
506
+ } else if (isMemberInElement(win, ln)) {
507
+ memberName = ln.slice(2);
489
508
  } else {
490
- const isComplex = isComplexType(newValue);
491
- if ((isProp || isComplex && newValue !== null) && !isSvg) {
492
- try {
493
- if (!elm.tagName.includes("-")) {
494
- const n = newValue == null ? "" : newValue;
495
- if (memberName === "list") {
496
- isProp = false;
497
- } else if (oldValue == null || elm[memberName] != n) {
509
+ memberName = ln[2] + memberName.slice(3);
510
+ }
511
+ if (oldValue || newValue) {
512
+ const capture = memberName.endsWith(CAPTURE_EVENT_SUFFIX);
513
+ memberName = memberName.replace(CAPTURE_EVENT_REGEX, "");
514
+ if (oldValue) {
515
+ plt.rel(elm, memberName, oldValue, capture);
516
+ }
517
+ if (newValue) {
518
+ plt.ael(elm, memberName, newValue, capture);
519
+ }
520
+ }
521
+ } else {
522
+ const isComplex = isComplexType(newValue);
523
+ if ((isProp || isComplex && newValue !== null) && !isSvg) {
524
+ try {
525
+ if (!elm.tagName.includes("-")) {
526
+ const n = newValue == null ? "" : newValue;
527
+ if (memberName === "list") {
528
+ isProp = false;
529
+ } else if (oldValue == null || elm[memberName] != n) {
530
+ if (typeof elm.__lookupSetter__(memberName) === "function") {
498
531
  elm[memberName] = n;
532
+ } else {
533
+ elm.setAttribute(memberName, n);
499
534
  }
500
- } else {
501
- elm[memberName] = newValue;
502
535
  }
503
- } catch (e) {
536
+ } else if (elm[memberName] !== newValue) {
537
+ elm[memberName] = newValue;
504
538
  }
539
+ } catch (e) {
505
540
  }
506
- if (newValue == null || newValue === false) {
507
- if (newValue !== false || elm.getAttribute(memberName) === "") {
508
- {
509
- elm.removeAttribute(memberName);
510
- }
511
- }
512
- } else if ((!isProp || flags & 4 /* isHost */ || isSvg) && !isComplex) {
513
- newValue = newValue === true ? "" : newValue;
541
+ }
542
+ if (newValue == null || newValue === false) {
543
+ if (newValue !== false || elm.getAttribute(memberName) === "") {
514
544
  {
515
- elm.setAttribute(memberName, newValue);
545
+ elm.removeAttribute(memberName);
516
546
  }
517
547
  }
548
+ } else if ((!isProp || flags & 4 /* isHost */ || isSvg) && !isComplex && elm.nodeType === 1 /* ElementNode */) {
549
+ newValue = newValue === true ? "" : newValue;
550
+ {
551
+ elm.setAttribute(memberName, newValue);
552
+ }
518
553
  }
519
554
  }
520
555
  };
521
556
  var parseClassListRegex = /\s/;
522
- var parseClassList = (value) => !value ? [] : value.split(parseClassListRegex);
557
+ var parseClassList = (value) => {
558
+ if (typeof value === "object" && value && "baseVal" in value) {
559
+ value = value.baseVal;
560
+ }
561
+ if (!value || typeof value !== "string") {
562
+ return [];
563
+ }
564
+ return value.split(parseClassListRegex);
565
+ };
523
566
  var CAPTURE_EVENT_SUFFIX = "Capture";
524
567
  var CAPTURE_EVENT_REGEX = new RegExp(CAPTURE_EVENT_SUFFIX + "$");
525
568
 
526
569
  // src/runtime/vdom/update-element.ts
527
- var updateElement = (oldVnode, newVnode, isSvgMode2) => {
570
+ var updateElement = (oldVnode, newVnode, isSvgMode2, isInitialRender) => {
528
571
  const elm = newVnode.$elm$.nodeType === 11 /* DocumentFragment */ && newVnode.$elm$.host ? newVnode.$elm$.host : newVnode.$elm$;
529
- const oldVnodeAttrs = oldVnode && oldVnode.$attrs$ || EMPTY_OBJ;
530
- const newVnodeAttrs = newVnode.$attrs$ || EMPTY_OBJ;
572
+ const oldVnodeAttrs = oldVnode && oldVnode.$attrs$ || {};
573
+ const newVnodeAttrs = newVnode.$attrs$ || {};
531
574
  {
532
575
  for (const memberName of sortedAttrNames(Object.keys(oldVnodeAttrs))) {
533
576
  if (!(memberName in newVnodeAttrs)) {
534
- setAccessor(elm, memberName, oldVnodeAttrs[memberName], void 0, isSvgMode2, newVnode.$flags$);
577
+ setAccessor(
578
+ elm,
579
+ memberName,
580
+ oldVnodeAttrs[memberName],
581
+ void 0,
582
+ isSvgMode2,
583
+ newVnode.$flags$);
535
584
  }
536
585
  }
537
586
  }
538
587
  for (const memberName of sortedAttrNames(Object.keys(newVnodeAttrs))) {
539
- setAccessor(elm, memberName, oldVnodeAttrs[memberName], newVnodeAttrs[memberName], isSvgMode2, newVnode.$flags$);
588
+ setAccessor(
589
+ elm,
590
+ memberName,
591
+ oldVnodeAttrs[memberName],
592
+ newVnodeAttrs[memberName],
593
+ isSvgMode2,
594
+ newVnode.$flags$);
540
595
  }
541
596
  };
542
597
  function sortedAttrNames(attrNames) {
@@ -548,26 +603,27 @@ function sortedAttrNames(attrNames) {
548
603
  attrNames
549
604
  );
550
605
  }
551
-
552
- // src/runtime/vdom/vdom-render.ts
553
- var scopeId;
554
606
  var hostTagName;
555
- var useNativeShadowDom = false;
556
607
  var isSvgMode = false;
557
- var createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {
608
+ var createElm = (oldParentVNode, newParentVNode, childIndex) => {
558
609
  const newVNode2 = newParentVNode.$children$[childIndex];
559
610
  let i2 = 0;
560
611
  let elm;
561
612
  let childNode;
562
613
  if (newVNode2.$text$ !== null) {
563
- elm = newVNode2.$elm$ = doc.createTextNode(newVNode2.$text$);
614
+ elm = newVNode2.$elm$ = win.document.createTextNode(newVNode2.$text$);
564
615
  } else {
565
616
  if (!isSvgMode) {
566
617
  isSvgMode = newVNode2.$tag$ === "svg";
567
618
  }
568
- elm = newVNode2.$elm$ = doc.createElementNS(
619
+ if (!win.document) {
620
+ throw new Error(
621
+ "You are trying to render a Stencil component in an environment that doesn't support the DOM. Make sure to populate the [`window`](https://developer.mozilla.org/en-US/docs/Web/API/Window/window) object before rendering a component."
622
+ );
623
+ }
624
+ elm = newVNode2.$elm$ = win.document.createElementNS(
569
625
  isSvgMode ? SVG_NS : HTML_NS,
570
- !useNativeShadowDom && BUILD.slotRelocation && newVNode2.$flags$ & 2 /* isSlotFallback */ ? "slot-fb" : newVNode2.$tag$
626
+ newVNode2.$tag$
571
627
  ) ;
572
628
  if (isSvgMode && newVNode2.$tag$ === "foreignObject") {
573
629
  isSvgMode = false;
@@ -575,11 +631,6 @@ var createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {
575
631
  {
576
632
  updateElement(null, newVNode2, isSvgMode);
577
633
  }
578
- const rootNode = elm.getRootNode();
579
- const isElementWithinShadowRoot = !rootNode.querySelector("body");
580
- if (!isElementWithinShadowRoot && BUILD.scoped && isDef(scopeId) && elm["s-si"] !== scopeId) {
581
- elm.classList.add(elm["s-si"] = scopeId);
582
- }
583
634
  if (newVNode2.$children$) {
584
635
  for (i2 = 0; i2 < newVNode2.$children$.length; ++i2) {
585
636
  childNode = createElm(oldParentVNode, newVNode2, i2);
@@ -716,6 +767,9 @@ var isSameVnode = (leftVNode, rightVNode, isInitialRender = false) => {
716
767
  if (!isInitialRender) {
717
768
  return leftVNode.$key$ === rightVNode.$key$;
718
769
  }
770
+ if (isInitialRender && !leftVNode.$key$ && rightVNode.$key$) {
771
+ leftVNode.$key$ = rightVNode.$key$;
772
+ }
719
773
  return true;
720
774
  }
721
775
  return false;
@@ -731,9 +785,7 @@ var patch = (oldVNode, newVNode2, isInitialRender = false) => {
731
785
  isSvgMode = tag === "svg" ? true : tag === "foreignObject" ? false : isSvgMode;
732
786
  }
733
787
  {
734
- if (tag === "slot" && !useNativeShadowDom) ; else {
735
- updateElement(oldVNode, newVNode2, isSvgMode);
736
- }
788
+ updateElement(oldVNode, newVNode2, isSvgMode);
737
789
  }
738
790
  if (oldChildren !== null && newChildren !== null) {
739
791
  updateChildren(elm, oldChildren, newVNode2, newChildren, isInitialRender);
@@ -762,14 +814,15 @@ var nullifyVNodeRefs = (vNode) => {
762
814
  }
763
815
  };
764
816
  var insertBefore = (parent, newNode, reference) => {
765
- const inserted = parent == null ? void 0 : parent.insertBefore(newNode, reference);
766
- return inserted;
817
+ {
818
+ return parent == null ? void 0 : parent.insertBefore(newNode, reference);
819
+ }
767
820
  };
768
821
  var renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
769
822
  const hostElm = hostRef.$hostElement$;
770
- const cmpMeta = hostRef.$cmpMeta$;
771
823
  const oldVNode = hostRef.$vnode$ || newVNode(null, null);
772
- const rootVnode = isHost(renderFnResults) ? renderFnResults : h(null, null, renderFnResults);
824
+ const isHostElement = isHost(renderFnResults);
825
+ const rootVnode = isHostElement ? renderFnResults : h(null, null, renderFnResults);
773
826
  hostTagName = hostElm.tagName;
774
827
  if (isInitialLoad && rootVnode.$attrs$) {
775
828
  for (const key of Object.keys(rootVnode.$attrs$)) {
@@ -782,17 +835,20 @@ var renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
782
835
  rootVnode.$flags$ |= 4 /* isHost */;
783
836
  hostRef.$vnode$ = rootVnode;
784
837
  rootVnode.$elm$ = oldVNode.$elm$ = hostElm.shadowRoot || hostElm ;
785
- {
786
- scopeId = hostElm["s-sc"];
787
- }
788
- useNativeShadowDom = (cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */) !== 0;
789
838
  patch(oldVNode, rootVnode, isInitialLoad);
790
839
  };
791
840
 
792
841
  // src/runtime/update-component.ts
793
842
  var attachToAncestor = (hostRef, ancestorComponent) => {
794
843
  if (ancestorComponent && !hostRef.$onRenderResolve$ && ancestorComponent["s-p"]) {
795
- ancestorComponent["s-p"].push(new Promise((r) => hostRef.$onRenderResolve$ = r));
844
+ const index = ancestorComponent["s-p"].push(
845
+ new Promise(
846
+ (r) => hostRef.$onRenderResolve$ = () => {
847
+ ancestorComponent["s-p"].splice(index - 1, 1);
848
+ r();
849
+ }
850
+ )
851
+ );
796
852
  }
797
853
  };
798
854
  var scheduleUpdate = (hostRef, isInitialLoad) => {
@@ -818,10 +874,11 @@ var dispatchHooks = (hostRef, isInitialLoad) => {
818
874
  }
819
875
  let maybePromise;
820
876
  if (isInitialLoad) {
821
- {
822
- maybePromise = safeCall(instance, "componentWillLoad");
823
- }
877
+ maybePromise = safeCall(instance, "componentWillLoad", void 0, elm);
878
+ } else {
879
+ maybePromise = safeCall(instance, "componentWillUpdate", void 0, elm);
824
880
  }
881
+ maybePromise = enqueue(maybePromise, () => safeCall(instance, "componentWillRender", void 0, elm));
825
882
  endSchedule();
826
883
  return enqueue(maybePromise, () => updateComponent(hostRef, instance, isInitialLoad));
827
884
  };
@@ -864,7 +921,7 @@ var callRender = (hostRef, instance, elm, isInitialLoad) => {
864
921
  try {
865
922
  instance = instance.render() ;
866
923
  {
867
- hostRef.$flags$ &= ~16 /* isQueuedForUpdate */;
924
+ hostRef.$flags$ &= -17 /* isQueuedForUpdate */;
868
925
  }
869
926
  {
870
927
  hostRef.$flags$ |= 2 /* hasRendered */;
@@ -887,14 +944,13 @@ var postUpdateComponent = (hostRef) => {
887
944
  const endPostUpdate = createTime("postUpdate", tagName);
888
945
  const instance = hostRef.$lazyInstance$ ;
889
946
  const ancestorComponent = hostRef.$ancestorComponent$;
890
- {
891
- safeCall(instance, "componentDidRender");
892
- }
947
+ safeCall(instance, "componentDidRender", void 0, elm);
893
948
  if (!(hostRef.$flags$ & 64 /* hasLoadedComponent */)) {
894
949
  hostRef.$flags$ |= 64 /* hasLoadedComponent */;
895
950
  {
896
951
  addHydratedFlag(elm);
897
952
  }
953
+ safeCall(instance, "componentDidLoad", void 0, elm);
898
954
  endPostUpdate();
899
955
  {
900
956
  hostRef.$onReadyResolve$(elm);
@@ -903,6 +959,7 @@ var postUpdateComponent = (hostRef) => {
903
959
  }
904
960
  }
905
961
  } else {
962
+ safeCall(instance, "componentDidUpdate", void 0, elm);
906
963
  endPostUpdate();
907
964
  }
908
965
  {
@@ -913,21 +970,18 @@ var postUpdateComponent = (hostRef) => {
913
970
  if (hostRef.$flags$ & 512 /* needsRerender */) {
914
971
  nextTick(() => scheduleUpdate(hostRef, false));
915
972
  }
916
- hostRef.$flags$ &= ~(4 /* isWaitingForChildren */ | 512 /* needsRerender */);
973
+ hostRef.$flags$ &= -517;
917
974
  }
918
975
  };
919
976
  var appDidLoad = (who) => {
920
- {
921
- addHydratedFlag(doc.documentElement);
922
- }
923
977
  nextTick(() => emitEvent(win, "appload", { detail: { namespace: NAMESPACE } }));
924
978
  };
925
- var safeCall = (instance, method, arg) => {
979
+ var safeCall = (instance, method, arg, elm) => {
926
980
  if (instance && instance[method]) {
927
981
  try {
928
982
  return instance[method](arg);
929
983
  } catch (e) {
930
- consoleError(e);
984
+ consoleError(e, elm);
931
985
  }
932
986
  }
933
987
  return void 0;
@@ -943,7 +997,7 @@ var setValue = (ref, propName, newVal, cmpMeta) => {
943
997
  const hostRef = getHostRef(ref);
944
998
  if (!hostRef) {
945
999
  throw new Error(
946
- `Couldn't find host element for "${cmpMeta.$tagName$}" as it is unknown to this Stencil runtime. This usually happens when integrating a 3rd party Stencil component with another Stencil component or application. Please reach out to the maintainers of the 3rd party Stencil component or report this on the Stencil Discord server (https://chat.stenciljs.com) or comment on this similar [GitHub issue](https://github.com/ionic-team/stencil/issues/5457).`
1000
+ `Couldn't find host element for "${cmpMeta.$tagName$}" as it is unknown to this Stencil runtime. This usually happens when integrating a 3rd party Stencil component with another Stencil component or application. Please reach out to the maintainers of the 3rd party Stencil component or report this on the Stencil Discord server (https://chat.stenciljs.com) or comment on this similar [GitHub issue](https://github.com/stenciljs/core/issues/5457).`
947
1001
  );
948
1002
  }
949
1003
  const oldVal = hostRef.$instanceValues$.get(propName);
@@ -956,6 +1010,11 @@ var setValue = (ref, propName, newVal, cmpMeta) => {
956
1010
  hostRef.$instanceValues$.set(propName, newVal);
957
1011
  if (instance) {
958
1012
  if ((flags & (2 /* hasRendered */ | 16 /* isQueuedForUpdate */)) === 2 /* hasRendered */) {
1013
+ if (instance.componentShouldUpdate) {
1014
+ if (instance.componentShouldUpdate(newVal, oldVal, propName) === false) {
1015
+ return;
1016
+ }
1017
+ }
959
1018
  scheduleUpdate(hostRef, false);
960
1019
  }
961
1020
  }
@@ -966,19 +1025,72 @@ var setValue = (ref, propName, newVal, cmpMeta) => {
966
1025
  var proxyComponent = (Cstr, cmpMeta, flags) => {
967
1026
  var _a, _b;
968
1027
  const prototype = Cstr.prototype;
969
- if (cmpMeta.$members$ || BUILD.watchCallback ) {
1028
+ if (cmpMeta.$members$ || BUILD.watchCallback) {
970
1029
  const members = Object.entries((_a = cmpMeta.$members$) != null ? _a : {});
971
1030
  members.map(([memberName, [memberFlags]]) => {
972
1031
  if ((memberFlags & 31 /* Prop */ || (flags & 2 /* proxyState */) && memberFlags & 32 /* State */)) {
1032
+ const { get: origGetter, set: origSetter } = Object.getOwnPropertyDescriptor(prototype, memberName) || {};
1033
+ if (origGetter) cmpMeta.$members$[memberName][0] |= 2048 /* Getter */;
1034
+ if (origSetter) cmpMeta.$members$[memberName][0] |= 4096 /* Setter */;
1035
+ if (flags & 1 /* isElementConstructor */ || !origGetter) {
1036
+ Object.defineProperty(prototype, memberName, {
1037
+ get() {
1038
+ {
1039
+ if ((cmpMeta.$members$[memberName][0] & 2048 /* Getter */) === 0) {
1040
+ return getValue(this, memberName);
1041
+ }
1042
+ const ref = getHostRef(this);
1043
+ const instance = ref ? ref.$lazyInstance$ : prototype;
1044
+ if (!instance) return;
1045
+ return instance[memberName];
1046
+ }
1047
+ },
1048
+ configurable: true,
1049
+ enumerable: true
1050
+ });
1051
+ }
973
1052
  Object.defineProperty(prototype, memberName, {
974
- get() {
975
- return getValue(this, memberName);
976
- },
977
1053
  set(newValue) {
978
- setValue(this, memberName, newValue, cmpMeta);
979
- },
980
- configurable: true,
981
- enumerable: true
1054
+ const ref = getHostRef(this);
1055
+ if (origSetter) {
1056
+ const currentValue = memberFlags & 32 /* State */ ? this[memberName] : ref.$hostElement$[memberName];
1057
+ if (typeof currentValue === "undefined" && ref.$instanceValues$.get(memberName)) {
1058
+ newValue = ref.$instanceValues$.get(memberName);
1059
+ } else if (!ref.$instanceValues$.get(memberName) && currentValue) {
1060
+ ref.$instanceValues$.set(memberName, currentValue);
1061
+ }
1062
+ origSetter.apply(this, [parsePropertyValue(newValue, memberFlags)]);
1063
+ newValue = memberFlags & 32 /* State */ ? this[memberName] : ref.$hostElement$[memberName];
1064
+ setValue(this, memberName, newValue, cmpMeta);
1065
+ return;
1066
+ }
1067
+ {
1068
+ if ((flags & 1 /* isElementConstructor */) === 0 || (cmpMeta.$members$[memberName][0] & 4096 /* Setter */) === 0) {
1069
+ setValue(this, memberName, newValue, cmpMeta);
1070
+ if (flags & 1 /* isElementConstructor */ && !ref.$lazyInstance$) {
1071
+ ref.$onReadyPromise$.then(() => {
1072
+ if (cmpMeta.$members$[memberName][0] & 4096 /* Setter */ && ref.$lazyInstance$[memberName] !== ref.$instanceValues$.get(memberName)) {
1073
+ ref.$lazyInstance$[memberName] = newValue;
1074
+ }
1075
+ });
1076
+ }
1077
+ return;
1078
+ }
1079
+ const setterSetVal = () => {
1080
+ const currentValue = ref.$lazyInstance$[memberName];
1081
+ if (!ref.$instanceValues$.get(memberName) && currentValue) {
1082
+ ref.$instanceValues$.set(memberName, currentValue);
1083
+ }
1084
+ ref.$lazyInstance$[memberName] = parsePropertyValue(newValue, memberFlags);
1085
+ setValue(this, memberName, ref.$lazyInstance$[memberName], cmpMeta);
1086
+ };
1087
+ if (ref.$lazyInstance$) {
1088
+ setterSetVal();
1089
+ } else {
1090
+ ref.$onReadyPromise$.then(() => setterSetVal());
1091
+ }
1092
+ }
1093
+ }
982
1094
  });
983
1095
  }
984
1096
  });
@@ -988,7 +1100,7 @@ var proxyComponent = (Cstr, cmpMeta, flags) => {
988
1100
  plt.jmp(() => {
989
1101
  var _a2;
990
1102
  const propName = attrNameToPropName.get(attrName);
991
- if (this.hasOwnProperty(propName)) {
1103
+ if (this.hasOwnProperty(propName) && BUILD.lazyLoad) {
992
1104
  newValue = this[propName];
993
1105
  delete this[propName];
994
1106
  } else if (prototype.hasOwnProperty(propName) && typeof this[propName] === "number" && // cast type to number to avoid TS compiler issues
@@ -1008,7 +1120,11 @@ var proxyComponent = (Cstr, cmpMeta, flags) => {
1008
1120
  }
1009
1121
  return;
1010
1122
  }
1011
- this[propName] = newValue === null && typeof this[propName] === "boolean" ? false : newValue;
1123
+ const propDesc = Object.getOwnPropertyDescriptor(prototype, propName);
1124
+ newValue = newValue === null && typeof this[propName] === "boolean" ? false : newValue;
1125
+ if (newValue !== this[propName] && (!propDesc.get || !!propDesc.set)) {
1126
+ this[propName] = newValue;
1127
+ }
1012
1128
  });
1013
1129
  };
1014
1130
  Cstr.observedAttributes = Array.from(
@@ -1033,7 +1149,7 @@ var initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId) => {
1033
1149
  hostRef.$flags$ |= 32 /* hasInitializedComponent */;
1034
1150
  const bundleId = cmpMeta.$lazyBundleId$;
1035
1151
  if (bundleId) {
1036
- const CstrImport = loadModule(cmpMeta);
1152
+ const CstrImport = loadModule(cmpMeta, hostRef);
1037
1153
  if (CstrImport && "then" in CstrImport) {
1038
1154
  const endLoad = uniqueTime();
1039
1155
  Cstr = await CstrImport;
@@ -1055,13 +1171,13 @@ var initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId) => {
1055
1171
  try {
1056
1172
  new Cstr(hostRef);
1057
1173
  } catch (e) {
1058
- consoleError(e);
1174
+ consoleError(e, elm);
1059
1175
  }
1060
1176
  {
1061
- hostRef.$flags$ &= ~8 /* isConstructingInstance */;
1177
+ hostRef.$flags$ &= -9 /* isConstructingInstance */;
1062
1178
  }
1063
1179
  endNewInstance();
1064
- fireConnectedCallback(hostRef.$lazyInstance$);
1180
+ fireConnectedCallback(hostRef.$lazyInstance$, elm);
1065
1181
  } else {
1066
1182
  Cstr = elm.constructor;
1067
1183
  const cmpTag = elm.localName;
@@ -1088,9 +1204,9 @@ var initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId) => {
1088
1204
  schedule();
1089
1205
  }
1090
1206
  };
1091
- var fireConnectedCallback = (instance) => {
1207
+ var fireConnectedCallback = (instance, elm) => {
1092
1208
  {
1093
- safeCall(instance, "connectedCallback");
1209
+ safeCall(instance, "connectedCallback", void 0, elm);
1094
1210
  }
1095
1211
  };
1096
1212
 
@@ -1125,40 +1241,55 @@ var connectedCallback = (elm) => {
1125
1241
  }
1126
1242
  } else {
1127
1243
  if (hostRef == null ? void 0 : hostRef.$lazyInstance$) {
1128
- fireConnectedCallback(hostRef.$lazyInstance$);
1244
+ fireConnectedCallback(hostRef.$lazyInstance$, elm);
1129
1245
  } else if (hostRef == null ? void 0 : hostRef.$onReadyPromise$) {
1130
- hostRef.$onReadyPromise$.then(() => fireConnectedCallback(hostRef.$lazyInstance$));
1246
+ hostRef.$onReadyPromise$.then(() => fireConnectedCallback(hostRef.$lazyInstance$, elm));
1131
1247
  }
1132
1248
  }
1133
1249
  endConnected();
1134
1250
  }
1135
1251
  };
1136
- var disconnectInstance = (instance) => {
1252
+ var disconnectInstance = (instance, elm) => {
1253
+ {
1254
+ safeCall(instance, "disconnectedCallback", void 0, elm || instance);
1255
+ }
1137
1256
  };
1138
1257
  var disconnectedCallback = async (elm) => {
1139
1258
  if ((plt.$flags$ & 1 /* isTmpDisconnected */) === 0) {
1140
1259
  const hostRef = getHostRef(elm);
1141
- if (hostRef == null ? void 0 : hostRef.$lazyInstance$) ; else if (hostRef == null ? void 0 : hostRef.$onReadyPromise$) {
1142
- hostRef.$onReadyPromise$.then(() => disconnectInstance());
1260
+ if (hostRef == null ? void 0 : hostRef.$lazyInstance$) {
1261
+ disconnectInstance(hostRef.$lazyInstance$, elm);
1262
+ } else if (hostRef == null ? void 0 : hostRef.$onReadyPromise$) {
1263
+ hostRef.$onReadyPromise$.then(() => disconnectInstance(hostRef.$lazyInstance$, elm));
1143
1264
  }
1144
1265
  }
1266
+ if (rootAppliedStyles.has(elm)) {
1267
+ rootAppliedStyles.delete(elm);
1268
+ }
1269
+ if (elm.shadowRoot && rootAppliedStyles.has(elm.shadowRoot)) {
1270
+ rootAppliedStyles.delete(elm.shadowRoot);
1271
+ }
1145
1272
  };
1146
1273
 
1147
1274
  // src/runtime/bootstrap-lazy.ts
1148
1275
  var bootstrapLazy = (lazyBundles, options = {}) => {
1149
1276
  var _a;
1277
+ if (!win.document) {
1278
+ console.warn("Stencil: No document found. Skipping bootstrapping lazy components.");
1279
+ return;
1280
+ }
1150
1281
  const endBootstrap = createTime();
1151
1282
  const cmpTags = [];
1152
1283
  const exclude = options.exclude || [];
1153
1284
  const customElements2 = win.customElements;
1154
- const head = doc.head;
1285
+ const head = win.document.head;
1155
1286
  const metaCharset = /* @__PURE__ */ head.querySelector("meta[charset]");
1156
- const dataStyles = /* @__PURE__ */ doc.createElement("style");
1287
+ const dataStyles = /* @__PURE__ */ win.document.createElement("style");
1157
1288
  const deferredConnectedCallbacks = [];
1158
1289
  let appLoadFallback;
1159
1290
  let isBootstrapping = true;
1160
1291
  Object.assign(plt, options);
1161
- plt.$resourcesUrl$ = new URL(options.resourcesUrl || "./", doc.baseURI).href;
1292
+ plt.$resourcesUrl$ = new URL(options.resourcesUrl || "./", win.document.baseURI).href;
1162
1293
  let hasSlotRelocation = false;
1163
1294
  lazyBundles.map((lazyBundle) => {
1164
1295
  lazyBundle[1].map((compactMeta) => {
@@ -1215,6 +1346,17 @@ var bootstrapLazy = (lazyBundles, options = {}) => {
1215
1346
  }
1216
1347
  disconnectedCallback() {
1217
1348
  plt.jmp(() => disconnectedCallback(this));
1349
+ plt.raf(() => {
1350
+ var _a3;
1351
+ const hostRef = getHostRef(this);
1352
+ const i2 = deferredConnectedCallbacks.findIndex((host) => host === this);
1353
+ if (i2 > -1) {
1354
+ deferredConnectedCallbacks.splice(i2, 1);
1355
+ }
1356
+ if (((_a3 = hostRef == null ? void 0 : hostRef.$vnode$) == null ? void 0 : _a3.$elm$) instanceof Node && !hostRef.$vnode$.$elm$.isConnected) {
1357
+ delete hostRef.$vnode$.$elm$;
1358
+ }
1359
+ });
1218
1360
  }
1219
1361
  componentOnReady() {
1220
1362
  return getHostRef(this).$onReadyPromise$;
@@ -1239,7 +1381,7 @@ var bootstrapLazy = (lazyBundles, options = {}) => {
1239
1381
  }
1240
1382
  if (dataStyles.innerHTML.length) {
1241
1383
  dataStyles.setAttribute("data-styles", "");
1242
- const nonce = (_a = plt.$nonce$) != null ? _a : queryNonceMetaTagContent(doc);
1384
+ const nonce = (_a = plt.$nonce$) != null ? _a : queryNonceMetaTagContent(win.document);
1243
1385
  if (nonce != null) {
1244
1386
  dataStyles.setAttribute("nonce", nonce);
1245
1387
  }
@@ -1269,5 +1411,6 @@ exports.promiseResolve = promiseResolve;
1269
1411
  exports.registerInstance = registerInstance;
1270
1412
  exports.setAssetPath = setAssetPath;
1271
1413
  exports.setNonce = setNonce;
1414
+ //# sourceMappingURL=index-B6Rjt_WH.js.map
1272
1415
 
1273
- //# sourceMappingURL=index-c02f277e.js.map
1416
+ //# sourceMappingURL=index-B6Rjt_WH.js.map