@uh-design-system/component-library 0.1.0 → 0.2.1-alpha.0

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 (196) hide show
  1. package/dist/cjs/app-globals-3a1e7e63.js +0 -2
  2. package/dist/cjs/component-library.cjs.js +25 -0
  3. package/dist/cjs/ds-accordion_2.cjs.entry.js +904 -0
  4. package/dist/cjs/ds-button_2.cjs.entry.js +167 -0
  5. package/dist/cjs/ds-text-input.cjs.entry.js +115 -0
  6. package/dist/cjs/index-5b0b9d4c.js +82 -0
  7. package/dist/cjs/{index-eaf5876c.js → index-d03b8350.js} +622 -66
  8. package/dist/cjs/index.cjs.js +0 -9
  9. package/dist/cjs/loader.cjs.js +2 -4
  10. package/dist/collection/collection-manifest.json +6 -2
  11. package/dist/collection/components/00-foundations/borders/borders.stories.js +7 -9
  12. package/dist/collection/components/00-foundations/breakpoints/breakpoints.stories.js +18 -0
  13. package/dist/collection/components/00-foundations/colours/colours.stories.js +9 -17
  14. package/dist/collection/components/00-foundations/icons/categories/actions.js +107 -0
  15. package/dist/collection/components/00-foundations/icons/categories/arrows.js +61 -0
  16. package/dist/collection/components/00-foundations/icons/categories/custom.js +7 -0
  17. package/dist/collection/components/00-foundations/icons/categories/information.js +91 -0
  18. package/dist/collection/components/00-foundations/icons/categories/media.js +73 -0
  19. package/dist/collection/components/00-foundations/icons/categories/navigation.js +47 -0
  20. package/dist/collection/components/00-foundations/icons/categories/notifications.js +61 -0
  21. package/dist/collection/components/00-foundations/icons/categories/text.js +15 -0
  22. package/dist/collection/components/00-foundations/icons/categories/users.js +49 -0
  23. package/dist/collection/components/00-foundations/icons/iconList.js +18 -294
  24. package/dist/collection/components/00-foundations/icons/icons.stories.js +0 -4
  25. package/dist/collection/components/00-foundations/spacing/spacing.stories.js +2 -5
  26. package/dist/collection/components/00-foundations/typography/typography.stories.js +52 -5
  27. package/dist/collection/components/01-base-components/ds-accordion/ds-accordion.css +130 -0
  28. package/dist/collection/components/01-base-components/ds-accordion/ds-accordion.js +217 -0
  29. package/dist/collection/components/01-base-components/ds-accordion/stories/ds-accordion.examples.stories.js +43 -0
  30. package/dist/collection/components/01-base-components/ds-accordion/stories/ds-accordion.features.stories.js +79 -0
  31. package/dist/collection/components/01-base-components/ds-accordion/stories/ds-accordion.stories.js +96 -0
  32. package/dist/collection/components/01-base-components/ds-button/ds-button.css +238 -0
  33. package/dist/collection/components/01-base-components/ds-button/ds-button.js +293 -0
  34. package/dist/collection/components/01-base-components/ds-button/stories/ds-button.examples.stories.js +27 -0
  35. package/dist/collection/components/01-base-components/ds-button/stories/ds-button.features.stories.js +77 -0
  36. package/dist/collection/components/01-base-components/ds-button/stories/ds-button.stories.js +74 -0
  37. package/dist/collection/components/01-base-components/ds-icon/ds-icon.css +1 -1
  38. package/dist/collection/components/01-base-components/ds-icon/ds-icon.js +18 -13
  39. package/dist/collection/components/01-base-components/ds-icon/ds-icon.stories.js +1 -2
  40. package/dist/collection/components/01-base-components/ds-text-input/ds-text-input.css +186 -0
  41. package/dist/collection/components/01-base-components/ds-text-input/ds-text-input.examples.stories.js +24 -0
  42. package/dist/collection/components/01-base-components/ds-text-input/ds-text-input.features.stories.js +126 -0
  43. package/dist/collection/components/01-base-components/ds-text-input/ds-text-input.js +643 -0
  44. package/dist/collection/components/01-base-components/ds-text-input/ds-text-input.stories.js +73 -0
  45. package/dist/collection/components/01-base-components/ds-text-input/utils.js +16 -0
  46. package/dist/collection/components/01-base-components/ds-visually-hidden/ds-visually-hidden.css +9 -0
  47. package/dist/collection/components/01-base-components/ds-visually-hidden/ds-visually-hidden.js +18 -0
  48. package/dist/collection/components/01-base-components/ds-visually-hidden/ds-visually-hidden.stories.js +9 -0
  49. package/dist/collection/index.js +1 -11
  50. package/dist/collection/utils/attributes.js +75 -0
  51. package/dist/collection/utils/borders/borderUtils.js +24 -5
  52. package/dist/collection/utils/breakpoints/breakpointsUtils.js +57 -0
  53. package/dist/collection/utils/colours/colourTypes.js +18 -0
  54. package/dist/collection/utils/colours/colourUtils.js +64 -48
  55. package/dist/collection/utils/spacing/spacingUtils.js +22 -11
  56. package/dist/collection/utils/tests/testUtils.js +19 -8
  57. package/dist/collection/utils/typography/typographyUtils.js +0 -3
  58. package/dist/collection/utils/utils.js +34 -3
  59. package/dist/component-library/app-globals-0f993ce5.js +1 -0
  60. package/dist/component-library/component-library.esm.js +1 -0
  61. package/dist/component-library/ds-accordion_2.entry.js +1 -0
  62. package/dist/component-library/ds-button_2.entry.js +1 -0
  63. package/dist/component-library/ds-text-input.entry.js +1 -0
  64. package/dist/component-library/index-72ac5051.js +6 -0
  65. package/dist/component-library/index-dfeefc7e.js +2 -0
  66. package/dist/component-library/index.esm.js +0 -0
  67. package/dist/components/ds-accordion.d.ts +11 -0
  68. package/dist/components/ds-accordion.js +96 -0
  69. package/dist/components/ds-button.d.ts +11 -0
  70. package/dist/components/ds-button.js +6 -0
  71. package/dist/components/ds-button2.js +180 -0
  72. package/dist/components/ds-icon.js +1 -540
  73. package/dist/components/ds-icon2.js +864 -0
  74. package/dist/components/ds-text-input.d.ts +11 -0
  75. package/dist/components/ds-text-input.js +178 -0
  76. package/dist/components/ds-visually-hidden.d.ts +11 -0
  77. package/dist/components/ds-visually-hidden.js +6 -0
  78. package/dist/components/ds-visually-hidden2.js +31 -0
  79. package/dist/components/index.js +1 -9
  80. package/dist/components/{p-dcfb6eb2.js → index2.js} +562 -53
  81. package/dist/components/index3.js +80 -0
  82. package/dist/esm/app-globals-0f993ce5.js +0 -2
  83. package/dist/esm/component-library.js +20 -0
  84. package/dist/esm/ds-accordion_2.entry.js +899 -0
  85. package/dist/esm/ds-button_2.entry.js +162 -0
  86. package/dist/esm/ds-text-input.entry.js +111 -0
  87. package/dist/esm/index-72ac5051.js +80 -0
  88. package/dist/esm/{index-1586ada2.js → index-dfeefc7e.js} +622 -67
  89. package/dist/esm/index.js +0 -6
  90. package/dist/esm/loader.js +3 -5
  91. package/dist/loader/cdn.js +1 -0
  92. package/dist/loader/index.cjs.js +1 -0
  93. package/{loader → dist/loader}/index.d.ts +1 -1
  94. package/dist/loader/index.es2017.js +1 -0
  95. package/{loader → dist/loader}/index.js +1 -1
  96. package/{loader → dist/loader}/package.json +1 -1
  97. package/dist/types/components/00-foundations/breakpoints/breakpoints.stories.d.ts +6 -0
  98. package/dist/types/components/00-foundations/colours/colours.stories.d.ts +3 -2
  99. package/dist/types/components/00-foundations/icons/categories/actions.d.ts +5 -0
  100. package/dist/types/components/00-foundations/icons/categories/arrows.d.ts +5 -0
  101. package/dist/types/components/00-foundations/icons/categories/custom.d.ts +5 -0
  102. package/dist/types/components/00-foundations/icons/categories/information.d.ts +5 -0
  103. package/dist/types/components/00-foundations/icons/categories/media.d.ts +5 -0
  104. package/dist/types/components/00-foundations/icons/categories/navigation.d.ts +5 -0
  105. package/dist/types/components/00-foundations/icons/categories/notifications.d.ts +5 -0
  106. package/dist/types/components/00-foundations/icons/categories/text.d.ts +5 -0
  107. package/dist/types/components/00-foundations/icons/categories/users.d.ts +5 -0
  108. package/dist/types/components/00-foundations/typography/typography.stories.d.ts +6 -5
  109. package/dist/types/components/01-base-components/ds-accordion/ds-accordion.d.ts +17 -0
  110. package/dist/types/components/01-base-components/ds-accordion/stories/ds-accordion.examples.stories.d.ts +8 -0
  111. package/dist/types/components/01-base-components/ds-accordion/stories/ds-accordion.features.stories.d.ts +12 -0
  112. package/dist/types/components/01-base-components/ds-accordion/stories/ds-accordion.stories.d.ts +7 -0
  113. package/dist/types/components/01-base-components/ds-button/ds-button.d.ts +20 -0
  114. package/dist/types/components/01-base-components/ds-button/stories/ds-button.examples.stories.d.ts +6 -0
  115. package/dist/types/components/01-base-components/ds-button/stories/ds-button.features.stories.d.ts +16 -0
  116. package/dist/types/components/01-base-components/ds-button/stories/ds-button.stories.d.ts +7 -0
  117. package/dist/types/components/01-base-components/ds-icon/ds-icon.stories.d.ts +0 -1
  118. package/dist/types/components/01-base-components/ds-text-input/ds-text-input.d.ts +46 -0
  119. package/dist/types/components/01-base-components/ds-text-input/ds-text-input.examples.stories.d.ts +7 -0
  120. package/dist/types/components/01-base-components/ds-text-input/ds-text-input.features.stories.d.ts +17 -0
  121. package/dist/types/components/01-base-components/ds-text-input/ds-text-input.stories.d.ts +7 -0
  122. package/dist/types/components/01-base-components/ds-text-input/utils.d.ts +3 -0
  123. package/dist/types/components/01-base-components/ds-visually-hidden/ds-visually-hidden.d.ts +3 -0
  124. package/dist/types/components/01-base-components/ds-visually-hidden/ds-visually-hidden.stories.d.ts +6 -0
  125. package/dist/types/components.d.ts +152 -0
  126. package/dist/types/declarations.d.ts +4 -0
  127. package/dist/types/index.d.ts +0 -10
  128. package/dist/types/utils/attributes.d.ts +8 -0
  129. package/dist/types/utils/borders/borderUtils.d.ts +9 -0
  130. package/dist/types/utils/breakpoints/breakpointsUtils.d.ts +11 -0
  131. package/dist/types/utils/colours/colourTypes.d.ts +18 -0
  132. package/dist/types/utils/colours/colourUtils.d.ts +4 -14
  133. package/dist/types/utils/spacing/spacingUtils.d.ts +6 -3
  134. package/dist/types/utils/tests/testUtils.d.ts +2 -4
  135. package/dist/types/utils/utils.d.ts +6 -1
  136. package/package.json +12 -22
  137. package/README.md +0 -12
  138. package/dist/cjs/app-globals-3a1e7e63.js.map +0 -1
  139. package/dist/cjs/ds-icon.cjs.entry.js +0 -522
  140. package/dist/cjs/ds-icon.cjs.entry.js.map +0 -1
  141. package/dist/cjs/index-eaf5876c.js.map +0 -1
  142. package/dist/cjs/index.cjs.js.map +0 -1
  143. package/dist/cjs/loader.cjs.js.map +0 -1
  144. package/dist/cjs/uh-component-library.cjs.js +0 -27
  145. package/dist/cjs/uh-component-library.cjs.js.map +0 -1
  146. package/dist/collection/components/00-foundations/borders/borders.stories.js.map +0 -1
  147. package/dist/collection/components/00-foundations/colours/colours.stories.js.map +0 -1
  148. package/dist/collection/components/00-foundations/icons/iconList.js.map +0 -1
  149. package/dist/collection/components/00-foundations/icons/icons.stories.js.map +0 -1
  150. package/dist/collection/components/00-foundations/spacing/spacing.stories.js.map +0 -1
  151. package/dist/collection/components/00-foundations/typography/headings.stories.js +0 -23
  152. package/dist/collection/components/00-foundations/typography/headings.stories.js.map +0 -1
  153. package/dist/collection/components/00-foundations/typography/text.stories.js +0 -17
  154. package/dist/collection/components/00-foundations/typography/text.stories.js.map +0 -1
  155. package/dist/collection/components/00-foundations/typography/typography.stories.js.map +0 -1
  156. package/dist/collection/components/01-base-components/ds-icon/ds-icon.js.map +0 -1
  157. package/dist/collection/components/01-base-components/ds-icon/ds-icon.stories.js.map +0 -1
  158. package/dist/collection/index.js.map +0 -1
  159. package/dist/collection/utils/borders/borderUtils.js.map +0 -1
  160. package/dist/collection/utils/colours/colourUtils.js.map +0 -1
  161. package/dist/collection/utils/spacing/spacingUtils.js.map +0 -1
  162. package/dist/collection/utils/tests/testUtils.js.map +0 -1
  163. package/dist/collection/utils/typography/typographyUtils.js.map +0 -1
  164. package/dist/collection/utils/utils.js.map +0 -1
  165. package/dist/components/ds-icon.js.map +0 -1
  166. package/dist/components/index.js.map +0 -1
  167. package/dist/components/p-dcfb6eb2.js.map +0 -1
  168. package/dist/esm/app-globals-0f993ce5.js.map +0 -1
  169. package/dist/esm/ds-icon.entry.js +0 -518
  170. package/dist/esm/ds-icon.entry.js.map +0 -1
  171. package/dist/esm/index-1586ada2.js.map +0 -1
  172. package/dist/esm/index.js.map +0 -1
  173. package/dist/esm/loader.js.map +0 -1
  174. package/dist/esm/uh-component-library.js +0 -22
  175. package/dist/esm/uh-component-library.js.map +0 -1
  176. package/dist/types/components/00-foundations/typography/headings.stories.d.ts +0 -17
  177. package/dist/types/components/00-foundations/typography/text.stories.d.ts +0 -11
  178. package/dist/uh-component-library/index.esm.js +0 -2
  179. package/dist/uh-component-library/index.esm.js.map +0 -1
  180. package/dist/uh-component-library/p-74d73de3.js +0 -3
  181. package/dist/uh-component-library/p-74d73de3.js.map +0 -1
  182. package/dist/uh-component-library/p-c7cd80a5.entry.js +0 -2
  183. package/dist/uh-component-library/p-c7cd80a5.entry.js.map +0 -1
  184. package/dist/uh-component-library/p-e1255160.js +0 -2
  185. package/dist/uh-component-library/p-e1255160.js.map +0 -1
  186. package/dist/uh-component-library/uh-component-library.esm.js +0 -2
  187. package/dist/uh-component-library/uh-component-library.esm.js.map +0 -1
  188. package/docs/DEPLOYMENT.md +0 -52
  189. package/docs/DEVELOPMENT.md +0 -52
  190. package/docs/PUBLISHING.md +0 -48
  191. package/docs/TESTING.md +0 -24
  192. package/docs/USAGE.md +0 -30
  193. package/loader/cdn.js +0 -1
  194. package/loader/index.cjs.js +0 -1
  195. package/loader/index.es2017.js +0 -1
  196. package/react-wrapper/components.ts +0 -24
