@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
@@ -1,17 +1,21 @@
1
- const NAMESPACE = 'uh-component-library';
2
- 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 };
1
+ const NAMESPACE = 'component-library';
2
+ 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 };
3
3
 
4
4
  /*
5
- Stencil Client Platform v4.22.2 | MIT Licensed | https://stenciljs.com
5
+ Stencil Client Platform v4.25.1 | MIT Licensed | https://stenciljs.com
6
6
  */
7
7
  var __defProp = Object.defineProperty;
8
8
  var __export = (target, all) => {
9
9
  for (var name in all)
10
10
  __defProp(target, name, { get: all[name], enumerable: true });
11
11
  };
12
+
13
+ // src/client/client-host-ref.ts
12
14
  var hostRefs = /* @__PURE__ */ new WeakMap();
13
15
  var getHostRef = (ref) => hostRefs.get(ref);
14
- var registerInstance = (lazyInstance, hostRef) => hostRefs.set(hostRef.$lazyInstance$ = lazyInstance, hostRef);
16
+ var registerInstance = (lazyInstance, hostRef) => {
17
+ hostRefs.set(hostRef.$lazyInstance$ = lazyInstance, hostRef);
18
+ };
15
19
  var registerHost = (hostElement, cmpMeta) => {
16
20
  const hostRef = {
17
21
  $flags$: 0,
@@ -19,12 +23,16 @@ var registerHost = (hostElement, cmpMeta) => {
19
23
  $cmpMeta$: cmpMeta,
20
24
  $instanceValues$: /* @__PURE__ */ new Map()
21
25
  };
26
+ {
27
+ hostRef.$onInstancePromise$ = new Promise((r) => hostRef.$onInstanceResolve$ = r);
28
+ }
22
29
  {
23
30
  hostRef.$onReadyPromise$ = new Promise((r) => hostRef.$onReadyResolve$ = r);
24
31
  hostElement["s-p"] = [];
25
32
  hostElement["s-rc"] = [];
26
33
  }
27
- return hostRefs.set(hostElement, hostRef);
34
+ const ref = hostRefs.set(hostElement, hostRef);
35
+ return ref;
28
36
  };
29
37
  var isMemberInElement = (elm, memberName) => memberName in elm;
30
38
  var consoleError = (e, el) => (0, console.error)(e, el);
@@ -48,18 +56,25 @@ var loadModule = (cmpMeta, hostRef, hmrVersionId) => {
48
56
  /* webpackExclude: /\.system\.entry\.js$/ */
49
57
  /* webpackMode: "lazy" */
50
58
  `./${bundleId}.entry.js${""}`
51
- ).then((importedModule) => {
52
- {
53
- cmpModules.set(bundleId, importedModule);
59
+ ).then(
60
+ (importedModule) => {
61
+ {
62
+ cmpModules.set(bundleId, importedModule);
63
+ }
64
+ return importedModule[exportName];
65
+ },
66
+ (e) => {
67
+ consoleError(e, hostRef.$hostElement$);
54
68
  }
55
- return importedModule[exportName];
56
- }, consoleError);
69
+ );
57
70
  };
58
71
 
59
72
  // src/client/client-style.ts
60
73
  var styles = /* @__PURE__ */ new Map();
74
+ var HYDRATED_STYLE_ID = "sty-id";
61
75
  var HYDRATED_CSS = "{visibility:hidden}.hydrated{visibility:inherit}";
62
76
  var SLOT_FB_CSS = "slot-fb{display:contents}slot-fb[hidden]{display:none}";
77
+ var XLINK_NS = "http://www.w3.org/1999/xlink";
63
78
  var win = typeof window !== "undefined" ? window : {};
64
79
  var doc = win.document || { head: {} };
