@sula-tech/webcomponents 0.14.1 → 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 (126) 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_21.cjs.entry.js → sula-avatar_28.cjs.entry.js} +2103 -23
  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 +8 -1
  8. package/dist/collection/components/sula-dropdown/sula-dropdown.js +6 -6
  9. package/dist/collection/components/sula-dropdown/sula-dropdown.js.map +1 -1
  10. package/dist/collection/components/sula-icon/sula-icon.css +1 -1
  11. package/dist/collection/components/sula-table/model/sula-table.model.js +8 -0
  12. package/dist/collection/components/sula-table/model/sula-table.model.js.map +1 -0
  13. package/dist/collection/components/sula-table/sula-table.css +1 -0
  14. package/dist/collection/components/sula-table/sula-table.js +111 -0
  15. package/dist/collection/components/sula-table/sula-table.js.map +1 -0
  16. package/dist/collection/components/sula-table/sula-table.stories.js +298 -0
  17. package/dist/collection/components/sula-table/sula-table.stories.js.map +1 -0
  18. package/dist/collection/components/sula-table-body/sula-table-body.css +1 -0
  19. package/dist/collection/components/sula-table-body/sula-table-body.js +23 -0
  20. package/dist/collection/components/sula-table-body/sula-table-body.js.map +1 -0
  21. package/dist/collection/components/sula-table-cell/sula-table-cell.css +1 -0
  22. package/dist/collection/components/sula-table-cell/sula-table-cell.js +34 -0
  23. package/dist/collection/components/sula-table-cell/sula-table-cell.js.map +1 -0
  24. package/dist/collection/components/sula-table-head-cell/sula-table-head-cell.css +1 -0
  25. package/dist/collection/components/sula-table-head-cell/sula-table-head-cell.js +34 -0
  26. package/dist/collection/components/sula-table-head-cell/sula-table-head-cell.js.map +1 -0
  27. package/dist/collection/components/sula-table-header/sula-table-header.css +1 -0
  28. package/dist/collection/components/sula-table-header/sula-table-header.js +23 -0
  29. package/dist/collection/components/sula-table-header/sula-table-header.js.map +1 -0
  30. package/dist/collection/components/sula-table-row/sula-table-row.css +1 -0
  31. package/dist/collection/components/sula-table-row/sula-table-row.js +23 -0
  32. package/dist/collection/components/sula-table-row/sula-table-row.js.map +1 -0
  33. package/dist/collection/components/sula-tag/sula-tag.js +3 -3
  34. package/dist/collection/components/sula-textarea/sula-textarea.js +6 -6
  35. package/dist/collection/components/sula-textfield/sula-textfield.js +2 -2
  36. package/dist/collection/components/sula-tiles/sula-tiles.js +1 -1
  37. package/dist/collection/components/sula-timeline-list/sula-timeline-list.js +1 -1
  38. package/dist/collection/components/sula-tooltip/model/sula-tooltip.model.js +13 -0
  39. package/dist/collection/components/sula-tooltip/model/sula-tooltip.model.js.map +1 -0
  40. package/dist/collection/components/sula-tooltip/sula-tooltip.css +1 -0
  41. package/dist/collection/components/sula-tooltip/sula-tooltip.js +218 -0
  42. package/dist/collection/components/sula-tooltip/sula-tooltip.js.map +1 -0
  43. package/dist/collection/components/sula-tooltip/sula-tooltip.stories.js +179 -0
  44. package/dist/collection/components/sula-tooltip/sula-tooltip.stories.js.map +1 -0
  45. package/dist/collection/utils/replace-host-with-rendered-element.js +24 -0
  46. package/dist/collection/utils/replace-host-with-rendered-element.js.map +1 -0
  47. package/dist/components/index.js +355 -5
  48. package/dist/components/index.js.map +1 -1
  49. package/dist/components/{p-tr2oA4pB.js → p-BoXZrDgj.js} +3 -3
  50. package/dist/components/{p-tr2oA4pB.js.map → p-BoXZrDgj.js.map} +1 -1
  51. package/dist/components/p-CQ1I0UIz.js +12 -0
  52. package/dist/components/p-CQ1I0UIz.js.map +1 -0
  53. package/dist/components/p-DrIWCpI3.js +28 -0
  54. package/dist/components/p-DrIWCpI3.js.map +1 -0
  55. package/dist/components/{p-BlyFOqde.js → p-ExcZQ46X.js} +3 -3
  56. package/dist/components/{p-BlyFOqde.js.map → p-ExcZQ46X.js.map} +1 -1
  57. package/dist/components/sula-avatar.js +1 -1
  58. package/dist/components/sula-badge.js +1 -1
  59. package/dist/components/sula-breadcrumb.js +1 -1
  60. package/dist/components/sula-button.js +1 -1
  61. package/dist/components/sula-checkbox.js +1 -1
  62. package/dist/components/sula-chip.js +1 -1
  63. package/dist/components/sula-dropdown.js +7 -7
  64. package/dist/components/sula-dropdown.js.map +1 -1
  65. package/dist/components/sula-icon.js +1 -1
  66. package/dist/components/sula-modal.js +2 -2
  67. package/dist/components/sula-progress-bar.js +1 -1
  68. package/dist/components/sula-search-bar.js +1 -1
  69. package/dist/components/sula-segmented-control.js +1 -1
  70. package/dist/components/sula-table-body.d.ts +11 -0
  71. package/dist/components/sula-table-body.js +41 -0
  72. package/dist/components/sula-table-body.js.map +1 -0
  73. package/dist/components/sula-table-cell.d.ts +11 -0
  74. package/dist/components/sula-table-cell.js +52 -0
  75. package/dist/components/sula-table-cell.js.map +1 -0
  76. package/dist/components/sula-table-head-cell.d.ts +11 -0
  77. package/dist/components/sula-table-head-cell.js +52 -0
  78. package/dist/components/sula-table-head-cell.js.map +1 -0
  79. package/dist/components/sula-table-header.d.ts +11 -0
  80. package/dist/components/sula-table-header.js +41 -0
  81. package/dist/components/sula-table-header.js.map +1 -0
  82. package/dist/components/sula-table-row.d.ts +11 -0
  83. package/dist/components/sula-table-row.js +41 -0
  84. package/dist/components/sula-table-row.js.map +1 -0
  85. package/dist/components/sula-table.d.ts +11 -0
  86. package/dist/components/sula-table.js +61 -0
  87. package/dist/components/sula-table.js.map +1 -0
  88. package/dist/components/sula-tag.js +4 -4
  89. package/dist/components/sula-textarea.js +6 -6
  90. package/dist/components/sula-textfield.js +3 -3
  91. package/dist/components/sula-tiles.js +2 -2
  92. package/dist/components/sula-timeline-list.js +2 -2
  93. package/dist/components/sula-tooltip.d.ts +11 -0
  94. package/dist/components/sula-tooltip.js +1946 -0
  95. package/dist/components/sula-tooltip.js.map +1 -0
  96. package/dist/esm/{index-CwIBTB8E.js → index-CwrCjm3e.js} +357 -7
  97. package/dist/esm/index-CwrCjm3e.js.map +1 -0
  98. package/dist/esm/loader.js +3 -3
  99. package/dist/esm/{sula-avatar_21.entry.js → sula-avatar_28.entry.js} +2097 -24
  100. package/dist/esm/sula-avatar_28.entry.js.map +1 -0
  101. package/dist/esm/webcomponents.js +3 -3
  102. package/dist/types/components/sula-table/model/sula-table.model.d.ts +6 -0
  103. package/dist/types/components/sula-table/sula-table.d.ts +16 -0
  104. package/dist/types/components/sula-table/sula-table.stories.d.ts +69 -0
  105. package/dist/types/components/sula-table-body/sula-table-body.d.ts +5 -0
  106. package/dist/types/components/sula-table-cell/sula-table-cell.d.ts +6 -0
  107. package/dist/types/components/sula-table-head-cell/sula-table-head-cell.d.ts +6 -0
  108. package/dist/types/components/sula-table-header/sula-table-header.d.ts +5 -0
  109. package/dist/types/components/sula-table-row/sula-table-row.d.ts +5 -0
  110. package/dist/types/components/sula-tooltip/model/sula-tooltip.model.d.ts +10 -0
  111. package/dist/types/components/sula-tooltip/sula-tooltip.d.ts +40 -0
  112. package/dist/types/components/sula-tooltip/sula-tooltip.stories.d.ts +105 -0
  113. package/dist/types/components.d.ts +163 -0
  114. package/dist/types/utils/replace-host-with-rendered-element.d.ts +1 -0
  115. package/dist/webcomponents/{p-a7141407.entry.js → p-8472342b.entry.js} +3258 -1317
  116. package/dist/webcomponents/p-8472342b.entry.js.map +1 -0
  117. package/dist/webcomponents/{p-CwIBTB8E.js → p-CwrCjm3e.js} +504 -150
  118. package/dist/webcomponents/p-CwrCjm3e.js.map +1 -0
  119. package/dist/webcomponents/webcomponents.esm.js +14 -4
  120. package/package.json +2 -1
  121. package/dist/cjs/index-C19aFtyq.js.map +0 -1
  122. package/dist/cjs/sula-avatar_21.cjs.entry.js.map +0 -1
  123. package/dist/esm/index-CwIBTB8E.js.map +0 -1
  124. package/dist/esm/sula-avatar_21.entry.js.map +0 -1
  125. package/dist/webcomponents/p-CwIBTB8E.js.map +0 -1
  126. package/dist/webcomponents/p-a7141407.entry.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  const NAMESPACE = 'webcomponents';