@@ -20,20 +20,24 @@ function _interopNamespace(e) {
20
20
  return Object.freeze(n);
21
21
  }
22
22
 
23
- const NAMESPACE = 'uh-component-library';
24
- const BUILD = /* uh-component-library */ { allRenderFn: true, appendChildSlotFix: false, asyncLoading: true, asyncQueue: false, attachStyles: true, cloneNodeFix: false, cmpDidLoad: false, cmpDidRender: false, cmpDidUnload: false, cmpDidUpdate: false, cmpShouldUpdate: false, cmpWillLoad: false, cmpWillRender: false, cmpWillUpdate: false, connectedCallback: false, constructableCSS: true, cssAnnotations: true, devTools: false, disconnectedCallback: false, element: false, event: false, 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: false, lifecycleDOMEvents: false, member: true, method: false, mode: false, observeAttribute: true, profile: false, prop: true, propBoolean: true, propMutable: false, propNumber: false, propString: true, reflect: false, scoped: false, scopedSlotTextContentFix: false, scriptDataOpts: false, shadowDelegatesFocus: false, shadowDom: true, slot: false, slotChildNodesFix: false, slotRelocation: false, state: true, style: true, svg: false, taskQueue: true, transformTagName: false, updatable: true, vdomAttribute: true, vdomClass: true, vdomFunctional: true, vdomKey: true, vdomListener: false, vdomPropOrAttr: true, vdomRef: false, vdomRender: true, vdomStyle: false, vdomText: false, vdomXlink: false, watchCallback: false };
23
+ const NAMESPACE = 'component-library';
24
+ const BUILD = /* component-library */ { allRenderFn: true, appendChildSlotFix: false, asyncLoading: true, asyncQueue: false, attachStyles: true, cloneNodeFix: false, cmpDidLoad: false, cmpDidRender: false, cmpDidUnload: false, cmpDidUpdate: false, cmpShouldUpdate: false, cmpWillLoad: true, cmpWillRender: false, cmpWillUpdate: false, connectedCallback: false, constructableCSS: true, cssAnnotations: true, devTools: false, disconnectedCallback: false, element: false, event: false, 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: true, mode: false, modernPropertyDecls: false, observeAttribute: true, profile: false, prop: true, propBoolean: true, propMutable: false, propNumber: true, propString: true, reflect: false, scoped: true, scopedSlotTextContentFix: false, scriptDataOpts: false, shadowDelegatesFocus: false, shadowDom: true, slot: true, slotChildNodesFix: false, slotRelocation: true, state: true, style: true, svg: false, 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: true, watchCallback: true };
25
25
 
26
26
  /*
27
- Stencil Client Platform v4.22.2 | MIT Licensed | https://stenciljs.com
27
+ Stencil Client Platform v4.25.1 | MIT Licensed | https://stenciljs.com
28
28
  */
