@uh-design-system/component-library 0.1.0 → 0.2.0-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 (185) hide show
  1. package/README.md +1 -0
  2. package/dist/cjs/app-globals-3a1e7e63.js +0 -2
  3. package/dist/cjs/ds-accordion_2.cjs.entry.js +930 -0
  4. package/dist/cjs/ds-button_2.cjs.entry.js +196 -0
  5. package/dist/cjs/ds-text-input.cjs.entry.js +137 -0
  6. package/dist/cjs/index-5a88e57b.js +82 -0
  7. package/dist/cjs/{index-eaf5876c.js → index-f7420801.js} +652 -149
  8. package/dist/cjs/index.cjs.js +0 -9
  9. package/dist/cjs/loader.cjs.js +2 -4
  10. package/dist/cjs/uh-component-library.cjs.js +3 -5
  11. package/dist/collection/collection-manifest.json +6 -2
  12. package/dist/collection/components/00-foundations/borders/borders.stories.js +7 -8
  13. package/dist/collection/components/00-foundations/breakpoints/breakpoints.stories.js +20 -0
  14. package/dist/collection/components/00-foundations/colours/colours.stories.js +9 -17
  15. package/dist/collection/components/00-foundations/icons/categories/actions.js +110 -0
  16. package/dist/collection/components/00-foundations/icons/categories/arrows.js +64 -0
  17. package/dist/collection/components/00-foundations/icons/categories/custom.js +10 -0
  18. package/dist/collection/components/00-foundations/icons/categories/information.js +94 -0
  19. package/dist/collection/components/00-foundations/icons/categories/media.js +76 -0
  20. package/dist/collection/components/00-foundations/icons/categories/navigation.js +50 -0
  21. package/dist/collection/components/00-foundations/icons/categories/notifications.js +64 -0
  22. package/dist/collection/components/00-foundations/icons/categories/text.js +18 -0
  23. package/dist/collection/components/00-foundations/icons/categories/users.js +52 -0
  24. package/dist/collection/components/00-foundations/icons/iconList.js +18 -293
  25. package/dist/collection/components/00-foundations/icons/icons.stories.js +0 -1
  26. package/dist/collection/components/00-foundations/spacing/spacing.stories.js +2 -3
  27. package/dist/collection/components/00-foundations/typography/typography.stories.js +52 -3
  28. package/dist/collection/components/01-base-components/ds-accordion/ds-accordion.css +130 -0
  29. package/dist/collection/components/01-base-components/ds-accordion/ds-accordion.js +217 -0
  30. package/dist/collection/components/01-base-components/ds-accordion/stories/ds-accordion.examples.stories.js +43 -0
  31. package/dist/collection/components/01-base-components/ds-accordion/stories/ds-accordion.features.stories.js +79 -0
  32. package/dist/collection/components/01-base-components/ds-accordion/stories/ds-accordion.stories.js +96 -0
  33. package/dist/collection/components/01-base-components/ds-button/ds-button.css +238 -0
  34. package/dist/collection/components/01-base-components/ds-button/ds-button.js +294 -0
  35. package/dist/collection/components/01-base-components/ds-button/stories/ds-button.examples.stories.js +28 -0
  36. package/dist/collection/components/01-base-components/ds-button/stories/ds-button.features.stories.js +77 -0
  37. package/dist/collection/components/01-base-components/ds-button/stories/ds-button.stories.js +79 -0
  38. package/dist/collection/components/01-base-components/ds-icon/ds-icon.css +1 -1
  39. package/dist/collection/components/01-base-components/ds-icon/ds-icon.js +18 -6
  40. package/dist/collection/components/01-base-components/ds-icon/ds-icon.stories.js +1 -2
  41. package/dist/collection/components/01-base-components/ds-text-input/ds-text-input.css +186 -0
  42. package/dist/collection/components/01-base-components/ds-text-input/ds-text-input.examples.stories.js +24 -0
  43. package/dist/collection/components/01-base-components/ds-text-input/ds-text-input.features.stories.js +126 -0
  44. package/dist/collection/components/01-base-components/ds-text-input/ds-text-input.js +665 -0
  45. package/dist/collection/components/01-base-components/ds-text-input/ds-text-input.stories.js +73 -0
  46. package/dist/collection/components/01-base-components/ds-text-input/utils.js +16 -0
  47. package/dist/collection/components/01-base-components/ds-visually-hidden/ds-visually-hidden.css +9 -0
  48. package/dist/collection/components/01-base-components/ds-visually-hidden/ds-visually-hidden.js +18 -0
  49. package/dist/collection/components/01-base-components/ds-visually-hidden/ds-visually-hidden.stories.js +9 -0
  50. package/dist/collection/index.js +1 -11
  51. package/dist/collection/utils/attributes.js +107 -0
  52. package/dist/collection/utils/borders/borderUtils.js +24 -4
  53. package/dist/collection/utils/breakpoints/breakpointsUtils.js +58 -0
  54. package/dist/collection/utils/colours/colourTypes.js +19 -0
  55. package/dist/collection/utils/colours/colourUtils.js +67 -47
  56. package/dist/collection/utils/spacing/spacingUtils.js +21 -9
  57. package/dist/collection/utils/tests/testUtils.js +21 -6
  58. package/dist/collection/utils/typography/typographyUtils.js +0 -1
  59. package/dist/collection/utils/utils.js +48 -3
  60. package/dist/components/ds-accordion.d.ts +11 -0
  61. package/dist/components/ds-accordion.js +96 -0
  62. package/dist/components/ds-button.d.ts +11 -0
  63. package/dist/components/ds-button.js +6 -0
  64. package/dist/components/ds-button2.js +209 -0
  65. package/dist/components/ds-icon.js +1 -540
  66. package/dist/components/ds-icon2.js +890 -0
  67. package/dist/components/ds-text-input.d.ts +11 -0
  68. package/dist/components/ds-text-input.js +200 -0
  69. package/dist/components/ds-visually-hidden.d.ts +11 -0
  70. package/dist/components/ds-visually-hidden.js +6 -0
  71. package/dist/components/ds-visually-hidden2.js +31 -0
  72. package/dist/components/index.js +1 -9
  73. package/dist/components/{p-dcfb6eb2.js → index2.js} +616 -146
  74. package/dist/components/index3.js +80 -0
  75. package/dist/esm/app-globals-0f993ce5.js +0 -2
  76. package/dist/esm/ds-accordion_2.entry.js +925 -0
  77. package/dist/esm/ds-button_2.entry.js +191 -0
  78. package/dist/esm/ds-text-input.entry.js +133 -0
  79. package/dist/esm/index-097075ad.js +80 -0
  80. package/dist/esm/{index-1586ada2.js → index-1d0a6586.js} +652 -150
  81. package/dist/esm/index.js +0 -6
  82. package/dist/esm/loader.js +3 -5
  83. package/dist/esm/uh-component-library.js +4 -6
  84. package/dist/loader/cdn.js +1 -0
  85. package/dist/loader/index.cjs.js +1 -0
  86. package/{loader → dist/loader}/index.d.ts +1 -1
  87. package/dist/loader/index.es2017.js +1 -0
  88. package/{loader → dist/loader}/index.js +1 -1
  89. package/dist/types/components/00-foundations/breakpoints/breakpoints.stories.d.ts +6 -0
  90. package/dist/types/components/00-foundations/colours/colours.stories.d.ts +3 -2
  91. package/dist/types/components/00-foundations/icons/categories/actions.d.ts +5 -0
  92. package/dist/types/components/00-foundations/icons/categories/arrows.d.ts +5 -0
  93. package/dist/types/components/00-foundations/icons/categories/custom.d.ts +5 -0
  94. package/dist/types/components/00-foundations/icons/categories/information.d.ts +5 -0
  95. package/dist/types/components/00-foundations/icons/categories/media.d.ts +5 -0
  96. package/dist/types/components/00-foundations/icons/categories/navigation.d.ts +5 -0
  97. package/dist/types/components/00-foundations/icons/categories/notifications.d.ts +5 -0
  98. package/dist/types/components/00-foundations/icons/categories/text.d.ts +5 -0
  99. package/dist/types/components/00-foundations/icons/categories/users.d.ts +5 -0
  100. package/dist/types/components/00-foundations/typography/typography.stories.d.ts +6 -5
  101. package/dist/types/components/01-base-components/ds-accordion/ds-accordion.d.ts +17 -0
  102. package/dist/types/components/01-base-components/ds-accordion/stories/ds-accordion.examples.stories.d.ts +9 -0
  103. package/dist/types/components/01-base-components/ds-accordion/stories/ds-accordion.features.stories.d.ts +13 -0
  104. package/dist/types/components/01-base-components/ds-accordion/stories/ds-accordion.stories.d.ts +8 -0
  105. package/dist/types/components/01-base-components/ds-button/ds-button.d.ts +33 -0
  106. package/dist/types/components/01-base-components/ds-button/stories/ds-button.examples.stories.d.ts +6 -0
  107. package/dist/types/components/01-base-components/ds-button/stories/ds-button.features.stories.d.ts +17 -0
  108. package/dist/types/components/01-base-components/ds-button/stories/ds-button.stories.d.ts +8 -0
  109. package/dist/types/components/01-base-components/ds-text-input/ds-text-input.d.ts +46 -0
  110. package/dist/types/components/01-base-components/ds-text-input/ds-text-input.examples.stories.d.ts +8 -0
  111. package/dist/types/components/01-base-components/ds-text-input/ds-text-input.features.stories.d.ts +18 -0
  112. package/dist/types/components/01-base-components/ds-text-input/ds-text-input.stories.d.ts +8 -0
  113. package/dist/types/components/01-base-components/ds-text-input/utils.d.ts +3 -0
  114. package/dist/types/components/01-base-components/ds-visually-hidden/ds-visually-hidden.d.ts +3 -0
  115. package/dist/types/components/01-base-components/ds-visually-hidden/ds-visually-hidden.stories.d.ts +7 -0
  116. package/dist/types/components.d.ts +152 -0
  117. package/dist/types/declarations.d.ts +4 -0
  118. package/dist/types/index.d.ts +0 -1
  119. package/dist/types/utils/attributes.d.ts +39 -0
  120. package/dist/types/utils/borders/borderUtils.d.ts +9 -0
  121. package/dist/types/utils/breakpoints/breakpointsUtils.d.ts +11 -0
  122. package/dist/types/utils/colours/colourTypes.d.ts +18 -0
  123. package/dist/types/utils/colours/colourUtils.d.ts +4 -14
  124. package/dist/types/utils/spacing/spacingUtils.d.ts +6 -3
  125. package/dist/types/utils/tests/testUtils.d.ts +2 -0
  126. package/dist/types/utils/utils.d.ts +20 -1
  127. package/dist/uh-component-library/app-globals-0f993ce5.js +1 -0
  128. package/dist/uh-component-library/ds-accordion_2.entry.js +1 -0
  129. package/dist/uh-component-library/ds-button_2.entry.js +1 -0
  130. package/dist/uh-component-library/ds-text-input.entry.js +1 -0
  131. package/dist/uh-component-library/index-097075ad.js +6 -0
  132. package/dist/uh-component-library/index-1d0a6586.js +2 -0
  133. package/dist/uh-component-library/index.esm.js +0 -2
  134. package/dist/uh-component-library/uh-component-library.esm.js +1 -2
  135. package/package.json +8 -15
  136. package/dist/cjs/app-globals-3a1e7e63.js.map +0 -1
  137. package/dist/cjs/ds-icon.cjs.entry.js +0 -522
  138. package/dist/cjs/ds-icon.cjs.entry.js.map +0 -1
  139. package/dist/cjs/index-eaf5876c.js.map +0 -1
  140. package/dist/cjs/index.cjs.js.map +0 -1
  141. package/dist/cjs/loader.cjs.js.map +0 -1
  142. package/dist/cjs/uh-component-library.cjs.js.map +0 -1
  143. package/dist/collection/components/00-foundations/borders/borders.stories.js.map +0 -1
  144. package/dist/collection/components/00-foundations/colours/colours.stories.js.map +0 -1
  145. package/dist/collection/components/00-foundations/icons/iconList.js.map +0 -1
  146. package/dist/collection/components/00-foundations/icons/icons.stories.js.map +0 -1
  147. package/dist/collection/components/00-foundations/spacing/spacing.stories.js.map +0 -1
  148. package/dist/collection/components/00-foundations/typography/headings.stories.js +0 -23
  149. package/dist/collection/components/00-foundations/typography/headings.stories.js.map +0 -1
  150. package/dist/collection/components/00-foundations/typography/text.stories.js +0 -17
  151. package/dist/collection/components/00-foundations/typography/text.stories.js.map +0 -1
  152. package/dist/collection/components/00-foundations/typography/typography.stories.js.map +0 -1
  153. package/dist/collection/components/01-base-components/ds-icon/ds-icon.js.map +0 -1
  154. package/dist/collection/components/01-base-components/ds-icon/ds-icon.stories.js.map +0 -1
  155. package/dist/collection/index.js.map +0 -1
  156. package/dist/collection/utils/borders/borderUtils.js.map +0 -1
  157. package/dist/collection/utils/colours/colourUtils.js.map +0 -1
  158. package/dist/collection/utils/spacing/spacingUtils.js.map +0 -1
  159. package/dist/collection/utils/tests/testUtils.js.map +0 -1
  160. package/dist/collection/utils/typography/typographyUtils.js.map +0 -1
  161. package/dist/collection/utils/utils.js.map +0 -1
  162. package/dist/components/ds-icon.js.map +0 -1
  163. package/dist/components/index.js.map +0 -1
  164. package/dist/components/p-dcfb6eb2.js.map +0 -1
  165. package/dist/esm/app-globals-0f993ce5.js.map +0 -1
  166. package/dist/esm/ds-icon.entry.js +0 -518
  167. package/dist/esm/ds-icon.entry.js.map +0 -1
  168. package/dist/esm/index-1586ada2.js.map +0 -1
  169. package/dist/esm/index.js.map +0 -1
  170. package/dist/esm/loader.js.map +0 -1
  171. package/dist/esm/uh-component-library.js.map +0 -1
  172. package/dist/types/components/00-foundations/typography/headings.stories.d.ts +0 -17
  173. package/dist/types/components/00-foundations/typography/text.stories.d.ts +0 -11
  174. package/dist/uh-component-library/index.esm.js.map +0 -1
  175. package/dist/uh-component-library/p-74d73de3.js +0 -3
  176. package/dist/uh-component-library/p-74d73de3.js.map +0 -1
  177. package/dist/uh-component-library/p-c7cd80a5.entry.js +0 -2
  178. package/dist/uh-component-library/p-c7cd80a5.entry.js.map +0 -1
  179. package/dist/uh-component-library/p-e1255160.js +0 -2
  180. package/dist/uh-component-library/p-e1255160.js.map +0 -1
  181. package/dist/uh-component-library/uh-component-library.esm.js.map +0 -1
  182. package/loader/cdn.js +0 -1
  183. package/loader/index.cjs.js +0 -1
  184. package/loader/index.es2017.js +0 -1
  185. /package/{loader → dist/loader}/package.json +0 -0
