@sula-tech/webcomponents 0.15.0 → 0.16.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 (116) hide show
  1. package/dist/cjs/{index-C19aFtyq.js → index-CHZXBkfx.js} +357 -7
  2. package/dist/cjs/index-CHZXBkfx.js.map +1 -0
  3. package/dist/cjs/loader.cjs.js +2 -2
  4. package/dist/cjs/{sula-avatar_22.cjs.entry.js → sula-avatar_28.cjs.entry.js} +195 -25
  5. package/dist/cjs/sula-avatar_28.cjs.entry.js.map +1 -0
  6. package/dist/cjs/webcomponents.cjs.js +2 -2
  7. package/dist/collection/collection-manifest.json +6 -0
  8. package/dist/collection/components/sula-avatar/sula-avatar.css +1 -1
  9. package/dist/collection/components/sula-dropdown/sula-dropdown.js +6 -6
  10. package/dist/collection/components/sula-dropdown/sula-dropdown.js.map +1 -1
  11. package/dist/collection/components/sula-icon/sula-icon.css +1 -1
  12. package/dist/collection/components/sula-table/model/sula-table.model.js +8 -0
  13. package/dist/collection/components/sula-table/model/sula-table.model.js.map +1 -0
  14. package/dist/collection/components/sula-table/sula-table.css +1 -0
  15. package/dist/collection/components/sula-table/sula-table.js +111 -0
  16. package/dist/collection/components/sula-table/sula-table.js.map +1 -0
  17. package/dist/collection/components/sula-table/sula-table.stories.js +298 -0
  18. package/dist/collection/components/sula-table/sula-table.stories.js.map +1 -0
  19. package/dist/collection/components/sula-table-body/sula-table-body.css +1 -0
  20. package/dist/collection/components/sula-table-body/sula-table-body.js +23 -0
  21. package/dist/collection/components/sula-table-body/sula-table-body.js.map +1 -0
  22. package/dist/collection/components/sula-table-cell/sula-table-cell.css +1 -0
  23. package/dist/collection/components/sula-table-cell/sula-table-cell.js +34 -0
  24. package/dist/collection/components/sula-table-cell/sula-table-cell.js.map +1 -0
  25. package/dist/collection/components/sula-table-head-cell/sula-table-head-cell.css +1 -0
  26. package/dist/collection/components/sula-table-head-cell/sula-table-head-cell.js +34 -0
  27. package/dist/collection/components/sula-table-head-cell/sula-table-head-cell.js.map +1 -0
  28. package/dist/collection/components/sula-table-header/sula-table-header.css +1 -0
  29. package/dist/collection/components/sula-table-header/sula-table-header.js +23 -0
  30. package/dist/collection/components/sula-table-header/sula-table-header.js.map +1 -0
  31. package/dist/collection/components/sula-table-row/sula-table-row.css +1 -0
  32. package/dist/collection/components/sula-table-row/sula-table-row.js +23 -0
  33. package/dist/collection/components/sula-table-row/sula-table-row.js.map +1 -0
  34. package/dist/collection/components/sula-tag/sula-tag.js +3 -3
  35. package/dist/collection/components/sula-textarea/sula-textarea.js +6 -6
  36. package/dist/collection/components/sula-textfield/sula-textfield.js +2 -2
  37. package/dist/collection/components/sula-tiles/sula-tiles.js +1 -1
  38. package/dist/collection/components/sula-timeline-list/sula-timeline-list.js +1 -1
  39. package/dist/collection/components/sula-tooltip/sula-tooltip.js +1 -1
  40. package/dist/collection/utils/replace-host-with-rendered-element.js +24 -0
  41. package/dist/collection/utils/replace-host-with-rendered-element.js.map +1 -0
  42. package/dist/components/index.js +355 -5
  43. package/dist/components/index.js.map +1 -1
  44. package/dist/components/{p-BESq0oqe.js → p-BoXZrDgj.js} +3 -3
  45. package/dist/components/{p-BESq0oqe.js.map → p-BoXZrDgj.js.map} +1 -1
  46. package/dist/components/p-CQ1I0UIz.js +12 -0
  47. package/dist/components/p-CQ1I0UIz.js.map +1 -0
  48. package/dist/components/p-DrIWCpI3.js +28 -0
  49. package/dist/components/p-DrIWCpI3.js.map +1 -0
  50. package/dist/components/{p-BznR9x_k.js → p-ExcZQ46X.js} +3 -3
  51. package/dist/components/{p-BznR9x_k.js.map → p-ExcZQ46X.js.map} +1 -1
  52. package/dist/components/sula-avatar.js +2 -2
  53. package/dist/components/sula-badge.js +1 -1
  54. package/dist/components/sula-breadcrumb.js +1 -1
  55. package/dist/components/sula-button.js +1 -1
  56. package/dist/components/sula-checkbox.js +1 -1
  57. package/dist/components/sula-chip.js +1 -1
  58. package/dist/components/sula-dropdown.js +7 -7
  59. package/dist/components/sula-dropdown.js.map +1 -1
  60. package/dist/components/sula-icon.js +1 -1
  61. package/dist/components/sula-modal.js +2 -2
  62. package/dist/components/sula-progress-bar.js +1 -1
  63. package/dist/components/sula-search-bar.js +1 -1
  64. package/dist/components/sula-segmented-control.js +1 -1
  65. package/dist/components/sula-table-body.d.ts +11 -0
  66. package/dist/components/sula-table-body.js +41 -0
  67. package/dist/components/sula-table-body.js.map +1 -0
  68. package/dist/components/sula-table-cell.d.ts +11 -0
  69. package/dist/components/sula-table-cell.js +52 -0
  70. package/dist/components/sula-table-cell.js.map +1 -0
  71. package/dist/components/sula-table-head-cell.d.ts +11 -0
  72. package/dist/components/sula-table-head-cell.js +52 -0
  73. package/dist/components/sula-table-head-cell.js.map +1 -0
  74. package/dist/components/sula-table-header.d.ts +11 -0
  75. package/dist/components/sula-table-header.js +41 -0
  76. package/dist/components/sula-table-header.js.map +1 -0
  77. package/dist/components/sula-table-row.d.ts +11 -0
  78. package/dist/components/sula-table-row.js +41 -0
  79. package/dist/components/sula-table-row.js.map +1 -0
  80. package/dist/components/sula-table.d.ts +11 -0
  81. package/dist/components/sula-table.js +61 -0
  82. package/dist/components/sula-table.js.map +1 -0
  83. package/dist/components/sula-tag.js +4 -4
  84. package/dist/components/sula-textarea.js +6 -6
  85. package/dist/components/sula-textfield.js +3 -3
  86. package/dist/components/sula-tiles.js +2 -2
  87. package/dist/components/sula-timeline-list.js +2 -2
  88. package/dist/components/sula-tooltip.js +2 -2
  89. package/dist/esm/{index-CwIBTB8E.js → index-CwrCjm3e.js} +357 -7
  90. package/dist/esm/index-CwrCjm3e.js.map +1 -0
  91. package/dist/esm/loader.js +3 -3
  92. package/dist/esm/{sula-avatar_22.entry.js → sula-avatar_28.entry.js} +190 -26
  93. package/dist/esm/sula-avatar_28.entry.js.map +1 -0
  94. package/dist/esm/webcomponents.js +3 -3
  95. package/dist/types/components/sula-table/model/sula-table.model.d.ts +6 -0
  96. package/dist/types/components/sula-table/sula-table.d.ts +16 -0
  97. package/dist/types/components/sula-table/sula-table.stories.d.ts +69 -0
  98. package/dist/types/components/sula-table-body/sula-table-body.d.ts +5 -0
  99. package/dist/types/components/sula-table-cell/sula-table-cell.d.ts +6 -0
  100. package/dist/types/components/sula-table-head-cell/sula-table-head-cell.d.ts +6 -0
  101. package/dist/types/components/sula-table-header/sula-table-header.d.ts +5 -0
  102. package/dist/types/components/sula-table-row/sula-table-row.d.ts +5 -0
  103. package/dist/types/components.d.ts +110 -0
  104. package/dist/types/utils/replace-host-with-rendered-element.d.ts +1 -0
  105. package/dist/webcomponents/{p-6dc2ae91.entry.js → p-8472342b.entry.js} +1636 -1413
  106. package/dist/webcomponents/p-8472342b.entry.js.map +1 -0
  107. package/dist/webcomponents/{p-CwIBTB8E.js → p-CwrCjm3e.js} +504 -150
  108. package/dist/webcomponents/p-CwrCjm3e.js.map +1 -0
  109. package/dist/webcomponents/webcomponents.esm.js +8 -4
  110. package/package.json +1 -1
  111. package/dist/cjs/index-C19aFtyq.js.map +0 -1
  112. package/dist/cjs/sula-avatar_22.cjs.entry.js.map +0 -1
  113. package/dist/esm/index-CwIBTB8E.js.map +0 -1
  114. package/dist/esm/sula-avatar_22.entry.js.map +0 -1
  115. package/dist/webcomponents/p-6dc2ae91.entry.js.map +0 -1
  116. package/dist/webcomponents/p-CwIBTB8E.js.map +0 -1
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  const NAMESPACE = 'webcomponents';
4
- const BUILD = /* webcomponents */ { hydratedSelectorName: "hydrated", lazyLoad: true, updatable: true};
4
+ const BUILD = /* webcomponents */ { hydratedSelectorName: "hydrated", lazyLoad: true, slotRelocation: true, updatable: true};
5
5
 