29
29
  var __defProp = Object.defineProperty;
30
30
  var __export = (target, all) => {
31
31
  for (var name in all)
32
32
  __defProp(target, name, { get: all[name], enumerable: true });
33
33
  };
34
+
35
+ // src/client/client-host-ref.ts
34
36
  var hostRefs = /* @__PURE__ */ new WeakMap();
35
37
  var getHostRef = (ref) => hostRefs.get(ref);
36
- var registerInstance = (lazyInstance, hostRef) => hostRefs.set(hostRef.$lazyInstance$ = lazyInstance, hostRef);
38
+ var registerInstance = (lazyInstance, hostRef) => {
39
+ hostRefs.set(hostRef.$lazyInstance$ = lazyInstance, hostRef);
40
+ };
37
41
  var registerHost = (hostElement, cmpMeta) => {
38
42
  const hostRef = {
39
43
  $flags$: 0,
@@ -41,12 +45,16 @@ var registerHost = (hostElement, cmpMeta) => {
41
45
  $cmpMeta$: cmpMeta,
42
46
  $instanceValues$: /* @__PURE__ */ new Map()
43
47
  };
48
+ {
49
+ hostRef.$onInstancePromise$ = new Promise((r) => hostRef.$onInstanceResolve$ = r);
50
+ }
44
51
  {
45
52
  hostRef.$onReadyPromise$ = new Promise((r) => hostRef.$onReadyResolve$ = r);
46
53
  hostElement["s-p"] = [];
47
54
  hostElement["s-rc"] = [];
48
55
  }
49
- return hostRefs.set(hostElement, hostRef);
56
+ const ref = hostRefs.set(hostElement, hostRef);
57
+ return ref;
50
58
  };
51
59
  var isMemberInElement = (elm, memberName) => memberName in elm;
52
60
  var consoleError = (e, el) => (0, console.error)(e, el);
@@ -70,18 +78,25 @@ var loadModule = (cmpMeta, hostRef, hmrVersionId) => {
70
78
  /* webpackExclude: /\.system\.entry\.js$/ */
71
79
  /* webpackMode: "lazy" */
72
80
  `./${bundleId}.entry.js${""}`
73
- )); }).then((importedModule) => {
74
- {
75
- cmpModules.set(bundleId, importedModule);
81
+ )); }).then(
82
+ (importedModule) => {
83
+ {
84
+ cmpModules.set(bundleId, importedModule);
85
+ }
86
+ return importedModule[exportName];
87
+ },
88
+ (e) => {
89
+ consoleError(e, hostRef.$hostElement$);
76
90
  }
77
- return importedModule[exportName];
78
- }, consoleError);
91
+ );
79
92
  };
80
93
 
81
94
  // src/client/client-style.ts
82
95
  var styles = /* @__PURE__ */ new Map();
96
+ var HYDRATED_STYLE_ID = "sty-id";
83
97
  var HYDRATED_CSS = "{visibility:hidden}.hydrated{visibility:inherit}";
84
98
  var SLOT_FB_CSS = "slot-fb{display:contents}slot-fb[hidden]{display:none}";
99
+ var XLINK_NS = "http://www.w3.org/1999/xlink";
85
100
  var win = typeof window !== "undefined" ? window : {};
86
101
  var doc = win.document || { head: {} };