@@ -1,8 +1,8 @@
1
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", invisiblePrehydration: true, isDebug: false, isDev: false, isTesting: false, lazyLoad: false, 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, 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 };
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: 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", invisiblePrehydration: true, isDebug: false, isDev: false, isTesting: false, lazyLoad: false, lifecycle: true, lifecycleDOMEvents: false, member: true, method: true, mode: 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, 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.23.0 | MIT Licensed | https://stenciljs.com
6
6
  */
7
7
  var __defProp = Object.defineProperty;
8
8
  var __export = (target, all) => {
@@ -31,6 +31,7 @@ var consoleError = (e, el) => (0, console.error)(e, el);
31
31
  // src/client/client-style.ts
32
32
  var styles = /* @__PURE__ */ new Map();
33
33
  var SLOT_FB_CSS = "slot-fb{display:contents}slot-fb[hidden]{display:none}";
34
+ var XLINK_NS = "http://www.w3.org/1999/xlink";
34
35
  var win = typeof window !== "undefined" ? window : {};
35
36
  var doc = win.document || { head: {} };
36
37
  var H = win.HTMLElement || class {
@@ -160,16 +161,10 @@ var unwrapErr = (result) => {
160
161
  throw result.value;
161
162
  }
162
163
  };
163
- var createTime = (fnName, tagName = "") => {
164
- {
165
- return () => {
166
- return;
167
- };
168
- }
169
- };
170
164
  var h = (nodeName, vnodeData, ...children) => {
171
165
  let child = null;
172
166
  let key = null;
167
+ let slotName = null;
173
168
  let simple = false;
174
169
  let lastSimple = false;
175
170
  const vNodeChildren = [];
@@ -196,6 +191,9 @@ var h = (nodeName, vnodeData, ...children) => {
196
191
  if (vnodeData.key) {
197
192
  key = vnodeData.key;
198
193
  }
194
+ if (vnodeData.name) {
195
+ slotName = vnodeData.name;
196
+ }
199
197
  {
200
198
  const classData = vnodeData.className || vnodeData.class;
201
199
  if (classData) {
@@ -218,6 +216,9 @@ var h = (nodeName, vnodeData, ...children) => {
218
216
  {
219
217
  vnode.$key$ = key;
220
218
  }
219
+ {
220
+ vnode.$name$ = slotName;
221
+ }
221
222
  return vnode;
222
223
  };
223
224
  var newVNode = (tag, text) => {
@@ -234,6 +235,9 @@ var newVNode = (tag, text) => {
234
235
  {
235
236
  vnode.$key$ = null;
236
237
  }
238
+ {
239
+ vnode.$name$ = null;
240
+ }
237
241
  return vnode;
238
242
  };
239
243
  var Host = {};
@@ -268,124 +272,63 @@ var convertToPrivate = (node) => {
268
272
  vnode.$name$ = node.vname;
269
273
  return vnode;
270
274
  };
271
- var parsePropertyValue = (propValue, propType) => {
272
- if (propValue != null && !isComplexType(propValue)) {
273
- if (propType & 4 /* Boolean */) {
274
- return propValue === "false" ? false : propValue === "" || !!propValue;
275
- }
276
- if (propType & 1 /* String */) {
277
- return String(propValue);
278
- }
279
- return propValue;
280
- }
281
- return propValue;
282
- };
283
- var emitEvent = (elm, name, opts) => {
284
- const ev = plt.ce(name, opts);
285
- elm.dispatchEvent(ev);
286
- return ev;
287
- };
288
- var rootAppliedStyles = /* @__PURE__ */ new WeakMap();
289
- var registerStyle = (scopeId2, cssText, allowCS) => {
290
- let style = styles.get(scopeId2);
291
- if (supportsConstructableStylesheets && allowCS) {
292
- style = style || new CSSStyleSheet();
293
- if (typeof style === "string") {
294
- style = cssText;
295
- } else {
296
- style.replaceSync(cssText);
297
- }
298
- } else {
299
- style = cssText;
300
- }
301
- styles.set(scopeId2, style);
302
- };
303
- var addStyle = (styleContainerNode, cmpMeta, mode) => {
304
- var _a;
305
- const scopeId2 = getScopeId(cmpMeta);
306
- const style = styles.get(scopeId2);
307
- styleContainerNode = styleContainerNode.nodeType === 11 /* DocumentFragment */ ? styleContainerNode : doc;
308
- if (style) {
309
- if (typeof style === "string") {
310
- styleContainerNode = styleContainerNode.head || styleContainerNode;
311
- let appliedStyles = rootAppliedStyles.get(styleContainerNode);
312
- let styleElm;
313
- if (!appliedStyles) {
314
- rootAppliedStyles.set(styleContainerNode, appliedStyles = /* @__PURE__ */ new Set());
315
- }
316
- if (!appliedStyles.has(scopeId2)) {
317
- {
318
- styleElm = doc.createElement("style");
319
- styleElm.innerHTML = style;
320
- const nonce = (_a = plt.$nonce$) != null ? _a : queryNonceMetaTagContent(doc);
321
- if (nonce != null) {
322
- styleElm.setAttribute("nonce", nonce);
323
- }
324
- if (!(cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */)) {
325
- if (styleContainerNode.nodeName === "HEAD") {
326
- const preconnectLinks = styleContainerNode.querySelectorAll("link[rel=preconnect]");
327
- const referenceNode2 = preconnectLinks.length > 0 ? preconnectLinks[preconnectLinks.length - 1].nextSibling : styleContainerNode.querySelector("style");
328
- styleContainerNode.insertBefore(styleElm, referenceNode2);
329
- } else if ("host" in styleContainerNode) {
330
- if (supportsConstructableStylesheets) {
331
- const stylesheet = new CSSStyleSheet();
332
- stylesheet.replaceSync(style);
333
- styleContainerNode.adoptedStyleSheets = [stylesheet, ...styleContainerNode.adoptedStyleSheets];
334
- } else {
335
- const existingStyleContainer = styleContainerNode.querySelector("style");
336
- if (existingStyleContainer) {
337
- existingStyleContainer.innerHTML = style + existingStyleContainer.innerHTML;
338
- } else {
339
- styleContainerNode.prepend(styleElm);
340
- }
341
- }
342
- } else {
343
- styleContainerNode.append(styleElm);
344
- }
345
- }
346
- if (cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */ && styleContainerNode.nodeName !== "HEAD") {
347
- styleContainerNode.insertBefore(styleElm, null);
348
- }
349
- }
350
- if (cmpMeta.$flags$ & 4 /* hasSlotRelocation */) {
351
- styleElm.innerHTML += SLOT_FB_CSS;
352
- }
353
- if (appliedStyles) {
354
- appliedStyles.add(scopeId2);
355
- }
356
- }
357
- } else if (!styleContainerNode.adoptedStyleSheets.includes(style)) {
358
- styleContainerNode.adoptedStyleSheets = [...styleContainerNode.adoptedStyleSheets, style];
359
- }
360
- }
361
- return scopeId2;
362
- };
363
- var attachStyles = (hostRef) => {
364
- const cmpMeta = hostRef.$cmpMeta$;
365
- const elm = hostRef.$hostElement$;
366
- const flags = cmpMeta.$flags$;
367
- const endAttachStyles = createTime("attachStyles", cmpMeta.$tagName$);
368
- const scopeId2 = addStyle(
369
- elm.shadowRoot ? elm.shadowRoot : elm.getRootNode(),
370
- cmpMeta);
371
- if (flags & 10 /* needsScopedEncapsulation */ && flags & 2 /* scopedCssEncapsulation */) {
372
- elm["s-sc"] = scopeId2;
373
- elm.classList.add(scopeId2 + "-h");
374
- }
375
- endAttachStyles();
376
- };
377
- var getScopeId = (cmp, mode) => "sc-" + (cmp.$tagName$);
378
275
  var setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => {
379
276
  if (oldValue !== newValue) {
380
277
  let isProp = isMemberInElement(elm, memberName);
381
- memberName.toLowerCase();
278
+ let ln = memberName.toLowerCase();
382
279
  if (memberName === "class") {
383
280
  const classList = elm.classList;
384
281
  const oldClasses = parseClassList(oldValue);
385
282
  const newClasses = parseClassList(newValue);
283
+ if (elm["s-si"] && newClasses.indexOf(elm["s-si"]) < 0) {
284
+ newClasses.push(elm["s-si"]);
285
+ }
386
286
  classList.remove(...oldClasses.filter((c) => c && !newClasses.includes(c)));
387
287
  classList.add(...newClasses.filter((c) => c && !oldClasses.includes(c)));
388
- } else if (memberName === "key") ; else {
288
+ } else if (memberName === "style") {
289
+ {
290
+ for (const prop in oldValue) {
291
+ if (!newValue || newValue[prop] == null) {
292
+ if (prop.includes("-")) {
293
+ elm.style.removeProperty(prop);
294
+ } else {
295
+ elm.style[prop] = "";
296
+ }
297
+ }
298
+ }
299
+ }
300
+ for (const prop in newValue) {
301
+ if (!oldValue || newValue[prop] !== oldValue[prop]) {
302
+ if (prop.includes("-")) {
303
+ elm.style.setProperty(prop, newValue[prop]);
304
+ } else {
305
+ elm.style[prop] = newValue[prop];
306
+ }
307
+ }
308
+ }
309
+ } else if (memberName === "key") ; else if (memberName === "ref") {
310
+ if (newValue) {
311
+ newValue(elm);
312
+ }
313
+ } else if ((!elm.__lookupSetter__(memberName)) && memberName[0] === "o" && memberName[1] === "n") {
314
+ if (memberName[2] === "-") {
315
+ memberName = memberName.slice(3);
316
+ } else if (isMemberInElement(win, ln)) {
317
+ memberName = ln.slice(2);
318
+ } else {
319
+ memberName = ln[2] + memberName.slice(3);
320
+ }
321
+ if (oldValue || newValue) {
322
+ const capture = memberName.endsWith(CAPTURE_EVENT_SUFFIX);
323
+ memberName = memberName.replace(CAPTURE_EVENT_REGEX, "");
324
+ if (oldValue) {
325
+ plt.rel(elm, memberName, oldValue, capture);
326
+ }
327
+ if (newValue) {
328
+ plt.ael(elm, memberName, newValue, capture);
329
+ }
330
+ }
331
+ } else {
389
332
  const isComplex = isComplexType(newValue);
390
333
  if ((isProp || isComplex && newValue !== null) && !isSvg) {
391
334
  try {
@@ -406,15 +349,26 @@ var setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => {
406
349
  } catch (e) {
407
350
  }
408
351
  }
352
+ let xlink = false;
353
+ {
354
+ if (ln !== (ln = ln.replace(/^xlink\:?/, ""))) {
355
+ memberName = ln;
356
+ xlink = true;
357
+ }
358
+ }
409
359
  if (newValue == null || newValue === false) {
410
360
  if (newValue !== false || elm.getAttribute(memberName) === "") {
411
- {
361
+ if (xlink) {
362
+ elm.removeAttributeNS(XLINK_NS, memberName);
363
+ } else {
412
364
  elm.removeAttribute(memberName);
413
365
  }
414
366
  }
415
367
  } else if ((!isProp || flags & 4 /* isHost */ || isSvg) && !isComplex) {
416
368
  newValue = newValue === true ? "" : newValue;
417
- {
369
+ if (xlink) {
370
+ elm.setAttributeNS(XLINK_NS, memberName, newValue);
371
+ } else {
418
372
  elm.setAttribute(memberName, newValue);
419
373
  }
420
374
  }
@@ -423,6 +377,8 @@ var setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => {
423
377
  };
424
378
  var parseClassListRegex = /\s/;
425
379
  var parseClassList = (value) => !value ? [] : value.split(parseClassListRegex);
380
+ var CAPTURE_EVENT_SUFFIX = "Capture";
381
+ var CAPTURE_EVENT_REGEX = new RegExp(CAPTURE_EVENT_SUFFIX + "$");
426
382
 
427
383
  // src/runtime/vdom/update-element.ts
428
384
  var updateElement = (oldVnode, newVnode, isSvgMode2) => {
@@ -452,15 +408,42 @@ function sortedAttrNames(attrNames) {
452
408
 
453
409
  // src/runtime/vdom/vdom-render.ts
454
410
  var scopeId;
411
+ var contentRef;
455
412
  var hostTagName;
456
413
  var useNativeShadowDom = false;
414
+ var checkSlotFallbackVisibility = false;
415
+ var checkSlotRelocate = false;
457
416
  var isSvgMode = false;
458
417
  var createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {
418
+ var _a;
459
419
  const newVNode2 = newParentVNode.$children$[childIndex];
460
420
  let i2 = 0;
461
421
  let elm;
462
422
  let childNode;
463
- {
423
+ let oldVNode;
424
+ if (!useNativeShadowDom) {
425
+ checkSlotRelocate = true;
426
+ if (newVNode2.$tag$ === "slot") {
427
+ if (scopeId) {
428
+ parentElm.classList.add(scopeId + "-s");
429
+ }
430
+ newVNode2.$flags$ |= newVNode2.$children$ ? (
431
+ // slot element has fallback content
432
+ // still create an element that "mocks" the slot element
433
+ 2 /* isSlotFallback */
434
+ ) : (
435
+ // slot element does not have fallback content
436
+ // create an html comment we'll use to always reference
437
+ // where actual slot content should sit next to
438
+ 1 /* isSlotReference */
439
+ );
440
+ }
441
+ }
442
+ if (newVNode2.$text$ !== null) {
443
+ elm = newVNode2.$elm$ = doc.createTextNode(newVNode2.$text$);
444
+ } else if (newVNode2.$flags$ & 1 /* isSlotReference */) {
445
+ elm = newVNode2.$elm$ = doc.createTextNode("");
446
+ } else {
464
447
  elm = newVNode2.$elm$ = doc.createElement(
465
448
  !useNativeShadowDom && BUILD.slotRelocation && newVNode2.$flags$ & 2 /* isSlotFallback */ ? "slot-fb" : newVNode2.$tag$
466
449
  );
@@ -472,9 +455,12 @@ var createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {
472
455
  if (!isElementWithinShadowRoot && BUILD.scoped && isDef(scopeId) && elm["s-si"] !== scopeId) {
473
456
  elm.classList.add(elm["s-si"] = scopeId);
474
457
  }
458
+ {
459
+ updateElementScopeIds(elm, parentElm);
460
+ }
475
461
  if (newVNode2.$children$) {
476
462
  for (i2 = 0; i2 < newVNode2.$children$.length; ++i2) {
477
- childNode = createElm(oldParentVNode, newVNode2, i2);
463
+ childNode = createElm(oldParentVNode, newVNode2, i2, elm);
478
464
  if (childNode) {
479
465
  elm.appendChild(childNode);
480
466
  }
@@ -482,20 +468,60 @@ var createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {
482
468
  }
483
469
  }
484
470
  elm["s-hn"] = hostTagName;
471
+ {
472
+ if (newVNode2.$flags$ & (2 /* isSlotFallback */ | 1 /* isSlotReference */)) {
473
+ elm["s-sr"] = true;
474
+ elm["s-cr"] = contentRef;
475
+ elm["s-sn"] = newVNode2.$name$ || "";
476
+ elm["s-rf"] = (_a = newVNode2.$attrs$) == null ? void 0 : _a.ref;
477
+ oldVNode = oldParentVNode && oldParentVNode.$children$ && oldParentVNode.$children$[childIndex];
478
+ if (oldVNode && oldVNode.$tag$ === newVNode2.$tag$ && oldParentVNode.$elm$) {
479
+ {
480
+ putBackInOriginalLocation(oldParentVNode.$elm$, false);
481
+ }
482
+ }
483
+ }
484
+ }
485
485
  return elm;
486
486
  };
487
+ var putBackInOriginalLocation = (parentElm, recursive) => {
488
+ plt.$flags$ |= 1 /* isTmpDisconnected */;
489
+ const oldSlotChildNodes = Array.from(parentElm.__childNodes || parentElm.childNodes);
490
+ if (parentElm["s-sr"] && BUILD.experimentalSlotFixes) {
491
+ let node = parentElm;
492
+ while (node = node.nextSibling) {
493
+ if (node && node["s-sn"] === parentElm["s-sn"] && node["s-sh"] === hostTagName) {
494
+ oldSlotChildNodes.push(node);
495
+ }
496
+ }
497
+ }
498
+ for (let i2 = oldSlotChildNodes.length - 1; i2 >= 0; i2--) {
499
+ const childNode = oldSlotChildNodes[i2];
500
+ if (childNode["s-hn"] !== hostTagName && childNode["s-ol"]) {
501
+ insertBefore(parentReferenceNode(childNode), childNode, referenceNode(childNode));
502
+ childNode["s-ol"].remove();
503
+ childNode["s-ol"] = void 0;
504
+ childNode["s-sh"] = void 0;
505
+ checkSlotRelocate = true;
506
+ }
507
+ if (recursive) {
508
+ putBackInOriginalLocation(childNode, recursive);
509
+ }
510
+ }
511
+ plt.$flags$ &= ~1 /* isTmpDisconnected */;
512
+ };
487
513
  var addVnodes = (parentElm, before, parentVNode, vnodes, startIdx, endIdx) => {
488
- let containerElm = parentElm;
514
+ let containerElm = parentElm["s-cr"] && parentElm["s-cr"].parentNode || parentElm;
489
515
  let childNode;
490
516
  if (containerElm.shadowRoot && containerElm.tagName === hostTagName) {
491
517
  containerElm = containerElm.shadowRoot;
492
518
  }
493
519
  for (; startIdx <= endIdx; ++startIdx) {
494
520
  if (vnodes[startIdx]) {
495
- childNode = createElm(null, parentVNode, startIdx);
521
+ childNode = createElm(null, parentVNode, startIdx, parentElm);
496
522
  if (childNode) {
497
523
  vnodes[startIdx].$elm$ = childNode;
498
- insertBefore(containerElm, childNode, before);
524
+ insertBefore(containerElm, childNode, referenceNode(before) );
499
525
  }
500
526
  }
501
527
  }
@@ -505,7 +531,16 @@ var removeVnodes = (vnodes, startIdx, endIdx) => {
505
531
  const vnode = vnodes[index];
506
532
  if (vnode) {
507
533
  const elm = vnode.$elm$;
534
+ nullifyVNodeRefs(vnode);
508
535
  if (elm) {
536
+ {
537
+ checkSlotFallbackVisibility = true;
538
+ if (elm["s-ol"]) {
539
+ elm["s-ol"].remove();
540
+ } else {
541
+ putBackInOriginalLocation(elm, true);
542
+ }
543
+ }
509
544
  elm.remove();
510
545
  }
511
546
  }
@@ -542,11 +577,17 @@ var updateChildren = (parentElm, oldCh, newVNode2, newCh, isInitialRender = fals
542
577
  oldEndVnode = oldCh[--oldEndIdx];
543
578
  newEndVnode = newCh[--newEndIdx];
544
579
  } else if (isSameVnode(oldStartVnode, newEndVnode, isInitialRender)) {
580
+ if ((oldStartVnode.$tag$ === "slot" || newEndVnode.$tag$ === "slot")) {
581
+ putBackInOriginalLocation(oldStartVnode.$elm$.parentNode, false);
582
+ }
545
583
  patch(oldStartVnode, newEndVnode, isInitialRender);
546
584
  insertBefore(parentElm, oldStartVnode.$elm$, oldEndVnode.$elm$.nextSibling);
547
585
  oldStartVnode = oldCh[++oldStartIdx];
548
586
  newEndVnode = newCh[--newEndIdx];
549
587
  } else if (isSameVnode(oldEndVnode, newStartVnode, isInitialRender)) {
588
+ if ((oldStartVnode.$tag$ === "slot" || newEndVnode.$tag$ === "slot")) {
589
+ putBackInOriginalLocation(oldEndVnode.$elm$.parentNode, false);
590
+ }
550
591
  patch(oldEndVnode, newStartVnode, isInitialRender);
551
592
  insertBefore(parentElm, oldEndVnode.$elm$, oldStartVnode.$elm$);
552
593
  oldEndVnode = oldCh[--oldEndIdx];
@@ -564,7 +605,7 @@ var updateChildren = (parentElm, oldCh, newVNode2, newCh, isInitialRender = fals
564
605
  if (idxInOld >= 0) {
565
606
  elmToMove = oldCh[idxInOld];
566
607
  if (elmToMove.$tag$ !== newStartVnode.$tag$) {
567
- node = createElm(oldCh && oldCh[newStartIdx], newVNode2, idxInOld);
608
+ node = createElm(oldCh && oldCh[newStartIdx], newVNode2, idxInOld, parentElm);
568
609
  } else {
569
610
  patch(elmToMove, newStartVnode, isInitialRender);
570
611
  oldCh[idxInOld] = void 0;
@@ -572,12 +613,12 @@ var updateChildren = (parentElm, oldCh, newVNode2, newCh, isInitialRender = fals
572
613
  }
573
614
  newStartVnode = newCh[++newStartIdx];
574
615
  } else {
575
- node = createElm(oldCh && oldCh[newStartIdx], newVNode2, newStartIdx);
616
+ node = createElm(oldCh && oldCh[newStartIdx], newVNode2, newStartIdx, parentElm);
576
617
  newStartVnode = newCh[++newStartIdx];
577
618
  }
578
619
  if (node) {
579
620
  {
580
- insertBefore(oldStartVnode.$elm$.parentNode, node, oldStartVnode.$elm$);
621
+ insertBefore(parentReferenceNode(oldStartVnode.$elm$), node, referenceNode(oldStartVnode.$elm$));
581
622
  }
582
623
  }
583
624
  }
@@ -597,6 +638,18 @@ var updateChildren = (parentElm, oldCh, newVNode2, newCh, isInitialRender = fals
597
638
  };
598
639
  var isSameVnode = (leftVNode, rightVNode, isInitialRender = false) => {
599
640
  if (leftVNode.$tag$ === rightVNode.$tag$) {
641
+ if (leftVNode.$tag$ === "slot") {
642
+ if (
643
+ // The component gets hydrated and no VDOM has been initialized.
644
+ // Here the comparison can't happen as $name$ property is not set for `leftNode`.
645
+ "$nodeId$" in leftVNode && isInitialRender && // `leftNode` is not from type HTMLComment which would cause many
646
+ // hydration comments to be removed
647
+ leftVNode.$elm$.nodeType !== 8
648
+ ) {
649
+ return false;
650
+ }
651
+ return leftVNode.$name$ === rightVNode.$name$;
652
+ }
600
653
  if (!isInitialRender) {
601
654
  return leftVNode.$key$ === rightVNode.$key$;
602
655
  }
@@ -604,19 +657,29 @@ var isSameVnode = (leftVNode, rightVNode, isInitialRender = false) => {
604
657
  }
605
658
  return false;
606
659
  };
660
+ var referenceNode = (node) => {
661
+ return node && node["s-ol"] || node;
662
+ };
663
+ var parentReferenceNode = (node) => (node["s-ol"] ? node["s-ol"] : node).parentNode;
607
664
  var patch = (oldVNode, newVNode2, isInitialRender = false) => {
608
665
  const elm = newVNode2.$elm$ = oldVNode.$elm$;
609
666
  const oldChildren = oldVNode.$children$;
610
667
  const newChildren = newVNode2.$children$;
611
- {
668
+ const tag = newVNode2.$tag$;
669
+ const text = newVNode2.$text$;
670
+ let defaultHolder;
671
+ if (text === null) {
612
672
  {
613
- {
673
+ if (tag === "slot" && !useNativeShadowDom) ; else {
614
674
  updateElement(oldVNode, newVNode2, isSvgMode);
615
675
  }
616
676
  }
617
677
  if (oldChildren !== null && newChildren !== null) {
618
678
  updateChildren(elm, oldChildren, newVNode2, newChildren, isInitialRender);
619
679
  } else if (newChildren !== null) {
680
+ if (oldVNode.$text$ !== null) {
681
+ elm.textContent = "";
682
+ }
620
683
  addVnodes(elm, null, newVNode2, newChildren, 0, newChildren.length - 1);
621
684
  } else if (
622
685
  // don't do this on initial render as it can cause non-hydrated content to be removed
@@ -624,13 +687,145 @@ var patch = (oldVNode, newVNode2, isInitialRender = false) => {
624
687
  ) {
625
688
  removeVnodes(oldChildren, 0, oldChildren.length - 1);
626
689
  }
690
+ } else if ((defaultHolder = elm["s-cr"])) {
691
+ defaultHolder.parentNode.textContent = text;
692
+ } else if (oldVNode.$text$ !== text) {
693
+ elm.data = text;
694
+ }
695
+ };
696
+ var updateFallbackSlotVisibility = (elm) => {
697
+ const childNodes = elm.__childNodes || elm.childNodes;
698
+ for (const childNode of childNodes) {
699
+ if (childNode.nodeType === 1 /* ElementNode */) {
700
+ if (childNode["s-sr"]) {
701
+ const slotName = childNode["s-sn"];
702
+ childNode.hidden = false;
703
+ for (const siblingNode of childNodes) {
704
+ if (siblingNode !== childNode) {
705
+ if (siblingNode["s-hn"] !== childNode["s-hn"] || slotName !== "") {
706
+ if (siblingNode.nodeType === 1 /* ElementNode */ && (slotName === siblingNode.getAttribute("slot") || slotName === siblingNode["s-sn"]) || siblingNode.nodeType === 3 /* TextNode */ && slotName === siblingNode["s-sn"]) {
707
+ childNode.hidden = true;
708
+ break;
709
+ }
710
+ } else if (slotName === siblingNode["s-sn"]) {
711
+ if (siblingNode.nodeType === 1 /* ElementNode */ || siblingNode.nodeType === 3 /* TextNode */ && siblingNode.textContent.trim() !== "") {
712
+ childNode.hidden = true;
713
+ break;
714
+ }
715
+ }
716
+ }
717
+ }
718
+ }
719
+ updateFallbackSlotVisibility(childNode);
720
+ }
721
+ }
722
+ };
723
+ var relocateNodes = [];
724
+ var markSlotContentForRelocation = (elm) => {
725
+ let node;
726
+ let hostContentNodes;
727
+ let j;
728
+ const children = elm.__childNodes || elm.childNodes;
729
+ for (const childNode of children) {
730
+ if (childNode["s-sr"] && (node = childNode["s-cr"]) && node.parentNode) {
731
+ hostContentNodes = node.parentNode.__childNodes || node.parentNode.childNodes;
732
+ const slotName = childNode["s-sn"];
733
+ for (j = hostContentNodes.length - 1; j >= 0; j--) {
734
+ node = hostContentNodes[j];
735
+ if (!node["s-cn"] && !node["s-nr"] && node["s-hn"] !== childNode["s-hn"] && (!BUILD.experimentalSlotFixes )) {
736
+ if (isNodeLocatedInSlot(node, slotName)) {
737
+ let relocateNodeData = relocateNodes.find((r) => r.$nodeToRelocate$ === node);
738
+ checkSlotFallbackVisibility = true;
739
+ node["s-sn"] = node["s-sn"] || slotName;
740
+ if (relocateNodeData) {
741
+ relocateNodeData.$nodeToRelocate$["s-sh"] = childNode["s-hn"];
742
+ relocateNodeData.$slotRefNode$ = childNode;
743
+ } else {
744
+ node["s-sh"] = childNode["s-hn"];
745
+ relocateNodes.push({
746
+ $slotRefNode$: childNode,
747
+ $nodeToRelocate$: node
748
+ });
749
+ }
750
+ if (node["s-sr"]) {
751
+ relocateNodes.map((relocateNode) => {
752
+ if (isNodeLocatedInSlot(relocateNode.$nodeToRelocate$, node["s-sn"])) {
753
+ relocateNodeData = relocateNodes.find((r) => r.$nodeToRelocate$ === node);
754
+ if (relocateNodeData && !relocateNode.$slotRefNode$) {
755
+ relocateNode.$slotRefNode$ = relocateNodeData.$slotRefNode$;
756
+ }
757
+ }
758
+ });
759
+ }
760
+ } else if (!relocateNodes.some((r) => r.$nodeToRelocate$ === node)) {
761
+ relocateNodes.push({
762
+ $nodeToRelocate$: node
763
+ });
764
+ }
765
+ }
766
+ }
767
+ }
768
+ if (childNode.nodeType === 1 /* ElementNode */) {
769
+ markSlotContentForRelocation(childNode);
770
+ }
771
+ }
772
+ };
773
+ var isNodeLocatedInSlot = (nodeToRelocate, slotName) => {
774
+ if (nodeToRelocate.nodeType === 1 /* ElementNode */) {
775
+ if (nodeToRelocate.getAttribute("slot") === null && slotName === "") {
776
+ return true;
777
+ }
778
+ if (nodeToRelocate.getAttribute("slot") === slotName) {
779
+ return true;
780
+ }
781
+ return false;
782
+ }
783
+ if (nodeToRelocate["s-sn"] === slotName) {
784
+ return true;
785
+ }
786
+ return slotName === "";
787
+ };
788
+ var nullifyVNodeRefs = (vNode) => {
789
+ {
790
+ vNode.$attrs$ && vNode.$attrs$.ref && vNode.$attrs$.ref(null);
791
+ vNode.$children$ && vNode.$children$.map(nullifyVNodeRefs);
627
792
  }
628
793
  };
629
794
  var insertBefore = (parent, newNode, reference) => {
630
795
  const inserted = parent == null ? void 0 : parent.insertBefore(newNode, reference);
796
+ {
797
+ updateElementScopeIds(newNode, parent);
798
+ }
631
799
  return inserted;
632
800
  };
801
+ var findScopeIds = (element) => {
802
+ const scopeIds = [];
803
+ if (element) {
804
+ scopeIds.push(
805
+ ...element["s-scs"] || [],
806
+ element["s-si"],
807
+ element["s-sc"],
808
+ ...findScopeIds(element.parentElement)
809
+ );
810
+ }
811
+ return scopeIds;
812
+ };
813
+ var updateElementScopeIds = (element, parent, iterateChildNodes = false) => {
814
+ var _a;
815
+ if (element && parent && element.nodeType === 1 /* ElementNode */) {
816
+ const scopeIds = new Set(findScopeIds(parent).filter(Boolean));
817
+ if (scopeIds.size) {
818
+ (_a = element.classList) == null ? void 0 : _a.add(...element["s-scs"] = Array.from(scopeIds));
819
+ if (element["s-ol"] || iterateChildNodes) {
820
+ for (const childNode of Array.from(element.__childNodes || element.childNodes)) {
821
+ updateElementScopeIds(childNode, element, true);
822
+ }
823
+ }
824
+ }
825
+ }
826
+ };
633
827
  var renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
828
+ var _a, _b, _c, _d;
634
829
  const hostElm = hostRef.$hostElement$;
635
830
  const cmpMeta = hostRef.$cmpMeta$;
636
831
  const oldVNode = hostRef.$vnode$ || newVNode(null, null);
@@ -651,8 +846,196 @@ var renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
651
846
  scopeId = hostElm["s-sc"];
652
847
  }
653
848
  useNativeShadowDom = (cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */) !== 0;
849
+ {
850
+ contentRef = hostElm["s-cr"];
851
+ checkSlotFallbackVisibility = false;
852
+ }
654
853
  patch(oldVNode, rootVnode, isInitialLoad);
854
+ {
855
+ plt.$flags$ |= 1 /* isTmpDisconnected */;
856
+ if (checkSlotRelocate) {
857
+ markSlotContentForRelocation(rootVnode.$elm$);
858
+ for (const relocateData of relocateNodes) {
859
+ const nodeToRelocate = relocateData.$nodeToRelocate$;
860
+ if (!nodeToRelocate["s-ol"]) {
861
+ const orgLocationNode = doc.createTextNode("");
862
+ orgLocationNode["s-nr"] = nodeToRelocate;
863
+ insertBefore(nodeToRelocate.parentNode, nodeToRelocate["s-ol"] = orgLocationNode, nodeToRelocate);
864
+ }
865
+ }
866
+ for (const relocateData of relocateNodes) {
867
+ const nodeToRelocate = relocateData.$nodeToRelocate$;
868
+ const slotRefNode = relocateData.$slotRefNode$;
869
+ if (slotRefNode) {
870
+ const parentNodeRef = slotRefNode.parentNode;
871
+ let insertBeforeNode = slotRefNode.nextSibling;
872
+ {
873
+ let orgLocationNode = (_a = nodeToRelocate["s-ol"]) == null ? void 0 : _a.previousSibling;
874
+ while (orgLocationNode) {
875
+ let refNode = (_b = orgLocationNode["s-nr"]) != null ? _b : null;
876
+ if (refNode && refNode["s-sn"] === nodeToRelocate["s-sn"] && parentNodeRef === refNode.parentNode) {
877
+ refNode = refNode.nextSibling;
878
+ while (refNode === nodeToRelocate || (refNode == null ? void 0 : refNode["s-sr"])) {
879
+ refNode = refNode == null ? void 0 : refNode.nextSibling;
880
+ }
881
+ if (!refNode || !refNode["s-nr"]) {
882
+ insertBeforeNode = refNode;
883
+ break;
884
+ }
885
+ }
886
+ orgLocationNode = orgLocationNode.previousSibling;
887
+ }
888
+ }
889
+ if (!insertBeforeNode && parentNodeRef !== nodeToRelocate.parentNode || nodeToRelocate.nextSibling !== insertBeforeNode) {
890
+ if (nodeToRelocate !== insertBeforeNode) {
891
+ if (!nodeToRelocate["s-hn"] && nodeToRelocate["s-ol"]) {
892
+ nodeToRelocate["s-hn"] = nodeToRelocate["s-ol"].parentNode.nodeName;
893
+ }
894
+ insertBefore(parentNodeRef, nodeToRelocate, insertBeforeNode);
895
+ if (nodeToRelocate.nodeType === 1 /* ElementNode */) {
896
+ nodeToRelocate.hidden = (_c = nodeToRelocate["s-ih"]) != null ? _c : false;
897
+ }
898
+ }
899
+ }
900
+ nodeToRelocate && typeof slotRefNode["s-rf"] === "function" && slotRefNode["s-rf"](nodeToRelocate);
901
+ } else {
902
+ if (nodeToRelocate.nodeType === 1 /* ElementNode */) {
903
+ if (isInitialLoad) {
904
+ nodeToRelocate["s-ih"] = (_d = nodeToRelocate.hidden) != null ? _d : false;
905
+ }
906
+ nodeToRelocate.hidden = true;
907
+ }
908
+ }
909
+ }
910
+ }
911
+ if (checkSlotFallbackVisibility) {
912
+ updateFallbackSlotVisibility(rootVnode.$elm$);
913
+ }
914
+ plt.$flags$ &= ~1 /* isTmpDisconnected */;
915
+ relocateNodes.length = 0;
916
+ }
917
+ contentRef = void 0;
918
+ };
919
+ var createTime = (fnName, tagName = "") => {
920
+ {
921
+ return () => {
922
+ return;
923
+ };
924
+ }
925
+ };
926
+ var parsePropertyValue = (propValue, propType) => {
927
+ if (propValue != null && !isComplexType(propValue)) {
928
+ if (propType & 4 /* Boolean */) {
929
+ return propValue === "false" ? false : propValue === "" || !!propValue;
930
+ }
931
+ if (propType & 2 /* Number */) {
932
+ return parseFloat(propValue);
933
+ }
934
+ if (propType & 1 /* String */) {
935
+ return String(propValue);
936
+ }
937
+ return propValue;
938
+ }
939
+ return propValue;
940
+ };
941
+ var emitEvent = (elm, name, opts) => {
942
+ const ev = plt.ce(name, opts);
943
+ elm.dispatchEvent(ev);
944
+ return ev;
945
+ };
946
+ var rootAppliedStyles = /* @__PURE__ */ new WeakMap();
947
+ var registerStyle = (scopeId2, cssText, allowCS) => {
948
+ let style = styles.get(scopeId2);
949
+ if (supportsConstructableStylesheets && allowCS) {
950
+ style = style || new CSSStyleSheet();
951
+ if (typeof style === "string") {
952
+ style = cssText;
953
+ } else {
954
+ style.replaceSync(cssText);
955
+ }
956
+ } else {
957
+ style = cssText;
958
+ }
959
+ styles.set(scopeId2, style);
960
+ };
961
+ var addStyle = (styleContainerNode, cmpMeta, mode) => {
962
+ var _a;
963
+ const scopeId2 = getScopeId(cmpMeta);
964
+ const style = styles.get(scopeId2);
965
+ styleContainerNode = styleContainerNode.nodeType === 11 /* DocumentFragment */ ? styleContainerNode : doc;
966
+ if (style) {
967
+ if (typeof style === "string") {
968
+ styleContainerNode = styleContainerNode.head || styleContainerNode;
969
+ let appliedStyles = rootAppliedStyles.get(styleContainerNode);
970
+ let styleElm;
971
+ if (!appliedStyles) {
972
+ rootAppliedStyles.set(styleContainerNode, appliedStyles = /* @__PURE__ */ new Set());
973
+ }
974
+ if (!appliedStyles.has(scopeId2)) {
975
+ {
976
+ styleElm = doc.createElement("style");
977
+ styleElm.innerHTML = style;
978
+ const nonce = (_a = plt.$nonce$) != null ? _a : queryNonceMetaTagContent(doc);
979
+ if (nonce != null) {
980
+ styleElm.setAttribute("nonce", nonce);
981
+ }
982
+ if (!(cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */)) {
983
+ if (styleContainerNode.nodeName === "HEAD") {
984
+ const preconnectLinks = styleContainerNode.querySelectorAll("link[rel=preconnect]");
985
+ const referenceNode2 = preconnectLinks.length > 0 ? preconnectLinks[preconnectLinks.length - 1].nextSibling : styleContainerNode.querySelector("style");
986
+ styleContainerNode.insertBefore(styleElm, referenceNode2);
987
+ } else if ("host" in styleContainerNode) {
988
+ if (supportsConstructableStylesheets) {
989
+ const stylesheet = new CSSStyleSheet();
990
+ stylesheet.replaceSync(style);
991
+ styleContainerNode.adoptedStyleSheets = [stylesheet, ...styleContainerNode.adoptedStyleSheets];
992
+ } else {
993
+ const existingStyleContainer = styleContainerNode.querySelector("style");
994
+ if (existingStyleContainer) {
995
+ existingStyleContainer.innerHTML = style + existingStyleContainer.innerHTML;
996
+ } else {
997
+ styleContainerNode.prepend(styleElm);
998
+ }
999
+ }
1000
+ } else {
1001
+ styleContainerNode.append(styleElm);
1002
+ }
1003
+ }
1004
+ if (cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */ && styleContainerNode.nodeName !== "HEAD") {
1005
+ styleContainerNode.insertBefore(styleElm, null);
1006
+ }
1007
+ }
1008
+ if (cmpMeta.$flags$ & 4 /* hasSlotRelocation */) {
1009
+ styleElm.innerHTML += SLOT_FB_CSS;
1010
+ }
1011
+ if (appliedStyles) {
1012
+ appliedStyles.add(scopeId2);
1013
+ }
1014
+ }
1015
+ } else if (!styleContainerNode.adoptedStyleSheets.includes(style)) {
1016
+ styleContainerNode.adoptedStyleSheets = [...styleContainerNode.adoptedStyleSheets, style];
1017
+ }
1018
+ }
1019
+ return scopeId2;
655
1020
  };
1021
+ var attachStyles = (hostRef) => {
1022
+ const cmpMeta = hostRef.$cmpMeta$;
1023
+ const elm = hostRef.$hostElement$;
1024
+ const flags = cmpMeta.$flags$;
1025
+ const endAttachStyles = createTime("attachStyles", cmpMeta.$tagName$);
1026
+ const scopeId2 = addStyle(
1027
+ elm.shadowRoot ? elm.shadowRoot : elm.getRootNode(),
1028
+ cmpMeta);
1029
+ if (flags & 10 /* needsScopedEncapsulation */ && flags & 2 /* scopedCssEncapsulation */) {
1030
+ elm["s-sc"] = scopeId2;
1031
+ elm.classList.add(scopeId2 + "-h");
1032
+ if (flags & 2 /* scopedCssEncapsulation */) {
1033
+ elm.classList.add(scopeId2 + "-s");
1034
+ }
1035
+ }
1036
+ endAttachStyles();
1037
+ };
1038
+ var getScopeId = (cmp, mode) => "sc-" + (cmp.$tagName$);
656
1039
 
657
1040
  // src/runtime/update-component.ts
658
1041
  var attachToAncestor = (hostRef, ancestorComponent) => {
@@ -682,6 +1065,11 @@ var dispatchHooks = (hostRef, isInitialLoad) => {
682
1065
  );
683
1066
  }
684
1067
  let maybePromise;
1068
+ if (isInitialLoad) {
1069
+ {
1070
+ maybePromise = safeCall(instance, "componentWillLoad");
1071
+ }
1072
+ }
685
1073
  endSchedule();
686
1074
  return enqueue(maybePromise, () => updateComponent(hostRef, instance, isInitialLoad));
687
1075
  };
@@ -778,6 +1166,16 @@ var appDidLoad = (who) => {
778
1166
  }
779
1167
  nextTick(() => emitEvent(win, "appload", { detail: { namespace: NAMESPACE } }));
780
1168
  };
1169
+ var safeCall = (instance, method, arg) => {
1170
+ if (instance && instance[method]) {
1171
+ try {
1172
+ return instance[method](arg);
1173
+ } catch (e) {
1174
+ consoleError(e);
1175
+ }
1176
+ }
1177
+ return void 0;
1178
+ };
781
1179
  var addHydratedFlag = (elm) => {
782
1180
  var _a;
783
1181
  return elm.classList.add((_a = BUILD.hydratedSelectorName) != null ? _a : "hydrated") ;
@@ -787,14 +1185,28 @@ var addHydratedFlag = (elm) => {
787
1185
  var getValue = (ref, propName) => getHostRef(ref).$instanceValues$.get(propName);
788
1186
  var setValue = (ref, propName, newVal, cmpMeta) => {
789
1187
  const hostRef = getHostRef(ref);
1188
+ const elm = ref;
790
1189
  const oldVal = hostRef.$instanceValues$.get(propName);
791
1190
  const flags = hostRef.$flags$;
1191
+ const instance = elm;
792
1192
  newVal = parsePropertyValue(newVal, cmpMeta.$members$[propName][0]);
793
1193
  const areBothNaN = Number.isNaN(oldVal) && Number.isNaN(newVal);
794
1194
  const didValueChange = newVal !== oldVal && !areBothNaN;
795
1195
  if (didValueChange) {
796
1196
  hostRef.$instanceValues$.set(propName, newVal);
797
1197
  {
1198
+ if (cmpMeta.$watchers$ && flags & 128 /* isWatchReady */) {
1199
+ const watchMethods = cmpMeta.$watchers$[propName];
1200
+ if (watchMethods) {
1201
+ watchMethods.map((watchMethodName) => {
1202
+ try {
1203
+ instance[watchMethodName](newVal, oldVal, propName);
1204
+ } catch (e) {
1205
+ consoleError(e, elm);
1206
+ }
1207
+ });
1208
+ }
1209
+ }
798
1210
  if ((flags & (2 /* hasRendered */ | 16 /* isQueuedForUpdate */)) === 2 /* hasRendered */) {
799
1211
  scheduleUpdate(hostRef, false);
800
1212
  }
@@ -806,20 +1218,57 @@ var setValue = (ref, propName, newVal, cmpMeta) => {
806
1218
  var proxyComponent = (Cstr, cmpMeta, flags) => {
807
1219
  var _a, _b;
808
1220
  const prototype = Cstr.prototype;
809
- if (cmpMeta.$members$ || BUILD.watchCallback ) {
1221
+ if (cmpMeta.$members$ || (cmpMeta.$watchers$ || Cstr.watchers)) {
1222
+ if (Cstr.watchers && !cmpMeta.$watchers$) {
1223
+ cmpMeta.$watchers$ = Cstr.watchers;
1224
+ }
810
1225
  const members = Object.entries((_a = cmpMeta.$members$) != null ? _a : {});
811
1226
  members.map(([memberName, [memberFlags]]) => {
812
1227
  if ((memberFlags & 31 /* Prop */ || memberFlags & 32 /* State */)) {
813
- Object.defineProperty(prototype, memberName, {
814
- get() {
815
- return getValue(this, memberName);
816
- },
817
- set(newValue) {
818
- setValue(this, memberName, newValue, cmpMeta);
819
- },
820
- configurable: true,
821
- enumerable: true
822
- });
1228
+ if ((memberFlags & 2048 /* Getter */) === 0) {
1229
+ Object.defineProperty(prototype, memberName, {
1230
+ get() {
1231
+ return getValue(this, memberName);
1232
+ },
1233
+ set(newValue) {
1234
+ setValue(this, memberName, newValue, cmpMeta);
1235
+ },
1236
+ configurable: true,
1237
+ enumerable: true
1238
+ });
1239
+ } else if (flags & 1 /* isElementConstructor */ && memberFlags & 2048 /* Getter */) {
1240
+ if (memberFlags & 4096 /* Setter */) {
1241
+ const origSetter = Object.getOwnPropertyDescriptor(prototype, memberName).set;
1242
+ Object.defineProperty(prototype, memberName, {
1243
+ set(newValue) {
1244
+ const ref = getHostRef(this);
1245
+ if (origSetter) {
1246
+ const currentValue = ref.$hostElement$[memberName];
1247
+ if (!ref.$instanceValues$.get(memberName) && currentValue) {
1248
+ ref.$instanceValues$.set(memberName, currentValue);
1249
+ }
1250
+ origSetter.apply(this, [parsePropertyValue(newValue, cmpMeta.$members$[memberName][0])]);
1251
+ setValue(this, memberName, ref.$hostElement$[memberName], cmpMeta);
1252
+ return;
1253
+ }
1254
+ if (!ref) return;
1255
+ const setterSetVal = () => {
1256
+ const currentValue = ref.$lazyInstance$[memberName];
1257
+ if (!ref.$instanceValues$.get(memberName) && currentValue) {
1258
+ ref.$instanceValues$.set(memberName, currentValue);
1259
+ }
1260
+ ref.$lazyInstance$[memberName] = parsePropertyValue(newValue, cmpMeta.$members$[memberName][0]);
1261
+ setValue(this, memberName, ref.$lazyInstance$[memberName], cmpMeta);
1262
+ };
1263
+ if (ref.$lazyInstance$) {
1264
+ setterSetVal();
1265
+ } else {
1266
+ ref.$onReadyPromise$.then(() => setterSetVal());
1267
+ }
1268
+ }
1269
+ });
1270
+ }
1271
+ }
823
1272
  }
824
1273
  });
825
1274
  {
@@ -849,7 +1298,10 @@ var proxyComponent = (Cstr, cmpMeta, flags) => {
849
1298
  }
850
1299
  return;
851
1300
  }
852
- this[propName] = newValue === null && typeof this[propName] === "boolean" ? false : newValue;
1301
+ const propDesc = Object.getOwnPropertyDescriptor(prototype, propName);
1302
+ if (!propDesc.get || !!propDesc.set) {
1303
+ this[propName] = newValue === null && typeof this[propName] === "boolean" ? false : newValue;
1304
+ }
853
1305
  });
854
1306
  };
855
1307
  Cstr.observedAttributes = Array.from(
@@ -909,6 +1361,12 @@ var connectedCallback = (elm) => {
909
1361
  const endConnected = createTime("connectedCallback", cmpMeta.$tagName$);
910
1362
  if (!(hostRef.$flags$ & 1 /* hasConnected */)) {
911
1363
  hostRef.$flags$ |= 1 /* hasConnected */;
1364
+ {
1365
+ if (// TODO(STENCIL-854): Remove code related to legacy shadowDomShim field
1366
+ cmpMeta.$flags$ & (4 /* hasSlotRelocation */ | 8 /* needsShadowDomShim */)) {
1367
+ setContentReference(elm);
1368
+ }
1369
+ }
912
1370
  {
913
1371
  let ancestorComponent = elm;
914
1372
  while (ancestorComponent = ancestorComponent.parentNode || ancestorComponent.host) {
@@ -938,6 +1396,13 @@ var connectedCallback = (elm) => {
938
1396
  endConnected();
939
1397
  }
940
1398
  };
1399
+ var setContentReference = (elm) => {
1400
+ const contentRefElm = elm["s-cr"] = doc.createComment(
1401
+ ""
1402
+ );
1403
+ contentRefElm["s-cn"] = true;
1404
+ insertBefore(elm, contentRefElm, elm.firstChild);
1405
+ };
941
1406
  var disconnectedCallback = async (elm) => {
942
1407
  if ((plt.$flags$ & 1 /* isTmpDisconnected */) === 0) {
943
1408
  getHostRef(elm);
@@ -951,12 +1416,19 @@ var proxyCustomElement = (Cstr, compactMeta) => {
951
1416
  {
952
1417
  cmpMeta.$members$ = compactMeta[2];
953
1418
  }
1419
+ {
1420
+ cmpMeta.$watchers$ = Cstr.$watchers$;
1421
+ }
954
1422
  Object.assign(Cstr.prototype, {
1423
+ __hasHostListenerAttached: false,
955
1424
  __registerHost() {
956
1425
  registerHost(this, cmpMeta);
957
1426
  },
958
1427
  connectedCallback() {
959
- getHostRef(this);
1428
+ if (!this.__hasHostListenerAttached) {
1429
+ getHostRef(this);
1430
+ this.__hasHostListenerAttached = true;
1431
+ }
960
1432
  connectedCallback(this);
961
1433
  },
962
1434
  disconnectedCallback() {
@@ -979,7 +1451,7 @@ var proxyCustomElement = (Cstr, compactMeta) => {
979
1451
  }
980
1452
  });
981
1453
  Cstr.is = cmpMeta.$tagName$;
982
- return proxyComponent(Cstr, cmpMeta);
1454
+ return proxyComponent(Cstr, cmpMeta, 1 /* isElementConstructor */ | 2 /* proxyState */);
983
1455
  };
984
1456
 
985
1457
  // src/runtime/fragment.ts
@@ -992,5 +1464,3 @@ var setNonce = (nonce) => plt.$nonce$ = nonce;
992
1464
  var setPlatformOptions = (opts) => Object.assign(plt, opts);
993
1465
 
994
1466
  export { Fragment as F, H, setNonce as a, setPlatformOptions as b, getAssetPath as g, h, proxyCustomElement as p, setAssetPath as s };
995
-
996
- //# sourceMappingURL=p-dcfb6eb2.js.map