@riverty/web-components 5.4.0 → 5.5.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 (177) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/custom-elements.json +8 -0
  3. package/dist/cjs/{index-BnETQtSf.js → index-DJ4H_bFj.js} +382 -5
  4. package/dist/cjs/loader.cjs.js +2 -2
  5. package/dist/cjs/r-accordion-item.cjs.entry.js +1 -1
  6. package/dist/cjs/r-accordion-panel.cjs.entry.js +1 -1
  7. package/dist/cjs/r-accordion-section.cjs.entry.js +1 -1
  8. package/dist/cjs/r-accordion-trigger.cjs.entry.js +1 -1
  9. package/dist/cjs/r-accordion.cjs.entry.js +1 -1
  10. package/dist/cjs/r-alert.cjs.entry.js +1 -1
  11. package/dist/cjs/r-badge.cjs.entry.js +1 -1
  12. package/dist/cjs/r-button.cjs.entry.js +1 -1
  13. package/dist/cjs/r-checkbox-group.cjs.entry.js +1 -1
  14. package/dist/cjs/r-checkbox.cjs.entry.js +1 -1
  15. package/dist/cjs/r-design-system-devtools.cjs.entry.js +1 -1
  16. package/dist/cjs/r-dialog.cjs.entry.js +8 -10
  17. package/dist/cjs/r-hint_3.cjs.entry.js +1 -1
  18. package/dist/cjs/r-icon-button.cjs.entry.js +1 -1
  19. package/dist/cjs/r-icon.cjs.entry.js +1 -1
  20. package/dist/cjs/r-input-code.cjs.entry.js +1 -1
  21. package/dist/cjs/r-input-date.cjs.entry.js +1 -1
  22. package/dist/cjs/r-input-password.cjs.entry.js +1 -1
  23. package/dist/cjs/r-input-phone-number.cjs.entry.js +1 -1
  24. package/dist/cjs/r-input.cjs.entry.js +16 -5
  25. package/dist/cjs/r-list-item.cjs.entry.js +5 -6
  26. package/dist/cjs/r-pagination.cjs.entry.js +1 -1
  27. package/dist/cjs/r-panel.cjs.entry.js +1 -1
  28. package/dist/cjs/r-popover-action.cjs.entry.js +1 -1
  29. package/dist/cjs/r-popover-content.cjs.entry.js +1 -1
  30. package/dist/cjs/r-popover-headline.cjs.entry.js +1 -1
  31. package/dist/cjs/r-popover-trigger.cjs.entry.js +1 -1
  32. package/dist/cjs/r-popover.cjs.entry.js +1 -1
  33. package/dist/cjs/r-progress-bar.cjs.entry.js +1 -1
  34. package/dist/cjs/r-radio-button-description.cjs.entry.js +1 -1
  35. package/dist/cjs/r-radio-button-leading.cjs.entry.js +1 -1
  36. package/dist/cjs/r-radio-button-title.cjs.entry.js +1 -1
  37. package/dist/cjs/r-radio-button-trailing.cjs.entry.js +1 -1
  38. package/dist/cjs/r-radio-button.cjs.entry.js +1 -1
  39. package/dist/cjs/r-radio-group.cjs.entry.js +1 -1
  40. package/dist/cjs/r-select-option.cjs.entry.js +1 -1
  41. package/dist/cjs/r-select.cjs.entry.js +1 -1
  42. package/dist/cjs/r-skip-link.cjs.entry.js +1 -1
  43. package/dist/cjs/r-stepper-item.cjs.entry.js +1 -1
  44. package/dist/cjs/r-stepper.cjs.entry.js +1 -1
  45. package/dist/cjs/r-tab-panel.cjs.entry.js +1 -1
  46. package/dist/cjs/r-tab.cjs.entry.js +1 -1
  47. package/dist/cjs/r-tabs-list.cjs.entry.js +1 -1
  48. package/dist/cjs/r-tabs.cjs.entry.js +1 -1
  49. package/dist/cjs/r-textarea.cjs.entry.js +1 -1
  50. package/dist/cjs/r-toast-group.cjs.entry.js +15 -5
  51. package/dist/cjs/r-toast.cjs.entry.js +10 -10
  52. package/dist/cjs/web-components.cjs.js +2 -2
  53. package/dist/collection/components/dialog/dialog.css +1 -1
  54. package/dist/collection/components/dialog/dialog.js +23 -8
  55. package/dist/collection/components/input/input.js +15 -4
  56. package/dist/collection/components/list-item/list-item/list-item.css +19 -11
  57. package/dist/collection/components/list-item/list-item/list-item.js +41 -4
  58. package/dist/collection/components/toast/toast.css +8 -2
  59. package/dist/collection/components/toast/toast.js +8 -8
  60. package/dist/collection/components/toast-group/toast-group.css +14 -13
  61. package/dist/collection/components/toast-group/toast-group.js +14 -4
  62. package/dist/esm/{index-CTxpqopm.js → index-Da7qOBFr.js} +382 -5
  63. package/dist/esm/loader.js +3 -3
  64. package/dist/esm/r-accordion-item.entry.js +1 -1
  65. package/dist/esm/r-accordion-panel.entry.js +1 -1
  66. package/dist/esm/r-accordion-section.entry.js +1 -1
  67. package/dist/esm/r-accordion-trigger.entry.js +1 -1
  68. package/dist/esm/r-accordion.entry.js +1 -1
  69. package/dist/esm/r-alert.entry.js +1 -1
  70. package/dist/esm/r-badge.entry.js +1 -1
  71. package/dist/esm/r-button.entry.js +1 -1
  72. package/dist/esm/r-checkbox-group.entry.js +1 -1
  73. package/dist/esm/r-checkbox.entry.js +1 -1
  74. package/dist/esm/r-design-system-devtools.entry.js +1 -1
  75. package/dist/esm/r-dialog.entry.js +8 -10
  76. package/dist/esm/r-hint_3.entry.js +1 -1
  77. package/dist/esm/r-icon-button.entry.js +1 -1
  78. package/dist/esm/r-icon.entry.js +1 -1
  79. package/dist/esm/r-input-code.entry.js +1 -1
  80. package/dist/esm/r-input-date.entry.js +1 -1
  81. package/dist/esm/r-input-password.entry.js +1 -1
  82. package/dist/esm/r-input-phone-number.entry.js +1 -1
  83. package/dist/esm/r-input.entry.js +16 -5
  84. package/dist/esm/r-list-item.entry.js +5 -6
  85. package/dist/esm/r-pagination.entry.js +1 -1
  86. package/dist/esm/r-panel.entry.js +1 -1
  87. package/dist/esm/r-popover-action.entry.js +1 -1
  88. package/dist/esm/r-popover-content.entry.js +1 -1
  89. package/dist/esm/r-popover-headline.entry.js +1 -1
  90. package/dist/esm/r-popover-trigger.entry.js +1 -1
  91. package/dist/esm/r-popover.entry.js +1 -1
  92. package/dist/esm/r-progress-bar.entry.js +1 -1
  93. package/dist/esm/r-radio-button-description.entry.js +1 -1
  94. package/dist/esm/r-radio-button-leading.entry.js +1 -1
  95. package/dist/esm/r-radio-button-title.entry.js +1 -1
  96. package/dist/esm/r-radio-button-trailing.entry.js +1 -1
  97. package/dist/esm/r-radio-button.entry.js +1 -1
  98. package/dist/esm/r-radio-group.entry.js +1 -1
  99. package/dist/esm/r-select-option.entry.js +1 -1
  100. package/dist/esm/r-select.entry.js +1 -1
  101. package/dist/esm/r-skip-link.entry.js +1 -1
  102. package/dist/esm/r-stepper-item.entry.js +1 -1
  103. package/dist/esm/r-stepper.entry.js +1 -1
  104. package/dist/esm/r-tab-panel.entry.js +1 -1
  105. package/dist/esm/r-tab.entry.js +1 -1
  106. package/dist/esm/r-tabs-list.entry.js +1 -1
  107. package/dist/esm/r-tabs.entry.js +1 -1
  108. package/dist/esm/r-textarea.entry.js +1 -1
  109. package/dist/esm/r-toast-group.entry.js +15 -5
  110. package/dist/esm/r-toast.entry.js +10 -10
  111. package/dist/esm/web-components.js +3 -3
  112. package/dist/types/components/dialog/dialog.d.ts +6 -1
  113. package/dist/types/components/input/input.d.ts +1 -0
  114. package/dist/types/components/list-item/list-item/list-item.d.ts +6 -1
  115. package/dist/types/components/toast-group/toast-group.d.ts +2 -0
  116. package/dist/types/components.d.ts +35 -0
  117. package/dist/web-components/{p-aecd025b.entry.js → p-00ca474f.entry.js} +1 -1
  118. package/dist/web-components/{p-3fc2b23b.entry.js → p-00eb6986.entry.js} +1 -1
  119. package/dist/web-components/{p-2d85c0f3.entry.js → p-0735fd75.entry.js} +1 -1
  120. package/dist/web-components/{p-9c40f9cd.entry.js → p-0bb04d79.entry.js} +1 -1
  121. package/dist/web-components/{p-ef0f43e0.entry.js → p-0f4eea22.entry.js} +1 -1
  122. package/dist/web-components/{p-4cf01f30.entry.js → p-1c2497de.entry.js} +1 -1
  123. package/dist/web-components/p-2265dae1.entry.js +1 -0
  124. package/dist/web-components/{p-03ff9abf.entry.js → p-230e44ae.entry.js} +1 -1
  125. package/dist/web-components/{p-735da2bb.entry.js → p-24bbf3b6.entry.js} +1 -1
  126. package/dist/web-components/{p-3ea6a1be.entry.js → p-28718c50.entry.js} +1 -1
  127. package/dist/web-components/{p-1157b7f4.entry.js → p-2b2f581a.entry.js} +1 -1
  128. package/dist/web-components/{p-0a424361.entry.js → p-3b4e3faf.entry.js} +1 -1
  129. package/dist/web-components/p-3bc93d65.entry.js +1 -0
  130. package/dist/web-components/{p-dc93ed55.entry.js → p-429213ea.entry.js} +1 -1
  131. package/dist/web-components/{p-c60294d4.entry.js → p-43eff76a.entry.js} +1 -1
  132. package/dist/web-components/{p-c7a9da98.entry.js → p-44ae9f33.entry.js} +1 -1
  133. package/dist/web-components/{p-66c454ce.entry.js → p-4652635a.entry.js} +1 -1
  134. package/dist/web-components/{p-e50503d0.entry.js → p-4bd3e077.entry.js} +1 -1
  135. package/dist/web-components/{p-89ff32dc.entry.js → p-4e3df002.entry.js} +1 -1
  136. package/dist/web-components/p-51a5804b.entry.js +1 -0
  137. package/dist/web-components/{p-e273950c.entry.js → p-72fa1fd1.entry.js} +1 -1
  138. package/dist/web-components/{p-135be1d5.entry.js → p-755cc697.entry.js} +1 -1
  139. package/dist/web-components/{p-e74c363a.entry.js → p-77155630.entry.js} +1 -1
  140. package/dist/web-components/{p-48dfb286.entry.js → p-7fccc301.entry.js} +1 -1
  141. package/dist/web-components/{p-988a7731.entry.js → p-85a9af42.entry.js} +1 -1
  142. package/dist/web-components/{p-24130cdb.entry.js → p-87f39749.entry.js} +1 -1
  143. package/dist/web-components/{p-c9b2389b.entry.js → p-89136369.entry.js} +1 -1
  144. package/dist/web-components/{p-77dc268e.entry.js → p-8c577cda.entry.js} +1 -1
  145. package/dist/web-components/{p-6b7d5236.entry.js → p-99ba15d9.entry.js} +1 -1
  146. package/dist/web-components/{p-900923ab.entry.js → p-9eb1f262.entry.js} +1 -1
  147. package/dist/web-components/p-Da7qOBFr.js +2 -0
  148. package/dist/web-components/{p-2394508f.entry.js → p-a022f356.entry.js} +1 -1
  149. package/dist/web-components/{p-df81177e.entry.js → p-a58124c4.entry.js} +1 -1
  150. package/dist/web-components/{p-8d2f4097.entry.js → p-a683612d.entry.js} +1 -1
  151. package/dist/web-components/{p-9891afb8.entry.js → p-a7e7f8fa.entry.js} +1 -1
  152. package/dist/web-components/{p-fdf70aed.entry.js → p-ad4292d8.entry.js} +1 -1
  153. package/dist/web-components/p-c09a863b.entry.js +1 -0
  154. package/dist/web-components/{p-71d6c4d7.entry.js → p-c7f8e59b.entry.js} +1 -1
  155. package/dist/web-components/{p-f625b739.entry.js → p-c937bd92.entry.js} +1 -1
  156. package/dist/web-components/p-cbcd7699.entry.js +1 -0
  157. package/dist/web-components/p-e0e2f2b2.entry.js +1 -0
  158. package/dist/web-components/{p-8d6a35e3.entry.js → p-e49b1ec3.entry.js} +1 -1
  159. package/dist/web-components/p-e4b66277.entry.js +1 -0
  160. package/dist/web-components/p-e6a31881.entry.js +1 -0
  161. package/dist/web-components/{p-05ba30ba.entry.js → p-f1e22caa.entry.js} +1 -1
  162. package/dist/web-components/{p-10724c18.entry.js → p-f22696e0.entry.js} +1 -1
  163. package/dist/web-components/p-f6a92287.entry.js +1 -0
  164. package/dist/web-components/p-f7adb875.entry.js +1 -0
  165. package/dist/web-components/web-components.esm.js +1 -1
  166. package/package.json +1 -1
  167. package/dist/web-components/p-0ac858b8.entry.js +0 -1
  168. package/dist/web-components/p-0bb0de18.entry.js +0 -1
  169. package/dist/web-components/p-1ed3efd7.entry.js +0 -1
  170. package/dist/web-components/p-20f979ff.entry.js +0 -1
  171. package/dist/web-components/p-31c8388d.entry.js +0 -1
  172. package/dist/web-components/p-333707b2.entry.js +0 -1
  173. package/dist/web-components/p-61f78bf6.entry.js +0 -1
  174. package/dist/web-components/p-8f719321.entry.js +0 -1
  175. package/dist/web-components/p-9f583ed1.entry.js +0 -1
  176. package/dist/web-components/p-CTxpqopm.js +0 -2
  177. package/dist/web-components/p-caca2855.entry.js +0 -1