87
102
  var plt = {
@@ -138,11 +153,8 @@ var flush = () => {
138
153
  var nextTick = (cb) => promiseResolve().then(cb);
139
154
  var writeTask = /* @__PURE__ */ queueTask(queueDomWrites, true);
140
155
 
141
- // src/utils/constants.ts
142
- var EMPTY_OBJ = {};
143
-
144
156
  // src/utils/helpers.ts
145
- var isDef = (v) => v != null;
157
+ var isDef = (v) => v != null && v !== void 0;
146
158
  var isComplexType = (o) => {
147
159
  o = typeof o;
148
160
  return o === "object" || o === "function";
@@ -202,6 +214,63 @@ var unwrapErr = (result) => {
202
214
  throw result.value;
203
215
  }
204
216
  };
217
+ var updateFallbackSlotVisibility = (elm) => {
218
+ const childNodes = elm.__childNodes || elm.childNodes;
219
+ if (elm.tagName && elm.tagName.includes("-") && elm["s-cr"] && elm.tagName !== "SLOT-FB") {
220
+ getHostSlotNodes(childNodes, elm.tagName).forEach((slotNode) => {
221
+ var _a;
222
+ if (slotNode.nodeType === 1 /* ElementNode */ && slotNode.tagName === "SLOT-FB") {
223
+ if ((_a = getHostSlotChildNodes(slotNode, slotNode["s-sn"], false)) == null ? void 0 : _a.length) {
224
+ slotNode.hidden = true;
225
+ } else {
226
+ slotNode.hidden = false;
227
+ }
228
+ }
229
+ });
230
+ }
231
+ for (const childNode of childNodes) {
232
+ if (childNode.nodeType === 1 /* ElementNode */ && (childNode.__childNodes || childNode.childNodes).length) {
233
+ updateFallbackSlotVisibility(childNode);
234
+ }
235
+ }
236
+ };
237
+ function getHostSlotNodes(childNodes, hostName, slotName) {
238
+ let i2 = 0;
239
+ let slottedNodes = [];
240
+ let childNode;
241
+ for (; i2 < childNodes.length; i2++) {
242
+ childNode = childNodes[i2];
243
+ if (childNode["s-sr"] && childNode["s-hn"] === hostName && (slotName === void 0 || childNode["s-sn"] === slotName)) {
244
+ slottedNodes.push(childNode);
245
+ if (typeof slotName !== "undefined") return slottedNodes;
246
+ }
247
+ slottedNodes = [...slottedNodes, ...getHostSlotNodes(childNode.childNodes, hostName, slotName)];
248
+ }
249
+ return slottedNodes;
250
+ }
251
+ var getHostSlotChildNodes = (node, slotName, includeSlot = true) => {
252
+ const childNodes = [];
253
+ if (includeSlot && node["s-sr"] || !node["s-sr"]) childNodes.push(node);
254
+ while ((node = node.nextSibling) && node["s-sn"] === slotName) {
255
+ childNodes.push(node);
256
+ }
257
+ return childNodes;
258
+ };
259
+ var isNodeLocatedInSlot = (nodeToRelocate, slotName) => {
260
+ if (nodeToRelocate.nodeType === 1 /* ElementNode */) {
261
+ if (nodeToRelocate.getAttribute("slot") === null && slotName === "") {
262
+ return true;
263
+ }
264
+ if (nodeToRelocate.getAttribute("slot") === slotName) {
265
+ return true;
266
+ }
267
+ return false;
268
+ }
269
+ if (nodeToRelocate["s-sn"] === slotName) {
270
+ return true;
271
+ }
272
+ return slotName === "";
273
+ };
205
274
  var createTime = (fnName, tagName = "") => {
206
275
  {
207
276
  return () => {
@@ -219,6 +288,7 @@ var uniqueTime = (key, measureText) => {
219
288
  var h = (nodeName, vnodeData, ...children) => {
220
289
  let child = null;
221
290
  let key = null;
291
+ let slotName = null;
222
292
  let simple = false;
223
293
  let lastSimple = false;
224
294
  const vNodeChildren = [];
@@ -245,6 +315,9 @@ var h = (nodeName, vnodeData, ...children) => {
245
315
  if (vnodeData.key) {
246
316
  key = vnodeData.key;
247
317
  }
318
+ if (vnodeData.name) {
319
+ slotName = vnodeData.name;
320
+ }
248
321
  {
249
322
  const classData = vnodeData.className || vnodeData.class;
250
323
  if (classData) {
@@ -267,6 +340,9 @@ var h = (nodeName, vnodeData, ...children) => {
267
340
  {
268
341
  vnode.$key$ = key;
269
342
  }
343
+ {
344
+ vnode.$name$ = slotName;
345
+ }
270
346
  return vnode;
271
347
  };
272
348
  var newVNode = (tag, text) => {
@@ -283,6 +359,9 @@ var newVNode = (tag, text) => {
283
359
  {
284
360
  vnode.$key$ = null;
285
361
  }
362
+ {
363
+ vnode.$name$ = null;
364
+ }
286
365
  return vnode;
287
366
  };
288
367
  var Host = {};
@@ -322,6 +401,9 @@ var parsePropertyValue = (propValue, propType) => {
322
401
  if (propType & 4 /* Boolean */) {
323
402
  return propValue === "false" ? false : propValue === "" || !!propValue;
324
403
  }
404
+ if (propType & 2 /* Number */) {
405
+ return parseFloat(propValue);
406
+ }
325
407
  if (propType & 1 /* String */) {
326
408
  return String(propValue);
327
409
  }
@@ -329,6 +411,7 @@ var parsePropertyValue = (propValue, propType) => {
329
411
  }
330
412
  return propValue;
331
413
  };
414
+ var getElement = (ref) => getHostRef(ref).$hostElement$ ;
332
415
  var emitEvent = (elm, name, opts) => {
333
416
  const ev = plt.ce(name, opts);
334
417
  elm.dispatchEvent(ev);
@@ -364,7 +447,7 @@ var addStyle = (styleContainerNode, cmpMeta, mode) => {
364
447
  }
365
448
  if (!appliedStyles.has(scopeId2)) {
366
449
  {
367
- styleElm = doc.createElement("style");
450
+ styleElm = document.querySelector(`[${HYDRATED_STYLE_ID}="${scopeId2}"]`) || doc.createElement("style");
368
451
  styleElm.innerHTML = style;
369
452
  const nonce = (_a = plt.$nonce$) != null ? _a : queryNonceMetaTagContent(doc);
370
453
  if (nonce != null) {
@@ -374,7 +457,10 @@ var addStyle = (styleContainerNode, cmpMeta, mode) => {
374
457
  if (styleContainerNode.nodeName === "HEAD") {
375
458
  const preconnectLinks = styleContainerNode.querySelectorAll("link[rel=preconnect]");
376
459
  const referenceNode2 = preconnectLinks.length > 0 ? preconnectLinks[preconnectLinks.length - 1].nextSibling : styleContainerNode.querySelector("style");
377
- styleContainerNode.insertBefore(styleElm, referenceNode2);
460
+ styleContainerNode.insertBefore(
461
+ styleElm,
462
+ (referenceNode2 == null ? void 0 : referenceNode2.parentNode) === styleContainerNode ? referenceNode2 : null
463
+ );
378
464
  } else if ("host" in styleContainerNode) {
379
465
  if (supportsConstructableStylesheets) {
380
466
  const stylesheet = new CSSStyleSheet();
@@ -424,17 +510,62 @@ var attachStyles = (hostRef) => {
424
510
  endAttachStyles();
425
511
  };
426
512
  var getScopeId = (cmp, mode) => "sc-" + (cmp.$tagName$);
427
- var setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => {
513
+ var setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags, initialRender) => {
428
514
  if (oldValue !== newValue) {
429
515
  let isProp = isMemberInElement(elm, memberName);
430
- memberName.toLowerCase();
516
+ let ln = memberName.toLowerCase();
431
517
  if (memberName === "class") {
432
518
  const classList = elm.classList;
433
519
  const oldClasses = parseClassList(oldValue);
434
- const newClasses = parseClassList(newValue);
435
- classList.remove(...oldClasses.filter((c) => c && !newClasses.includes(c)));
436
- classList.add(...newClasses.filter((c) => c && !oldClasses.includes(c)));
437
- } else if (memberName === "key") ; else {
520
+ let newClasses = parseClassList(newValue);
521
+ {
522
+ classList.remove(...oldClasses.filter((c) => c && !newClasses.includes(c)));
523
+ classList.add(...newClasses.filter((c) => c && !oldClasses.includes(c)));
524
+ }
525
+ } else if (memberName === "style") {
526
+ {
527
+ for (const prop in oldValue) {
528
+ if (!newValue || newValue[prop] == null) {
529
+ if (prop.includes("-")) {
530
+ elm.style.removeProperty(prop);
531
+ } else {
532
+ elm.style[prop] = "";
533
+ }
534
+ }
535
+ }
536
+ }
537
+ for (const prop in newValue) {
538
+ if (!oldValue || newValue[prop] !== oldValue[prop]) {
539
+ if (prop.includes("-")) {
540
+ elm.style.setProperty(prop, newValue[prop]);
541
+ } else {
542
+ elm.style[prop] = newValue[prop];
543
+ }
544
+ }
545
+ }
546
+ } else if (memberName === "key") ; else if (memberName === "ref") {
547
+ if (newValue) {
548
+ newValue(elm);
549
+ }
550
+ } else if ((!isProp ) && memberName[0] === "o" && memberName[1] === "n") {
551
+ if (memberName[2] === "-") {
552
+ memberName = memberName.slice(3);
553
+ } else if (isMemberInElement(win, ln)) {
554
+ memberName = ln.slice(2);
555
+ } else {
556
+ memberName = ln[2] + memberName.slice(3);
557
+ }
558
+ if (oldValue || newValue) {
559
+ const capture = memberName.endsWith(CAPTURE_EVENT_SUFFIX);
560
+ memberName = memberName.replace(CAPTURE_EVENT_REGEX, "");
561
+ if (oldValue) {
562
+ plt.rel(elm, memberName, oldValue, capture);
563
+ }
564
+ if (newValue) {
565
+ plt.ael(elm, memberName, newValue, capture);
566
+ }
567
+ }
568
+ } else {
438
569
  const isComplex = isComplexType(newValue);
439
570
  if ((isProp || isComplex && newValue !== null) && !isSvg) {
440
571
  try {
@@ -449,21 +580,32 @@ var setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => {
449
580
  elm.setAttribute(memberName, n);
450
581
  }
451
582
  }
452
- } else {
583
+ } else if (elm[memberName] !== newValue) {
453
584
  elm[memberName] = newValue;
454
585
  }
455
586
  } catch (e) {
456
587
  }
457
588
  }
589
+ let xlink = false;
590
+ {
591
+ if (ln !== (ln = ln.replace(/^xlink\:?/, ""))) {
592
+ memberName = ln;
593
+ xlink = true;
594
+ }
595
+ }
458
596
  if (newValue == null || newValue === false) {
459
597
  if (newValue !== false || elm.getAttribute(memberName) === "") {
460
- {
598
+ if (xlink) {
599
+ elm.removeAttributeNS(XLINK_NS, memberName);
600
+ } else {
461
601
  elm.removeAttribute(memberName);
462
602
  }
463
603
  }
464
604
  } else if ((!isProp || flags & 4 /* isHost */ || isSvg) && !isComplex) {
465
605
  newValue = newValue === true ? "" : newValue;
466
- {
606
+ if (xlink) {
607
+ elm.setAttributeNS(XLINK_NS, memberName, newValue);
608
+ } else {
467
609
  elm.setAttribute(memberName, newValue);
468
610
  }
469
611
  }
@@ -471,22 +613,44 @@ var setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => {
471
613
  }
472
614
  };
473
615
  var parseClassListRegex = /\s/;
474
- var parseClassList = (value) => !value ? [] : value.split(parseClassListRegex);
616
+ var parseClassList = (value) => {
617
+ if (typeof value === "object" && value && "baseVal" in value) {
618
+ value = value.baseVal;
619
+ }
620
+ if (!value || typeof value !== "string") {
621
+ return [];
622
+ }
623
+ return value.split(parseClassListRegex);
624
+ };
625
+ var CAPTURE_EVENT_SUFFIX = "Capture";
626
+ var CAPTURE_EVENT_REGEX = new RegExp(CAPTURE_EVENT_SUFFIX + "$");
475
627
 
476
628
  // src/runtime/vdom/update-element.ts
477
- var updateElement = (oldVnode, newVnode, isSvgMode2) => {
629
+ var updateElement = (oldVnode, newVnode, isSvgMode2, isInitialRender) => {
478
630
  const elm = newVnode.$elm$.nodeType === 11 /* DocumentFragment */ && newVnode.$elm$.host ? newVnode.$elm$.host : newVnode.$elm$;
479
- const oldVnodeAttrs = oldVnode && oldVnode.$attrs$ || EMPTY_OBJ;
480
- const newVnodeAttrs = newVnode.$attrs$ || EMPTY_OBJ;
631
+ const oldVnodeAttrs = oldVnode && oldVnode.$attrs$ || {};
632
+ const newVnodeAttrs = newVnode.$attrs$ || {};
481
633
  {
482
634
  for (const memberName of sortedAttrNames(Object.keys(oldVnodeAttrs))) {
483
635
  if (!(memberName in newVnodeAttrs)) {
484
- setAccessor(elm, memberName, oldVnodeAttrs[memberName], void 0, isSvgMode2, newVnode.$flags$);
636
+ setAccessor(
637
+ elm,
638
+ memberName,
639
+ oldVnodeAttrs[memberName],
640
+ void 0,
641
+ isSvgMode2,
642
+ newVnode.$flags$);
485
643
  }
486
644
  }
487
645
  }
488
646
  for (const memberName of sortedAttrNames(Object.keys(newVnodeAttrs))) {
489
- setAccessor(elm, memberName, oldVnodeAttrs[memberName], newVnodeAttrs[memberName], isSvgMode2, newVnode.$flags$);
647
+ setAccessor(
648
+ elm,
649
+ memberName,
650
+ oldVnodeAttrs[memberName],
651
+ newVnodeAttrs[memberName],
652
+ isSvgMode2,
653
+ newVnode.$flags$);
490
654
  }
491
655
  };
492
656
  function sortedAttrNames(attrNames) {
@@ -501,24 +665,46 @@ function sortedAttrNames(attrNames) {
501
665
 
502
666
  // src/runtime/vdom/vdom-render.ts
503
667
  var scopeId;
668
+ var contentRef;
504
669
  var hostTagName;
505
670
  var useNativeShadowDom = false;
671
+ var checkSlotFallbackVisibility = false;
672
+ var checkSlotRelocate = false;
506
673
  var isSvgMode = false;
507
- var createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {
674
+ var createElm = (oldParentVNode, newParentVNode, childIndex) => {
675
+ var _a;
508
676
  const newVNode2 = newParentVNode.$children$[childIndex];
509
677
  let i2 = 0;
510
678
  let elm;
511
679
  let childNode;
512
- {
680
+ let oldVNode;
681
+ if (!useNativeShadowDom) {
682
+ checkSlotRelocate = true;
683
+ if (newVNode2.$tag$ === "slot") {
684
+ newVNode2.$flags$ |= newVNode2.$children$ ? (
685
+ // slot element has fallback content
686
+ // still create an element that "mocks" the slot element
687
+ 2 /* isSlotFallback */
688
+ ) : (
689
+ // slot element does not have fallback content
690
+ // create an html comment we'll use to always reference
691
+ // where actual slot content should sit next to
692
+ 1 /* isSlotReference */
693
+ );
694
+ }
695
+ }
696
+ if (newVNode2.$text$ !== null) {
697
+ elm = newVNode2.$elm$ = doc.createTextNode(newVNode2.$text$);
698
+ } else if (newVNode2.$flags$ & 1 /* isSlotReference */) {
699
+ elm = newVNode2.$elm$ = doc.createTextNode("");
700
+ } else {
513
701
  elm = newVNode2.$elm$ = doc.createElement(
514
702
  !useNativeShadowDom && BUILD.slotRelocation && newVNode2.$flags$ & 2 /* isSlotFallback */ ? "slot-fb" : newVNode2.$tag$
515
703
  );
516
704
  {
517
705
  updateElement(null, newVNode2, isSvgMode);
518
706
  }
519
- const rootNode = elm.getRootNode();
520
- const isElementWithinShadowRoot = !rootNode.querySelector("body");
521
- if (!isElementWithinShadowRoot && BUILD.scoped && isDef(scopeId) && elm["s-si"] !== scopeId) {
707
+ if (isDef(scopeId) && elm["s-si"] !== scopeId) {
522
708
  elm.classList.add(elm["s-si"] = scopeId);
523
709
  }
524
710
  if (newVNode2.$children$) {
@@ -531,10 +717,53 @@ var createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {
531
717
  }
532
718
  }
533
719
  elm["s-hn"] = hostTagName;
720
+ {
721
+ if (newVNode2.$flags$ & (2 /* isSlotFallback */ | 1 /* isSlotReference */)) {
722
+ elm["s-sr"] = true;
723
+ elm["s-cr"] = contentRef;
724
+ elm["s-sn"] = newVNode2.$name$ || "";
725
+ elm["s-rf"] = (_a = newVNode2.$attrs$) == null ? void 0 : _a.ref;
726
+ oldVNode = oldParentVNode && oldParentVNode.$children$ && oldParentVNode.$children$[childIndex];
727
+ if (oldVNode && oldVNode.$tag$ === newVNode2.$tag$ && oldParentVNode.$elm$) {
728
+ {
729
+ putBackInOriginalLocation(oldParentVNode.$elm$, false);
730
+ }
731
+ }
732
+ {
733
+ addRemoveSlotScopedClass(contentRef, elm, newParentVNode.$elm$, oldParentVNode == null ? void 0 : oldParentVNode.$elm$);
734
+ }
735
+ }
736
+ }
534
737
  return elm;
535
738
  };
739
+ var putBackInOriginalLocation = (parentElm, recursive) => {
740
+ plt.$flags$ |= 1 /* isTmpDisconnected */;
741
+ const oldSlotChildNodes = Array.from(parentElm.__childNodes || parentElm.childNodes);
742
+ if (parentElm["s-sr"] && BUILD.experimentalSlotFixes) {
743
+ let node = parentElm;
744
+ while (node = node.nextSibling) {
745
+ if (node && node["s-sn"] === parentElm["s-sn"] && node["s-sh"] === hostTagName) {
746
+ oldSlotChildNodes.push(node);
747
+ }
748
+ }
749
+ }
750
+ for (let i2 = oldSlotChildNodes.length - 1; i2 >= 0; i2--) {
751
+ const childNode = oldSlotChildNodes[i2];
752
+ if (childNode["s-hn"] !== hostTagName && childNode["s-ol"]) {
753
+ insertBefore(referenceNode(childNode).parentNode, childNode, referenceNode(childNode));
754
+ childNode["s-ol"].remove();
755
+ childNode["s-ol"] = void 0;
756
+ childNode["s-sh"] = void 0;
757
+ checkSlotRelocate = true;
758
+ }
759
+ if (recursive) {
760
+ putBackInOriginalLocation(childNode, recursive);
761
+ }
762
+ }
763
+ plt.$flags$ &= ~1 /* isTmpDisconnected */;
764
+ };
536
765
  var addVnodes = (parentElm, before, parentVNode, vnodes, startIdx, endIdx) => {
537
- let containerElm = parentElm;
766
+ let containerElm = parentElm["s-cr"] && parentElm["s-cr"].parentNode || parentElm;
538
767
  let childNode;
539
768
  if (containerElm.shadowRoot && containerElm.tagName === hostTagName) {
540
769
  containerElm = containerElm.shadowRoot;
@@ -544,7 +773,7 @@ var addVnodes = (parentElm, before, parentVNode, vnodes, startIdx, endIdx) => {
544
773
  childNode = createElm(null, parentVNode, startIdx);
545
774
  if (childNode) {
546
775
  vnodes[startIdx].$elm$ = childNode;
547
- insertBefore(containerElm, childNode, before);
776
+ insertBefore(containerElm, childNode, referenceNode(before) );
548
777
  }
549
778
  }
550
779
  }
@@ -554,7 +783,16 @@ var removeVnodes = (vnodes, startIdx, endIdx) => {
554
783
  const vnode = vnodes[index];
555
784
  if (vnode) {
556
785
  const elm = vnode.$elm$;
786
+ nullifyVNodeRefs(vnode);
557
787
  if (elm) {
788
+ {
789
+ checkSlotFallbackVisibility = true;
790
+ if (elm["s-ol"]) {
791
+ elm["s-ol"].remove();
792
+ } else {
793
+ putBackInOriginalLocation(elm, true);
794
+ }
795
+ }
558
796
  elm.remove();
559
797
  }
560
798
  }
@@ -591,11 +829,17 @@ var updateChildren = (parentElm, oldCh, newVNode2, newCh, isInitialRender = fals
591
829
  oldEndVnode = oldCh[--oldEndIdx];
592
830
  newEndVnode = newCh[--newEndIdx];
593
831
  } else if (isSameVnode(oldStartVnode, newEndVnode, isInitialRender)) {
832
+ if ((oldStartVnode.$tag$ === "slot" || newEndVnode.$tag$ === "slot")) {
833
+ putBackInOriginalLocation(oldStartVnode.$elm$.parentNode, false);
834
+ }
594
835
  patch(oldStartVnode, newEndVnode, isInitialRender);
595
836
  insertBefore(parentElm, oldStartVnode.$elm$, oldEndVnode.$elm$.nextSibling);
596
837
  oldStartVnode = oldCh[++oldStartIdx];
597
838
  newEndVnode = newCh[--newEndIdx];
598
839
  } else if (isSameVnode(oldEndVnode, newStartVnode, isInitialRender)) {
840
+ if ((oldStartVnode.$tag$ === "slot" || newEndVnode.$tag$ === "slot")) {
841
+ putBackInOriginalLocation(oldEndVnode.$elm$.parentNode, false);
842
+ }
599
843
  patch(oldEndVnode, newStartVnode, isInitialRender);
600
844
  insertBefore(parentElm, oldEndVnode.$elm$, oldStartVnode.$elm$);
601
845
  oldEndVnode = oldCh[--oldEndIdx];
@@ -626,7 +870,11 @@ var updateChildren = (parentElm, oldCh, newVNode2, newCh, isInitialRender = fals
626
870
  }
627
871
  if (node) {
628
872
  {
629
- insertBefore(oldStartVnode.$elm$.parentNode, node, oldStartVnode.$elm$);
873
+ insertBefore(
874
+ referenceNode(oldStartVnode.$elm$).parentNode,
875
+ node,
876
+ referenceNode(oldStartVnode.$elm$)
877
+ );
630
878
  }
631
879
  }
632
880
  }
@@ -646,26 +894,39 @@ var updateChildren = (parentElm, oldCh, newVNode2, newCh, isInitialRender = fals
646
894
  };
647
895
  var isSameVnode = (leftVNode, rightVNode, isInitialRender = false) => {
648
896
  if (leftVNode.$tag$ === rightVNode.$tag$) {
897
+ if (leftVNode.$tag$ === "slot") {
898
+ return leftVNode.$name$ === rightVNode.$name$;
899
+ }
649
900
  if (!isInitialRender) {
650
901
  return leftVNode.$key$ === rightVNode.$key$;
651
902
  }
903
+ if (isInitialRender && !leftVNode.$key$ && rightVNode.$key$) {
904
+ leftVNode.$key$ = rightVNode.$key$;
905
+ }
652
906
  return true;
653
907
  }
654
908
  return false;
655
909
  };
910
+ var referenceNode = (node) => node && node["s-ol"] || node;
656
911
  var patch = (oldVNode, newVNode2, isInitialRender = false) => {
657
912
  const elm = newVNode2.$elm$ = oldVNode.$elm$;
658
913
  const oldChildren = oldVNode.$children$;
659
914
  const newChildren = newVNode2.$children$;
660
- {
915
+ const tag = newVNode2.$tag$;
916
+ const text = newVNode2.$text$;
917
+ let defaultHolder;
918
+ if (text === null) {
661
919
  {
662
- {
920
+ if (tag === "slot" && !useNativeShadowDom) ; else {
663
921
  updateElement(oldVNode, newVNode2, isSvgMode);
664
922
  }
665
923
  }
666
924
  if (oldChildren !== null && newChildren !== null) {
667
925
  updateChildren(elm, oldChildren, newVNode2, newChildren, isInitialRender);
668
926
  } else if (newChildren !== null) {
927
+ if (oldVNode.$text$ !== null) {
928
+ elm.textContent = "";
929
+ }
669
930
  addVnodes(elm, null, newVNode2, newChildren, 0, newChildren.length - 1);
670
931
  } else if (
671
932
  // don't do this on initial render as it can cause non-hydrated content to be removed
@@ -673,13 +934,99 @@ var patch = (oldVNode, newVNode2, isInitialRender = false) => {
673
934
  ) {
674
935
  removeVnodes(oldChildren, 0, oldChildren.length - 1);
675
936
  }
937
+ } else if ((defaultHolder = elm["s-cr"])) {
938
+ defaultHolder.parentNode.textContent = text;
939
+ } else if (oldVNode.$text$ !== text) {
940
+ elm.data = text;
941
+ }
942
+ };
943
+ var relocateNodes = [];
944
+ var markSlotContentForRelocation = (elm) => {
945
+ let node;
946
+ let hostContentNodes;
947
+ let j;
948
+ const children = elm.__childNodes || elm.childNodes;
949
+ for (const childNode of children) {
950
+ if (childNode["s-sr"] && (node = childNode["s-cr"]) && node.parentNode) {
951
+ hostContentNodes = node.parentNode.__childNodes || node.parentNode.childNodes;
952
+ const slotName = childNode["s-sn"];
953
+ for (j = hostContentNodes.length - 1; j >= 0; j--) {
954
+ node = hostContentNodes[j];
955
+ if (!node["s-cn"] && !node["s-nr"] && node["s-hn"] !== childNode["s-hn"] && (!BUILD.experimentalSlotFixes )) {
956
+ if (isNodeLocatedInSlot(node, slotName)) {
957
+ let relocateNodeData = relocateNodes.find((r) => r.$nodeToRelocate$ === node);
958
+ checkSlotFallbackVisibility = true;
959
+ node["s-sn"] = node["s-sn"] || slotName;
960
+ if (relocateNodeData) {
961
+ relocateNodeData.$nodeToRelocate$["s-sh"] = childNode["s-hn"];
962
+ relocateNodeData.$slotRefNode$ = childNode;
963
+ } else {
964
+ node["s-sh"] = childNode["s-hn"];
965
+ relocateNodes.push({
966
+ $slotRefNode$: childNode,
967
+ $nodeToRelocate$: node
968
+ });
969
+ }
970
+ if (node["s-sr"]) {
971
+ relocateNodes.map((relocateNode) => {
972
+ if (isNodeLocatedInSlot(relocateNode.$nodeToRelocate$, node["s-sn"])) {
973
+ relocateNodeData = relocateNodes.find((r) => r.$nodeToRelocate$ === node);
974
+ if (relocateNodeData && !relocateNode.$slotRefNode$) {
975
+ relocateNode.$slotRefNode$ = relocateNodeData.$slotRefNode$;
976
+ }
977
+ }
978
+ });
979
+ }
980
+ } else if (!relocateNodes.some((r) => r.$nodeToRelocate$ === node)) {
981
+ relocateNodes.push({
982
+ $nodeToRelocate$: node
983
+ });
984
+ }
985
+ }
986
+ }
987
+ }
988
+ if (childNode.nodeType === 1 /* ElementNode */) {
989
+ markSlotContentForRelocation(childNode);
990
+ }
991
+ }
992
+ };
993
+ var nullifyVNodeRefs = (vNode) => {
994
+ {
995
+ vNode.$attrs$ && vNode.$attrs$.ref && vNode.$attrs$.ref(null);
996
+ vNode.$children$ && vNode.$children$.map(nullifyVNodeRefs);
676
997
  }
677
998
  };
678
999
  var insertBefore = (parent, newNode, reference) => {
679
- const inserted = parent == null ? void 0 : parent.insertBefore(newNode, reference);
680
- return inserted;
1000
+ if (typeof newNode["s-sn"] === "string" && !!newNode["s-sr"] && !!newNode["s-cr"]) {
1001
+ addRemoveSlotScopedClass(newNode["s-cr"], newNode, parent, newNode.parentElement);
1002
+ }
1003
+ {
1004
+ return parent == null ? void 0 : parent.insertBefore(newNode, reference);
1005
+ }
681
1006
  };
1007
+ function addRemoveSlotScopedClass(reference, slotNode, newParent, oldParent) {
1008
+ var _a;
1009
+ let scopeId2;
1010
+ if (reference && typeof slotNode["s-sn"] === "string" && !!slotNode["s-sr"] && reference.parentNode && reference.parentNode["s-sc"] && (scopeId2 = slotNode["s-si"] || reference.parentNode["s-sc"])) {
1011
+ const scopeName = slotNode["s-sn"];
1012
+ const hostName = slotNode["s-hn"];
1013
+ (_a = newParent.classList) == null ? void 0 : _a.add(scopeId2 + "-s");
1014
+ if (oldParent && oldParent.classList.contains(scopeId2 + "-s")) {
1015
+ let child = (oldParent.__childNodes || oldParent.childNodes)[0];
1016
+ let found = false;
1017
+ while (child) {
1018
+ if (child["s-sn"] !== scopeName && child["s-hn"] === hostName && !!child["s-sr"]) {
1019
+ found = true;
1020
+ break;
1021
+ }
1022
+ child = child.nextSibling;
1023
+ }
1024
+ if (!found) oldParent.classList.remove(scopeId2 + "-s");
1025
+ }
1026
+ }
1027
+ }
682
1028
  var renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
1029
+ var _a, _b, _c, _d;
683
1030
  const hostElm = hostRef.$hostElement$;
684
1031
  const cmpMeta = hostRef.$cmpMeta$;
685
1032
  const oldVNode = hostRef.$vnode$ || newVNode(null, null);
@@ -700,13 +1047,90 @@ var renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
700
1047
  scopeId = hostElm["s-sc"];
701
1048
  }
702
1049
  useNativeShadowDom = (cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */) !== 0;
1050
+ {
1051
+ contentRef = hostElm["s-cr"];
1052
+ checkSlotFallbackVisibility = false;
1053
+ }
703
1054
  patch(oldVNode, rootVnode, isInitialLoad);
1055
+ {
1056
+ plt.$flags$ |= 1 /* isTmpDisconnected */;
1057
+ if (checkSlotRelocate) {
1058
+ markSlotContentForRelocation(rootVnode.$elm$);
1059
+ for (const relocateData of relocateNodes) {
1060
+ const nodeToRelocate = relocateData.$nodeToRelocate$;
1061
+ if (!nodeToRelocate["s-ol"]) {
1062
+ const orgLocationNode = doc.createTextNode("");
1063
+ orgLocationNode["s-nr"] = nodeToRelocate;
1064
+ insertBefore(nodeToRelocate.parentNode, nodeToRelocate["s-ol"] = orgLocationNode, nodeToRelocate);
1065
+ }
1066
+ }
1067
+ for (const relocateData of relocateNodes) {
1068
+ const nodeToRelocate = relocateData.$nodeToRelocate$;
1069
+ const slotRefNode = relocateData.$slotRefNode$;
1070
+ if (slotRefNode) {
1071
+ const parentNodeRef = slotRefNode.parentNode;
1072
+ let insertBeforeNode = slotRefNode.nextSibling;
1073
+ {
1074
+ let orgLocationNode = (_a = nodeToRelocate["s-ol"]) == null ? void 0 : _a.previousSibling;
1075
+ while (orgLocationNode) {
1076
+ let refNode = (_b = orgLocationNode["s-nr"]) != null ? _b : null;
1077
+ if (refNode && refNode["s-sn"] === nodeToRelocate["s-sn"] && parentNodeRef === (refNode.__parentNode || refNode.parentNode)) {
1078
+ refNode = refNode.nextSibling;
1079
+ while (refNode === nodeToRelocate || (refNode == null ? void 0 : refNode["s-sr"])) {
1080
+ refNode = refNode == null ? void 0 : refNode.nextSibling;
1081
+ }
1082
+ if (!refNode || !refNode["s-nr"]) {
1083
+ insertBeforeNode = refNode;
1084
+ break;
1085
+ }
1086
+ }
1087
+ orgLocationNode = orgLocationNode.previousSibling;
1088
+ }
1089
+ }
1090
+ const parent = nodeToRelocate.__parentNode || nodeToRelocate.parentNode;
1091
+ const nextSibling = nodeToRelocate.__nextSibling || nodeToRelocate.nextSibling;
1092
+ if (!insertBeforeNode && parentNodeRef !== parent || nextSibling !== insertBeforeNode) {
1093
+ if (nodeToRelocate !== insertBeforeNode) {
1094
+ if (!nodeToRelocate["s-hn"] && nodeToRelocate["s-ol"]) {
1095
+ nodeToRelocate["s-hn"] = nodeToRelocate["s-ol"].parentNode.nodeName;
1096
+ }
1097
+ insertBefore(parentNodeRef, nodeToRelocate, insertBeforeNode);
1098
+ if (nodeToRelocate.nodeType === 1 /* ElementNode */ && nodeToRelocate.tagName !== "SLOT-FB") {
1099
+ nodeToRelocate.hidden = (_c = nodeToRelocate["s-ih"]) != null ? _c : false;
1100
+ }
1101
+ }
1102
+ }
1103
+ nodeToRelocate && typeof slotRefNode["s-rf"] === "function" && slotRefNode["s-rf"](nodeToRelocate);
1104
+ } else {
1105
+ if (nodeToRelocate.nodeType === 1 /* ElementNode */) {
1106
+ if (isInitialLoad) {
1107
+ nodeToRelocate["s-ih"] = (_d = nodeToRelocate.hidden) != null ? _d : false;
1108
+ }
1109
+ nodeToRelocate.hidden = true;
1110
+ }
1111
+ }
1112
+ }
1113
+ }
1114
+ if (checkSlotFallbackVisibility) {
1115
+ updateFallbackSlotVisibility(rootVnode.$elm$);
1116
+ }
1117
+ plt.$flags$ &= ~1 /* isTmpDisconnected */;
1118
+ relocateNodes.length = 0;
1119
+ }
1120
+ contentRef = void 0;
704
1121
  };
705
1122
 
706
1123
  // src/runtime/update-component.ts
707
1124
  var attachToAncestor = (hostRef, ancestorComponent) => {
708
1125
  if (ancestorComponent && !hostRef.$onRenderResolve$ && ancestorComponent["s-p"]) {
709
- ancestorComponent["s-p"].push(new Promise((r) => hostRef.$onRenderResolve$ = r));
1126
+ const index = ancestorComponent["s-p"].push(
1127
+ new Promise(
1128
+ (r) => hostRef.$onRenderResolve$ = () => {
1129
+ ancestorComponent["s-p"].splice(index - 1, 1);
1130
+ r();
1131
+ }
1132
+ )
1133
+ );
710
1134
  }
711
1135
  };
712
1136
  var scheduleUpdate = (hostRef, isInitialLoad) => {
@@ -731,6 +1155,11 @@ var dispatchHooks = (hostRef, isInitialLoad) => {
731
1155
  );
732
1156
  }
733
1157
  let maybePromise;
1158
+ if (isInitialLoad) {
1159
+ {
1160
+ maybePromise = safeCall(instance, "componentWillLoad", void 0, elm);
1161
+ }
1162
+ }
734
1163
  endSchedule();
735
1164
  return enqueue(maybePromise, () => updateComponent(hostRef, instance, isInitialLoad));
736
1165
  };
@@ -810,6 +1239,9 @@ var postUpdateComponent = (hostRef) => {
810
1239
  } else {
811
1240
  endPostUpdate();
812
1241
  }
1242
+ {
1243
+ hostRef.$onInstanceResolve$(elm);
1244
+ }
813
1245
  {
814
1246
  if (hostRef.$onRenderResolve$) {
815
1247
  hostRef.$onRenderResolve$();
@@ -827,6 +1259,16 @@ var appDidLoad = (who) => {
827
1259
  }
828
1260
  nextTick(() => emitEvent(win, "appload", { detail: { namespace: NAMESPACE } }));
829
1261
  };
1262
+ var safeCall = (instance, method, arg, elm) => {
1263
+ if (instance && instance[method]) {
1264
+ try {
1265
+ return instance[method](arg);
1266
+ } catch (e) {
1267
+ consoleError(e, elm);
1268
+ }
1269
+ }
1270
+ return void 0;
1271
+ };
830
1272
  var addHydratedFlag = (elm) => {
831
1273
  var _a;
832
1274
  return elm.classList.add((_a = BUILD.hydratedSelectorName) != null ? _a : "hydrated") ;
@@ -841,6 +1283,7 @@ var setValue = (ref, propName, newVal, cmpMeta) => {
841
1283
  `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).`
842
1284
  );
843
1285
  }
1286
+ const elm = hostRef.$hostElement$ ;
844
1287
  const oldVal = hostRef.$instanceValues$.get(propName);
845
1288
  const flags = hostRef.$flags$;
846
1289
  const instance = hostRef.$lazyInstance$ ;
@@ -850,6 +1293,18 @@ var setValue = (ref, propName, newVal, cmpMeta) => {
850
1293
  if ((!(flags & 8 /* isConstructingInstance */) || oldVal === void 0) && didValueChange) {
851
1294
  hostRef.$instanceValues$.set(propName, newVal);
852
1295
  if (instance) {
1296
+ if (cmpMeta.$watchers$ && flags & 128 /* isWatchReady */) {
1297
+ const watchMethods = cmpMeta.$watchers$[propName];
1298
+ if (watchMethods) {
1299
+ watchMethods.map((watchMethodName) => {
1300
+ try {
1301
+ instance[watchMethodName](newVal, oldVal, propName);
1302
+ } catch (e) {
1303
+ consoleError(e, elm);
1304
+ }
1305
+ });
1306
+ }
1307
+ }
853
1308
  if ((flags & (2 /* hasRendered */ | 16 /* isQueuedForUpdate */)) === 2 /* hasRendered */) {
854
1309
  scheduleUpdate(hostRef, false);
855
1310
  }
@@ -861,19 +1316,86 @@ var setValue = (ref, propName, newVal, cmpMeta) => {
861
1316
  var proxyComponent = (Cstr, cmpMeta, flags) => {
862
1317
  var _a, _b;
863
1318
  const prototype = Cstr.prototype;
864
- if (cmpMeta.$members$ || BUILD.watchCallback ) {
1319
+ if (cmpMeta.$members$ || (cmpMeta.$watchers$ || Cstr.watchers)) {
1320
+ if (Cstr.watchers && !cmpMeta.$watchers$) {
1321
+ cmpMeta.$watchers$ = Cstr.watchers;
1322
+ }
865
1323
  const members = Object.entries((_a = cmpMeta.$members$) != null ? _a : {});
866
1324
  members.map(([memberName, [memberFlags]]) => {
867
1325
  if ((memberFlags & 31 /* Prop */ || (flags & 2 /* proxyState */) && memberFlags & 32 /* State */)) {
1326
+ const { get: origGetter, set: origSetter } = Object.getOwnPropertyDescriptor(prototype, memberName) || {};
1327
+ if (origGetter) cmpMeta.$members$[memberName][0] |= 2048 /* Getter */;
1328
+ if (origSetter) cmpMeta.$members$[memberName][0] |= 4096 /* Setter */;
1329
+ if (flags & 1 /* isElementConstructor */ || !origGetter) {
1330
+ Object.defineProperty(prototype, memberName, {
1331
+ get() {
1332
+ {
1333
+ if ((cmpMeta.$members$[memberName][0] & 2048 /* Getter */) === 0) {
1334
+ return getValue(this, memberName);
1335
+ }
1336
+ const ref = getHostRef(this);
1337
+ const instance = ref ? ref.$lazyInstance$ : prototype;
1338
+ if (!instance) return;
1339
+ return instance[memberName];
1340
+ }
1341
+ },
1342
+ configurable: true,
1343
+ enumerable: true
1344
+ });
1345
+ }
868
1346
  Object.defineProperty(prototype, memberName, {
869
- get() {
870
- return getValue(this, memberName);
871
- },
872
1347
  set(newValue) {
873
- setValue(this, memberName, newValue, cmpMeta);
874
- },
875
- configurable: true,
876
- enumerable: true
1348
+ const ref = getHostRef(this);
1349
+ if (origSetter) {
1350
+ const currentValue = memberFlags & 32 /* State */ ? this[memberName] : ref.$hostElement$[memberName];
1351
+ if (typeof currentValue === "undefined" && ref.$instanceValues$.get(memberName)) {
1352
+ newValue = ref.$instanceValues$.get(memberName);
1353
+ } else if (!ref.$instanceValues$.get(memberName) && currentValue) {
1354
+ ref.$instanceValues$.set(memberName, currentValue);
1355
+ }
1356
+ origSetter.apply(this, [parsePropertyValue(newValue, memberFlags)]);
1357
+ newValue = memberFlags & 32 /* State */ ? this[memberName] : ref.$hostElement$[memberName];
1358
+ setValue(this, memberName, newValue, cmpMeta);
1359
+ return;
1360
+ }
1361
+ {
1362
+ if ((flags & 1 /* isElementConstructor */) === 0 || (cmpMeta.$members$[memberName][0] & 4096 /* Setter */) === 0) {
1363
+ setValue(this, memberName, newValue, cmpMeta);
1364
+ if (flags & 1 /* isElementConstructor */ && !ref.$lazyInstance$) {
1365
+ ref.$onReadyPromise$.then(() => {
1366
+ if (cmpMeta.$members$[memberName][0] & 4096 /* Setter */ && ref.$lazyInstance$[memberName] !== ref.$instanceValues$.get(memberName)) {
1367
+ ref.$lazyInstance$[memberName] = newValue;
1368
+ }
1369
+ });
1370
+ }
1371
+ return;
1372
+ }
1373
+ const setterSetVal = () => {
1374
+ const currentValue = ref.$lazyInstance$[memberName];
1375
+ if (!ref.$instanceValues$.get(memberName) && currentValue) {
1376
+ ref.$instanceValues$.set(memberName, currentValue);
1377
+ }
1378
+ ref.$lazyInstance$[memberName] = parsePropertyValue(newValue, memberFlags);
1379
+ setValue(this, memberName, ref.$lazyInstance$[memberName], cmpMeta);
1380
+ };
1381
+ if (ref.$lazyInstance$) {
1382
+ setterSetVal();
1383
+ } else {
1384
+ ref.$onReadyPromise$.then(() => setterSetVal());
1385
+ }
1386
+ }
1387
+ }
1388
+ });
1389
+ } else if (flags & 1 /* isElementConstructor */ && memberFlags & 64 /* Method */) {
1390
+ Object.defineProperty(prototype, memberName, {
1391
+ value(...args) {
1392
+ var _a2;
1393
+ const ref = getHostRef(this);
1394
+ return (_a2 = ref == null ? void 0 : ref.$onInstancePromise$) == null ? void 0 : _a2.then(() => {
1395
+ var _a3;
1396
+ return (_a3 = ref.$lazyInstance$) == null ? void 0 : _a3[memberName](...args);
1397
+ });
1398
+ }
877
1399
  });
878
1400
  }
879
1401
  });
@@ -883,7 +1405,7 @@ var proxyComponent = (Cstr, cmpMeta, flags) => {
883
1405
  plt.jmp(() => {
884
1406
  var _a2;
885
1407
  const propName = attrNameToPropName.get(attrName);
886
- if (this.hasOwnProperty(propName)) {
1408
+ if (this.hasOwnProperty(propName) && BUILD.lazyLoad) {
887
1409
  newValue = this[propName];
888
1410
  delete this[propName];
889
1411
  } else if (prototype.hasOwnProperty(propName) && typeof this[propName] === "number" && // cast type to number to avoid TS compiler issues
@@ -903,7 +1425,11 @@ var proxyComponent = (Cstr, cmpMeta, flags) => {
903
1425
  }
904
1426
  return;
905
1427
  }
906
- this[propName] = newValue === null && typeof this[propName] === "boolean" ? false : newValue;
1428
+ const propDesc = Object.getOwnPropertyDescriptor(prototype, propName);
1429
+ newValue = newValue === null && typeof this[propName] === "boolean" ? false : newValue;
1430
+ if (newValue !== this[propName] && (!propDesc.get || !!propDesc.set)) {
1431
+ this[propName] = newValue;
1432
+ }
907
1433
  });
908
1434
  };
909
1435
  Cstr.observedAttributes = Array.from(
@@ -926,9 +1452,8 @@ var initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId) => {
926
1452
  let Cstr;
927
1453
  if ((hostRef.$flags$ & 32 /* hasInitializedComponent */) === 0) {
928
1454
  hostRef.$flags$ |= 32 /* hasInitializedComponent */;
929
- const bundleId = cmpMeta.$lazyBundleId$;
930
- if (bundleId) {
931
- const CstrImport = loadModule(cmpMeta);
1455
+ {
1456
+ const CstrImport = loadModule(cmpMeta, hostRef);
932
1457
  if (CstrImport && "then" in CstrImport) {
933
1458
  const endLoad = uniqueTime();
934
1459
  Cstr = await CstrImport;
@@ -940,6 +1465,9 @@ var initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId) => {
940
1465
  throw new Error(`Constructor for "${cmpMeta.$tagName$}#${hostRef.$modeName$}" was not found`);
941
1466
  }
942
1467
  if (!Cstr.isProxied) {
1468
+ {
1469
+ cmpMeta.$watchers$ = Cstr.watchers;
1470
+ }
943
1471
  proxyComponent(Cstr, cmpMeta, 2 /* proxyState */);
944
1472
  Cstr.isProxied = true;
945
1473
  }
@@ -950,16 +1478,15 @@ var initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId) => {
950
1478
  try {
951
1479
  new Cstr(hostRef);
952
1480
  } catch (e) {
953
- consoleError(e);
1481
+ consoleError(e, elm);
954
1482
  }
955
1483
  {
956
1484
  hostRef.$flags$ &= ~8 /* isConstructingInstance */;
957
1485
  }
1486
+ {
1487
+ hostRef.$flags$ |= 128 /* isWatchReady */;
1488
+ }
958
1489
  endNewInstance();
959
- } else {
960
- Cstr = elm.constructor;
961
- const cmpTag = elm.localName;
962
- customElements.whenDefined(cmpTag).then(() => hostRef.$flags$ |= 128 /* isWatchReady */);
963
1490
  }
964
1491
  if (Cstr && Cstr.style) {
965
1492
  let style;
@@ -982,7 +1509,7 @@ var initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId) => {
982
1509
  schedule();
983
1510
  }
984
1511
  };
985
- var fireConnectedCallback = (instance) => {
1512
+ var fireConnectedCallback = (instance, elm) => {
986
1513
  };
987
1514
 
988
1515
  // src/runtime/connected-callback.ts
@@ -993,6 +1520,12 @@ var connectedCallback = (elm) => {
993
1520
  const endConnected = createTime("connectedCallback", cmpMeta.$tagName$);
994
1521
  if (!(hostRef.$flags$ & 1 /* hasConnected */)) {
995
1522
  hostRef.$flags$ |= 1 /* hasConnected */;
1523
+ {
1524
+ if (// TODO(STENCIL-854): Remove code related to legacy shadowDomShim field
1525
+ cmpMeta.$flags$ & (4 /* hasSlotRelocation */ | 8 /* needsShadowDomShim */)) {
1526
+ setContentReference(elm);
1527
+ }
1528
+ }
996
1529
  {
997
1530
  let ancestorComponent = elm;
998
1531
  while (ancestorComponent = ancestorComponent.parentNode || ancestorComponent.host) {
@@ -1022,7 +1555,14 @@ var connectedCallback = (elm) => {
1022
1555
  endConnected();
1023
1556
  }
1024
1557
  };
1025
- var disconnectInstance = (instance) => {
1558
+ var setContentReference = (elm) => {
1559
+ const contentRefElm = elm["s-cr"] = doc.createComment(
1560
+ ""
1561
+ );
1562
+ contentRefElm["s-cn"] = true;
1563
+ insertBefore(elm, contentRefElm, elm.firstChild);
1564
+ };
1565
+ var disconnectInstance = (instance, elm) => {
1026
1566
  };
1027
1567
  var disconnectedCallback = async (elm) => {
1028
1568
  if ((plt.$flags$ & 1 /* isTmpDisconnected */) === 0) {
@@ -1031,6 +1571,12 @@ var disconnectedCallback = async (elm) => {
1031
1571
  hostRef.$onReadyPromise$.then(() => disconnectInstance());
1032
1572
  }
1033
1573
  }
1574
+ if (rootAppliedStyles.has(elm)) {
1575
+ rootAppliedStyles.delete(elm);
1576
+ }
1577
+ if (elm.shadowRoot && rootAppliedStyles.has(elm.shadowRoot)) {
1578
+ rootAppliedStyles.delete(elm.shadowRoot);
1579
+ }
1034
1580
  };
1035
1581
 
1036
1582
  // src/runtime/bootstrap-lazy.ts
@@ -1051,6 +1597,7 @@ var bootstrapLazy = (lazyBundles, options = {}) => {
1051
1597
  let hasSlotRelocation = false;
1052
1598
  lazyBundles.map((lazyBundle) => {
1053
1599
  lazyBundle[1].map((compactMeta) => {
1600
+ var _a2;
1054
1601
  const cmpMeta = {
1055
1602
  $flags$: compactMeta[0],
1056
1603
  $tagName$: compactMeta[1],
@@ -1063,6 +1610,9 @@ var bootstrapLazy = (lazyBundles, options = {}) => {
1063
1610
  {
1064
1611
  cmpMeta.$members$ = compactMeta[2];
1065
1612
  }
1613
+ {
1614
+ cmpMeta.$watchers$ = (_a2 = compactMeta[4]) != null ? _a2 : {};
1615
+ }
1066
1616
  const tagName = cmpMeta.$tagName$;
1067
1617
  const HostElement = class extends HTMLElement {
1068
1618
  // StencilLazyHost
@@ -1104,6 +1654,13 @@ var bootstrapLazy = (lazyBundles, options = {}) => {
1104
1654
  }
1105
1655
  disconnectedCallback() {
1106
1656
  plt.jmp(() => disconnectedCallback(this));
1657
+ plt.raf(() => {
1658
+ var _a3;
1659
+ const hostRef = getHostRef(this);
1660
+ if (((_a3 = hostRef == null ? void 0 : hostRef.$vnode$) == null ? void 0 : _a3.$elm$) instanceof Node && !hostRef.$vnode$.$elm$.isConnected) {
1661
+ delete hostRef.$vnode$.$elm$;
1662
+ }
1663
+ });
1107
1664
  }
1108
1665
  componentOnReady() {
1109
1666
  return getHostRef(this).$onReadyPromise$;
@@ -1154,9 +1711,8 @@ var setNonce = (nonce) => plt.$nonce$ = nonce;
1154
1711
 
1155
1712
  exports.Fragment = Fragment;
1156
1713
  exports.bootstrapLazy = bootstrapLazy;
1714
+ exports.getElement = getElement;
1157
1715
  exports.h = h;
1158
1716
  exports.promiseResolve = promiseResolve;
1159
1717
  exports.registerInstance = registerInstance;
1160
1718
  exports.setNonce = setNonce;
1161
-
1162
- //# sourceMappingURL=index-eaf5876c.js.map