@riverty/web-components 5.4.0 → 5.6.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 (214) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/README.md +3 -3
  3. package/custom-elements.json +27 -15
  4. package/dist/cjs/{index-BnETQtSf.js → index-DJ4H_bFj.js} +382 -5
  5. package/dist/cjs/loader.cjs.js +2 -2
  6. package/dist/cjs/r-accordion-item.cjs.entry.js +1 -1
  7. package/dist/cjs/r-accordion-panel.cjs.entry.js +1 -1
  8. package/dist/cjs/r-accordion-section.cjs.entry.js +1 -1
  9. package/dist/cjs/r-accordion-trigger.cjs.entry.js +1 -1
  10. package/dist/cjs/r-accordion.cjs.entry.js +2 -2
  11. package/dist/cjs/r-alert.cjs.entry.js +1 -1
  12. package/dist/cjs/r-badge.cjs.entry.js +1 -1
  13. package/dist/cjs/r-button.cjs.entry.js +2 -2
  14. package/dist/cjs/r-checkbox-group.cjs.entry.js +1 -1
  15. package/dist/cjs/r-checkbox.cjs.entry.js +5 -5
  16. package/dist/cjs/r-design-system-devtools.cjs.entry.js +1 -1
  17. package/dist/cjs/r-dialog.cjs.entry.js +8 -10
  18. package/dist/cjs/r-hint_3.cjs.entry.js +136 -38
  19. package/dist/cjs/r-icon-button.cjs.entry.js +4 -4
  20. package/dist/cjs/r-icon.cjs.entry.js +3 -3
  21. package/dist/cjs/r-input-code.cjs.entry.js +1 -1
  22. package/dist/cjs/r-input-date.cjs.entry.js +7 -7
  23. package/dist/cjs/r-input-password.cjs.entry.js +3 -3
  24. package/dist/cjs/r-input-phone-number.cjs.entry.js +5 -5
  25. package/dist/cjs/r-input.cjs.entry.js +19 -6
  26. package/dist/cjs/r-list-item.cjs.entry.js +5 -6
  27. package/dist/cjs/r-pagination.cjs.entry.js +1 -1
  28. package/dist/cjs/r-panel.cjs.entry.js +1 -1
  29. package/dist/cjs/r-popover-action.cjs.entry.js +1 -1
  30. package/dist/cjs/r-popover-content.cjs.entry.js +1 -1
  31. package/dist/cjs/r-popover-headline.cjs.entry.js +1 -1
  32. package/dist/cjs/r-popover-trigger.cjs.entry.js +1 -1
  33. package/dist/cjs/r-popover.cjs.entry.js +1 -1
  34. package/dist/cjs/r-progress-bar.cjs.entry.js +1 -1
  35. package/dist/cjs/r-radio-button-description.cjs.entry.js +1 -1
  36. package/dist/cjs/r-radio-button-leading.cjs.entry.js +1 -1
  37. package/dist/cjs/r-radio-button-title.cjs.entry.js +1 -1
  38. package/dist/cjs/r-radio-button-trailing.cjs.entry.js +1 -1
  39. package/dist/cjs/r-radio-button.cjs.entry.js +1 -1
  40. package/dist/cjs/r-radio-group.cjs.entry.js +7 -7
  41. package/dist/cjs/r-select-option.cjs.entry.js +1 -1
  42. package/dist/cjs/r-select.cjs.entry.js +3 -3
  43. package/dist/cjs/r-skip-link.cjs.entry.js +1 -1
  44. package/dist/cjs/r-stepper-item.cjs.entry.js +1 -1
  45. package/dist/cjs/r-stepper.cjs.entry.js +1 -1
  46. package/dist/cjs/r-tab-panel.cjs.entry.js +1 -1
  47. package/dist/cjs/r-tab.cjs.entry.js +1 -1
  48. package/dist/cjs/r-tabs-list.cjs.entry.js +1 -1
  49. package/dist/cjs/r-tabs.cjs.entry.js +1 -1
  50. package/dist/cjs/r-textarea.cjs.entry.js +1 -1
  51. package/dist/cjs/r-toast-group.cjs.entry.js +15 -5
  52. package/dist/cjs/r-toast.cjs.entry.js +10 -11
  53. package/dist/cjs/web-components.cjs.js +2 -2
  54. package/dist/collection/components/accordion/accordion.js +1 -2
  55. package/dist/collection/components/button/button.js +1 -2
  56. package/dist/collection/components/checkbox/checkbox.js +4 -5
  57. package/dist/collection/components/dialog/dialog.css +1 -1
  58. package/dist/collection/components/dialog/dialog.js +23 -8
  59. package/dist/collection/components/icon/bundled-icons/riverty-kit.json +1 -1
  60. package/dist/collection/components/icon/icon.js +2 -2
  61. package/dist/collection/components/icon/riverty-kit.js +1 -1
  62. package/dist/collection/components/icon-button/icon-button.js +3 -4
  63. package/dist/collection/components/input/input.js +37 -5
  64. package/dist/collection/components/input-date/input-date.js +7 -7
  65. package/dist/collection/components/input-password/input-password.js +3 -3
  66. package/dist/collection/components/input-phone-number/input-phone-number.js +5 -5
  67. package/dist/collection/components/label/label.js +4 -4
  68. package/dist/collection/components/list-item/list-item/list-item.css +19 -11
  69. package/dist/collection/components/list-item/list-item/list-item.js +41 -4
  70. package/dist/collection/components/radio-group/radio-group.js +7 -7
  71. package/dist/collection/components/select/select.js +3 -4
  72. package/dist/collection/components/textarea/textarea.js +1 -1
  73. package/dist/collection/components/toast/toast.css +8 -2
  74. package/dist/collection/components/toast/toast.js +10 -11
  75. package/dist/collection/components/toast-group/toast-group.css +14 -13
  76. package/dist/collection/components/toast-group/toast-group.js +14 -4
  77. package/dist/collection/components/tooltip/tooltip.css +6 -71
  78. package/dist/collection/components/tooltip/tooltip.js +135 -33
  79. package/dist/esm/{index-CTxpqopm.js → index-Da7qOBFr.js} +382 -5
  80. package/dist/esm/loader.js +3 -3
  81. package/dist/esm/r-accordion-item.entry.js +1 -1
  82. package/dist/esm/r-accordion-panel.entry.js +1 -1
  83. package/dist/esm/r-accordion-section.entry.js +1 -1
  84. package/dist/esm/r-accordion-trigger.entry.js +1 -1
  85. package/dist/esm/r-accordion.entry.js +2 -2
  86. package/dist/esm/r-alert.entry.js +1 -1
  87. package/dist/esm/r-badge.entry.js +1 -1
  88. package/dist/esm/r-button.entry.js +2 -2
  89. package/dist/esm/r-checkbox-group.entry.js +1 -1
  90. package/dist/esm/r-checkbox.entry.js +5 -5
  91. package/dist/esm/r-design-system-devtools.entry.js +1 -1
  92. package/dist/esm/r-dialog.entry.js +8 -10
  93. package/dist/esm/r-hint_3.entry.js +136 -38
  94. package/dist/esm/r-icon-button.entry.js +4 -4
  95. package/dist/esm/r-icon.entry.js +3 -3
  96. package/dist/esm/r-input-code.entry.js +1 -1
  97. package/dist/esm/r-input-date.entry.js +7 -7
  98. package/dist/esm/r-input-password.entry.js +3 -3
  99. package/dist/esm/r-input-phone-number.entry.js +5 -5
  100. package/dist/esm/r-input.entry.js +19 -6
  101. package/dist/esm/r-list-item.entry.js +5 -6
  102. package/dist/esm/r-pagination.entry.js +1 -1
  103. package/dist/esm/r-panel.entry.js +1 -1
  104. package/dist/esm/r-popover-action.entry.js +1 -1
  105. package/dist/esm/r-popover-content.entry.js +1 -1
  106. package/dist/esm/r-popover-headline.entry.js +1 -1
  107. package/dist/esm/r-popover-trigger.entry.js +1 -1
  108. package/dist/esm/r-popover.entry.js +1 -1
  109. package/dist/esm/r-progress-bar.entry.js +1 -1
  110. package/dist/esm/r-radio-button-description.entry.js +1 -1
  111. package/dist/esm/r-radio-button-leading.entry.js +1 -1
  112. package/dist/esm/r-radio-button-title.entry.js +1 -1
  113. package/dist/esm/r-radio-button-trailing.entry.js +1 -1
  114. package/dist/esm/r-radio-button.entry.js +1 -1
  115. package/dist/esm/r-radio-group.entry.js +7 -7
  116. package/dist/esm/r-select-option.entry.js +1 -1
  117. package/dist/esm/r-select.entry.js +3 -3
  118. package/dist/esm/r-skip-link.entry.js +1 -1
  119. package/dist/esm/r-stepper-item.entry.js +1 -1
  120. package/dist/esm/r-stepper.entry.js +1 -1
  121. package/dist/esm/r-tab-panel.entry.js +1 -1
  122. package/dist/esm/r-tab.entry.js +1 -1
  123. package/dist/esm/r-tabs-list.entry.js +1 -1
  124. package/dist/esm/r-tabs.entry.js +1 -1
  125. package/dist/esm/r-textarea.entry.js +1 -1
  126. package/dist/esm/r-toast-group.entry.js +15 -5
  127. package/dist/esm/r-toast.entry.js +10 -11
  128. package/dist/esm/web-components.js +3 -3
  129. package/dist/types/components/accordion/accordion.d.ts +0 -1
  130. package/dist/types/components/button/button.d.ts +0 -1
  131. package/dist/types/components/checkbox/checkbox.d.ts +0 -1
  132. package/dist/types/components/dialog/dialog.d.ts +6 -1
  133. package/dist/types/components/icon/exports.d.ts +1 -0
  134. package/dist/types/components/icon/icon-data.d.ts +1 -0
  135. package/dist/types/components/icon/icon.d.ts +1 -1
  136. package/dist/types/components/icon/riverty-kit.d.ts +1 -0
  137. package/dist/types/components/icon-button/icon-button.d.ts +0 -1
  138. package/dist/types/components/input/input.d.ts +6 -0
  139. package/dist/types/components/input-date/input-date.d.ts +1 -1
  140. package/dist/types/components/input-password/input-password.d.ts +1 -1
  141. package/dist/types/components/input-phone-number/input-phone-number.d.ts +1 -1
  142. package/dist/types/components/label/label.d.ts +1 -1
  143. package/dist/types/components/list-item/list-item/list-item.d.ts +6 -1
  144. package/dist/types/components/radio-group/radio-group.d.ts +1 -1
  145. package/dist/types/components/select/select.d.ts +1 -2
  146. package/dist/types/components/textarea/textarea.d.ts +3 -3
  147. package/dist/types/components/toast/toast.d.ts +1 -3
  148. package/dist/types/components/toast-group/toast-group.d.ts +2 -0
  149. package/dist/types/components/tooltip/tooltip.d.ts +12 -4
  150. package/dist/types/components.d.ts +63 -40
  151. package/dist/web-components/bundled-icons/riverty-kit.json +1 -1
  152. package/dist/web-components/{p-aecd025b.entry.js → p-00ca474f.entry.js} +1 -1
  153. package/dist/web-components/{p-9c40f9cd.entry.js → p-0bb04d79.entry.js} +1 -1
  154. package/dist/web-components/{p-48dfb286.entry.js → p-1ae69897.entry.js} +1 -1
  155. package/dist/web-components/{p-4cf01f30.entry.js → p-1c2497de.entry.js} +1 -1
  156. package/dist/web-components/{p-03ff9abf.entry.js → p-230e44ae.entry.js} +1 -1
  157. package/dist/web-components/p-29a1e75f.entry.js +1 -0
  158. package/dist/web-components/{p-1157b7f4.entry.js → p-2b2f581a.entry.js} +1 -1
  159. package/dist/web-components/{p-0a424361.entry.js → p-3b4e3faf.entry.js} +1 -1
  160. package/dist/web-components/p-3bc93d65.entry.js +1 -0
  161. package/dist/web-components/{p-dc93ed55.entry.js → p-429213ea.entry.js} +1 -1
  162. package/dist/web-components/{p-c7a9da98.entry.js → p-44ae9f33.entry.js} +1 -1
  163. package/dist/web-components/{p-c60294d4.entry.js → p-44be9992.entry.js} +1 -1
  164. package/dist/web-components/{p-66c454ce.entry.js → p-4652635a.entry.js} +1 -1
  165. package/dist/web-components/{p-e50503d0.entry.js → p-4bd3e077.entry.js} +1 -1
  166. package/dist/web-components/{p-89ff32dc.entry.js → p-4e3df002.entry.js} +1 -1
  167. package/dist/web-components/p-51a5804b.entry.js +1 -0
  168. package/dist/web-components/{p-2d85c0f3.entry.js → p-72c0c0d8.entry.js} +1 -1
  169. package/dist/web-components/{p-e273950c.entry.js → p-72fa1fd1.entry.js} +1 -1
  170. package/dist/web-components/{p-135be1d5.entry.js → p-755cc697.entry.js} +1 -1
  171. package/dist/web-components/{p-e74c363a.entry.js → p-77155630.entry.js} +1 -1
  172. package/dist/web-components/{p-3ea6a1be.entry.js → p-8028c2a9.entry.js} +1 -1
  173. package/dist/web-components/{p-3fc2b23b.entry.js → p-828cb164.entry.js} +1 -1
  174. package/dist/web-components/{p-988a7731.entry.js → p-85a9af42.entry.js} +1 -1
  175. package/dist/web-components/{p-24130cdb.entry.js → p-87f39749.entry.js} +1 -1
  176. package/dist/web-components/{p-c9b2389b.entry.js → p-89136369.entry.js} +1 -1
  177. package/dist/web-components/{p-77dc268e.entry.js → p-8c577cda.entry.js} +1 -1
  178. package/dist/web-components/{p-8d2f4097.entry.js → p-96ddeb7f.entry.js} +1 -1
  179. package/dist/web-components/{p-735da2bb.entry.js → p-9b08e9ee.entry.js} +1 -1
  180. package/dist/web-components/{p-6b7d5236.entry.js → p-9e50120b.entry.js} +1 -1
  181. package/dist/web-components/{p-900923ab.entry.js → p-9eb1f262.entry.js} +1 -1
  182. package/dist/web-components/p-Da7qOBFr.js +2 -0
  183. package/dist/web-components/{p-2394508f.entry.js → p-a022f356.entry.js} +1 -1
  184. package/dist/web-components/{p-df81177e.entry.js → p-a58124c4.entry.js} +1 -1
  185. package/dist/web-components/p-a5be3395.entry.js +1 -0
  186. package/dist/web-components/{p-9891afb8.entry.js → p-a7e7f8fa.entry.js} +1 -1
  187. package/dist/web-components/p-b2cec978.entry.js +1 -0
  188. package/dist/web-components/{p-71d6c4d7.entry.js → p-c7f8e59b.entry.js} +1 -1
  189. package/dist/web-components/{p-f625b739.entry.js → p-c937bd92.entry.js} +1 -1
  190. package/dist/web-components/p-cbcd7699.entry.js +1 -0
  191. package/dist/web-components/{p-fdf70aed.entry.js → p-d3ff65b0.entry.js} +1 -1
  192. package/dist/web-components/p-e0e2f2b2.entry.js +1 -0
  193. package/dist/web-components/{p-8d6a35e3.entry.js → p-e49b1ec3.entry.js} +1 -1
  194. package/dist/web-components/p-e4b66277.entry.js +1 -0
  195. package/dist/web-components/p-e6a31881.entry.js +1 -0
  196. package/dist/web-components/{p-05ba30ba.entry.js → p-f1e22caa.entry.js} +1 -1
  197. package/dist/web-components/p-f6a92287.entry.js +1 -0
  198. package/dist/web-components/p-f770e22b.entry.js +1 -0
  199. package/dist/web-components/p-f7adb875.entry.js +1 -0
  200. package/dist/web-components/web-components.esm.js +1 -1
  201. package/package.json +2 -1
  202. package/dist/web-components/p-0ac858b8.entry.js +0 -1
  203. package/dist/web-components/p-0bb0de18.entry.js +0 -1
  204. package/dist/web-components/p-10724c18.entry.js +0 -1
  205. package/dist/web-components/p-1ed3efd7.entry.js +0 -1
  206. package/dist/web-components/p-20f979ff.entry.js +0 -1
  207. package/dist/web-components/p-31c8388d.entry.js +0 -1
  208. package/dist/web-components/p-333707b2.entry.js +0 -1
  209. package/dist/web-components/p-61f78bf6.entry.js +0 -1
  210. package/dist/web-components/p-8f719321.entry.js +0 -1
  211. package/dist/web-components/p-9f583ed1.entry.js +0 -1
  212. package/dist/web-components/p-CTxpqopm.js +0 -2
  213. package/dist/web-components/p-caca2855.entry.js +0 -1
  214. package/dist/web-components/p-ef0f43e0.entry.js +0 -1