@@ -1,5 +1,5 @@
1
1
  const NAMESPACE = 'web-components';
2
- const BUILD = /* web-components */ { hydratedSelectorName: "hydrated", lazyLoad: true, updatable: true};
2
+ const BUILD = /* web-components */ { hydratedSelectorName: "hydrated", lazyLoad: true, slotRelocation: true, updatable: true};
3
3
 
4
4
  /*
5
5
  Stencil Client Platform v4.37.1 | MIT Licensed | https://stenciljs.com
@@ -354,6 +354,9 @@ var flush = () => {
354
354
  };
355
355
  var nextTick = (cb) => promiseResolve().then(cb);
356
356
  var writeTask = /* @__PURE__ */ queueTask(queueDomWrites, true);
357
+
358
+ // src/utils/helpers.ts
359
+ var isDef = (v) => v != null && v !== void 0;
357
360
  var isComplexType = (o) => {
358
361
  o = typeof o;
359
362
  return o === "object" || o === "function";
@@ -438,6 +441,112 @@ function createShadowRoot(cmpMeta) {
438
441
  }
439
442
  }
440
443
  }
444
+ var updateFallbackSlotVisibility = (elm) => {
445
+ const childNodes = internalCall(elm, "childNodes");
446
+ if (elm.tagName && elm.tagName.includes("-") && elm["s-cr"] && elm.tagName !== "SLOT-FB") {
447
+ getHostSlotNodes(childNodes, elm.tagName).forEach((slotNode) => {
448
+ if (slotNode.nodeType === 1 /* ElementNode */ && slotNode.tagName === "SLOT-FB") {
449
+ if (getSlotChildSiblings(slotNode, getSlotName(slotNode), false).length) {
450
+ slotNode.hidden = true;
451
+ } else {
452
+ slotNode.hidden = false;
453
+ }
454
+ }
455
+ });
456
+ }
457
+ let i2 = 0;
458
+ for (i2 = 0; i2 < childNodes.length; i2++) {
459
+ const childNode = childNodes[i2];
460
+ if (childNode.nodeType === 1 /* ElementNode */ && internalCall(childNode, "childNodes").length) {
461
+ updateFallbackSlotVisibility(childNode);
462
+ }
463
+ }
464
+ };
465
+ var getSlottedChildNodes = (childNodes) => {
466
+ const result = [];
467
+ for (let i2 = 0; i2 < childNodes.length; i2++) {
468
+ const slottedNode = childNodes[i2]["s-nr"] || void 0;
469
+ if (slottedNode && slottedNode.isConnected) {
470
+ result.push(slottedNode);
471
+ }
472
+ }
473
+ return result;
474
+ };
475
+ function getHostSlotNodes(childNodes, hostName, slotName) {
476
+ let i2 = 0;
477
+ let slottedNodes = [];
478
+ let childNode;
479
+ for (; i2 < childNodes.length; i2++) {
480
+ childNode = childNodes[i2];
481
+ if (childNode["s-sr"] && (!hostName || childNode["s-hn"] === hostName) && (slotName === void 0)) {
482
+ slottedNodes.push(childNode);
483
+ }
484
+ slottedNodes = [...slottedNodes, ...getHostSlotNodes(childNode.childNodes, hostName, slotName)];
485
+ }
486
+ return slottedNodes;
487
+ }
488
+ var getSlotChildSiblings = (slot, slotName, includeSlot = true) => {
489
+ const childNodes = [];
490
+ if (includeSlot && slot["s-sr"] || !slot["s-sr"]) childNodes.push(slot);
491
+ let node = slot;
492
+ while (node = node.nextSibling) {
493
+ if (getSlotName(node) === slotName && (includeSlot || !node["s-sr"])) childNodes.push(node);
494
+ }
495
+ return childNodes;
496
+ };
497
+ var isNodeLocatedInSlot = (nodeToRelocate, slotName) => {
498
+ if (nodeToRelocate.nodeType === 1 /* ElementNode */) {
499
+ if (nodeToRelocate.getAttribute("slot") === null && slotName === "") {
500
+ return true;
501
+ }
502
+ if (nodeToRelocate.getAttribute("slot") === slotName) {
503
+ return true;
504
+ }
505
+ return false;
506
+ }
507
+ if (nodeToRelocate["s-sn"] === slotName) {
508
+ return true;
509
+ }
510
+ return slotName === "";
511
+ };
512
+ var getSlotName = (node) => typeof node["s-sn"] === "string" ? node["s-sn"] : node.nodeType === 1 && node.getAttribute("slot") || void 0;
513
+ function patchSlotNode(node) {
514
+ if (node.assignedElements || node.assignedNodes || !node["s-sr"]) return;
515
+ const assignedFactory = (elementsOnly) => (function(opts) {
516
+ const toReturn = [];
517
+ const slotName = this["s-sn"];
518
+ if (opts == null ? void 0 : opts.flatten) {
519
+ console.error(`
520
+ Flattening is not supported for Stencil non-shadow slots.
521
+ You can use \`.childNodes\` to nested slot fallback content.
522
+ If you have a particular use case, please open an issue on the Stencil repo.
523
+ `);
524
+ }
525
+ const parent = this["s-cr"].parentElement;
526
+ const slottedNodes = parent.__childNodes ? parent.childNodes : getSlottedChildNodes(parent.childNodes);
527
+ slottedNodes.forEach((n) => {
528
+ if (slotName === getSlotName(n)) {
529
+ toReturn.push(n);
530
+ }
531
+ });
532
+ if (elementsOnly) {
533
+ return toReturn.filter((n) => n.nodeType === 1 /* ElementNode */);
534
+ }
535
+ return toReturn;
536
+ }).bind(node);
537
+ node.assignedElements = assignedFactory(true);
538
+ node.assignedNodes = assignedFactory(false);
539
+ }
540
+ function internalCall(node, method) {
541
+ if ("__" + method in node) {
542
+ const toReturn = node["__" + method];
543
+ if (typeof toReturn !== "function") return toReturn;
544
+ return toReturn.bind(node);
545
+ } else {
546
+ if (typeof node[method] !== "function") return node[method];
547
+ return node[method].bind(node);
548
+ }
549
+ }
441
550
  var createTime = (fnName, tagName = "") => {
442
551
  {
443
552
  return () => {
@@ -559,6 +668,7 @@ var getScopeId = (cmp, mode) => "sc-" + (cmp.$tagName$);
559
668
  var h = (nodeName, vnodeData, ...children) => {
560
669
  let child = null;
561
670
  let key = null;
671
+ let slotName = null;
562
672
  let simple = false;
563
673
  let lastSimple = false;
564
674
  const vNodeChildren = [];
@@ -585,6 +695,9 @@ var h = (nodeName, vnodeData, ...children) => {
585
695
  if (vnodeData.key) {
586
696
  key = vnodeData.key;
587
697
  }
698
+ if (vnodeData.name) {
699
+ slotName = vnodeData.name;
700
+ }
588
701
  {
589
702
  const classData = vnodeData.className || vnodeData.class;
590
703
  if (classData) {
@@ -607,6 +720,9 @@ var h = (nodeName, vnodeData, ...children) => {
607
720
  {
608
721
  vnode.$key$ = key;
609
722
  }
723
+ {
724
+ vnode.$name$ = slotName;
725
+ }
610
726
  return vnode;
611
727
  };
612
728
  var newVNode = (tag, text) => {
@@ -623,6 +739,9 @@ var newVNode = (tag, text) => {
623
739
  {
624
740
  vnode.$key$ = null;
625
741
  }
742
+ {
743
+ vnode.$name$ = null;
744
+ }
626
745
  return vnode;
627
746
  };
628
747
  var Host = {};
@@ -863,15 +982,44 @@ function sortedAttrNames(attrNames) {
863
982
  attrNames
864
983
  );
865
984
  }
985
+
986
+ // src/runtime/vdom/vdom-render.ts
987
+ var scopeId;
988
+ var contentRef;
866
989
  var hostTagName;
990
+ var useNativeShadowDom = false;
991
+ var checkSlotFallbackVisibility = false;
992
+ var checkSlotRelocate = false;
867
993
  var isSvgMode = false;
868
994
  var createElm = (oldParentVNode, newParentVNode, childIndex) => {
995
+ var _a;
869
996
  const newVNode2 = newParentVNode.$children$[childIndex];
870
997
  let i2 = 0;
871
998
  let elm;
872
999
  let childNode;
1000
+ let oldVNode;
1001
+ if (!useNativeShadowDom) {
1002
+ checkSlotRelocate = true;
1003
+ if (newVNode2.$tag$ === "slot") {
1004
+ newVNode2.$flags$ |= newVNode2.$children$ ? (
1005
+ // slot element has fallback content
1006
+ // still create an element that "mocks" the slot element
1007
+ 2 /* isSlotFallback */
1008
+ ) : (
1009
+ // slot element does not have fallback content
1010
+ // create an html comment we'll use to always reference
1011
+ // where actual slot content should sit next to
1012
+ 1 /* isSlotReference */
1013
+ );
1014
+ }
1015
+ }
873
1016
  if (newVNode2.$text$ !== null) {
874
1017
  elm = newVNode2.$elm$ = win.document.createTextNode(newVNode2.$text$);
1018
+ } else if (newVNode2.$flags$ & 1 /* isSlotReference */) {
1019
+ elm = newVNode2.$elm$ = win.document.createTextNode("");
1020
+ {
1021
+ updateElement(null, newVNode2, isSvgMode);
1022
+ }
875
1023
  } else {
876
1024
  if (!isSvgMode) {
877
1025
  isSvgMode = newVNode2.$tag$ === "svg";
@@ -883,7 +1031,7 @@ var createElm = (oldParentVNode, newParentVNode, childIndex) => {
883
1031
  }
884
1032
  elm = newVNode2.$elm$ = win.document.createElementNS(
885
1033
  isSvgMode ? SVG_NS : HTML_NS,
886
- newVNode2.$tag$
1034
+ !useNativeShadowDom && BUILD.slotRelocation && newVNode2.$flags$ & 2 /* isSlotFallback */ ? "slot-fb" : newVNode2.$tag$
887
1035
  ) ;
888
1036
  if (isSvgMode && newVNode2.$tag$ === "foreignObject") {
889
1037
  isSvgMode = false;
@@ -891,6 +1039,9 @@ var createElm = (oldParentVNode, newParentVNode, childIndex) => {
891
1039
  {
892
1040
  updateElement(null, newVNode2, isSvgMode);
893
1041
  }
1042
+ if (isDef(scopeId) && elm["s-si"] !== scopeId) {
1043
+ elm.classList.add(elm["s-si"] = scopeId);
1044
+ }
894
1045
  if (newVNode2.$children$) {
895
1046
  for (i2 = 0; i2 < newVNode2.$children$.length; ++i2) {
896
1047
  childNode = createElm(oldParentVNode, newVNode2, i2);
@@ -908,10 +1059,46 @@ var createElm = (oldParentVNode, newParentVNode, childIndex) => {
908
1059
  }
909
1060
  }
910
1061
  elm["s-hn"] = hostTagName;
1062
+ {
1063
+ if (newVNode2.$flags$ & (2 /* isSlotFallback */ | 1 /* isSlotReference */)) {
1064
+ elm["s-sr"] = true;
1065
+ elm["s-cr"] = contentRef;
1066
+ elm["s-sn"] = newVNode2.$name$ || "";
1067
+ elm["s-rf"] = (_a = newVNode2.$attrs$) == null ? void 0 : _a.ref;
1068
+ patchSlotNode(elm);
1069
+ oldVNode = oldParentVNode && oldParentVNode.$children$ && oldParentVNode.$children$[childIndex];
1070
+ if (oldVNode && oldVNode.$tag$ === newVNode2.$tag$ && oldParentVNode.$elm$) {
1071
+ {
1072
+ putBackInOriginalLocation(oldParentVNode.$elm$, false);
1073
+ }
1074
+ }
1075
+ {
1076
+ addRemoveSlotScopedClass(contentRef, elm, newParentVNode.$elm$, oldParentVNode == null ? void 0 : oldParentVNode.$elm$);
1077
+ }
1078
+ }
1079
+ }
911
1080
  return elm;
912
1081
  };
1082
+ var putBackInOriginalLocation = (parentElm, recursive) => {
1083
+ plt.$flags$ |= 1 /* isTmpDisconnected */;
1084
+ const oldSlotChildNodes = Array.from(parentElm.__childNodes || parentElm.childNodes);
1085
+ for (let i2 = oldSlotChildNodes.length - 1; i2 >= 0; i2--) {
1086
+ const childNode = oldSlotChildNodes[i2];
1087
+ if (childNode["s-hn"] !== hostTagName && childNode["s-ol"]) {
1088
+ insertBefore(referenceNode(childNode).parentNode, childNode, referenceNode(childNode));
1089
+ childNode["s-ol"].remove();
1090
+ childNode["s-ol"] = void 0;
1091
+ childNode["s-sh"] = void 0;
1092
+ checkSlotRelocate = true;
1093
+ }
1094
+ if (recursive) {
1095
+ putBackInOriginalLocation(childNode, recursive);
1096
+ }
1097
+ }
1098
+ plt.$flags$ &= -2 /* isTmpDisconnected */;
1099
+ };
913
1100
  var addVnodes = (parentElm, before, parentVNode, vnodes, startIdx, endIdx) => {
914
- let containerElm = parentElm;
1101
+ let containerElm = parentElm["s-cr"] && parentElm["s-cr"].parentNode || parentElm;
915
1102
  let childNode;
916
1103
  if (containerElm.shadowRoot && containerElm.tagName === hostTagName) {
917
1104
  containerElm = containerElm.shadowRoot;
@@ -921,7 +1108,7 @@ var addVnodes = (parentElm, before, parentVNode, vnodes, startIdx, endIdx) => {
921
1108
  childNode = createElm(null, parentVNode, startIdx);
922
1109
  if (childNode) {
923
1110
  vnodes[startIdx].$elm$ = childNode;
924
- insertBefore(containerElm, childNode, before);
1111
+ insertBefore(containerElm, childNode, referenceNode(before) );
925
1112
  }
926
1113
  }
927
1114
  }
@@ -933,6 +1120,14 @@ var removeVnodes = (vnodes, startIdx, endIdx) => {
933
1120
  const elm = vnode.$elm$;
934
1121
  nullifyVNodeRefs(vnode);
935
1122
  if (elm) {
1123
+ {
1124
+ checkSlotFallbackVisibility = true;
1125
+ if (elm["s-ol"]) {
1126
+ elm["s-ol"].remove();
1127
+ } else {
1128
+ putBackInOriginalLocation(elm, true);
1129
+ }
1130
+ }
936
1131
  elm.remove();
937
1132
  }
938
1133
  }
@@ -969,11 +1164,17 @@ var updateChildren = (parentElm, oldCh, newVNode2, newCh, isInitialRender = fals
969
1164
  oldEndVnode = oldCh[--oldEndIdx];
970
1165
  newEndVnode = newCh[--newEndIdx];
971
1166
  } else if (isSameVnode(oldStartVnode, newEndVnode, isInitialRender)) {
1167
+ if ((oldStartVnode.$tag$ === "slot" || newEndVnode.$tag$ === "slot")) {
1168
+ putBackInOriginalLocation(oldStartVnode.$elm$.parentNode, false);
1169
+ }
972
1170
  patch(oldStartVnode, newEndVnode, isInitialRender);
973
1171
  insertBefore(parentElm, oldStartVnode.$elm$, oldEndVnode.$elm$.nextSibling);
974
1172
  oldStartVnode = oldCh[++oldStartIdx];
975
1173
  newEndVnode = newCh[--newEndIdx];
976
1174
  } else if (isSameVnode(oldEndVnode, newStartVnode, isInitialRender)) {
1175
+ if ((oldStartVnode.$tag$ === "slot" || newEndVnode.$tag$ === "slot")) {
1176
+ putBackInOriginalLocation(oldEndVnode.$elm$.parentNode, false);
1177
+ }
977
1178
  patch(oldEndVnode, newStartVnode, isInitialRender);
978
1179
  insertBefore(parentElm, oldEndVnode.$elm$, oldStartVnode.$elm$);
979
1180
  oldEndVnode = oldCh[--oldEndIdx];
@@ -1004,7 +1205,11 @@ var updateChildren = (parentElm, oldCh, newVNode2, newCh, isInitialRender = fals
1004
1205
  }
1005
1206
  if (node) {
1006
1207
  {
1007
- insertBefore(oldStartVnode.$elm$.parentNode, node, oldStartVnode.$elm$);
1208
+ insertBefore(
1209
+ referenceNode(oldStartVnode.$elm$).parentNode,
1210
+ node,
1211
+ referenceNode(oldStartVnode.$elm$)
1212
+ );
1008
1213
  }
1009
1214
  }
1010
1215
  }
@@ -1024,6 +1229,9 @@ var updateChildren = (parentElm, oldCh, newVNode2, newCh, isInitialRender = fals
1024
1229
  };
1025
1230
  var isSameVnode = (leftVNode, rightVNode, isInitialRender = false) => {
1026
1231
  if (leftVNode.$tag$ === rightVNode.$tag$) {
1232
+ if (leftVNode.$tag$ === "slot") {
1233
+ return leftVNode.$name$ === rightVNode.$name$;
1234
+ }
1027
1235
  if (!isInitialRender) {
1028
1236
  return leftVNode.$key$ === rightVNode.$key$;
1029
1237
  }
@@ -1034,12 +1242,14 @@ var isSameVnode = (leftVNode, rightVNode, isInitialRender = false) => {
1034
1242
  }
1035
1243
  return false;
1036
1244
  };
1245
+ var referenceNode = (node) => node && node["s-ol"] || node;
1037
1246
  var patch = (oldVNode, newVNode2, isInitialRender = false) => {
1038
1247
  const elm = newVNode2.$elm$ = oldVNode.$elm$;
1039
1248
  const oldChildren = oldVNode.$children$;
1040
1249
  const newChildren = newVNode2.$children$;
1041
1250
  const tag = newVNode2.$tag$;
1042
1251
  const text = newVNode2.$text$;
1252
+ let defaultHolder;
1043
1253
  if (text === null) {
1044
1254
  {
1045
1255
  isSvgMode = tag === "svg" ? true : tag === "foreignObject" ? false : isSvgMode;
@@ -1063,10 +1273,62 @@ var patch = (oldVNode, newVNode2, isInitialRender = false) => {
1063
1273
  if (isSvgMode && tag === "svg") {
1064
1274
  isSvgMode = false;
1065
1275
  }
1276
+ } else if ((defaultHolder = elm["s-cr"])) {
1277
+ defaultHolder.parentNode.textContent = text;
1066
1278
  } else if (oldVNode.$text$ !== text) {
1067
1279
  elm.data = text;
1068
1280
  }
1069
1281
  };
1282
+ var relocateNodes = [];
1283
+ var markSlotContentForRelocation = (elm) => {
1284
+ let node;
1285
+ let hostContentNodes;
1286
+ let j;
1287
+ const children = elm.__childNodes || elm.childNodes;
1288
+ for (const childNode of children) {
1289
+ if (childNode["s-sr"] && (node = childNode["s-cr"]) && node.parentNode) {
1290
+ hostContentNodes = node.parentNode.__childNodes || node.parentNode.childNodes;
1291
+ const slotName = childNode["s-sn"];
1292
+ for (j = hostContentNodes.length - 1; j >= 0; j--) {
1293
+ node = hostContentNodes[j];
1294
+ if (!node["s-cn"] && !node["s-nr"] && node["s-hn"] !== childNode["s-hn"] && (true)) {
1295
+ if (isNodeLocatedInSlot(node, slotName)) {
1296
+ let relocateNodeData = relocateNodes.find((r) => r.$nodeToRelocate$ === node);
1297
+ checkSlotFallbackVisibility = true;
1298
+ node["s-sn"] = node["s-sn"] || slotName;
1299
+ if (relocateNodeData) {
1300
+ relocateNodeData.$nodeToRelocate$["s-sh"] = childNode["s-hn"];
1301
+ relocateNodeData.$slotRefNode$ = childNode;
1302
+ } else {
1303
+ node["s-sh"] = childNode["s-hn"];
1304
+ relocateNodes.push({
1305
+ $slotRefNode$: childNode,
1306
+ $nodeToRelocate$: node
1307
+ });
1308
+ }
1309
+ if (node["s-sr"]) {
1310
+ relocateNodes.map((relocateNode) => {
1311
+ if (isNodeLocatedInSlot(relocateNode.$nodeToRelocate$, node["s-sn"])) {
1312
+ relocateNodeData = relocateNodes.find((r) => r.$nodeToRelocate$ === node);
1313
+ if (relocateNodeData && !relocateNode.$slotRefNode$) {
1314
+ relocateNode.$slotRefNode$ = relocateNodeData.$slotRefNode$;
1315
+ }
1316
+ }
1317
+ });
1318
+ }
1319
+ } else if (!relocateNodes.some((r) => r.$nodeToRelocate$ === node)) {
1320
+ relocateNodes.push({
1321
+ $nodeToRelocate$: node
1322
+ });
1323
+ }
1324
+ }
1325
+ }
1326
+ }
1327
+ if (childNode.nodeType === 1 /* ElementNode */) {
1328
+ markSlotContentForRelocation(childNode);
1329
+ }
1330
+ }
1331
+ };
1070
1332
  var nullifyVNodeRefs = (vNode) => {
1071
1333
  {
1072
1334
  vNode.$attrs$ && vNode.$attrs$.ref && vNode.$attrs$.ref(null);
@@ -1074,11 +1336,36 @@ var nullifyVNodeRefs = (vNode) => {
1074
1336
  }
1075
1337
  };
1076
1338
  var insertBefore = (parent, newNode, reference) => {
1339
+ if (typeof newNode["s-sn"] === "string" && !!newNode["s-sr"] && !!newNode["s-cr"]) {
1340
+ addRemoveSlotScopedClass(newNode["s-cr"], newNode, parent, newNode.parentElement);
1341
+ }
1077
1342
  {
1078
1343
  return parent == null ? void 0 : parent.insertBefore(newNode, reference);
1079
1344
  }
1080
1345
  };
1346
+ function addRemoveSlotScopedClass(reference, slotNode, newParent, oldParent) {
1347
+ var _a, _b;
1348
+ let scopeId2;
1349
+ if (reference && typeof slotNode["s-sn"] === "string" && !!slotNode["s-sr"] && reference.parentNode && reference.parentNode["s-sc"] && (scopeId2 = slotNode["s-si"] || reference.parentNode["s-sc"])) {
1350
+ const scopeName = slotNode["s-sn"];
1351
+ const hostName = slotNode["s-hn"];
1352
+ (_a = newParent.classList) == null ? void 0 : _a.add(scopeId2 + "-s");
1353
+ if (oldParent && ((_b = oldParent.classList) == null ? void 0 : _b.contains(scopeId2 + "-s"))) {
1354
+ let child = (oldParent.__childNodes || oldParent.childNodes)[0];
1355
+ let found = false;
1356
+ while (child) {
1357
+ if (child["s-sn"] !== scopeName && child["s-hn"] === hostName && !!child["s-sr"]) {
1358
+ found = true;
1359
+ break;
1360
+ }
1361
+ child = child.nextSibling;
1362
+ }
1363
+ if (!found) oldParent.classList.remove(scopeId2 + "-s");
1364
+ }
1365
+ }
1366
+ }
1081
1367
  var renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
1368
+ var _a, _b, _c, _d;
1082
1369
  const hostElm = hostRef.$hostElement$;
1083
1370
  const cmpMeta = hostRef.$cmpMeta$;
1084
1371
  const oldVNode = hostRef.$vnode$ || newVNode(null, null);
@@ -1102,7 +1389,81 @@ var renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
1102
1389
  rootVnode.$flags$ |= 4 /* isHost */;
1103
1390
  hostRef.$vnode$ = rootVnode;
1104
1391
  rootVnode.$elm$ = oldVNode.$elm$ = hostElm.shadowRoot || hostElm ;
1392
+ {
1393
+ scopeId = hostElm["s-sc"];
1394
+ }
1395
+ useNativeShadowDom = !!(cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */) && !(cmpMeta.$flags$ & 128 /* shadowNeedsScopedCss */);
1396
+ {
1397
+ contentRef = hostElm["s-cr"];
1398
+ checkSlotFallbackVisibility = false;
1399
+ }
1105
1400
  patch(oldVNode, rootVnode, isInitialLoad);
1401
+ {
1402
+ plt.$flags$ |= 1 /* isTmpDisconnected */;
1403
+ if (checkSlotRelocate) {
1404
+ markSlotContentForRelocation(rootVnode.$elm$);
1405
+ for (const relocateData of relocateNodes) {
1406
+ const nodeToRelocate = relocateData.$nodeToRelocate$;
1407
+ if (!nodeToRelocate["s-ol"] && win.document) {
1408
+ const orgLocationNode = win.document.createTextNode("");
1409
+ orgLocationNode["s-nr"] = nodeToRelocate;
1410
+ insertBefore(nodeToRelocate.parentNode, nodeToRelocate["s-ol"] = orgLocationNode, nodeToRelocate);
1411
+ }
1412
+ }
1413
+ for (const relocateData of relocateNodes) {
1414
+ const nodeToRelocate = relocateData.$nodeToRelocate$;
1415
+ const slotRefNode = relocateData.$slotRefNode$;
1416
+ if (slotRefNode) {
1417
+ const parentNodeRef = slotRefNode.parentNode;
1418
+ let insertBeforeNode = slotRefNode.nextSibling;
1419
+ {
1420
+ let orgLocationNode = (_a = nodeToRelocate["s-ol"]) == null ? void 0 : _a.previousSibling;
1421
+ while (orgLocationNode) {
1422
+ let refNode = (_b = orgLocationNode["s-nr"]) != null ? _b : null;
1423
+ if (refNode && refNode["s-sn"] === nodeToRelocate["s-sn"] && parentNodeRef === (refNode.__parentNode || refNode.parentNode)) {
1424
+ refNode = refNode.nextSibling;
1425
+ while (refNode === nodeToRelocate || (refNode == null ? void 0 : refNode["s-sr"])) {
1426
+ refNode = refNode == null ? void 0 : refNode.nextSibling;
1427
+ }
1428
+ if (!refNode || !refNode["s-nr"]) {
1429
+ insertBeforeNode = refNode;
1430
+ break;
1431
+ }
1432
+ }
1433
+ orgLocationNode = orgLocationNode.previousSibling;
1434
+ }
1435
+ }
1436
+ const parent = nodeToRelocate.__parentNode || nodeToRelocate.parentNode;
1437
+ const nextSibling = nodeToRelocate.__nextSibling || nodeToRelocate.nextSibling;
1438
+ if (!insertBeforeNode && parentNodeRef !== parent || nextSibling !== insertBeforeNode) {
1439
+ if (nodeToRelocate !== insertBeforeNode) {
1440
+ if (!nodeToRelocate["s-hn"] && nodeToRelocate["s-ol"]) {
1441
+ nodeToRelocate["s-hn"] = nodeToRelocate["s-ol"].parentNode.nodeName;
1442
+ }
1443
+ insertBefore(parentNodeRef, nodeToRelocate, insertBeforeNode);
1444
+ if (nodeToRelocate.nodeType === 1 /* ElementNode */ && nodeToRelocate.tagName !== "SLOT-FB") {
1445
+ nodeToRelocate.hidden = (_c = nodeToRelocate["s-ih"]) != null ? _c : false;
1446
+ }
1447
+ }
1448
+ }
1449
+ nodeToRelocate && typeof slotRefNode["s-rf"] === "function" && slotRefNode["s-rf"](slotRefNode);
1450
+ } else {
1451
+ if (nodeToRelocate.nodeType === 1 /* ElementNode */) {
1452
+ if (isInitialLoad) {
1453
+ nodeToRelocate["s-ih"] = (_d = nodeToRelocate.hidden) != null ? _d : false;
1454
+ }
1455
+ nodeToRelocate.hidden = true;
1456
+ }
1457
+ }
1458
+ }
1459
+ }
1460
+ if (checkSlotFallbackVisibility) {
1461
+ updateFallbackSlotVisibility(rootVnode.$elm$);
1462
+ }
1463
+ plt.$flags$ &= -2 /* isTmpDisconnected */;
1464
+ relocateNodes.length = 0;
1465
+ }
1466
+ contentRef = void 0;
1106
1467
  };
1107
1468
 
1108
1469
  // src/runtime/update-component.ts
@@ -1555,6 +1916,12 @@ var connectedCallback = (elm) => {
1555
1916
  const endConnected = createTime("connectedCallback", cmpMeta.$tagName$);
1556
1917
  if (!(hostRef.$flags$ & 1 /* hasConnected */)) {
1557
1918
  hostRef.$flags$ |= 1 /* hasConnected */;
1919
+ {
1920
+ if (// TODO(STENCIL-854): Remove code related to legacy shadowDomShim field
1921
+ cmpMeta.$flags$ & (4 /* hasSlotRelocation */ | 8 /* needsShadowDomShim */)) {
1922
+ setContentReference(elm);
1923
+ }
1924
+ }
1558
1925
  {
1559
1926
  let ancestorComponent = elm;
1560
1927
  while (ancestorComponent = ancestorComponent.parentNode || ancestorComponent.host) {
@@ -1587,6 +1954,16 @@ var connectedCallback = (elm) => {
1587
1954
  endConnected();
1588
1955
  }
1589
1956
  };
1957
+ var setContentReference = (elm) => {
1958
+ if (!win.document) {
1959
+ return;
1960
+ }
1961
+ const contentRefElm = elm["s-cr"] = win.document.createComment(
1962
+ ""
1963
+ );
1964
+ contentRefElm["s-cn"] = true;
1965
+ insertBefore(elm, contentRefElm, elm.firstChild);
1966
+ };
1590
1967
  var disconnectInstance = (instance, elm) => {
1591
1968
  {
1592
1969
  safeCall(instance, "disconnectedCallback", void 0, elm || instance);