2
- const BUILD = /* webcomponents */ { hydratedSelectorName: "hydrated", lazyLoad: true, updatable: true};
2
+ const BUILD = /* webcomponents */ { hydratedSelectorName: "hydrated", lazyLoad: true, slotRelocation: true, updatable: true};
3
3
 
4
4
  const globalScripts = () => {};
5
5
  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}";
@@ -222,6 +222,112 @@ function createShadowRoot(cmpMeta) {
222
222
  shadowRoot.adoptedStyleSheets.push(sheet);
223
223
  }
224
224
  }
225
+ var updateFallbackSlotVisibility = (elm) => {
226
+ const childNodes = internalCall(elm, "childNodes");
227
+ if (elm.tagName && elm.tagName.includes("-") && elm["s-cr"] && elm.tagName !== "SLOT-FB") {
228
+ getHostSlotNodes(childNodes, elm.tagName).forEach((slotNode) => {
229
+ if (slotNode.nodeType === 1 /* ElementNode */ && slotNode.tagName === "SLOT-FB") {
230
+ if (getSlotChildSiblings(slotNode, getSlotName(slotNode), false).length) {
231
+ slotNode.hidden = true;
232
+ } else {
233
+ slotNode.hidden = false;
234
+ }
235
+ }
236
+ });
237
+ }
238
+ let i2 = 0;
239
+ for (i2 = 0; i2 < childNodes.length; i2++) {
240
+ const childNode = childNodes[i2];
241
+ if (childNode.nodeType === 1 /* ElementNode */ && internalCall(childNode, "childNodes").length) {
242
+ updateFallbackSlotVisibility(childNode);
243
+ }
244
+ }
245
+ };
246
+ var getSlottedChildNodes = (childNodes) => {
247
+ const result = [];
248
+ for (let i2 = 0; i2 < childNodes.length; i2++) {
249
+ const slottedNode = childNodes[i2]["s-nr"] || void 0;
250
+ if (slottedNode && slottedNode.isConnected) {
251
+ result.push(slottedNode);
252
+ }
253
+ }
254
+ return result;
255
+ };
256
+ function getHostSlotNodes(childNodes, hostName, slotName) {
257
+ let i2 = 0;
258
+ let slottedNodes = [];
259
+ let childNode;
260
+ for (; i2 < childNodes.length; i2++) {
261
+ childNode = childNodes[i2];
262
+ if (childNode["s-sr"] && (!hostName || childNode["s-hn"] === hostName) && (slotName === void 0)) {
263
+ slottedNodes.push(childNode);
264
+ }
265
+ slottedNodes = [...slottedNodes, ...getHostSlotNodes(childNode.childNodes, hostName, slotName)];
266
+ }
267
+ return slottedNodes;
268
+ }
269
+ var getSlotChildSiblings = (slot, slotName, includeSlot = true) => {
270
+ const childNodes = [];
271
+ if (includeSlot && slot["s-sr"] || !slot["s-sr"]) childNodes.push(slot);
272
+ let node = slot;
273
+ while (node = node.nextSibling) {
274
+ if (getSlotName(node) === slotName && (includeSlot || !node["s-sr"])) childNodes.push(node);
275
+ }
276
+ return childNodes;
277
+ };
278
+ var isNodeLocatedInSlot = (nodeToRelocate, slotName) => {
279
+ if (nodeToRelocate.nodeType === 1 /* ElementNode */) {
280
+ if (nodeToRelocate.getAttribute("slot") === null && slotName === "") {
281
+ return true;
282
+ }
283
+ if (nodeToRelocate.getAttribute("slot") === slotName) {
284
+ return true;
285
+ }
286
+ return false;
287
+ }
288
+ if (nodeToRelocate["s-sn"] === slotName) {
289
+ return true;
290
+ }
291
+ return slotName === "";
292
+ };
293
+ var getSlotName = (node) => typeof node["s-sn"] === "string" ? node["s-sn"] : node.nodeType === 1 && node.getAttribute("slot") || void 0;
294
+ function patchSlotNode(node) {
295
+ if (node.assignedElements || node.assignedNodes || !node["s-sr"]) return;
296
+ const assignedFactory = (elementsOnly) => (function(opts) {
297
+ const toReturn = [];
298
+ const slotName = this["s-sn"];
299
+ if (opts == null ? void 0 : opts.flatten) {
300
+ console.error(`
301
+ Flattening is not supported for Stencil non-shadow slots.
302
+ You can use \`.childNodes\` to nested slot fallback content.
303
+ If you have a particular use case, please open an issue on the Stencil repo.
304
+ `);
305
+ }
306
+ const parent = this["s-cr"].parentElement;
307
+ const slottedNodes = parent.__childNodes ? parent.childNodes : getSlottedChildNodes(parent.childNodes);
308
+ slottedNodes.forEach((n) => {
309
+ if (slotName === getSlotName(n)) {
310
+ toReturn.push(n);
311
+ }
312
+ });
313
+ if (elementsOnly) {
314
+ return toReturn.filter((n) => n.nodeType === 1 /* ElementNode */);
315
+ }
316
+ return toReturn;
317
+ }).bind(node);
318
+ node.assignedElements = assignedFactory(true);
319
+ node.assignedNodes = assignedFactory(false);
320
+ }
321
+ function internalCall(node, method) {
322
+ if ("__" + method in node) {
323
+ const toReturn = node["__" + method];
324
+ if (typeof toReturn !== "function") return toReturn;
325
+ return toReturn.bind(node);
326
+ } else {
327
+ if (typeof node[method] !== "function") return node[method];
328
+ return node[method].bind(node);
329
+ }
330
+ }
225
331
  var createTime = (fnName, tagName = "") => {
226
332
  {
227
333
  return () => {
@@ -239,6 +345,7 @@ var uniqueTime = (key, measureText) => {
239
345
  var h = (nodeName, vnodeData, ...children) => {
240
346
  let child = null;
241
347
  let key = null;
348
+ let slotName = null;
242
349
  let simple = false;
243
350
  let lastSimple = false;
244
351
  const vNodeChildren = [];
@@ -265,6 +372,9 @@ var h = (nodeName, vnodeData, ...children) => {
265
372
  if (vnodeData.key) {
266
373
  key = vnodeData.key;
267
374
  }
375
+ if (vnodeData.name) {
376
+ slotName = vnodeData.name;
377
+ }
268
378
  {
269
379
  const classData = vnodeData.className || vnodeData.class;
270
380
  if (classData) {
@@ -280,6 +390,9 @@ var h = (nodeName, vnodeData, ...children) => {
280
390
  {
281
391
  vnode.$key$ = key;
282
392
  }
393
+ {
394
+ vnode.$name$ = slotName;
395
+ }
283
396
  return vnode;
284
397
  };
285
398
  var newVNode = (tag, text) => {
@@ -296,6 +409,9 @@ var newVNode = (tag, text) => {
296
409
  {
297
410
  vnode.$key$ = null;
298
411
  }
412
+ {
413
+ vnode.$name$ = null;
414
+ }
299
415
  return vnode;
300
416
  };
301
417
  var Host = {};
@@ -588,15 +704,41 @@ function sortedAttrNames(attrNames) {
588
704
  attrNames
589
705
  );
590
706
  }
707
+ var contentRef;
591
708
  var hostTagName;
709
+ var useNativeShadowDom = false;
710
+ var checkSlotFallbackVisibility = false;
711
+ var checkSlotRelocate = false;
592
712
  var isSvgMode = false;
593
713
  var createElm = (oldParentVNode, newParentVNode, childIndex) => {
714
+ var _a;
594
715
  const newVNode2 = newParentVNode.$children$[childIndex];
595
716
  let i2 = 0;
596
717
  let elm;
597
718
  let childNode;
719
+ let oldVNode;
720
+ if (!useNativeShadowDom) {
721
+ checkSlotRelocate = true;
722
+ if (newVNode2.$tag$ === "slot") {
723
+ newVNode2.$flags$ |= newVNode2.$children$ ? (
724
+ // slot element has fallback content
725
+ // still create an element that "mocks" the slot element
726
+ 2 /* isSlotFallback */
727
+ ) : (
728
+ // slot element does not have fallback content
729
+ // create an html comment we'll use to always reference
730
+ // where actual slot content should sit next to
731
+ 1 /* isSlotReference */
732
+ );
733
+ }
734
+ }
598
735
  if (newVNode2.$text$ !== null) {
599
736
  elm = newVNode2.$elm$ = win.document.createTextNode(newVNode2.$text$);
737
+ } else if (newVNode2.$flags$ & 1 /* isSlotReference */) {
738
+ elm = newVNode2.$elm$ = slotReferenceDebugNode(newVNode2) ;
739
+ {
740
+ updateElement(null, newVNode2, isSvgMode);
741
+ }
600
742
  } else {
601
743
  if (!win.document) {
602
744
  throw new Error(
@@ -604,7 +746,7 @@ var createElm = (oldParentVNode, newParentVNode, childIndex) => {
604
746
  );
605
747
  }
606
748
  elm = newVNode2.$elm$ = win.document.createElement(
607
- newVNode2.$tag$
749
+ !useNativeShadowDom && BUILD.slotRelocation && newVNode2.$flags$ & 2 /* isSlotFallback */ ? "slot-fb" : newVNode2.$tag$
608
750
  );
609
751
  {
610
752
  updateElement(null, newVNode2, isSvgMode);
@@ -619,10 +761,43 @@ var createElm = (oldParentVNode, newParentVNode, childIndex) => {
619
761
  }
620
762
  }
621
763
  elm["s-hn"] = hostTagName;
764
+ {
765
+ if (newVNode2.$flags$ & (2 /* isSlotFallback */ | 1 /* isSlotReference */)) {
766
+ elm["s-sr"] = true;
767
+ elm["s-cr"] = contentRef;
768
+ elm["s-sn"] = newVNode2.$name$ || "";
769
+ elm["s-rf"] = (_a = newVNode2.$attrs$) == null ? void 0 : _a.ref;
770
+ patchSlotNode(elm);
771
+ oldVNode = oldParentVNode && oldParentVNode.$children$ && oldParentVNode.$children$[childIndex];
772
+ if (oldVNode && oldVNode.$tag$ === newVNode2.$tag$ && oldParentVNode.$elm$) {
773
+ {
774
+ putBackInOriginalLocation(oldParentVNode.$elm$, false);
775
+ }
776
+ }
777
+ }
778
+ }
622
779
  return elm;
623
780
  };
781
+ var putBackInOriginalLocation = (parentElm, recursive) => {
782
+ plt.$flags$ |= 1 /* isTmpDisconnected */;
783
+ const oldSlotChildNodes = Array.from(parentElm.__childNodes || parentElm.childNodes);
784
+ for (let i2 = oldSlotChildNodes.length - 1; i2 >= 0; i2--) {
785
+ const childNode = oldSlotChildNodes[i2];
786
+ if (childNode["s-hn"] !== hostTagName && childNode["s-ol"]) {
787
+ insertBefore(referenceNode(childNode).parentNode, childNode, referenceNode(childNode));
788
+ childNode["s-ol"].remove();
789
+ childNode["s-ol"] = void 0;
790
+ childNode["s-sh"] = void 0;
791
+ checkSlotRelocate = true;
792
+ }
793
+ if (recursive) {
794
+ putBackInOriginalLocation(childNode, recursive);
795
+ }
796
+ }
797
+ plt.$flags$ &= -2 /* isTmpDisconnected */;
798
+ };
624
799
  var addVnodes = (parentElm, before, parentVNode, vnodes, startIdx, endIdx) => {
625
- let containerElm = parentElm;
800
+ let containerElm = parentElm["s-cr"] && parentElm["s-cr"].parentNode || parentElm;
626
801
  let childNode;
627
802
  if (containerElm.shadowRoot && containerElm.tagName === hostTagName) {
628
803
  containerElm = containerElm.shadowRoot;
@@ -632,7 +807,7 @@ var addVnodes = (parentElm, before, parentVNode, vnodes, startIdx, endIdx) => {
632
807
  childNode = createElm(null, parentVNode, startIdx);
633
808
  if (childNode) {
634
809
  vnodes[startIdx].$elm$ = childNode;
635
- insertBefore(containerElm, childNode, before);
810
+ insertBefore(containerElm, childNode, referenceNode(before) );
636
811
  }
637
812
  }
638
813
  }
@@ -644,6 +819,14 @@ var removeVnodes = (vnodes, startIdx, endIdx) => {
644
819
  const elm = vnode.$elm$;
645
820
  nullifyVNodeRefs(vnode);
646
821
  if (elm) {
822
+ {
823
+ checkSlotFallbackVisibility = true;
824
+ if (elm["s-ol"]) {
825
+ elm["s-ol"].remove();
826
+ } else {
827
+ putBackInOriginalLocation(elm, true);
828
+ }
829
+ }
647
830
  elm.remove();
648
831
  }
649
832
  }
@@ -680,11 +863,17 @@ var updateChildren = (parentElm, oldCh, newVNode2, newCh, isInitialRender = fals
680
863
  oldEndVnode = oldCh[--oldEndIdx];
681
864
  newEndVnode = newCh[--newEndIdx];
682
865
  } else if (isSameVnode(oldStartVnode, newEndVnode, isInitialRender)) {
866
+ if ((oldStartVnode.$tag$ === "slot" || newEndVnode.$tag$ === "slot")) {
867
+ putBackInOriginalLocation(oldStartVnode.$elm$.parentNode, false);
868
+ }
683
869
  patch(oldStartVnode, newEndVnode, isInitialRender);
684
870
  insertBefore(parentElm, oldStartVnode.$elm$, oldEndVnode.$elm$.nextSibling);
685
871
  oldStartVnode = oldCh[++oldStartIdx];
686
872
  newEndVnode = newCh[--newEndIdx];
687
873
  } else if (isSameVnode(oldEndVnode, newStartVnode, isInitialRender)) {
874
+ if ((oldStartVnode.$tag$ === "slot" || newEndVnode.$tag$ === "slot")) {
875
+ putBackInOriginalLocation(oldEndVnode.$elm$.parentNode, false);
876
+ }
688
877
  patch(oldEndVnode, newStartVnode, isInitialRender);
689
878
  insertBefore(parentElm, oldEndVnode.$elm$, oldStartVnode.$elm$);
690
879
  oldEndVnode = oldCh[--oldEndIdx];
@@ -715,7 +904,11 @@ var updateChildren = (parentElm, oldCh, newVNode2, newCh, isInitialRender = fals
715
904
  }
716
905
  if (node) {
717
906
  {
718
- insertBefore(oldStartVnode.$elm$.parentNode, node, oldStartVnode.$elm$);
907
+ insertBefore(
908
+ referenceNode(oldStartVnode.$elm$).parentNode,
909
+ node,
910
+ referenceNode(oldStartVnode.$elm$)
911
+ );
719
912
  }
720
913
  }
721
914
  }
@@ -735,6 +928,9 @@ var updateChildren = (parentElm, oldCh, newVNode2, newCh, isInitialRender = fals
735
928
  };
736
929
  var isSameVnode = (leftVNode, rightVNode, isInitialRender = false) => {
737
930
  if (leftVNode.$tag$ === rightVNode.$tag$) {
931
+ if (leftVNode.$tag$ === "slot") {
932
+ return leftVNode.$name$ === rightVNode.$name$;
933
+ }
738
934
  if (!isInitialRender) {
739
935
  return leftVNode.$key$ === rightVNode.$key$;
740
936
  }
@@ -745,11 +941,13 @@ var isSameVnode = (leftVNode, rightVNode, isInitialRender = false) => {
745
941
  }
746
942
  return false;
747
943
  };
944
+ var referenceNode = (node) => node && node["s-ol"] || node;
748
945
  var patch = (oldVNode, newVNode2, isInitialRender = false) => {
749
946
  const elm = newVNode2.$elm$ = oldVNode.$elm$;
750
947
  const oldChildren = oldVNode.$children$;
751
948
  const newChildren = newVNode2.$children$;
752
949
  const text = newVNode2.$text$;
950
+ let defaultHolder;
753
951
  if (text === null) {
754
952
  {
755
953
  updateElement(oldVNode, newVNode2, isSvgMode);
@@ -767,10 +965,62 @@ var patch = (oldVNode, newVNode2, isInitialRender = false) => {
767
965
  ) {
768
966
  removeVnodes(oldChildren, 0, oldChildren.length - 1);
769
967
  }
968
+ } else if ((defaultHolder = elm["s-cr"])) {
969
+ defaultHolder.parentNode.textContent = text;
770
970
  } else if (oldVNode.$text$ !== text) {
771
971
  elm.data = text;
772
972
  }
773
973
  };
974
+ var relocateNodes = [];
975
+ var markSlotContentForRelocation = (elm) => {
976
+ let node;
977
+ let hostContentNodes;
978
+ let j;
979
+ const children = elm.__childNodes || elm.childNodes;
980
+ for (const childNode of children) {
981
+ if (childNode["s-sr"] && (node = childNode["s-cr"]) && node.parentNode) {
982
+ hostContentNodes = node.parentNode.__childNodes || node.parentNode.childNodes;
983
+ const slotName = childNode["s-sn"];
984
+ for (j = hostContentNodes.length - 1; j >= 0; j--) {
985
+ node = hostContentNodes[j];
986
+ if (!node["s-cn"] && !node["s-nr"] && node["s-hn"] !== childNode["s-hn"] && (true)) {
987
+ if (isNodeLocatedInSlot(node, slotName)) {
988
+ let relocateNodeData = relocateNodes.find((r) => r.$nodeToRelocate$ === node);
989
+ checkSlotFallbackVisibility = true;
990
+ node["s-sn"] = node["s-sn"] || slotName;
991
+ if (relocateNodeData) {
992
+ relocateNodeData.$nodeToRelocate$["s-sh"] = childNode["s-hn"];
993
+ relocateNodeData.$slotRefNode$ = childNode;
994
+ } else {
995
+ node["s-sh"] = childNode["s-hn"];
996
+ relocateNodes.push({
997
+ $slotRefNode$: childNode,
998
+ $nodeToRelocate$: node
999
+ });
1000
+ }
1001
+ if (node["s-sr"]) {
1002
+ relocateNodes.map((relocateNode) => {
1003
+ if (isNodeLocatedInSlot(relocateNode.$nodeToRelocate$, node["s-sn"])) {
1004
+ relocateNodeData = relocateNodes.find((r) => r.$nodeToRelocate$ === node);
1005
+ if (relocateNodeData && !relocateNode.$slotRefNode$) {
1006
+ relocateNode.$slotRefNode$ = relocateNodeData.$slotRefNode$;
1007
+ }
1008
+ }
1009
+ });
1010
+ }
1011
+ } else if (!relocateNodes.some((r) => r.$nodeToRelocate$ === node)) {
1012
+ relocateNodes.push({
1013
+ $nodeToRelocate$: node
1014
+ });
1015
+ }
1016
+ }
1017
+ }
1018
+ }
1019
+ if (childNode.nodeType === 1 /* ElementNode */) {
1020
+ markSlotContentForRelocation(childNode);
1021
+ }
1022
+ }
1023
+ };
774
1024
  var nullifyVNodeRefs = (vNode) => {
775
1025
  {
776
1026
  vNode.$attrs$ && vNode.$attrs$.ref && vNode.$attrs$.ref(null);
@@ -783,6 +1033,7 @@ var insertBefore = (parent, newNode, reference) => {
783
1033
  }
784
1034
  };
785
1035
  var renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
1036
+ var _a, _b, _c, _d;
786
1037
  const hostElm = hostRef.$hostElement$;
787
1038
  const cmpMeta = hostRef.$cmpMeta$;
788
1039
  const oldVNode = hostRef.$vnode$ || newVNode(null, null);
@@ -806,7 +1057,90 @@ var renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
806
1057
  rootVnode.$flags$ |= 4 /* isHost */;
807
1058
  hostRef.$vnode$ = rootVnode;
808
1059
  rootVnode.$elm$ = oldVNode.$elm$ = hostElm.shadowRoot || hostElm ;
1060
+ useNativeShadowDom = !!(cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */) && !(cmpMeta.$flags$ & 128 /* shadowNeedsScopedCss */);
1061
+ {
1062
+ contentRef = hostElm["s-cr"];
1063
+ checkSlotFallbackVisibility = false;
1064
+ }
809
1065
  patch(oldVNode, rootVnode, isInitialLoad);
1066
+ {
1067
+ plt.$flags$ |= 1 /* isTmpDisconnected */;
1068
+ if (checkSlotRelocate) {
1069
+ markSlotContentForRelocation(rootVnode.$elm$);
1070
+ for (const relocateData of relocateNodes) {
1071
+ const nodeToRelocate = relocateData.$nodeToRelocate$;
1072
+ if (!nodeToRelocate["s-ol"] && win.document) {
1073
+ const orgLocationNode = originalLocationDebugNode(nodeToRelocate) ;
1074
+ orgLocationNode["s-nr"] = nodeToRelocate;
1075
+ insertBefore(nodeToRelocate.parentNode, nodeToRelocate["s-ol"] = orgLocationNode, nodeToRelocate);
1076
+ }
1077
+ }
1078
+ for (const relocateData of relocateNodes) {
1079
+ const nodeToRelocate = relocateData.$nodeToRelocate$;
1080
+ const slotRefNode = relocateData.$slotRefNode$;
1081
+ if (slotRefNode) {
1082
+ const parentNodeRef = slotRefNode.parentNode;
1083
+ let insertBeforeNode = slotRefNode.nextSibling;
1084
+ {
1085
+ let orgLocationNode = (_a = nodeToRelocate["s-ol"]) == null ? void 0 : _a.previousSibling;
1086
+ while (orgLocationNode) {
1087
+ let refNode = (_b = orgLocationNode["s-nr"]) != null ? _b : null;
1088
+ if (refNode && refNode["s-sn"] === nodeToRelocate["s-sn"] && parentNodeRef === (refNode.__parentNode || refNode.parentNode)) {
1089
+ refNode = refNode.nextSibling;
1090
+ while (refNode === nodeToRelocate || (refNode == null ? void 0 : refNode["s-sr"])) {
1091
+ refNode = refNode == null ? void 0 : refNode.nextSibling;
1092
+ }
1093
+ if (!refNode || !refNode["s-nr"]) {
1094
+ insertBeforeNode = refNode;
1095
+ break;
1096
+ }
1097
+ }
1098
+ orgLocationNode = orgLocationNode.previousSibling;
1099
+ }
1100
+ }
1101
+ const parent = nodeToRelocate.__parentNode || nodeToRelocate.parentNode;
1102
+ const nextSibling = nodeToRelocate.__nextSibling || nodeToRelocate.nextSibling;
1103
+ if (!insertBeforeNode && parentNodeRef !== parent || nextSibling !== insertBeforeNode) {
1104
+ if (nodeToRelocate !== insertBeforeNode) {
1105
+ if (!nodeToRelocate["s-hn"] && nodeToRelocate["s-ol"]) {
1106
+ nodeToRelocate["s-hn"] = nodeToRelocate["s-ol"].parentNode.nodeName;
1107
+ }
1108
+ insertBefore(parentNodeRef, nodeToRelocate, insertBeforeNode);
1109
+ if (nodeToRelocate.nodeType === 1 /* ElementNode */ && nodeToRelocate.tagName !== "SLOT-FB") {
1110
+ nodeToRelocate.hidden = (_c = nodeToRelocate["s-ih"]) != null ? _c : false;
1111
+ }
1112
+ }
1113
+ }
1114
+ nodeToRelocate && typeof slotRefNode["s-rf"] === "function" && slotRefNode["s-rf"](slotRefNode);
1115
+ } else {
1116
+ if (nodeToRelocate.nodeType === 1 /* ElementNode */) {
1117
+ if (isInitialLoad) {
1118
+ nodeToRelocate["s-ih"] = (_d = nodeToRelocate.hidden) != null ? _d : false;
1119
+ }
1120
+ nodeToRelocate.hidden = true;
1121
+ }
1122
+ }
1123
+ }
1124
+ }
1125
+ if (checkSlotFallbackVisibility) {
1126
+ updateFallbackSlotVisibility(rootVnode.$elm$);
1127
+ }
1128
+ plt.$flags$ &= -2 /* isTmpDisconnected */;
1129
+ relocateNodes.length = 0;
1130
+ }
1131
+ contentRef = void 0;
1132
+ };
1133
+ var slotReferenceDebugNode = (slotVNode) => {
1134
+ var _a;
1135
+ return (_a = win.document) == null ? void 0 : _a.createComment(
1136
+ `<slot${slotVNode.$name$ ? ' name="' + slotVNode.$name$ + '"' : ""}> (host=${hostTagName.toLowerCase()})`
1137
+ );
1138
+ };
1139
+ var originalLocationDebugNode = (nodeToRelocate) => {
1140
+ var _a;
1141
+ return (_a = win.document) == null ? void 0 : _a.createComment(
1142
+ `org-location for ` + (nodeToRelocate.localName ? `<${nodeToRelocate.localName}> (host=${nodeToRelocate["s-hn"]})` : `[${nodeToRelocate.textContent}]`)
1143
+ );
810
1144
  };
811
1145
 
812
1146
  // src/runtime/update-component.ts
@@ -1247,6 +1581,12 @@ var connectedCallback = (elm) => {
1247
1581
  const endConnected = createTime("connectedCallback", cmpMeta.$tagName$);
1248
1582
  if (!(hostRef.$flags$ & 1 /* hasConnected */)) {
1249
1583
  hostRef.$flags$ |= 1 /* hasConnected */;
1584
+ {
1585
+ if (// TODO(STENCIL-854): Remove code related to legacy shadowDomShim field
1586
+ cmpMeta.$flags$ & (4 /* hasSlotRelocation */ | 8 /* needsShadowDomShim */)) {
1587
+ setContentReference(elm);
1588
+ }
1589
+ }
1250
1590
  {
1251
1591
  let ancestorComponent = elm;
1252
1592
  while (ancestorComponent = ancestorComponent.parentNode || ancestorComponent.host) {
@@ -1279,6 +1619,16 @@ var connectedCallback = (elm) => {
1279
1619
  endConnected();
1280
1620
  }
1281
1621
  };
1622
+ var setContentReference = (elm) => {
1623
+ if (!win.document) {
1624
+ return;
1625
+ }
1626
+ const contentRefElm = elm["s-cr"] = win.document.createComment(
1627
+ `content-ref (host=${elm.localName})`
1628
+ );
1629
+ contentRefElm["s-cn"] = true;
1630
+ insertBefore(elm, contentRefElm, elm.firstChild);
1631
+ };
1282
1632
  var disconnectInstance = (instance, elm) => {
1283
1633
  {
1284
1634
  safeCall(instance, "disconnectedCallback", void 0, elm || instance);
@@ -1486,6 +1836,6 @@ var hostListenerOpts = (flags) => supportsListenerOptions ? {
1486
1836
  var setNonce = (nonce) => plt.$nonce$ = nonce;
1487
1837
 
1488
1838
  export { Host as H, getElement as a, bootstrapLazy as b, createEvent as c, globalScripts as g, h, promiseResolve as p, registerInstance as r, setNonce as s };
1489
- //# sourceMappingURL=index-CwIBTB8E.js.map
1839
+ //# sourceMappingURL=index-CwrCjm3e.js.map
1490
1840
 
1491
- //# sourceMappingURL=index-CwIBTB8E.js.map
1841
+ //# sourceMappingURL=index-CwrCjm3e.js.map