6
6
  const globalScripts = () => {};
7
7
  const globalStyles = "*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scroll-snap-strictness:proximity;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;}::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scroll-snap-strictness:proximity;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;}/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box }:after,:before{--tw-content:\"\"}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;-moz-tab-size:4;tab-size:4 }body{line-height:inherit;margin:0 }hr{border-top-width:1px;color:inherit;height:0 }abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal }small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0 }button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0 }button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none }:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px }::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit }summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1 }[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle }img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}:root{text-rendering:optimizeLegibility}";
@@ -224,6 +224,112 @@ function createShadowRoot(cmpMeta) {
224
224
  shadowRoot.adoptedStyleSheets.push(sheet);
225
225
  }
226
226
  }
227
+ var updateFallbackSlotVisibility = (elm) => {
228
+ const childNodes = internalCall(elm, "childNodes");
229
+ if (elm.tagName && elm.tagName.includes("-") && elm["s-cr"] && elm.tagName !== "SLOT-FB") {
230
+ getHostSlotNodes(childNodes, elm.tagName).forEach((slotNode) => {
231
+ if (slotNode.nodeType === 1 /* ElementNode */ && slotNode.tagName === "SLOT-FB") {
232
+ if (getSlotChildSiblings(slotNode, getSlotName(slotNode), false).length) {
233
+ slotNode.hidden = true;
234
+ } else {
235
+ slotNode.hidden = false;
236
+ }
237
+ }
238
+ });
239
+ }
240
+ let i2 = 0;
241
+ for (i2 = 0; i2 < childNodes.length; i2++) {
242
+ const childNode = childNodes[i2];
243
+ if (childNode.nodeType === 1 /* ElementNode */ && internalCall(childNode, "childNodes").length) {
244
+ updateFallbackSlotVisibility(childNode);
245
+ }
246
+ }
247
+ };
248
+ var getSlottedChildNodes = (childNodes) => {
249
+ const result = [];
250
+ for (let i2 = 0; i2 < childNodes.length; i2++) {
251
+ const slottedNode = childNodes[i2]["s-nr"] || void 0;
252
+ if (slottedNode && slottedNode.isConnected) {
253
+ result.push(slottedNode);
254
+ }
255
+ }
256
+ return result;
257
+ };
258
+ function getHostSlotNodes(childNodes, hostName, slotName) {
259
+ let i2 = 0;
260
+ let slottedNodes = [];
261
+ let childNode;
262
+ for (; i2 < childNodes.length; i2++) {
263
+ childNode = childNodes[i2];
264
+ if (childNode["s-sr"] && (!hostName || childNode["s-hn"] === hostName) && (slotName === void 0)) {
265
+ slottedNodes.push(childNode);
266
+ }
267
+ slottedNodes = [...slottedNodes, ...getHostSlotNodes(childNode.childNodes, hostName, slotName)];
268
+ }
269
+ return slottedNodes;
270
+ }
271
+ var getSlotChildSiblings = (slot, slotName, includeSlot = true) => {
272
+ const childNodes = [];
273
+ if (includeSlot && slot["s-sr"] || !slot["s-sr"]) childNodes.push(slot);
274
+ let node = slot;
275
+ while (node = node.nextSibling) {
276
+ if (getSlotName(node) === slotName && (includeSlot || !node["s-sr"])) childNodes.push(node);
277
+ }
278
+ return childNodes;
279
+ };
280
+ var isNodeLocatedInSlot = (nodeToRelocate, slotName) => {
281
+ if (nodeToRelocate.nodeType === 1 /* ElementNode */) {
282
+ if (nodeToRelocate.getAttribute("slot") === null && slotName === "") {
283
+ return true;
284
+ }
285
+ if (nodeToRelocate.getAttribute("slot") === slotName) {
286
+ return true;
287
+ }
288
+ return false;
289
+ }
290
+ if (nodeToRelocate["s-sn"] === slotName) {
291
+ return true;
292
+ }
293
+ return slotName === "";
294
+ };
295
+ var getSlotName = (node) => typeof node["s-sn"] === "string" ? node["s-sn"] : node.nodeType === 1 && node.getAttribute("slot") || void 0;
296
+ function patchSlotNode(node) {
297
+ if (node.assignedElements || node.assignedNodes || !node["s-sr"]) return;
298
+ const assignedFactory = (elementsOnly) => (function(opts) {
299
+ const toReturn = [];
300
+ const slotName = this["s-sn"];
301
+ if (opts == null ? void 0 : opts.flatten) {
302
+ console.error(`
303
+ Flattening is not supported for Stencil non-shadow slots.
304
+ You can use \`.childNodes\` to nested slot fallback content.
305
+ If you have a particular use case, please open an issue on the Stencil repo.
306
+ `);
307
+ }
308
+ const parent = this["s-cr"].parentElement;
309
+ const slottedNodes = parent.__childNodes ? parent.childNodes : getSlottedChildNodes(parent.childNodes);
310
+ slottedNodes.forEach((n) => {
311
+ if (slotName === getSlotName(n)) {
312
+ toReturn.push(n);
313
+ }
314
+ });
315
+ if (elementsOnly) {
316
+ return toReturn.filter((n) => n.nodeType === 1 /* ElementNode */);
317
+ }
318
+ return toReturn;
319
+ }).bind(node);
320
+ node.assignedElements = assignedFactory(true);
321
+ node.assignedNodes = assignedFactory(false);
322
+ }
323
+ function internalCall(node, method) {
324
+ if ("__" + method in node) {
325
+ const toReturn = node["__" + method];
326
+ if (typeof toReturn !== "function") return toReturn;
327
+ return toReturn.bind(node);
328
+ } else {
329
+ if (typeof node[method] !== "function") return node[method];
330
+ return node[method].bind(node);
331
+ }
332
+ }
227
333
  var createTime = (fnName, tagName = "") => {
228
334
  {
229
335
  return () => {
@@ -241,6 +347,7 @@ var uniqueTime = (key, measureText) => {
241
347
  var h = (nodeName, vnodeData, ...children) => {
242
348
  let child = null;
243
349
  let key = null;
350
+ let slotName = null;
244
351
  let simple = false;
245
352
  let lastSimple = false;
246
353
  const vNodeChildren = [];
@@ -267,6 +374,9 @@ var h = (nodeName, vnodeData, ...children) => {
267
374
  if (vnodeData.key) {
268
375
  key = vnodeData.key;
269
376
  }
377
+ if (vnodeData.name) {
378
+ slotName = vnodeData.name;
379
+ }
270
380
  {
271
381
  const classData = vnodeData.className || vnodeData.class;
272
382
  if (classData) {
@@ -282,6 +392,9 @@ var h = (nodeName, vnodeData, ...children) => {
282
392
  {
283
393
  vnode.$key$ = key;
284
394
  }
395
+ {
396
+ vnode.$name$ = slotName;
397
+ }
285
398
  return vnode;
286
399
  };
287
400
  var newVNode = (tag, text) => {
@@ -298,6 +411,9 @@ var newVNode = (tag, text) => {
298
411
  {
299
412
  vnode.$key$ = null;
300
413
  }
414
+ {
415
+ vnode.$name$ = null;
416
+ }
301
417
  return vnode;
302
418
  };
303
419
  var Host = {};
@@ -590,15 +706,41 @@ function sortedAttrNames(attrNames) {
590
706
  attrNames
591
707
  );
592
708
  }
709
+ var contentRef;
593
710
  var hostTagName;
711
+ var useNativeShadowDom = false;
712
+ var checkSlotFallbackVisibility = false;
713
+ var checkSlotRelocate = false;
594
714
  var isSvgMode = false;
595
715
  var createElm = (oldParentVNode, newParentVNode, childIndex) => {
716
+ var _a;
596
717
  const newVNode2 = newParentVNode.$children$[childIndex];
597
718
  let i2 = 0;
598
719
  let elm;
599
720
  let childNode;
721
+ let oldVNode;
722
+ if (!useNativeShadowDom) {
723
+ checkSlotRelocate = true;
724
+ if (newVNode2.$tag$ === "slot") {
725
+ newVNode2.$flags$ |= newVNode2.$children$ ? (
726
+ // slot element has fallback content
727
+ // still create an element that "mocks" the slot element
728
+ 2 /* isSlotFallback */
729
+ ) : (
730
+ // slot element does not have fallback content
731
+ // create an html comment we'll use to always reference
732
+ // where actual slot content should sit next to
733
+ 1 /* isSlotReference */
734
+ );
735
+ }
736
+ }
600
737
  if (newVNode2.$text$ !== null) {
601
738
  elm = newVNode2.$elm$ = win.document.createTextNode(newVNode2.$text$);
739
+ } else if (newVNode2.$flags$ & 1 /* isSlotReference */) {
740
+ elm = newVNode2.$elm$ = slotReferenceDebugNode(newVNode2) ;
741
+ {
742
+ updateElement(null, newVNode2, isSvgMode);
743
+ }
602
744
  } else {
603
745
  if (!win.document) {
604
746
  throw new Error(
@@ -606,7 +748,7 @@ var createElm = (oldParentVNode, newParentVNode, childIndex) => {
606
748
  );
607
749
  }
608
750
  elm = newVNode2.$elm$ = win.document.createElement(
609
- newVNode2.$tag$
751
+ !useNativeShadowDom && BUILD.slotRelocation && newVNode2.$flags$ & 2 /* isSlotFallback */ ? "slot-fb" : newVNode2.$tag$
610
752
  );
611
753
  {
612
754
  updateElement(null, newVNode2, isSvgMode);
@@ -621,10 +763,43 @@ var createElm = (oldParentVNode, newParentVNode, childIndex) => {
621
763
  }
622
764
  }
623
765
  elm["s-hn"] = hostTagName;
766
+ {
767
+ if (newVNode2.$flags$ & (2 /* isSlotFallback */ | 1 /* isSlotReference */)) {
768
+ elm["s-sr"] = true;
769
+ elm["s-cr"] = contentRef;
770
+ elm["s-sn"] = newVNode2.$name$ || "";
771
+ elm["s-rf"] = (_a = newVNode2.$attrs$) == null ? void 0 : _a.ref;
772
+ patchSlotNode(elm);
773
+ oldVNode = oldParentVNode && oldParentVNode.$children$ && oldParentVNode.$children$[childIndex];
774
+ if (oldVNode && oldVNode.$tag$ === newVNode2.$tag$ && oldParentVNode.$elm$) {
775
+ {
776
+ putBackInOriginalLocation(oldParentVNode.$elm$, false);
777
+ }
778
+ }
779
+ }
780
+ }
624
781
  return elm;
625
782
  };
783
+ var putBackInOriginalLocation = (parentElm, recursive) => {
784
+ plt.$flags$ |= 1 /* isTmpDisconnected */;
785
+ const oldSlotChildNodes = Array.from(parentElm.__childNodes || parentElm.childNodes);
786
+ for (let i2 = oldSlotChildNodes.length - 1; i2 >= 0; i2--) {
787
+ const childNode = oldSlotChildNodes[i2];
788
+ if (childNode["s-hn"] !== hostTagName && childNode["s-ol"]) {
789
+ insertBefore(referenceNode(childNode).parentNode, childNode, referenceNode(childNode));
790
+ childNode["s-ol"].remove();
791
+ childNode["s-ol"] = void 0;
792
+ childNode["s-sh"] = void 0;
793
+ checkSlotRelocate = true;
794
+ }
795
+ if (recursive) {
796
+ putBackInOriginalLocation(childNode, recursive);
797
+ }
798
+ }
799
+ plt.$flags$ &= -2 /* isTmpDisconnected */;
800
+ };
626
801
  var addVnodes = (parentElm, before, parentVNode, vnodes, startIdx, endIdx) => {
627
- let containerElm = parentElm;
802
+ let containerElm = parentElm["s-cr"] && parentElm["s-cr"].parentNode || parentElm;
628
803
  let childNode;
629
804
  if (containerElm.shadowRoot && containerElm.tagName === hostTagName) {
630
805
  containerElm = containerElm.shadowRoot;
@@ -634,7 +809,7 @@ var addVnodes = (parentElm, before, parentVNode, vnodes, startIdx, endIdx) => {
634
809
  childNode = createElm(null, parentVNode, startIdx);
635
810
  if (childNode) {
636
811
  vnodes[startIdx].$elm$ = childNode;
637
- insertBefore(containerElm, childNode, before);
812
+ insertBefore(containerElm, childNode, referenceNode(before) );
638
813
  }
639
814
  }
640
815
  }
@@ -646,6 +821,14 @@ var removeVnodes = (vnodes, startIdx, endIdx) => {
646
821
  const elm = vnode.$elm$;
647
822
  nullifyVNodeRefs(vnode);
648
823
  if (elm) {
824
+ {
825
+ checkSlotFallbackVisibility = true;
826
+ if (elm["s-ol"]) {
827
+ elm["s-ol"].remove();
828
+ } else {
829
+ putBackInOriginalLocation(elm, true);
830
+ }
831
+ }
649
832
  elm.remove();
650
833
  }
651
834
  }
@@ -682,11 +865,17 @@ var updateChildren = (parentElm, oldCh, newVNode2, newCh, isInitialRender = fals
682
865
  oldEndVnode = oldCh[--oldEndIdx];
683
866
  newEndVnode = newCh[--newEndIdx];
684
867
  } else if (isSameVnode(oldStartVnode, newEndVnode, isInitialRender)) {
868
+ if ((oldStartVnode.$tag$ === "slot" || newEndVnode.$tag$ === "slot")) {
869
+ putBackInOriginalLocation(oldStartVnode.$elm$.parentNode, false);
870
+ }
685
871
  patch(oldStartVnode, newEndVnode, isInitialRender);
686
872
  insertBefore(parentElm, oldStartVnode.$elm$, oldEndVnode.$elm$.nextSibling);
687
873
  oldStartVnode = oldCh[++oldStartIdx];
688
874
  newEndVnode = newCh[--newEndIdx];
689
875
  } else if (isSameVnode(oldEndVnode, newStartVnode, isInitialRender)) {
876
+ if ((oldStartVnode.$tag$ === "slot" || newEndVnode.$tag$ === "slot")) {
877
+ putBackInOriginalLocation(oldEndVnode.$elm$.parentNode, false);
878
+ }
690
879
  patch(oldEndVnode, newStartVnode, isInitialRender);
691
880
  insertBefore(parentElm, oldEndVnode.$elm$, oldStartVnode.$elm$);
692
881
  oldEndVnode = oldCh[--oldEndIdx];
@@ -717,7 +906,11 @@ var updateChildren = (parentElm, oldCh, newVNode2, newCh, isInitialRender = fals
717
906
  }
718
907
  if (node) {
719
908
  {
720
- insertBefore(oldStartVnode.$elm$.parentNode, node, oldStartVnode.$elm$);
909
+ insertBefore(
910
+ referenceNode(oldStartVnode.$elm$).parentNode,
911
+ node,
912
+ referenceNode(oldStartVnode.$elm$)
913
+ );
721
914
  }
722
915
  }
723
916
  }
@@ -737,6 +930,9 @@ var updateChildren = (parentElm, oldCh, newVNode2, newCh, isInitialRender = fals
737
930
  };
738
931
  var isSameVnode = (leftVNode, rightVNode, isInitialRender = false) => {
739
932
  if (leftVNode.$tag$ === rightVNode.$tag$) {
933
+ if (leftVNode.$tag$ === "slot") {
934
+ return leftVNode.$name$ === rightVNode.$name$;
935
+ }
740
936
  if (!isInitialRender) {
741
937
  return leftVNode.$key$ === rightVNode.$key$;
742
938
  }
@@ -747,11 +943,13 @@ var isSameVnode = (leftVNode, rightVNode, isInitialRender = false) => {
747
943
  }
748
944
  return false;
749
945
  };
946
+ var referenceNode = (node) => node && node["s-ol"] || node;
750
947
  var patch = (oldVNode, newVNode2, isInitialRender = false) => {
751
948
  const elm = newVNode2.$elm$ = oldVNode.$elm$;
752
949
  const oldChildren = oldVNode.$children$;
753
950
  const newChildren = newVNode2.$children$;
754
951
  const text = newVNode2.$text$;
952
+ let defaultHolder;
755
953
  if (text === null) {
756
954
  {
757
955
  updateElement(oldVNode, newVNode2, isSvgMode);
@@ -769,10 +967,62 @@ var patch = (oldVNode, newVNode2, isInitialRender = false) => {
769
967
  ) {
770
968
  removeVnodes(oldChildren, 0, oldChildren.length - 1);
771
969
  }
970
+ } else if ((defaultHolder = elm["s-cr"])) {
971
+ defaultHolder.parentNode.textContent = text;
772
972
  } else if (oldVNode.$text$ !== text) {
773
973
  elm.data = text;
774
974
  }
775
975
  };
976
+ var relocateNodes = [];
977
+ var markSlotContentForRelocation = (elm) => {
978
+ let node;
979
+ let hostContentNodes;
980
+ let j;
981
+ const children = elm.__childNodes || elm.childNodes;
982
+ for (const childNode of children) {
983
+ if (childNode["s-sr"] && (node = childNode["s-cr"]) && node.parentNode) {
984
+ hostContentNodes = node.parentNode.__childNodes || node.parentNode.childNodes;
985
+ const slotName = childNode["s-sn"];
986
+ for (j = hostContentNodes.length - 1; j >= 0; j--) {
987
+ node = hostContentNodes[j];
988
+ if (!node["s-cn"] && !node["s-nr"] && node["s-hn"] !== childNode["s-hn"] && (true)) {
989
+ if (isNodeLocatedInSlot(node, slotName)) {
990
+ let relocateNodeData = relocateNodes.find((r) => r.$nodeToRelocate$ === node);
991
+ checkSlotFallbackVisibility = true;
992
+ node["s-sn"] = node["s-sn"] || slotName;
993
+ if (relocateNodeData) {
994
+ relocateNodeData.$nodeToRelocate$["s-sh"] = childNode["s-hn"];
995
+ relocateNodeData.$slotRefNode$ = childNode;
996
+ } else {
997
+ node["s-sh"] = childNode["s-hn"];
998
+ relocateNodes.push({
999
+ $slotRefNode$: childNode,
1000
+ $nodeToRelocate$: node
1001
+ });
1002
+ }
1003
+ if (node["s-sr"]) {
1004
+ relocateNodes.map((relocateNode) => {
1005
+ if (isNodeLocatedInSlot(relocateNode.$nodeToRelocate$, node["s-sn"])) {
1006
+ relocateNodeData = relocateNodes.find((r) => r.$nodeToRelocate$ === node);
1007
+ if (relocateNodeData && !relocateNode.$slotRefNode$) {
1008
+ relocateNode.$slotRefNode$ = relocateNodeData.$slotRefNode$;
1009
+ }
1010
+ }
1011
+ });
1012
+ }
1013
+ } else if (!relocateNodes.some((r) => r.$nodeToRelocate$ === node)) {
1014
+ relocateNodes.push({
1015
+ $nodeToRelocate$: node
1016
+ });
1017
+ }
1018
+ }
1019
+ }
1020
+ }
1021
+ if (childNode.nodeType === 1 /* ElementNode */) {
1022
+ markSlotContentForRelocation(childNode);
1023
+ }
1024
+ }
1025
+ };
776
1026
  var nullifyVNodeRefs = (vNode) => {
777
1027
  {
778
1028
  vNode.$attrs$ && vNode.$attrs$.ref && vNode.$attrs$.ref(null);
@@ -785,6 +1035,7 @@ var insertBefore = (parent, newNode, reference) => {
785
1035
  }
786
1036
  };
787
1037
  var renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
1038
+ var _a, _b, _c, _d;
788
1039
  const hostElm = hostRef.$hostElement$;
789
1040
  const cmpMeta = hostRef.$cmpMeta$;
790
1041
  const oldVNode = hostRef.$vnode$ || newVNode(null, null);
@@ -808,7 +1059,90 @@ var renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
808
1059
  rootVnode.$flags$ |= 4 /* isHost */;
809
1060
  hostRef.$vnode$ = rootVnode;
810
1061
  rootVnode.$elm$ = oldVNode.$elm$ = hostElm.shadowRoot || hostElm ;
1062
+ useNativeShadowDom = !!(cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */) && !(cmpMeta.$flags$ & 128 /* shadowNeedsScopedCss */);
1063
+ {
1064
+ contentRef = hostElm["s-cr"];
1065
+ checkSlotFallbackVisibility = false;
1066
+ }
811
1067
  patch(oldVNode, rootVnode, isInitialLoad);
1068
+ {
1069
+ plt.$flags$ |= 1 /* isTmpDisconnected */;
1070
+ if (checkSlotRelocate) {
1071
+ markSlotContentForRelocation(rootVnode.$elm$);
1072
+ for (const relocateData of relocateNodes) {
1073
+ const nodeToRelocate = relocateData.$nodeToRelocate$;
1074
+ if (!nodeToRelocate["s-ol"] && win.document) {
1075
+ const orgLocationNode = originalLocationDebugNode(nodeToRelocate) ;
1076
+ orgLocationNode["s-nr"] = nodeToRelocate;
1077
+ insertBefore(nodeToRelocate.parentNode, nodeToRelocate["s-ol"] = orgLocationNode, nodeToRelocate);
1078
+ }
1079
+ }
1080
+ for (const relocateData of relocateNodes) {
1081
+ const nodeToRelocate = relocateData.$nodeToRelocate$;
1082
+ const slotRefNode = relocateData.$slotRefNode$;
1083
+ if (slotRefNode) {
1084
+ const parentNodeRef = slotRefNode.parentNode;
1085
+ let insertBeforeNode = slotRefNode.nextSibling;
1086
+ {
1087
+ let orgLocationNode = (_a = nodeToRelocate["s-ol"]) == null ? void 0 : _a.previousSibling;
1088
+ while (orgLocationNode) {
1089
+ let refNode = (_b = orgLocationNode["s-nr"]) != null ? _b : null;
1090
+ if (refNode && refNode["s-sn"] === nodeToRelocate["s-sn"] && parentNodeRef === (refNode.__parentNode || refNode.parentNode)) {
1091
+ refNode = refNode.nextSibling;
1092
+ while (refNode === nodeToRelocate || (refNode == null ? void 0 : refNode["s-sr"])) {
1093
+ refNode = refNode == null ? void 0 : refNode.nextSibling;
1094
+ }
1095
+ if (!refNode || !refNode["s-nr"]) {
1096
+ insertBeforeNode = refNode;
1097
+ break;
1098
+ }
1099
+ }
1100
+ orgLocationNode = orgLocationNode.previousSibling;
1101
+ }
1102
+ }
1103
+ const parent = nodeToRelocate.__parentNode || nodeToRelocate.parentNode;
1104
+ const nextSibling = nodeToRelocate.__nextSibling || nodeToRelocate.nextSibling;
1105
+ if (!insertBeforeNode && parentNodeRef !== parent || nextSibling !== insertBeforeNode) {
1106
+ if (nodeToRelocate !== insertBeforeNode) {
1107
+ if (!nodeToRelocate["s-hn"] && nodeToRelocate["s-ol"]) {
1108
+ nodeToRelocate["s-hn"] = nodeToRelocate["s-ol"].parentNode.nodeName;
1109
+ }
1110
+ insertBefore(parentNodeRef, nodeToRelocate, insertBeforeNode);
1111
+ if (nodeToRelocate.nodeType === 1 /* ElementNode */ && nodeToRelocate.tagName !== "SLOT-FB") {
1112
+ nodeToRelocate.hidden = (_c = nodeToRelocate["s-ih"]) != null ? _c : false;
1113
+ }
1114
+ }
1115
+ }
1116
+ nodeToRelocate && typeof slotRefNode["s-rf"] === "function" && slotRefNode["s-rf"](slotRefNode);
1117
+ } else {
1118
+ if (nodeToRelocate.nodeType === 1 /* ElementNode */) {
1119
+ if (isInitialLoad) {
1120
+ nodeToRelocate["s-ih"] = (_d = nodeToRelocate.hidden) != null ? _d : false;
1121
+ }
1122
+ nodeToRelocate.hidden = true;
1123
+ }
1124
+ }
1125
+ }
1126
+ }
1127
+ if (checkSlotFallbackVisibility) {
1128
+ updateFallbackSlotVisibility(rootVnode.$elm$);
1129
+ }
1130
+ plt.$flags$ &= -2 /* isTmpDisconnected */;
1131
+ relocateNodes.length = 0;
1132
+ }
1133
+ contentRef = void 0;
1134
+ };
1135
+ var slotReferenceDebugNode = (slotVNode) => {
1136
+ var _a;
1137
+ return (_a = win.document) == null ? void 0 : _a.createComment(
1138
+ `<slot${slotVNode.$name$ ? ' name="' + slotVNode.$name$ + '"' : ""}> (host=${hostTagName.toLowerCase()})`
1139
+ );
1140
+ };
1141
+ var originalLocationDebugNode = (nodeToRelocate) => {
1142
+ var _a;
1143
+ return (_a = win.document) == null ? void 0 : _a.createComment(
1144
+ `org-location for ` + (nodeToRelocate.localName ? `<${nodeToRelocate.localName}> (host=${nodeToRelocate["s-hn"]})` : `[${nodeToRelocate.textContent}]`)
1145
+ );
812
1146
  };
813
1147
 
814
1148
  // src/runtime/update-component.ts
@@ -1249,6 +1583,12 @@ var connectedCallback = (elm) => {
1249
1583
  const endConnected = createTime("connectedCallback", cmpMeta.$tagName$);
1250
1584
  if (!(hostRef.$flags$ & 1 /* hasConnected */)) {
1251
1585
  hostRef.$flags$ |= 1 /* hasConnected */;
1586
+ {
1587
+ if (// TODO(STENCIL-854): Remove code related to legacy shadowDomShim field
1588
+ cmpMeta.$flags$ & (4 /* hasSlotRelocation */ | 8 /* needsShadowDomShim */)) {
1589
+ setContentReference(elm);
1590
+ }
1591
+ }
1252
1592
  {
1253
1593
  let ancestorComponent = elm;
1254
1594
  while (ancestorComponent = ancestorComponent.parentNode || ancestorComponent.host) {
@@ -1281,6 +1621,16 @@ var connectedCallback = (elm) => {
1281
1621
  endConnected();
1282
1622
  }
1283
1623
  };
1624
+ var setContentReference = (elm) => {
1625
+ if (!win.document) {
1626
+ return;
1627
+ }
1628
+ const contentRefElm = elm["s-cr"] = win.document.createComment(
1629
+ `content-ref (host=${elm.localName})`
1630
+ );
1631
+ contentRefElm["s-cn"] = true;
1632
+ insertBefore(elm, contentRefElm, elm.firstChild);
1633
+ };
1284
1634
  var disconnectInstance = (instance, elm) => {
1285
1635
  {
1286
1636
  safeCall(instance, "disconnectedCallback", void 0, elm || instance);
@@ -1496,6 +1846,6 @@ exports.h = h;
1496
1846
  exports.promiseResolve = promiseResolve;
1497
1847
  exports.registerInstance = registerInstance;
1498
1848
  exports.setNonce = setNonce;
1499
- //# sourceMappingURL=index-C19aFtyq.js.map
1849
+ //# sourceMappingURL=index-CHZXBkfx.js.map
1500
1850
 
1501
- //# sourceMappingURL=index-C19aFtyq.js.map
1851
+ //# sourceMappingURL=index-CHZXBkfx.js.map