65
80
  var plt = {
@@ -116,11 +131,8 @@ var flush = () => {
116
131
  var nextTick = (cb) => promiseResolve().then(cb);
117
132
  var writeTask = /* @__PURE__ */ queueTask(queueDomWrites, true);
118
133
 
119
- // src/utils/constants.ts
120
- var EMPTY_OBJ = {};
121
-
122
134
  // src/utils/helpers.ts
123
- var isDef = (v) => v != null;
135
+ var isDef = (v) => v != null && v !== void 0;
124
136
  var isComplexType = (o) => {
125
137
  o = typeof o;
126
138
  return o === "object" || o === "function";
@@ -180,6 +192,63 @@ var unwrapErr = (result) => {
180
192
  throw result.value;
181
193
  }
182
194
  };
195
+ var updateFallbackSlotVisibility = (elm) => {
196
+ const childNodes = elm.__childNodes || elm.childNodes;
197
+ if (elm.tagName && elm.tagName.includes("-") && elm["s-cr"] && elm.tagName !== "SLOT-FB") {
198
+ getHostSlotNodes(childNodes, elm.tagName).forEach((slotNode) => {
199
+ var _a;
200
+ if (slotNode.nodeType === 1 /* ElementNode */ && slotNode.tagName === "SLOT-FB") {
201
+ if ((_a = getHostSlotChildNodes(slotNode, slotNode["s-sn"], false)) == null ? void 0 : _a.length) {
202
+ slotNode.hidden = true;
203
+ } else {
204
+ slotNode.hidden = false;
205
+ }
206
+ }
207
+ });
208
+ }
209
+ for (const childNode of childNodes) {
210
+ if (childNode.nodeType === 1 /* ElementNode */ && (childNode.__childNodes || childNode.childNodes).length) {
211
+ updateFallbackSlotVisibility(childNode);
212
+ }
213
+ }
214
+ };
215
+ function getHostSlotNodes(childNodes, hostName, slotName) {
216
+ let i2 = 0;
217
+ let slottedNodes = [];
218
+ let childNode;
219
+ for (; i2 < childNodes.length; i2++) {
220
+ childNode = childNodes[i2];
221
+ if (childNode["s-sr"] && childNode["s-hn"] === hostName && (slotName === void 0 || childNode["s-sn"] === slotName)) {
222
+ slottedNodes.push(childNode);
223
+ if (typeof slotName !== "undefined") return slottedNodes;
224
+ }
225
+ slottedNodes = [...slottedNodes, ...getHostSlotNodes(childNode.childNodes, hostName, slotName)];
226
+ }
227
+ return slottedNodes;
228
+ }
229
+ var getHostSlotChildNodes = (node, slotName, includeSlot = true) => {
230
+ const childNodes = [];
231
+ if (includeSlot && node["s-sr"] || !node["s-sr"]) childNodes.push(node);
232
+ while ((node = node.nextSibling) && node["s-sn"] === slotName) {
233
+ childNodes.push(node);
234
+ }
235
+ return childNodes;
236
+ };
237
+ var isNodeLocatedInSlot = (nodeToRelocate, slotName) => {
238
+ if (nodeToRelocate.nodeType === 1 /* ElementNode */) {
239
+ if (nodeToRelocate.getAttribute("slot") === null && slotName === "") {
240
+ return true;
241
+ }
242
+ if (nodeToRelocate.getAttribute("slot") === slotName) {
243
+ return true;
244
+ }
245
+ return false;
246
+ }
247
+ if (nodeToRelocate["s-sn"] === slotName) {
248
+ return true;
249
+ }
250
+ return slotName === "";
251
+ };
183
252
  var createTime = (fnName, tagName = "") => {
184
253
  {
185
254
  return () => {
@@ -197,6 +266,7 @@ var uniqueTime = (key, measureText) => {
197
266
  var h = (nodeName, vnodeData, ...children) => {
198
267
  let child = null;
199
268
  let key = null;
269
+ let slotName = null;
200
270
  let simple = false;
201
271
  let lastSimple = false;
202
272
  const vNodeChildren = [];
@@ -223,6 +293,9 @@ var h = (nodeName, vnodeData, ...children) => {
223
293
  if (vnodeData.key) {
224
294
  key = vnodeData.key;
225
295
  }
296
+ if (vnodeData.name) {
297
+ slotName = vnodeData.name;
298
+ }
226
299
  {
227
300
  const classData = vnodeData.className || vnodeData.class;
228
301
  if (classData) {
@@ -245,6 +318,9 @@ var h = (nodeName, vnodeData, ...children) => {
245
318
  {
246
319
  vnode.$key$ = key;
247
320
  }
321
+ {
322
+ vnode.$name$ = slotName;
323
+ }
248
324
  return vnode;
249
325
  };
250
326
  var newVNode = (tag, text) => {
@@ -261,6 +337,9 @@ var newVNode = (tag, text) => {
261
337
  {
262
338
  vnode.$key$ = null;
263
339
  }
340
+ {
341
+ vnode.$name$ = null;
342
+ }
264
343
  return vnode;
265
344
  };
266
345
  var Host = {};
@@ -300,6 +379,9 @@ var parsePropertyValue = (propValue, propType) => {
300
379
  if (propType & 4 /* Boolean */) {
301
380
  return propValue === "false" ? false : propValue === "" || !!propValue;
302
381
  }
382
+ if (propType & 2 /* Number */) {
383
+ return parseFloat(propValue);
384
+ }
303
385
  if (propType & 1 /* String */) {
304
386
  return String(propValue);
305
387
  }
@@ -307,6 +389,7 @@ var parsePropertyValue = (propValue, propType) => {
307
389
  }
308
390
  return propValue;
309
391
  };
392
+ var getElement = (ref) => getHostRef(ref).$hostElement$ ;
310
393
  var emitEvent = (elm, name, opts) => {
311
394
  const ev = plt.ce(name, opts);
312
395
  elm.dispatchEvent(ev);
@@ -342,7 +425,7 @@ var addStyle = (styleContainerNode, cmpMeta, mode) => {
342
425
  }
343
426
  if (!appliedStyles.has(scopeId2)) {
344
427
  {
345
- styleElm = doc.createElement("style");
428
+ styleElm = document.querySelector(`[${HYDRATED_STYLE_ID}="${scopeId2}"]`) || doc.createElement("style");
346
429
  styleElm.innerHTML = style;
347
430
  const nonce = (_a = plt.$nonce$) != null ? _a : queryNonceMetaTagContent(doc);
348
431
  if (nonce != null) {
@@ -352,7 +435,10 @@ var addStyle = (styleContainerNode, cmpMeta, mode) => {
352
435
  if (styleContainerNode.nodeName === "HEAD") {
353
436
  const preconnectLinks = styleContainerNode.querySelectorAll("link[rel=preconnect]");
354
437
  const referenceNode2 = preconnectLinks.length > 0 ? preconnectLinks[preconnectLinks.length - 1].nextSibling : styleContainerNode.querySelector("style");
355
- styleContainerNode.insertBefore(styleElm, referenceNode2);
438
+ styleContainerNode.insertBefore(
439
+ styleElm,
440
+ (referenceNode2 == null ? void 0 : referenceNode2.parentNode) === styleContainerNode ? referenceNode2 : null
441
+ );
356
442
  } else if ("host" in styleContainerNode) {
357
443
  if (supportsConstructableStylesheets) {
358
444
  const stylesheet = new CSSStyleSheet();
@@ -402,17 +488,62 @@ var attachStyles = (hostRef) => {
402
488
  endAttachStyles();
403
489
  };
404
490
  var getScopeId = (cmp, mode) => "sc-" + (cmp.$tagName$);
405
- var setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => {
491
+ var setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags, initialRender) => {
406
492
  if (oldValue !== newValue) {
407
493
  let isProp = isMemberInElement(elm, memberName);
408
- memberName.toLowerCase();
494
+ let ln = memberName.toLowerCase();
409
495
  if (memberName === "class") {
410
496
  const classList = elm.classList;
411
497
  const oldClasses = parseClassList(oldValue);
412
- const newClasses = parseClassList(newValue);
413
- classList.remove(...oldClasses.filter((c) => c && !newClasses.includes(c)));
414
- classList.add(...newClasses.filter((c) => c && !oldClasses.includes(c)));
415
- } else if (memberName === "key") ; else {
498
+ let newClasses = parseClassList(newValue);
499
+ {
500
+ classList.remove(...oldClasses.filter((c) => c && !newClasses.includes(c)));
501
+ classList.add(...newClasses.filter((c) => c && !oldClasses.includes(c)));
502
+ }
503
+ } else if (memberName === "style") {
504
+ {
505
+ for (const prop in oldValue) {
506
+ if (!newValue || newValue[prop] == null) {
507
+ if (prop.includes("-")) {
508
+ elm.style.removeProperty(prop);
509
+ } else {
510
+ elm.style[prop] = "";
511
+ }
512
+ }
513
+ }
514
+ }
515
+ for (const prop in newValue) {
516
+ if (!oldValue || newValue[prop] !== oldValue[prop]) {
517
+ if (prop.includes("-")) {
518
+ elm.style.setProperty(prop, newValue[prop]);
519
+ } else {
520
+ elm.style[prop] = newValue[prop];
521
+ }
522
+ }
523
+ }
524
+ } else if (memberName === "key") ; else if (memberName === "ref") {
525
+ if (newValue) {
526
+ newValue(elm);
527
+ }
528
+ } else if ((!isProp ) && memberName[0] === "o" && memberName[1] === "n") {
529
+ if (memberName[2] === "-") {
530
+ memberName = memberName.slice(3);
531
+ } else if (isMemberInElement(win, ln)) {
532
+ memberName = ln.slice(2);
533
+ } else {
534
+ memberName = ln[2] + memberName.slice(3);
535
+ }
536
+ if (oldValue || newValue) {
537
+ const capture = memberName.endsWith(CAPTURE_EVENT_SUFFIX);
538
+ memberName = memberName.replace(CAPTURE_EVENT_REGEX, "");
539
+ if (oldValue) {
540
+ plt.rel(elm, memberName, oldValue, capture);
541
+ }
542
+ if (newValue) {
543
+ plt.ael(elm, memberName, newValue, capture);
544
+ }
545
+ }
546
+ } else {
416
547
  const isComplex = isComplexType(newValue);
417
548
  if ((isProp || isComplex && newValue !== null) && !isSvg) {
418
549
  try {
@@ -427,21 +558,32 @@ var setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => {
427
558
  elm.setAttribute(memberName, n);
428
559
  }
429
560
  }
430
- } else {
561
+ } else if (elm[memberName] !== newValue) {
431
562
  elm[memberName] = newValue;
432
563
  }
433
564
  } catch (e) {
434
565
  }
435
566
  }
567
+ let xlink = false;
568
+ {
569
+ if (ln !== (ln = ln.replace(/^xlink\:?/, ""))) {
570
+ memberName = ln;
571
+ xlink = true;
572
+ }
573
+ }
436
574
  if (newValue == null || newValue === false) {
437
575
  if (newValue !== false || elm.getAttribute(memberName) === "") {
438
- {
576
+ if (xlink) {
577
+ elm.removeAttributeNS(XLINK_NS, memberName);
578
+ } else {
439
579
  elm.removeAttribute(memberName);
440
580
  }
441
581
  }
442
582
  } else if ((!isProp || flags & 4 /* isHost */ || isSvg) && !isComplex) {
443
583
  newValue = newValue === true ? "" : newValue;
444
- {
584
+ if (xlink) {
585
+ elm.setAttributeNS(XLINK_NS, memberName, newValue);
586
+ } else {
445
587
  elm.setAttribute(memberName, newValue);
446
588
  }
447
589
  }
@@ -449,22 +591,44 @@ var setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => {
449
591
  }
450
592
  };
451
593
  var parseClassListRegex = /\s/;
452
- var parseClassList = (value) => !value ? [] : value.split(parseClassListRegex);
594
+ var parseClassList = (value) => {
595
+ if (typeof value === "object" && value && "baseVal" in value) {
596
+ value = value.baseVal;
597
+ }
598
+ if (!value || typeof value !== "string") {
599
+ return [];
600
+ }
601
+ return value.split(parseClassListRegex);
602
+ };
603
+ var CAPTURE_EVENT_SUFFIX = "Capture";
604
+ var CAPTURE_EVENT_REGEX = new RegExp(CAPTURE_EVENT_SUFFIX + "$");
453
605
 
454
606
  // src/runtime/vdom/update-element.ts
455
- var updateElement = (oldVnode, newVnode, isSvgMode2) => {
607
+ var updateElement = (oldVnode, newVnode, isSvgMode2, isInitialRender) => {
456
608
  const elm = newVnode.$elm$.nodeType === 11 /* DocumentFragment */ && newVnode.$elm$.host ? newVnode.$elm$.host : newVnode.$elm$;
457
- const oldVnodeAttrs = oldVnode && oldVnode.$attrs$ || EMPTY_OBJ;
458
- const newVnodeAttrs = newVnode.$attrs$ || EMPTY_OBJ;
609
+ const oldVnodeAttrs = oldVnode && oldVnode.$attrs$ || {};
610
+ const newVnodeAttrs = newVnode.$attrs$ || {};
459
611
  {
460
612
  for (const memberName of sortedAttrNames(Object.keys(oldVnodeAttrs))) {
461
613
  if (!(memberName in newVnodeAttrs)) {
462
- setAccessor(elm, memberName, oldVnodeAttrs[memberName], void 0, isSvgMode2, newVnode.$flags$);
614
+ setAccessor(
615
+ elm,
616
+ memberName,
617
+ oldVnodeAttrs[memberName],
618
+ void 0,
619
+ isSvgMode2,
620
+ newVnode.$flags$);
463
621
  }
464
622
  }
465
623
  }
466
624
  for (const memberName of sortedAttrNames(Object.keys(newVnodeAttrs))) {
467
- setAccessor(elm, memberName, oldVnodeAttrs[memberName], newVnodeAttrs[memberName], isSvgMode2, newVnode.$flags$);
625
+ setAccessor(
626
+ elm,
627
+ memberName,
628
+ oldVnodeAttrs[memberName],
629
+ newVnodeAttrs[memberName],
630
+ isSvgMode2,
631
+ newVnode.$flags$);
468
632
  }
469
633
  };
470
634
  function sortedAttrNames(attrNames) {
@@ -479,24 +643,46 @@ function sortedAttrNames(attrNames) {
479
643
 
480
644
  // src/runtime/vdom/vdom-render.ts
481
645
  var scopeId;
646
+ var contentRef;
482
647
  var hostTagName;
483
648
  var useNativeShadowDom = false;
649
+ var checkSlotFallbackVisibility = false;
650
+ var checkSlotRelocate = false;
484
651
  var isSvgMode = false;
485
- var createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {
652
+ var createElm = (oldParentVNode, newParentVNode, childIndex) => {
653
+ var _a;
486
654
  const newVNode2 = newParentVNode.$children$[childIndex];
487
655
  let i2 = 0;
488
656
  let elm;
489
657
  let childNode;
490
- {
658
+ let oldVNode;
659
+ if (!useNativeShadowDom) {
660
+ checkSlotRelocate = true;
661
+ if (newVNode2.$tag$ === "slot") {
662
+ newVNode2.$flags$ |= newVNode2.$children$ ? (
663
+ // slot element has fallback content
664
+ // still create an element that "mocks" the slot element
665
+ 2 /* isSlotFallback */
666
+ ) : (
667
+ // slot element does not have fallback content
668
+ // create an html comment we'll use to always reference
669
+ // where actual slot content should sit next to
670
+ 1 /* isSlotReference */
671
+ );
672
+ }
673
+ }
674
+ if (newVNode2.$text$ !== null) {
675
+ elm = newVNode2.$elm$ = doc.createTextNode(newVNode2.$text$);
676
+ } else if (newVNode2.$flags$ & 1 /* isSlotReference */) {
677
+ elm = newVNode2.$elm$ = doc.createTextNode("");
678
+ } else {
491
679
  elm = newVNode2.$elm$ = doc.createElement(
492
680
  !useNativeShadowDom && BUILD.slotRelocation && newVNode2.$flags$ & 2 /* isSlotFallback */ ? "slot-fb" : newVNode2.$tag$
493
681
  );
494
682
  {
495
683
  updateElement(null, newVNode2, isSvgMode);
496
684
  }
497
- const rootNode = elm.getRootNode();
498
- const isElementWithinShadowRoot = !rootNode.querySelector("body");
499
- if (!isElementWithinShadowRoot && BUILD.scoped && isDef(scopeId) && elm["s-si"] !== scopeId) {
685
+ if (isDef(scopeId) && elm["s-si"] !== scopeId) {
500
686
  elm.classList.add(elm["s-si"] = scopeId);
501
687
  }
502
688
  if (newVNode2.$children$) {
@@ -509,10 +695,53 @@ var createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {
509
695
  }
510
696
  }
511
697
  elm["s-hn"] = hostTagName;
698
+ {
699
+ if (newVNode2.$flags$ & (2 /* isSlotFallback */ | 1 /* isSlotReference */)) {
700
+ elm["s-sr"] = true;
701
+ elm["s-cr"] = contentRef;
702
+ elm["s-sn"] = newVNode2.$name$ || "";
703
+ elm["s-rf"] = (_a = newVNode2.$attrs$) == null ? void 0 : _a.ref;
704
+ oldVNode = oldParentVNode && oldParentVNode.$children$ && oldParentVNode.$children$[childIndex];
705
+ if (oldVNode && oldVNode.$tag$ === newVNode2.$tag$ && oldParentVNode.$elm$) {
706
+ {
707
+ putBackInOriginalLocation(oldParentVNode.$elm$, false);
708
+ }
709
+ }
710
+ {
711
+ addRemoveSlotScopedClass(contentRef, elm, newParentVNode.$elm$, oldParentVNode == null ? void 0 : oldParentVNode.$elm$);
712
+ }
713
+ }
714
+ }
512
715
  return elm;
513
716
  };
717
+ var putBackInOriginalLocation = (parentElm, recursive) => {
718
+ plt.$flags$ |= 1 /* isTmpDisconnected */;
719
+ const oldSlotChildNodes = Array.from(parentElm.__childNodes || parentElm.childNodes);
720
+ if (parentElm["s-sr"] && BUILD.experimentalSlotFixes) {
721
+ let node = parentElm;
722
+ while (node = node.nextSibling) {
723
+ if (node && node["s-sn"] === parentElm["s-sn"] && node["s-sh"] === hostTagName) {
724
+ oldSlotChildNodes.push(node);
725
+ }
726
+ }
727
+ }
728
+ for (let i2 = oldSlotChildNodes.length - 1; i2 >= 0; i2--) {
729
+ const childNode = oldSlotChildNodes[i2];
730
+ if (childNode["s-hn"] !== hostTagName && childNode["s-ol"]) {
731
+ insertBefore(referenceNode(childNode).parentNode, childNode, referenceNode(childNode));
732
+ childNode["s-ol"].remove();
733
+ childNode["s-ol"] = void 0;
734
+ childNode["s-sh"] = void 0;
735
+ checkSlotRelocate = true;
736
+ }
737
+ if (recursive) {
738
+ putBackInOriginalLocation(childNode, recursive);
739
+ }
740
+ }
741
+ plt.$flags$ &= ~1 /* isTmpDisconnected */;
742
+ };
514
743
  var addVnodes = (parentElm, before, parentVNode, vnodes, startIdx, endIdx) => {
515
- let containerElm = parentElm;
744
+ let containerElm = parentElm["s-cr"] && parentElm["s-cr"].parentNode || parentElm;
516
745
  let childNode;
517
746
  if (containerElm.shadowRoot && containerElm.tagName === hostTagName) {
518
747
  containerElm = containerElm.shadowRoot;
@@ -522,7 +751,7 @@ var addVnodes = (parentElm, before, parentVNode, vnodes, startIdx, endIdx) => {
522
751
  childNode = createElm(null, parentVNode, startIdx);
523
752
  if (childNode) {
524
753
  vnodes[startIdx].$elm$ = childNode;
525
- insertBefore(containerElm, childNode, before);
754
+ insertBefore(containerElm, childNode, referenceNode(before) );
526
755
  }
527
756
  }
528
757
  }
@@ -532,7 +761,16 @@ var removeVnodes = (vnodes, startIdx, endIdx) => {
532
761
  const vnode = vnodes[index];
533
762
  if (vnode) {
534
763
  const elm = vnode.$elm$;
764
+ nullifyVNodeRefs(vnode);
535
765
  if (elm) {
766
+ {
767
+ checkSlotFallbackVisibility = true;
768
+ if (elm["s-ol"]) {
769
+ elm["s-ol"].remove();
770
+ } else {
771
+ putBackInOriginalLocation(elm, true);
772
+ }
773
+ }
536
774
  elm.remove();
537
775
  }
538
776
  }
@@ -569,11 +807,17 @@ var updateChildren = (parentElm, oldCh, newVNode2, newCh, isInitialRender = fals
569
807
  oldEndVnode = oldCh[--oldEndIdx];
570
808
  newEndVnode = newCh[--newEndIdx];
571
809
  } else if (isSameVnode(oldStartVnode, newEndVnode, isInitialRender)) {
810
+ if ((oldStartVnode.$tag$ === "slot" || newEndVnode.$tag$ === "slot")) {
811
+ putBackInOriginalLocation(oldStartVnode.$elm$.parentNode, false);
812
+ }
572
813
  patch(oldStartVnode, newEndVnode, isInitialRender);
573
814
  insertBefore(parentElm, oldStartVnode.$elm$, oldEndVnode.$elm$.nextSibling);
574
815
  oldStartVnode = oldCh[++oldStartIdx];
575
816
  newEndVnode = newCh[--newEndIdx];
576
817
  } else if (isSameVnode(oldEndVnode, newStartVnode, isInitialRender)) {
818
+ if ((oldStartVnode.$tag$ === "slot" || newEndVnode.$tag$ === "slot")) {
819
+ putBackInOriginalLocation(oldEndVnode.$elm$.parentNode, false);
820
+ }
577
821
  patch(oldEndVnode, newStartVnode, isInitialRender);
578
822
  insertBefore(parentElm, oldEndVnode.$elm$, oldStartVnode.$elm$);
579
823
  oldEndVnode = oldCh[--oldEndIdx];
@@ -604,7 +848,11 @@ var updateChildren = (parentElm, oldCh, newVNode2, newCh, isInitialRender = fals
604
848
  }
605
849
  if (node) {
606
850
  {
607
- insertBefore(oldStartVnode.$elm$.parentNode, node, oldStartVnode.$elm$);
851
+ insertBefore(
852
+ referenceNode(oldStartVnode.$elm$).parentNode,
853
+ node,
854
+ referenceNode(oldStartVnode.$elm$)
855
+ );
608
856
  }
609
857
  }
610
858
  }
@@ -624,26 +872,39 @@ var updateChildren = (parentElm, oldCh, newVNode2, newCh, isInitialRender = fals
624
872
  };
625
873
  var isSameVnode = (leftVNode, rightVNode, isInitialRender = false) => {
626
874
  if (leftVNode.$tag$ === rightVNode.$tag$) {
875
+ if (leftVNode.$tag$ === "slot") {
876
+ return leftVNode.$name$ === rightVNode.$name$;
877
+ }
627
878
  if (!isInitialRender) {
628
879
  return leftVNode.$key$ === rightVNode.$key$;
629
880
  }
881
+ if (isInitialRender && !leftVNode.$key$ && rightVNode.$key$) {
882
+ leftVNode.$key$ = rightVNode.$key$;
883
+ }
630
884
  return true;
631
885
  }
632
886
  return false;
633
887
  };
888
+ var referenceNode = (node) => node && node["s-ol"] || node;
634
889
  var patch = (oldVNode, newVNode2, isInitialRender = false) => {
635
890
  const elm = newVNode2.$elm$ = oldVNode.$elm$;
636
891
  const oldChildren = oldVNode.$children$;
637
892
  const newChildren = newVNode2.$children$;
638
- {
893
+ const tag = newVNode2.$tag$;
894
+ const text = newVNode2.$text$;
895
+ let defaultHolder;
896
+ if (text === null) {
639
897
  {
640
- {
898
+ if (tag === "slot" && !useNativeShadowDom) ; else {
641
899
  updateElement(oldVNode, newVNode2, isSvgMode);
642
900
  }
643
901
  }
644
902
  if (oldChildren !== null && newChildren !== null) {
645
903
  updateChildren(elm, oldChildren, newVNode2, newChildren, isInitialRender);
646
904
  } else if (newChildren !== null) {
905
+ if (oldVNode.$text$ !== null) {
906
+ elm.textContent = "";
907
+ }
647
908
  addVnodes(elm, null, newVNode2, newChildren, 0, newChildren.length - 1);
648
909
  } else if (
649
910
  // don't do this on initial render as it can cause non-hydrated content to be removed
@@ -651,13 +912,99 @@ var patch = (oldVNode, newVNode2, isInitialRender = false) => {
651
912
  ) {
652
913
  removeVnodes(oldChildren, 0, oldChildren.length - 1);
653
914
  }
915
+ } else if ((defaultHolder = elm["s-cr"])) {
916
+ defaultHolder.parentNode.textContent = text;
917
+ } else if (oldVNode.$text$ !== text) {
918
+ elm.data = text;
919
+ }
920
+ };
921
+ var relocateNodes = [];
922
+ var markSlotContentForRelocation = (elm) => {
923
+ let node;
924
+ let hostContentNodes;
925
+ let j;
926
+ const children = elm.__childNodes || elm.childNodes;
927
+ for (const childNode of children) {
928
+ if (childNode["s-sr"] && (node = childNode["s-cr"]) && node.parentNode) {
929
+ hostContentNodes = node.parentNode.__childNodes || node.parentNode.childNodes;
930
+ const slotName = childNode["s-sn"];
931
+ for (j = hostContentNodes.length - 1; j >= 0; j--) {
932
+ node = hostContentNodes[j];
933
+ if (!node["s-cn"] && !node["s-nr"] && node["s-hn"] !== childNode["s-hn"] && (!BUILD.experimentalSlotFixes )) {
934
+ if (isNodeLocatedInSlot(node, slotName)) {
935
+ let relocateNodeData = relocateNodes.find((r) => r.$nodeToRelocate$ === node);
936
+ checkSlotFallbackVisibility = true;
937
+ node["s-sn"] = node["s-sn"] || slotName;
938
+ if (relocateNodeData) {
939
+ relocateNodeData.$nodeToRelocate$["s-sh"] = childNode["s-hn"];
940
+ relocateNodeData.$slotRefNode$ = childNode;
941
+ } else {
942
+ node["s-sh"] = childNode["s-hn"];
943
+ relocateNodes.push({
944
+ $slotRefNode$: childNode,
945
+ $nodeToRelocate$: node
946
+ });
947
+ }
948
+ if (node["s-sr"]) {
949
+ relocateNodes.map((relocateNode) => {
950
+ if (isNodeLocatedInSlot(relocateNode.$nodeToRelocate$, node["s-sn"])) {
951
+ relocateNodeData = relocateNodes.find((r) => r.$nodeToRelocate$ === node);
952
+ if (relocateNodeData && !relocateNode.$slotRefNode$) {
953
+ relocateNode.$slotRefNode$ = relocateNodeData.$slotRefNode$;
954
+ }
955
+ }
956
+ });
957
+ }
958
+ } else if (!relocateNodes.some((r) => r.$nodeToRelocate$ === node)) {
959
+ relocateNodes.push({
960
+ $nodeToRelocate$: node
961
+ });
962
+ }
963
+ }
964
+ }
965
+ }
966
+ if (childNode.nodeType === 1 /* ElementNode */) {
967
+ markSlotContentForRelocation(childNode);
968
+ }
969
+ }
970
+ };
971
+ var nullifyVNodeRefs = (vNode) => {
972
+ {
973
+ vNode.$attrs$ && vNode.$attrs$.ref && vNode.$attrs$.ref(null);
974
+ vNode.$children$ && vNode.$children$.map(nullifyVNodeRefs);
654
975
  }
655
976
  };
656
977
  var insertBefore = (parent, newNode, reference) => {
657
- const inserted = parent == null ? void 0 : parent.insertBefore(newNode, reference);
658
- return inserted;
978
+ if (typeof newNode["s-sn"] === "string" && !!newNode["s-sr"] && !!newNode["s-cr"]) {
979
+ addRemoveSlotScopedClass(newNode["s-cr"], newNode, parent, newNode.parentElement);
980
+ }
981
+ {
982
+ return parent == null ? void 0 : parent.insertBefore(newNode, reference);
983
+ }
659
984
  };
985
+ function addRemoveSlotScopedClass(reference, slotNode, newParent, oldParent) {
986
+ var _a;
987
+ let scopeId2;
988
+ if (reference && typeof slotNode["s-sn"] === "string" && !!slotNode["s-sr"] && reference.parentNode && reference.parentNode["s-sc"] && (scopeId2 = slotNode["s-si"] || reference.parentNode["s-sc"])) {
989
+ const scopeName = slotNode["s-sn"];
990
+ const hostName = slotNode["s-hn"];
991
+ (_a = newParent.classList) == null ? void 0 : _a.add(scopeId2 + "-s");
992
+ if (oldParent && oldParent.classList.contains(scopeId2 + "-s")) {
993
+ let child = (oldParent.__childNodes || oldParent.childNodes)[0];
994
+ let found = false;
995
+ while (child) {
996
+ if (child["s-sn"] !== scopeName && child["s-hn"] === hostName && !!child["s-sr"]) {
997
+ found = true;
998
+ break;
999
+ }
1000
+ child = child.nextSibling;
1001
+ }
1002
+ if (!found) oldParent.classList.remove(scopeId2 + "-s");
1003
+ }
1004
+ }
1005
+ }
660
1006
  var renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
1007
+ var _a, _b, _c, _d;
661
1008
  const hostElm = hostRef.$hostElement$;
662
1009
  const cmpMeta = hostRef.$cmpMeta$;
663
1010
  const oldVNode = hostRef.$vnode$ || newVNode(null, null);
@@ -678,13 +1025,90 @@ var renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
678
1025
  scopeId = hostElm["s-sc"];
679
1026
  }
680
1027
  useNativeShadowDom = (cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */) !== 0;
1028
+ {
1029
+ contentRef = hostElm["s-cr"];
1030
+ checkSlotFallbackVisibility = false;
1031
+ }
681
1032
  patch(oldVNode, rootVnode, isInitialLoad);
1033
+ {
1034
+ plt.$flags$ |= 1 /* isTmpDisconnected */;
1035
+ if (checkSlotRelocate) {
1036
+ markSlotContentForRelocation(rootVnode.$elm$);
1037
+ for (const relocateData of relocateNodes) {
1038
+ const nodeToRelocate = relocateData.$nodeToRelocate$;
1039
+ if (!nodeToRelocate["s-ol"]) {
1040
+ const orgLocationNode = doc.createTextNode("");
1041
+ orgLocationNode["s-nr"] = nodeToRelocate;
1042
+ insertBefore(nodeToRelocate.parentNode, nodeToRelocate["s-ol"] = orgLocationNode, nodeToRelocate);
1043
+ }
1044
+ }
1045
+ for (const relocateData of relocateNodes) {
1046
+ const nodeToRelocate = relocateData.$nodeToRelocate$;
1047
+ const slotRefNode = relocateData.$slotRefNode$;
1048
+ if (slotRefNode) {
1049
+ const parentNodeRef = slotRefNode.parentNode;
1050
+ let insertBeforeNode = slotRefNode.nextSibling;
1051
+ {
1052
+ let orgLocationNode = (_a = nodeToRelocate["s-ol"]) == null ? void 0 : _a.previousSibling;
1053
+ while (orgLocationNode) {
1054
+ let refNode = (_b = orgLocationNode["s-nr"]) != null ? _b : null;
1055
+ if (refNode && refNode["s-sn"] === nodeToRelocate["s-sn"] && parentNodeRef === (refNode.__parentNode || refNode.parentNode)) {
1056
+ refNode = refNode.nextSibling;
1057
+ while (refNode === nodeToRelocate || (refNode == null ? void 0 : refNode["s-sr"])) {
1058
+ refNode = refNode == null ? void 0 : refNode.nextSibling;
1059
+ }
1060
+ if (!refNode || !refNode["s-nr"]) {
1061
+ insertBeforeNode = refNode;
1062
+ break;
1063
+ }
1064
+ }
1065
+ orgLocationNode = orgLocationNode.previousSibling;
1066
+ }
1067
+ }
1068
+ const parent = nodeToRelocate.__parentNode || nodeToRelocate.parentNode;
1069
+ const nextSibling = nodeToRelocate.__nextSibling || nodeToRelocate.nextSibling;
1070
+ if (!insertBeforeNode && parentNodeRef !== parent || nextSibling !== insertBeforeNode) {
1071
+ if (nodeToRelocate !== insertBeforeNode) {
1072
+ if (!nodeToRelocate["s-hn"] && nodeToRelocate["s-ol"]) {
1073
+ nodeToRelocate["s-hn"] = nodeToRelocate["s-ol"].parentNode.nodeName;
1074
+ }
1075
+ insertBefore(parentNodeRef, nodeToRelocate, insertBeforeNode);
1076
+ if (nodeToRelocate.nodeType === 1 /* ElementNode */ && nodeToRelocate.tagName !== "SLOT-FB") {
1077
+ nodeToRelocate.hidden = (_c = nodeToRelocate["s-ih"]) != null ? _c : false;
1078
+ }
1079
+ }
1080
+ }
1081
+ nodeToRelocate && typeof slotRefNode["s-rf"] === "function" && slotRefNode["s-rf"](nodeToRelocate);
1082
+ } else {
1083
+ if (nodeToRelocate.nodeType === 1 /* ElementNode */) {
1084
+ if (isInitialLoad) {
1085
+ nodeToRelocate["s-ih"] = (_d = nodeToRelocate.hidden) != null ? _d : false;
1086
+ }
1087
+ nodeToRelocate.hidden = true;
1088
+ }
1089
+ }
1090
+ }
1091
+ }
1092
+ if (checkSlotFallbackVisibility) {
1093
+ updateFallbackSlotVisibility(rootVnode.$elm$);
1094
+ }
1095
+ plt.$flags$ &= ~1 /* isTmpDisconnected */;
1096
+ relocateNodes.length = 0;
1097
+ }
1098
+ contentRef = void 0;
682
1099
  };
683
1100
 
684
1101
  // src/runtime/update-component.ts
685
1102
  var attachToAncestor = (hostRef, ancestorComponent) => {
686
1103
  if (ancestorComponent && !hostRef.$onRenderResolve$ && ancestorComponent["s-p"]) {
687
- ancestorComponent["s-p"].push(new Promise((r) => hostRef.$onRenderResolve$ = r));
1104
+ const index = ancestorComponent["s-p"].push(
1105
+ new Promise(
1106
+ (r) => hostRef.$onRenderResolve$ = () => {
1107
+ ancestorComponent["s-p"].splice(index - 1, 1);
1108
+ r();
1109
+ }
1110
+ )
1111
+ );
688
1112
  }
689
1113
  };
690
1114
  var scheduleUpdate = (hostRef, isInitialLoad) => {
@@ -709,6 +1133,11 @@ var dispatchHooks = (hostRef, isInitialLoad) => {
709
1133
  );
710
1134
  }
711
1135
  let maybePromise;
1136
+ if (isInitialLoad) {
1137
+ {
1138
+ maybePromise = safeCall(instance, "componentWillLoad", void 0, elm);
1139
+ }
1140
+ }
712
1141
  endSchedule();
713
1142
  return enqueue(maybePromise, () => updateComponent(hostRef, instance, isInitialLoad));
714
1143
  };
@@ -788,6 +1217,9 @@ var postUpdateComponent = (hostRef) => {
788
1217
  } else {
789
1218
  endPostUpdate();
790
1219
  }
1220
+ {
1221
+ hostRef.$onInstanceResolve$(elm);
1222
+ }
791
1223
  {
792
1224
  if (hostRef.$onRenderResolve$) {
793
1225
  hostRef.$onRenderResolve$();
@@ -805,6 +1237,16 @@ var appDidLoad = (who) => {
805
1237
  }
806
1238
  nextTick(() => emitEvent(win, "appload", { detail: { namespace: NAMESPACE } }));
807
1239
  };
1240
+ var safeCall = (instance, method, arg, elm) => {
1241
+ if (instance && instance[method]) {
1242
+ try {
1243
+ return instance[method](arg);
1244
+ } catch (e) {
1245
+ consoleError(e, elm);
1246
+ }
1247
+ }
1248
+ return void 0;
1249
+ };
808
1250
  var addHydratedFlag = (elm) => {
809
1251
  var _a;
810
1252
  return elm.classList.add((_a = BUILD.hydratedSelectorName) != null ? _a : "hydrated") ;
@@ -819,6 +1261,7 @@ var setValue = (ref, propName, newVal, cmpMeta) => {
819
1261
  `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).`
820
1262
  );
821
1263
  }
1264
+ const elm = hostRef.$hostElement$ ;
822
1265
  const oldVal = hostRef.$instanceValues$.get(propName);
823
1266
  const flags = hostRef.$flags$;
824
1267
  const instance = hostRef.$lazyInstance$ ;
@@ -828,6 +1271,18 @@ var setValue = (ref, propName, newVal, cmpMeta) => {
828
1271
  if ((!(flags & 8 /* isConstructingInstance */) || oldVal === void 0) && didValueChange) {
829
1272
  hostRef.$instanceValues$.set(propName, newVal);
830
1273
  if (instance) {
1274
+ if (cmpMeta.$watchers$ && flags & 128 /* isWatchReady */) {
1275
+ const watchMethods = cmpMeta.$watchers$[propName];
1276
+ if (watchMethods) {
1277
+ watchMethods.map((watchMethodName) => {
1278
+ try {
1279
+ instance[watchMethodName](newVal, oldVal, propName);
1280
+ } catch (e) {
1281
+ consoleError(e, elm);
1282
+ }
1283
+ });
1284
+ }
1285
+ }
831
1286
  if ((flags & (2 /* hasRendered */ | 16 /* isQueuedForUpdate */)) === 2 /* hasRendered */) {
832
1287
  scheduleUpdate(hostRef, false);
833
1288
  }
@@ -839,19 +1294,86 @@ var setValue = (ref, propName, newVal, cmpMeta) => {
839
1294
  var proxyComponent = (Cstr, cmpMeta, flags) => {
840
1295
  var _a, _b;
841
1296
  const prototype = Cstr.prototype;
842
- if (cmpMeta.$members$ || BUILD.watchCallback ) {
1297
+ if (cmpMeta.$members$ || (cmpMeta.$watchers$ || Cstr.watchers)) {
1298
+ if (Cstr.watchers && !cmpMeta.$watchers$) {
1299
+ cmpMeta.$watchers$ = Cstr.watchers;
1300
+ }
843
1301
  const members = Object.entries((_a = cmpMeta.$members$) != null ? _a : {});
844
1302
  members.map(([memberName, [memberFlags]]) => {
845
1303
  if ((memberFlags & 31 /* Prop */ || (flags & 2 /* proxyState */) && memberFlags & 32 /* State */)) {
1304
+ const { get: origGetter, set: origSetter } = Object.getOwnPropertyDescriptor(prototype, memberName) || {};
1305
+ if (origGetter) cmpMeta.$members$[memberName][0] |= 2048 /* Getter */;
1306
+ if (origSetter) cmpMeta.$members$[memberName][0] |= 4096 /* Setter */;
1307
+ if (flags & 1 /* isElementConstructor */ || !origGetter) {
1308
+ Object.defineProperty(prototype, memberName, {
1309
+ get() {
1310
+ {
1311
+ if ((cmpMeta.$members$[memberName][0] & 2048 /* Getter */) === 0) {
1312
+ return getValue(this, memberName);
1313
+ }
1314
+ const ref = getHostRef(this);
1315
+ const instance = ref ? ref.$lazyInstance$ : prototype;
1316
+ if (!instance) return;
1317
+ return instance[memberName];
1318
+ }
1319
+ },
1320
+ configurable: true,
1321
+ enumerable: true
1322
+ });
1323
+ }
846
1324
  Object.defineProperty(prototype, memberName, {
847
- get() {
848
- return getValue(this, memberName);
849
- },
850
1325
  set(newValue) {
851
- setValue(this, memberName, newValue, cmpMeta);
852
- },
853
- configurable: true,
854
- enumerable: true
1326
+ const ref = getHostRef(this);
1327
+ if (origSetter) {
1328
+ const currentValue = memberFlags & 32 /* State */ ? this[memberName] : ref.$hostElement$[memberName];
1329
+ if (typeof currentValue === "undefined" && ref.$instanceValues$.get(memberName)) {
1330
+ newValue = ref.$instanceValues$.get(memberName);
1331
+ } else if (!ref.$instanceValues$.get(memberName) && currentValue) {
1332
+ ref.$instanceValues$.set(memberName, currentValue);
1333
+ }
1334
+ origSetter.apply(this, [parsePropertyValue(newValue, memberFlags)]);
1335
+ newValue = memberFlags & 32 /* State */ ? this[memberName] : ref.$hostElement$[memberName];
1336
+ setValue(this, memberName, newValue, cmpMeta);
1337
+ return;
1338
+ }
1339
+ {
1340
+ if ((flags & 1 /* isElementConstructor */) === 0 || (cmpMeta.$members$[memberName][0] & 4096 /* Setter */) === 0) {
1341
+ setValue(this, memberName, newValue, cmpMeta);
1342
+ if (flags & 1 /* isElementConstructor */ && !ref.$lazyInstance$) {
1343
+ ref.$onReadyPromise$.then(() => {
1344
+ if (cmpMeta.$members$[memberName][0] & 4096 /* Setter */ && ref.$lazyInstance$[memberName] !== ref.$instanceValues$.get(memberName)) {
1345
+ ref.$lazyInstance$[memberName] = newValue;
1346
+ }
1347
+ });
1348
+ }
1349
+ return;
1350
+ }
1351
+ const setterSetVal = () => {
1352
+ const currentValue = ref.$lazyInstance$[memberName];
1353
+ if (!ref.$instanceValues$.get(memberName) && currentValue) {
1354
+ ref.$instanceValues$.set(memberName, currentValue);
1355
+ }
1356
+ ref.$lazyInstance$[memberName] = parsePropertyValue(newValue, memberFlags);
1357
+ setValue(this, memberName, ref.$lazyInstance$[memberName], cmpMeta);
1358
+ };
1359
+ if (ref.$lazyInstance$) {
1360
+ setterSetVal();
1361
+ } else {
1362
+ ref.$onReadyPromise$.then(() => setterSetVal());
1363
+ }
1364
+ }
1365
+ }
1366
+ });
1367
+ } else if (flags & 1 /* isElementConstructor */ && memberFlags & 64 /* Method */) {
1368
+ Object.defineProperty(prototype, memberName, {
1369
+ value(...args) {
1370
+ var _a2;
1371
+ const ref = getHostRef(this);
1372
+ return (_a2 = ref == null ? void 0 : ref.$onInstancePromise$) == null ? void 0 : _a2.then(() => {
1373
+ var _a3;
1374
+ return (_a3 = ref.$lazyInstance$) == null ? void 0 : _a3[memberName](...args);
1375
+ });
1376
+ }
855
1377
  });
856
1378
  }
857
1379
  });
@@ -861,7 +1383,7 @@ var proxyComponent = (Cstr, cmpMeta, flags) => {
861
1383
  plt.jmp(() => {
862
1384
  var _a2;
863
1385
  const propName = attrNameToPropName.get(attrName);
864
- if (this.hasOwnProperty(propName)) {
1386
+ if (this.hasOwnProperty(propName) && BUILD.lazyLoad) {
865
1387
  newValue = this[propName];
866
1388
  delete this[propName];
867
1389
  } else if (prototype.hasOwnProperty(propName) && typeof this[propName] === "number" && // cast type to number to avoid TS compiler issues
@@ -881,7 +1403,11 @@ var proxyComponent = (Cstr, cmpMeta, flags) => {
881
1403
  }
882
1404
  return;
883
1405
  }
884
- this[propName] = newValue === null && typeof this[propName] === "boolean" ? false : newValue;
1406
+ const propDesc = Object.getOwnPropertyDescriptor(prototype, propName);
1407
+ newValue = newValue === null && typeof this[propName] === "boolean" ? false : newValue;
1408
+ if (newValue !== this[propName] && (!propDesc.get || !!propDesc.set)) {
1409
+ this[propName] = newValue;
1410
+ }
885
1411
  });
886
1412
  };
887
1413
  Cstr.observedAttributes = Array.from(
@@ -904,9 +1430,8 @@ var initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId) => {
904
1430
  let Cstr;
905
1431
  if ((hostRef.$flags$ & 32 /* hasInitializedComponent */) === 0) {
906
1432
  hostRef.$flags$ |= 32 /* hasInitializedComponent */;
907
- const bundleId = cmpMeta.$lazyBundleId$;
908
- if (bundleId) {
909
- const CstrImport = loadModule(cmpMeta);
1433
+ {
1434
+ const CstrImport = loadModule(cmpMeta, hostRef);
910
1435
  if (CstrImport && "then" in CstrImport) {
911
1436
  const endLoad = uniqueTime();
912
1437
  Cstr = await CstrImport;
@@ -918,6 +1443,9 @@ var initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId) => {
918
1443
  throw new Error(`Constructor for "${cmpMeta.$tagName$}#${hostRef.$modeName$}" was not found`);
919
1444
  }
920
1445
  if (!Cstr.isProxied) {
1446
+ {
1447
+ cmpMeta.$watchers$ = Cstr.watchers;
1448
+ }
921
1449
  proxyComponent(Cstr, cmpMeta, 2 /* proxyState */);
922
1450
  Cstr.isProxied = true;
923
1451
  }
@@ -928,16 +1456,15 @@ var initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId) => {
928
1456
  try {
929
1457
  new Cstr(hostRef);
930
1458
  } catch (e) {
931
- consoleError(e);
1459
+ consoleError(e, elm);
932
1460
  }
933
1461
  {
934
1462
  hostRef.$flags$ &= ~8 /* isConstructingInstance */;
935
1463
  }
1464
+ {
1465
+ hostRef.$flags$ |= 128 /* isWatchReady */;
1466
+ }
936
1467
  endNewInstance();
937
- } else {
938
- Cstr = elm.constructor;
939
- const cmpTag = elm.localName;
940
- customElements.whenDefined(cmpTag).then(() => hostRef.$flags$ |= 128 /* isWatchReady */);
941
1468
  }
942
1469
  if (Cstr && Cstr.style) {
943
1470
  let style;
@@ -960,7 +1487,7 @@ var initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId) => {
960
1487
  schedule();
961
1488
  }
962
1489
  };
963
- var fireConnectedCallback = (instance) => {
1490
+ var fireConnectedCallback = (instance, elm) => {
964
1491
  };
965
1492
 
966
1493
  // src/runtime/connected-callback.ts
@@ -971,6 +1498,12 @@ var connectedCallback = (elm) => {
971
1498
  const endConnected = createTime("connectedCallback", cmpMeta.$tagName$);
972
1499
  if (!(hostRef.$flags$ & 1 /* hasConnected */)) {
973
1500
  hostRef.$flags$ |= 1 /* hasConnected */;
1501
+ {
1502
+ if (// TODO(STENCIL-854): Remove code related to legacy shadowDomShim field
1503
+ cmpMeta.$flags$ & (4 /* hasSlotRelocation */ | 8 /* needsShadowDomShim */)) {
1504
+ setContentReference(elm);
1505
+ }
1506
+ }
974
1507
  {
975
1508
  let ancestorComponent = elm;
976
1509
  while (ancestorComponent = ancestorComponent.parentNode || ancestorComponent.host) {
@@ -1000,7 +1533,14 @@ var connectedCallback = (elm) => {
1000
1533
  endConnected();
1001
1534
  }
1002
1535
  };
1003
- var disconnectInstance = (instance) => {
1536
+ var setContentReference = (elm) => {
1537
+ const contentRefElm = elm["s-cr"] = doc.createComment(
1538
+ ""
1539
+ );
1540
+ contentRefElm["s-cn"] = true;
1541
+ insertBefore(elm, contentRefElm, elm.firstChild);
1542
+ };
1543
+ var disconnectInstance = (instance, elm) => {
1004
1544
  };
1005
1545
  var disconnectedCallback = async (elm) => {
1006
1546
  if ((plt.$flags$ & 1 /* isTmpDisconnected */) === 0) {
@@ -1009,6 +1549,12 @@ var disconnectedCallback = async (elm) => {
1009
1549
  hostRef.$onReadyPromise$.then(() => disconnectInstance());
1010
1550
  }
1011
1551
  }
1552
+ if (rootAppliedStyles.has(elm)) {
1553
+ rootAppliedStyles.delete(elm);
1554
+ }
1555
+ if (elm.shadowRoot && rootAppliedStyles.has(elm.shadowRoot)) {
1556
+ rootAppliedStyles.delete(elm.shadowRoot);
1557
+ }
1012
1558
  };
1013
1559
 
1014
1560
  // src/runtime/bootstrap-lazy.ts
@@ -1029,6 +1575,7 @@ var bootstrapLazy = (lazyBundles, options = {}) => {
1029
1575
  let hasSlotRelocation = false;
1030
1576
  lazyBundles.map((lazyBundle) => {
1031
1577
  lazyBundle[1].map((compactMeta) => {
1578
+ var _a2;
1032
1579
  const cmpMeta = {
1033
1580
  $flags$: compactMeta[0],
1034
1581
  $tagName$: compactMeta[1],
@@ -1041,6 +1588,9 @@ var bootstrapLazy = (lazyBundles, options = {}) => {
1041
1588
  {
1042
1589
  cmpMeta.$members$ = compactMeta[2];
1043
1590
  }
1591
+ {
1592
+ cmpMeta.$watchers$ = (_a2 = compactMeta[4]) != null ? _a2 : {};
1593
+ }
1044
1594
  const tagName = cmpMeta.$tagName$;
1045
1595
  const HostElement = class extends HTMLElement {
1046
1596
  // StencilLazyHost
@@ -1082,6 +1632,13 @@ var bootstrapLazy = (lazyBundles, options = {}) => {
1082
1632
  }
1083
1633
  disconnectedCallback() {
1084
1634
  plt.jmp(() => disconnectedCallback(this));
1635
+ plt.raf(() => {
1636
+ var _a3;
1637
+ const hostRef = getHostRef(this);
1638
+ if (((_a3 = hostRef == null ? void 0 : hostRef.$vnode$) == null ? void 0 : _a3.$elm$) instanceof Node && !hostRef.$vnode$.$elm$.isConnected) {
1639
+ delete hostRef.$vnode$.$elm$;
1640
+ }
1641
+ });
1085
1642
  }
1086
1643
  componentOnReady() {
1087
1644
  return getHostRef(this).$onReadyPromise$;
@@ -1130,6 +1687,4 @@ var Fragment = (_, children) => children;
1130
1687
  // src/runtime/nonce.ts
1131
1688
  var setNonce = (nonce) => plt.$nonce$ = nonce;
1132
1689
 
1133
- export { Fragment as F, bootstrapLazy as b, h, promiseResolve as p, registerInstance as r, setNonce as s };
1134
-
1135
- //# sourceMappingURL=index-1586ada2.js.map
1690
+ export { Fragment as F, bootstrapLazy as b, getElement as g, h, promiseResolve as p, registerInstance as r, setNonce as s };