@@ -19,7 +19,7 @@ function _interopNamespace(e) {
19
19
  }
20
20
 
21
21
  const NAMESPACE = 'web-components';
22
- const BUILD = /* web-components */ { hydratedSelectorName: "hydrated", lazyLoad: true, updatable: true};
22
+ const BUILD = /* web-components */ { hydratedSelectorName: "hydrated", lazyLoad: true, slotRelocation: true, updatable: true};
23
23
 
24
24
  /*
25
25
  Stencil Client Platform v4.37.1 | MIT Licensed | https://stenciljs.com
@@ -374,6 +374,9 @@ var flush = () => {
374
374
  };
375
375
  var nextTick = (cb) => promiseResolve().then(cb);
376
376
  var writeTask = /* @__PURE__ */ queueTask(queueDomWrites, true);
377
+
378
+ // src/utils/helpers.ts
379
+ var isDef = (v) => v != null && v !== void 0;
377
380
  var isComplexType = (o) => {
378
381
  o = typeof o;
379
382
  return o === "object" || o === "function";
@@ -458,6 +461,112 @@ function createShadowRoot(cmpMeta) {
458
461
  }
459
462
  }
460
463
  }
464
+ var updateFallbackSlotVisibility = (elm) => {
465
+ const childNodes = internalCall(elm, "childNodes");
466
+ if (elm.tagName && elm.tagName.includes("-") && elm["s-cr"] && elm.tagName !== "SLOT-FB") {
467
+ getHostSlotNodes(childNodes, elm.tagName).forEach((slotNode) => {
468
+ if (slotNode.nodeType === 1 /* ElementNode */ && slotNode.tagName === "SLOT-FB") {
469
+ if (getSlotChildSiblings(slotNode, getSlotName(slotNode), false).length) {
470
+ slotNode.hidden = true;
471
+ } else {
472
+ slotNode.hidden = false;
473
+ }
474
+ }
475
+ });
476
+ }
477
+ let i2 = 0;
478
+ for (i2 = 0; i2 < childNodes.length; i2++) {
479
+ const childNode = childNodes[i2];
480
+ if (childNode.nodeType === 1 /* ElementNode */ && internalCall(childNode, "childNodes").length) {
481
+ updateFallbackSlotVisibility(childNode);
482
+ }
483
+ }
484
+ };
485
+ var getSlottedChildNodes = (childNodes) => {
486
+ const result = [];
487
+ for (let i2 = 0; i2 < childNodes.length; i2++) {
488
+ const slottedNode = childNodes[i2]["s-nr"] || void 0;
489
+ if (slottedNode && slottedNode.isConnected) {
490
+ result.push(slottedNode);
491
+ }
492
+ }
493
+ return result;
494
+ };
495
+ function getHostSlotNodes(childNodes, hostName, slotName) {
496
+ let i2 = 0;
497
+ let slottedNodes = [];
498
+ let childNode;
499
+ for (; i2 < childNodes.length; i2++) {
500
+ childNode = childNodes[i2];
501
+ if (childNode["s-sr"] && (!hostName || childNode["s-hn"] === hostName) && (slotName === void 0)) {
502
+ slottedNodes.push(childNode);
503
+ }
504
+ slottedNodes = [...slottedNodes, ...getHostSlotNodes(childNode.childNodes, hostName, slotName)];
505
+ }
506
+ return slottedNodes;
507
+ }
508
+ var getSlotChildSiblings = (slot, slotName, includeSlot = true) => {
509
+ const childNodes = [];
510
+ if (includeSlot && slot["s-sr"] || !slot["s-sr"]) childNodes.push(slot);
511
+ let node = slot;
512
+ while (node = node.nextSibling) {
513
+ if (getSlotName(node) === slotName && (includeSlot || !node["s-sr"])) childNodes.push(node);
514
+ }
515
+ return childNodes;
516
+ };
517
+ var isNodeLocatedInSlot = (nodeToRelocate, slotName) => {
518
+ if (nodeToRelocate.nodeType === 1 /* ElementNode */) {
519
+ if (nodeToRelocate.getAttribute("slot") === null && slotName === "") {
520
+ return true;
521
+ }
522
+ if (nodeToRelocate.getAttribute("slot") === slotName) {
523
+ return true;
524
+ }
525
+ return false;
526
+ }
527
+ if (nodeToRelocate["s-sn"] === slotName) {
528
+ return true;
529
+ }
530
+ return slotName === "";
531
+ };
532
+ var getSlotName = (node) => typeof node["s-sn"] === "string" ? node["s-sn"] : node.nodeType === 1 && node.getAttribute("slot") || void 0;
533
+ function patchSlotNode(node) {
534
+ if (node.assignedElements || node.assignedNodes || !node["s-sr"]) return;
535
+ const assignedFactory = (elementsOnly) => (function(opts) {
536
+ const toReturn = [];
537
+ const slotName = this["s-sn"];
538
+ if (opts == null ? void 0 : opts.flatten) {
539
+ console.error(`
540
+ Flattening is not supported for Stencil non-shadow slots.
541
+ You can use \`.childNodes\` to nested slot fallback content.
542
+ If you have a particular use case, please open an issue on the Stencil repo.
543
+ `);
544
+ }
545
+ const parent = this["s-cr"].parentElement;
546
+ const slottedNodes = parent.__childNodes ? parent.childNodes : getSlottedChildNodes(parent.childNodes);
547
+ slottedNodes.forEach((n) => {
548
+ if (slotName === getSlotName(n)) {
549
+ toReturn.push(n);
550
+ }
551
+ });
552
+ if (elementsOnly) {
553
+ return toReturn.filter((n) => n.nodeType === 1 /* ElementNode */);
554
+ }
555
+ return toReturn;
556
+ }).bind(node);
557
+ node.assignedElements = assignedFactory(true);
558
+ node.assignedNodes = assignedFactory(false);
559
+ }
560
+ function internalCall(node, method) {
561
+ if ("__" + method in node) {
562
+ const toReturn = node["__" + method];
563
+ if (typeof toReturn !== "function") return toReturn;
564
+ return toReturn.bind(node);
565
+ } else {
566
+ if (typeof node[method] !== "function") return node[method];
567
+ return node[method].bind(node);
568
+ }
569
+ }
461
570
  var createTime = (fnName, tagName = "") => {
462
571
  {
463
572
  return () => {
@@ -579,6 +688,7 @@ var getScopeId = (cmp, mode) => "sc-" + (cmp.$tagName$);
579
688
  var h = (nodeName, vnodeData, ...children) => {
580
689
  let child = null;
581
690
  let key = null;
691
+ let slotName = null;
582
692
  let simple = false;
583
693
  let lastSimple = false;
584
694
  const vNodeChildren = [];
@@ -605,6 +715,9 @@ var h = (nodeName, vnodeData, ...children) => {
605
715
  if (vnodeData.key) {
606
716
  key = vnodeData.key;
607
717
  }
718
+ if (vnodeData.name) {
719
+ slotName = vnodeData.name;
720
+ }
608
721
  {
609
722
  const classData = vnodeData.className || vnodeData.class;
610
723
  if (classData) {
@@ -627,6 +740,9 @@ var h = (nodeName, vnodeData, ...children) => {
627
740
  {
628
741
  vnode.$key$ = key;
629
742
  }
743
+ {
744
+ vnode.$name$ = slotName;
745
+ }
630
746
  return vnode;
631
747
  };
632
748
  var newVNode = (tag, text) => {
@@ -643,6 +759,9 @@ var newVNode = (tag, text) => {
643
759
  {
644
760
  vnode.$key$ = null;
645
761
  }
762
+ {
763
+ vnode.$name$ = null;
764
+ }
646
765
  return vnode;
647
766
  };
648
767
  var Host = {};
@@ -883,15 +1002,44 @@ function sortedAttrNames(attrNames) {
883
1002
  attrNames
884
1003
  );
885
1004
  }
1005
+
1006
+ // src/runtime/vdom/vdom-render.ts
1007
+ var scopeId;
1008
+ var contentRef;
886
1009
  var hostTagName;
1010
+ var useNativeShadowDom = false;
1011
+ var checkSlotFallbackVisibility = false;
1012
+ var checkSlotRelocate = false;
887
1013
  var isSvgMode = false;
888
1014
  var createElm = (oldParentVNode, newParentVNode, childIndex) => {
1015
+ var _a;
889
1016
  const newVNode2 = newParentVNode.$children$[childIndex];
890
1017
  let i2 = 0;
891
1018
  let elm;
892
1019
  let childNode;
1020
+ let oldVNode;
1021
+ if (!useNativeShadowDom) {
1022
+ checkSlotRelocate = true;
1023
+ if (newVNode2.$tag$ === "slot") {
1024
+ newVNode2.$flags$ |= newVNode2.$children$ ? (
1025
+ // slot element has fallback content
1026
+ // still create an element that "mocks" the slot element
1027
+ 2 /* isSlotFallback */
1028
+ ) : (
1029
+ // slot element does not have fallback content
1030
+ // create an html comment we'll use to always reference
1031
+ // where actual slot content should sit next to
1032
+ 1 /* isSlotReference */
1033
+ );
1034
+ }
1035
+ }
893
1036
  if (newVNode2.$text$ !== null) {
894
1037
  elm = newVNode2.$elm$ = win.document.createTextNode(newVNode2.$text$);
1038
+ } else if (newVNode2.$flags$ & 1 /* isSlotReference */) {
1039
+ elm = newVNode2.$elm$ = win.document.createTextNode("");
1040
+ {
1041
+ updateElement(null, newVNode2, isSvgMode);
1042
+ }
895
1043
  } else {
896
1044
  if (!isSvgMode) {
897
1045
  isSvgMode = newVNode2.$tag$ === "svg";
@@ -903,7 +1051,7 @@ var createElm = (oldParentVNode, newParentVNode, childIndex) => {
903
1051
  }
904
1052
  elm = newVNode2.$elm$ = win.document.createElementNS(
905
1053
  isSvgMode ? SVG_NS : HTML_NS,
906
- newVNode2.$tag$
1054
+ !useNativeShadowDom && BUILD.slotRelocation && newVNode2.$flags$ & 2 /* isSlotFallback */ ? "slot-fb" : newVNode2.$tag$
907
1055
  ) ;
908
1056
  if (isSvgMode && newVNode2.$tag$ === "foreignObject") {
909
1057
  isSvgMode = false;
@@ -911,6 +1059,9 @@ var createElm = (oldParentVNode, newParentVNode, childIndex) => {
911
1059
  {
912
1060
  updateElement(null, newVNode2, isSvgMode);
913
1061
  }
1062
+ if (isDef(scopeId) && elm["s-si"] !== scopeId) {
1063
+ elm.classList.add(elm["s-si"] = scopeId);
1064
+ }
914
1065
  if (newVNode2.$children$) {
915
1066
  for (i2 = 0; i2 < newVNode2.$children$.length; ++i2) {
916
1067
  childNode = createElm(oldParentVNode, newVNode2, i2);
@@ -928,10 +1079,46 @@ var createElm = (oldParentVNode, newParentVNode, childIndex) => {
928
1079
  }
929
1080
  }
930
1081
  elm["s-hn"] = hostTagName;
1082
+ {
1083
+ if (newVNode2.$flags$ & (2 /* isSlotFallback */ | 1 /* isSlotReference */)) {
1084
+ elm["s-sr"] = true;
1085
+ elm["s-cr"] = contentRef;
1086
+ elm["s-sn"] = newVNode2.$name$ || "";
1087
+ elm["s-rf"] = (_a = newVNode2.$attrs$) == null ? void 0 : _a.ref;
1088
+ patchSlotNode(elm);
1089
+ oldVNode = oldParentVNode && oldParentVNode.$children$ && oldParentVNode.$children$[childIndex];
1090
+ if (oldVNode && oldVNode.$tag$ === newVNode2.$tag$ && oldParentVNode.$elm$) {
1091
+ {
1092
+ putBackInOriginalLocation(oldParentVNode.$elm$, false);
1093
+ }
1094
+ }
1095
+ {
1096
+ addRemoveSlotScopedClass(contentRef, elm, newParentVNode.$elm$, oldParentVNode == null ? void 0 : oldParentVNode.$elm$);
1097
+ }
1098
+ }
1099
+ }
931
1100
  return elm;
932
1101
  };
1102
+ var putBackInOriginalLocation = (parentElm, recursive) => {
1103
+ plt.$flags$ |= 1 /* isTmpDisconnected */;
1104
+ const oldSlotChildNodes = Array.from(parentElm.__childNodes || parentElm.childNodes);
1105
+ for (let i2 = oldSlotChildNodes.length - 1; i2 >= 0; i2--) {
1106
+ const childNode = oldSlotChildNodes[i2];
1107
+ if (childNode["s-hn"] !== hostTagName && childNode["s-ol"]) {
1108
+ insertBefore(referenceNode(childNode).parentNode, childNode, referenceNode(childNode));
1109
+ childNode["s-ol"].remove();
1110
+ childNode["s-ol"] = void 0;
1111
+ childNode["s-sh"] = void 0;
1112
+ checkSlotRelocate = true;
1113
+ }
1114
+ if (recursive) {
1115
+ putBackInOriginalLocation(childNode, recursive);
1116
+ }
1117
+ }
1118
+ plt.$flags$ &= -2 /* isTmpDisconnected */;
1119
+ };
933
1120
  var addVnodes = (parentElm, before, parentVNode, vnodes, startIdx, endIdx) => {
934
- let containerElm = parentElm;
1121
+ let containerElm = parentElm["s-cr"] && parentElm["s-cr"].parentNode || parentElm;
935
1122
  let childNode;
936
1123
  if (containerElm.shadowRoot && containerElm.tagName === hostTagName) {
937
1124
  containerElm = containerElm.shadowRoot;
@@ -941,7 +1128,7 @@ var addVnodes = (parentElm, before, parentVNode, vnodes, startIdx, endIdx) => {
941
1128
  childNode = createElm(null, parentVNode, startIdx);
942
1129
  if (childNode) {
943
1130
  vnodes[startIdx].$elm$ = childNode;
944
- insertBefore(containerElm, childNode, before);
1131
+ insertBefore(containerElm, childNode, referenceNode(before) );
945
1132
  }
946
1133
  }
947
1134
  }
@@ -953,6 +1140,14 @@ var removeVnodes = (vnodes, startIdx, endIdx) => {
953
1140
  const elm = vnode.$elm$;
954
1141
  nullifyVNodeRefs(vnode);
955
1142
  if (elm) {
1143
+ {
1144
+ checkSlotFallbackVisibility = true;
1145
+ if (elm["s-ol"]) {
1146
+ elm["s-ol"].remove();
1147
+ } else {
1148
+ putBackInOriginalLocation(elm, true);
1149
+ }
1150
+ }
956
1151
  elm.remove();
957
1152
  }
958
1153
  }
@@ -989,11 +1184,17 @@ var updateChildren = (parentElm, oldCh, newVNode2, newCh, isInitialRender = fals
989
1184
  oldEndVnode = oldCh[--oldEndIdx];
990
1185
  newEndVnode = newCh[--newEndIdx];
991
1186
  } else if (isSameVnode(oldStartVnode, newEndVnode, isInitialRender)) {
1187
+ if ((oldStartVnode.$tag$ === "slot" || newEndVnode.$tag$ === "slot")) {
1188
+ putBackInOriginalLocation(oldStartVnode.$elm$.parentNode, false);
1189
+ }
992
1190
  patch(oldStartVnode, newEndVnode, isInitialRender);
993
1191
  insertBefore(parentElm, oldStartVnode.$elm$, oldEndVnode.$elm$.nextSibling);
994
1192
  oldStartVnode = oldCh[++oldStartIdx];
995
1193
  newEndVnode = newCh[--newEndIdx];
996
1194
  } else if (isSameVnode(oldEndVnode, newStartVnode, isInitialRender)) {
1195
+ if ((oldStartVnode.$tag$ === "slot" || newEndVnode.$tag$ === "slot")) {
1196
+ putBackInOriginalLocation(oldEndVnode.$elm$.parentNode, false);
1197
+ }
997
1198
  patch(oldEndVnode, newStartVnode, isInitialRender);
998
1199
  insertBefore(parentElm, oldEndVnode.$elm$, oldStartVnode.$elm$);
999
1200
  oldEndVnode = oldCh[--oldEndIdx];
@@ -1024,7 +1225,11 @@ var updateChildren = (parentElm, oldCh, newVNode2, newCh, isInitialRender = fals
1024
1225
  }
1025
1226
  if (node) {
1026
1227
  {
1027
- insertBefore(oldStartVnode.$elm$.parentNode, node, oldStartVnode.$elm$);
1228
+ insertBefore(
1229
+ referenceNode(oldStartVnode.$elm$).parentNode,
1230
+ node,
1231
+ referenceNode(oldStartVnode.$elm$)
1232
+ );
1028
1233
  }
1029
1234
  }
1030
1235
  }
@@ -1044,6 +1249,9 @@ var updateChildren = (parentElm, oldCh, newVNode2, newCh, isInitialRender = fals
1044
1249
  };
1045
1250
  var isSameVnode = (leftVNode, rightVNode, isInitialRender = false) => {
1046
1251
  if (leftVNode.$tag$ === rightVNode.$tag$) {
1252
+ if (leftVNode.$tag$ === "slot") {
1253
+ return leftVNode.$name$ === rightVNode.$name$;
1254
+ }
1047
1255
  if (!isInitialRender) {
1048
1256
  return leftVNode.$key$ === rightVNode.$key$;
1049
1257
  }
@@ -1054,12 +1262,14 @@ var isSameVnode = (leftVNode, rightVNode, isInitialRender = false) => {
1054
1262
  }
1055
1263
  return false;
1056
1264
  };
1265
+ var referenceNode = (node) => node && node["s-ol"] || node;
1057
1266
  var patch = (oldVNode, newVNode2, isInitialRender = false) => {
1058
1267
  const elm = newVNode2.$elm$ = oldVNode.$elm$;
1059
1268
  const oldChildren = oldVNode.$children$;
1060
1269
  const newChildren = newVNode2.$children$;
1061
1270
  const tag = newVNode2.$tag$;
1062
1271
  const text = newVNode2.$text$;
1272
+ let defaultHolder;
1063
1273
  if (text === null) {
1064
1274
  {
1065
1275
  isSvgMode = tag === "svg" ? true : tag === "foreignObject" ? false : isSvgMode;
@@ -1083,10 +1293,62 @@ var patch = (oldVNode, newVNode2, isInitialRender = false) => {
1083
1293
  if (isSvgMode && tag === "svg") {
1084
1294
  isSvgMode = false;
1085
1295
  }
1296
+ } else if ((defaultHolder = elm["s-cr"])) {
1297
+ defaultHolder.parentNode.textContent = text;
1086
1298
  } else if (oldVNode.$text$ !== text) {
1087
1299
  elm.data = text;
1088
1300
  }
1089
1301
  };
1302
+ var relocateNodes = [];
1303
+ var markSlotContentForRelocation = (elm) => {
1304
+ let node;
1305
+ let hostContentNodes;
1306
+ let j;
1307
+ const children = elm.__childNodes || elm.childNodes;
1308
+ for (const childNode of children) {
1309
+ if (childNode["s-sr"] && (node = childNode["s-cr"]) && node.parentNode) {
1310
+ hostContentNodes = node.parentNode.__childNodes || node.parentNode.childNodes;
1311
+ const slotName = childNode["s-sn"];
1312
+ for (j = hostContentNodes.length - 1; j >= 0; j--) {
1313
+ node = hostContentNodes[j];
1314
+ if (!node["s-cn"] && !node["s-nr"] && node["s-hn"] !== childNode["s-hn"] && (true)) {
1315
+ if (isNodeLocatedInSlot(node, slotName)) {
1316
+ let relocateNodeData = relocateNodes.find((r) => r.$nodeToRelocate$ === node);
1317
+ checkSlotFallbackVisibility = true;
1318
+ node["s-sn"] = node["s-sn"] || slotName;
1319
+ if (relocateNodeData) {
1320
+ relocateNodeData.$nodeToRelocate$["s-sh"] = childNode["s-hn"];
1321
+ relocateNodeData.$slotRefNode$ = childNode;
1322
+ } else {
1323
+ node["s-sh"] = childNode["s-hn"];
1324
+ relocateNodes.push({
1325
+ $slotRefNode$: childNode,
1326
+ $nodeToRelocate$: node
1327
+ });
1328
+ }
1329
+ if (node["s-sr"]) {
1330
+ relocateNodes.map((relocateNode) => {
1331
+ if (isNodeLocatedInSlot(relocateNode.$nodeToRelocate$, node["s-sn"])) {
1332
+ relocateNodeData = relocateNodes.find((r) => r.$nodeToRelocate$ === node);
1333
+ if (relocateNodeData && !relocateNode.$slotRefNode$) {
1334
+ relocateNode.$slotRefNode$ = relocateNodeData.$slotRefNode$;
1335
+ }
1336
+ }
1337
+ });
1338
+ }
1339
+ } else if (!relocateNodes.some((r) => r.$nodeToRelocate$ === node)) {
1340
+ relocateNodes.push({
1341
+ $nodeToRelocate$: node
1342
+ });
1343
+ }
1344
+ }
1345
+ }
1346
+ }
1347
+ if (childNode.nodeType === 1 /* ElementNode */) {
1348
+ markSlotContentForRelocation(childNode);
1349
+ }
1350
+ }
1351
+ };
1090
1352
  var nullifyVNodeRefs = (vNode) => {
1091
1353
  {
1092
1354
  vNode.$attrs$ && vNode.$attrs$.ref && vNode.$attrs$.ref(null);
@@ -1094,11 +1356,36 @@ var nullifyVNodeRefs = (vNode) => {
1094
1356
  }
1095
1357
  };
1096
1358
  var insertBefore = (parent, newNode, reference) => {
1359
+ if (typeof newNode["s-sn"] === "string" && !!newNode["s-sr"] && !!newNode["s-cr"]) {
1360
+ addRemoveSlotScopedClass(newNode["s-cr"], newNode, parent, newNode.parentElement);
1361
+ }
1097
1362
  {
1098
1363
  return parent == null ? void 0 : parent.insertBefore(newNode, reference);
1099
1364
  }
1100
1365
  };
1366
+ function addRemoveSlotScopedClass(reference, slotNode, newParent, oldParent) {
1367
+ var _a, _b;
1368
+ let scopeId2;
1369
+ if (reference && typeof slotNode["s-sn"] === "string" && !!slotNode["s-sr"] && reference.parentNode && reference.parentNode["s-sc"] && (scopeId2 = slotNode["s-si"] || reference.parentNode["s-sc"])) {
1370
+ const scopeName = slotNode["s-sn"];
1371
+ const hostName = slotNode["s-hn"];
1372
+ (_a = newParent.classList) == null ? void 0 : _a.add(scopeId2 + "-s");
1373
+ if (oldParent && ((_b = oldParent.classList) == null ? void 0 : _b.contains(scopeId2 + "-s"))) {
1374
+ let child = (oldParent.__childNodes || oldParent.childNodes)[0];
1375
+ let found = false;
1376
+ while (child) {
1377
+ if (child["s-sn"] !== scopeName && child["s-hn"] === hostName && !!child["s-sr"]) {
1378
+ found = true;
1379
+ break;
1380
+ }
1381
+ child = child.nextSibling;
1382
+ }
1383
+ if (!found) oldParent.classList.remove(scopeId2 + "-s");
1384
+ }
1385
+ }
1386
+ }
1101
1387
  var renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
1388
+ var _a, _b, _c, _d;
1102
1389
  const hostElm = hostRef.$hostElement$;
1103
1390
  const cmpMeta = hostRef.$cmpMeta$;
1104
1391
  const oldVNode = hostRef.$vnode$ || newVNode(null, null);
@@ -1122,7 +1409,81 @@ var renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
1122
1409
  rootVnode.$flags$ |= 4 /* isHost */;
1123
1410
  hostRef.$vnode$ = rootVnode;
1124
1411
  rootVnode.$elm$ = oldVNode.$elm$ = hostElm.shadowRoot || hostElm ;
1412
+ {
1413
+ scopeId = hostElm["s-sc"];
1414
+ }
1415
+ useNativeShadowDom = !!(cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */) && !(cmpMeta.$flags$ & 128 /* shadowNeedsScopedCss */);
1416
+ {
1417
+ contentRef = hostElm["s-cr"];
1418
+ checkSlotFallbackVisibility = false;
1419
+ }
1125
1420
  patch(oldVNode, rootVnode, isInitialLoad);
1421
+ {
1422
+ plt.$flags$ |= 1 /* isTmpDisconnected */;
1423
+ if (checkSlotRelocate) {
1424
+ markSlotContentForRelocation(rootVnode.$elm$);
1425
+ for (const relocateData of relocateNodes) {
1426
+ const nodeToRelocate = relocateData.$nodeToRelocate$;
1427
+ if (!nodeToRelocate["s-ol"] && win.document) {
1428
+ const orgLocationNode = win.document.createTextNode("");
1429
+ orgLocationNode["s-nr"] = nodeToRelocate;
1430
+ insertBefore(nodeToRelocate.parentNode, nodeToRelocate["s-ol"] = orgLocationNode, nodeToRelocate);
1431
+ }
1432
+ }
1433
+ for (const relocateData of relocateNodes) {
1434
+ const nodeToRelocate = relocateData.$nodeToRelocate$;
1435
+ const slotRefNode = relocateData.$slotRefNode$;
1436
+ if (slotRefNode) {
1437
+ const parentNodeRef = slotRefNode.parentNode;
1438
+ let insertBeforeNode = slotRefNode.nextSibling;
1439
+ {
1440
+ let orgLocationNode = (_a = nodeToRelocate["s-ol"]) == null ? void 0 : _a.previousSibling;
1441
+ while (orgLocationNode) {
1442
+ let refNode = (_b = orgLocationNode["s-nr"]) != null ? _b : null;
1443
+ if (refNode && refNode["s-sn"] === nodeToRelocate["s-sn"] && parentNodeRef === (refNode.__parentNode || refNode.parentNode)) {
1444
+ refNode = refNode.nextSibling;
1445
+ while (refNode === nodeToRelocate || (refNode == null ? void 0 : refNode["s-sr"])) {
1446
+ refNode = refNode == null ? void 0 : refNode.nextSibling;
1447
+ }
1448
+ if (!refNode || !refNode["s-nr"]) {
1449
+ insertBeforeNode = refNode;
1450
+ break;
1451
+ }
1452
+ }
1453
+ orgLocationNode = orgLocationNode.previousSibling;
1454
+ }
1455
+ }
1456
+ const parent = nodeToRelocate.__parentNode || nodeToRelocate.parentNode;
1457
+ const nextSibling = nodeToRelocate.__nextSibling || nodeToRelocate.nextSibling;
1458
+ if (!insertBeforeNode && parentNodeRef !== parent || nextSibling !== insertBeforeNode) {
1459
+ if (nodeToRelocate !== insertBeforeNode) {
1460
+ if (!nodeToRelocate["s-hn"] && nodeToRelocate["s-ol"]) {
1461
+ nodeToRelocate["s-hn"] = nodeToRelocate["s-ol"].parentNode.nodeName;
1462
+ }
1463
+ insertBefore(parentNodeRef, nodeToRelocate, insertBeforeNode);
1464
+ if (nodeToRelocate.nodeType === 1 /* ElementNode */ && nodeToRelocate.tagName !== "SLOT-FB") {
1465
+ nodeToRelocate.hidden = (_c = nodeToRelocate["s-ih"]) != null ? _c : false;
1466
+ }
1467
+ }
1468
+ }
1469
+ nodeToRelocate && typeof slotRefNode["s-rf"] === "function" && slotRefNode["s-rf"](slotRefNode);
1470
+ } else {
1471
+ if (nodeToRelocate.nodeType === 1 /* ElementNode */) {
1472
+ if (isInitialLoad) {
1473
+ nodeToRelocate["s-ih"] = (_d = nodeToRelocate.hidden) != null ? _d : false;
1474
+ }
1475
+ nodeToRelocate.hidden = true;
1476
+ }
1477
+ }
1478
+ }
1479
+ }
1480
+ if (checkSlotFallbackVisibility) {
1481
+ updateFallbackSlotVisibility(rootVnode.$elm$);
1482
+ }
1483
+ plt.$flags$ &= -2 /* isTmpDisconnected */;
1484
+ relocateNodes.length = 0;
1485
+ }
1486
+ contentRef = void 0;
1126
1487
  };
1127
1488
 
1128
1489
  // src/runtime/update-component.ts
@@ -1575,6 +1936,12 @@ var connectedCallback = (elm) => {
1575
1936
  const endConnected = createTime("connectedCallback", cmpMeta.$tagName$);
1576
1937
  if (!(hostRef.$flags$ & 1 /* hasConnected */)) {
1577
1938
  hostRef.$flags$ |= 1 /* hasConnected */;
1939
+ {
1940
+ if (// TODO(STENCIL-854): Remove code related to legacy shadowDomShim field
1941
+ cmpMeta.$flags$ & (4 /* hasSlotRelocation */ | 8 /* needsShadowDomShim */)) {
1942
+ setContentReference(elm);
1943
+ }
1944
+ }
1578
1945
  {
1579
1946
  let ancestorComponent = elm;
1580
1947
  while (ancestorComponent = ancestorComponent.parentNode || ancestorComponent.host) {
@@ -1607,6 +1974,16 @@ var connectedCallback = (elm) => {
1607
1974
  endConnected();
1608
1975
  }
1609
1976
  };
1977
+ var setContentReference = (elm) => {
1978
+ if (!win.document) {
1979
+ return;
1980
+ }
1981
+ const contentRefElm = elm["s-cr"] = win.document.createComment(
1982
+ ""
1983
+ );
1984
+ contentRefElm["s-cn"] = true;
1985
+ insertBefore(elm, contentRefElm, elm.firstChild);
1986
+ };
1610
1987
  var disconnectInstance = (instance, elm) => {
1611
1988
  {
1612
1989
  safeCall(instance, "disconnectedCallback", void 0, elm || instance);