@coveo/atomic-react 3.11.42 → 3.11.44

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 (55) hide show
  1. package/dist/assets/ai.svg +1 -1
  2. package/dist/assets/ai_model_generative.svg +1 -0
  3. package/dist/assets/attachment.svg +1 -1
  4. package/dist/assets/audio.svg +1 -1
  5. package/dist/assets/box_notes.svg +1 -1
  6. package/dist/assets/css.svg +1 -1
  7. package/dist/assets/csv.svg +1 -1
  8. package/dist/assets/eps.svg +1 -1
  9. package/dist/assets/excel.svg +1 -1
  10. package/dist/assets/exe.svg +1 -1
  11. package/dist/assets/flash.svg +1 -1
  12. package/dist/assets/gdoc.svg +1 -1
  13. package/dist/assets/gdocs.svg +1 -1
  14. package/dist/assets/gform.svg +1 -1
  15. package/dist/assets/gpres.svg +1 -1
  16. package/dist/assets/gsheet.svg +1 -1
  17. package/dist/assets/html.svg +1 -1
  18. package/dist/assets/image.svg +1 -1
  19. package/dist/assets/in_queue_experience.svg +1 -0
  20. package/dist/assets/initiate_external_transfer.svg +1 -0
  21. package/dist/assets/keynote.svg +1 -1
  22. package/dist/assets/mp4.svg +1 -1
  23. package/dist/assets/outbound_call.svg +1 -0
  24. package/dist/assets/overlay.svg +1 -1
  25. package/dist/assets/pack.svg +1 -1
  26. package/dist/assets/pages.svg +1 -1
  27. package/dist/assets/pdf.svg +1 -1
  28. package/dist/assets/ppt.svg +1 -1
  29. package/dist/assets/psd.svg +1 -1
  30. package/dist/assets/quip_doc.svg +1 -1
  31. package/dist/assets/quip_slide.svg +1 -1
  32. package/dist/assets/rfp_record.svg +1 -0
  33. package/dist/assets/rtf.svg +1 -1
  34. package/dist/assets/slack_canvas.svg +1 -1
  35. package/dist/assets/slack_list_item.svg +1 -1
  36. package/dist/assets/slack_lists.svg +1 -1
  37. package/dist/assets/slide.svg +1 -1
  38. package/dist/assets/stypi.svg +1 -1
  39. package/dist/assets/suggested_for_you.svg +1 -0
  40. package/dist/assets/txt.svg +1 -1
  41. package/dist/assets/unknown.svg +1 -1
  42. package/dist/assets/vcf.svg +1 -0
  43. package/dist/assets/visio.svg +1 -1
  44. package/dist/assets/voicemail_drop.svg +1 -0
  45. package/dist/assets/webex.svg +1 -1
  46. package/dist/assets/word.svg +1 -1
  47. package/dist/assets/xml.svg +1 -1
  48. package/dist/assets/zip.svg +1 -1
  49. package/dist/cjs/atomic-react.cjs +186 -68
  50. package/dist/cjs/atomic-react.cjs.map +1 -1
  51. package/dist/cjs/commerce/atomic-react.cjs +96 -26
  52. package/dist/cjs/commerce/atomic-react.cjs.map +1 -1
  53. package/dist/cjs/recommendation/atomic-react.cjs +186 -68
  54. package/dist/cjs/recommendation/atomic-react.cjs.map +1 -1
  55. package/package.json +4 -4
@@ -464,7 +464,7 @@ const renderBreadcrumbContainer = ({ props })=>(children)=>{
464
464
  </div>`;
465
465
  };
466
466
 
467
- /*! @license DOMPurify 3.4.14 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.4.14/LICENSE */
467
+ /*! @license DOMPurify 3.4.15 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.4.15/LICENSE */
468
468
 
469
469
  function _arrayLikeToArray(r, a) {
470
470
  (null == a || a > r.length) && (a = r.length);
@@ -936,7 +936,7 @@ const _resolveObjectOption = function _resolveObjectOption(cfg, key, makeFallbac
936
936
  function createDOMPurify() {
937
937
  let window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();
938
938
  const DOMPurify = root => createDOMPurify(root);
939
- DOMPurify.version = '3.4.14';
939
+ DOMPurify.version = '3.4.15';
940
940
  DOMPurify.removed = [];
941
941
  if (!window || !window.document || window.document.nodeType !== NODE_TYPE.document || !window.Element) {
942
942
  // Not running in a browser, provide a factory function
@@ -960,6 +960,12 @@ function createDOMPurify() {
960
960
  const ElementPrototype = Element.prototype;
961
961
  const cloneNode = lookupGetter(ElementPrototype, 'cloneNode');
962
962
  const remove = lookupGetter(ElementPrototype, 'remove');
963
+ // Clobber-safe Attr-node removal. On an HTMLFormElement a descendant named
964
+ // "removeAttributeNode" shadows the prototype method via
965
+ // [LegacyOverrideBuiltIns], so element.removeAttributeNode(attr) throws.
966
+ // Calling the cached Element.prototype method with the element as the
967
+ // receiver removes the exact live Attr node regardless of the shadowing.
968
+ const removeAttributeNode = lookupGetter(ElementPrototype, 'removeAttributeNode');
963
969
  const getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');
964
970
  const getChildNodes = lookupGetter(ElementPrototype, 'childNodes');
965
971
  const getParentNode = lookupGetter(ElementPrototype, 'parentNode');
@@ -1624,7 +1630,7 @@ function createDOMPurify() {
1624
1630
  */
1625
1631
  const _stripAttributeNode = function _stripAttributeNode(element, attribute, name) {
1626
1632
  try {
1627
- element.removeAttributeNode(attribute);
1633
+ removeAttributeNode(element, attribute);
1628
1634
  } catch (_) {
1629
1635
  try {
1630
1636
  element.removeAttribute(name);
@@ -1712,13 +1718,18 @@ function createDOMPurify() {
1712
1718
  });
1713
1719
  try {
1714
1720
  if (attr) {
1715
- element.removeAttributeNode(attr);
1721
+ removeAttributeNode(element, attr);
1716
1722
  } else {
1717
1723
  element.removeAttribute(name);
1718
1724
  }
1719
1725
  } catch (_) {
1720
1726
  /* Clobbered or already-detached node - best-effort fall back to a
1721
- name-based removal so the "is" handling below still runs. */
1727
+ name-based removal so the "is" handling below still runs. Note this
1728
+ fallback ASCII-lowercases its lookup key in an HTML document and so
1729
+ cannot reach a case-preserved attribute name; the cached
1730
+ removeAttributeNode() above is what removes those, and a clobbered
1731
+ form is already removed wholesale by _isClobbered() before reaching
1732
+ here. */
1722
1733
  try {
1723
1734
  element.removeAttribute(name);
1724
1735
  } catch (_) {}
@@ -2054,7 +2065,17 @@ function createDOMPurify() {
2054
2065
  // makes the direct read diverge from the cached read; a clean form
2055
2066
  // (same-realm OR foreign-realm) has both reads pointing at the same
2056
2067
  // canonical NamedNodeMap.
2057
- element.attributes !== getAttributes(element) || typeof element.removeAttribute !== 'function' || typeof element.setAttribute !== 'function' || typeof element.namespaceURI !== 'string' || typeof element.insertBefore !== 'function' || typeof element.hasChildNodes !== 'function' ||
2068
+ element.attributes !== getAttributes(element) || typeof element.removeAttribute !== 'function' ||
2069
+ // A form descendant named "removeAttributeNode" or "getAttributeNode"
2070
+ // shadows these Attr-node methods via [LegacyOverrideBuiltIns].
2071
+ // _removeAttribute() / _stripAttributeNode() reach for
2072
+ // element.removeAttributeNode(attr) first; when it is shadowed the call
2073
+ // throws and the name-based fallback element.removeAttribute(name)
2074
+ // ASCII-lowercases its lookup key in an HTML document, silently missing
2075
+ // a case-preserved event-handler attribute (e.g. an ONANIMATIONSTART
2076
+ // that reached the sanitizer through an XML/XHTML parse). Flag the form
2077
+ // so it is removed wholesale, exactly as for the other shadowed methods.
2078
+ typeof element.removeAttributeNode !== 'function' || typeof element.getAttributeNode !== 'function' || typeof element.setAttribute !== 'function' || typeof element.namespaceURI !== 'string' || typeof element.insertBefore !== 'function' || typeof element.hasChildNodes !== 'function' ||
2058
2079
  // NodeType clobbering probe. Cached Node.prototype.nodeType getter
2059
2080
  // returns the integer 1 for any Element regardless of realm; direct
2060
2081
  // read on a clobbered form (e.g. <input name="nodeType">) returns
@@ -2545,15 +2566,25 @@ function createDOMPurify() {
2545
2566
  /**
2546
2567
  * Write a modified attribute value back onto the element. On
2547
2568
  * success, re-probe for clobbering introduced by the new value and
2548
- * remove the element when found; otherwise pop the removal entry
2549
- * recorded by the earlier _removeAttribute (long-standing pairing
2550
- * with the SANITIZE_NAMED_PROPS path - do not "fix" casually). On
2569
+ * remove the element when found; otherwise, when this writeback is the
2570
+ * recreate half of the SANITIZE_NAMED_PROPS remove-and-recreate, pop the
2571
+ * removal entry that path recorded so it does not show as removed. On
2551
2572
  * failure, remove the attribute instead.
2552
2573
  *
2574
+ * Returns true only on a clean write (the value was set and the new value
2575
+ * introduced no clobbering). The caller uses that, together with its own
2576
+ * knowledge of whether this attribute pushed a DOMPurify.removed record, to
2577
+ * decide whether to pop that record. The pop must happen ONLY for the
2578
+ * named-prop remove-and-recreate; popping on any other value change (trim,
2579
+ * template scrubbing, Trusted Types) would consume an unrelated _forceRemove
2580
+ * subtree-cleanup record and let that detached subtree keep a live event
2581
+ * handler through the IN_PLACE neutralization pass (SO-001).
2582
+ *
2553
2583
  * @param currentNode the element carrying the attribute
2554
2584
  * @param name the attribute name as present on the element
2555
2585
  * @param namespaceURI the attribute's namespace, if any
2556
2586
  * @param value the new attribute value
2587
+ * @return true if the value was written without introducing clobbering
2557
2588
  */
2558
2589
  const _setAttributeValue = function _setAttributeValue(currentNode, name, namespaceURI, value) {
2559
2590
  try {
@@ -2565,11 +2596,12 @@ function createDOMPurify() {
2565
2596
  }
2566
2597
  if (_isClobbered(currentNode)) {
2567
2598
  _forceRemove(currentNode);
2568
- } else {
2569
- arrayPop(DOMPurify.removed);
2599
+ return false;
2570
2600
  }
2601
+ return true;
2571
2602
  } catch (_) {
2572
2603
  _removeAttribute(name, currentNode);
2604
+ return false;
2573
2605
  }
2574
2606
  };
2575
2607
  /**
@@ -2582,6 +2614,7 @@ function createDOMPurify() {
2582
2614
  *
2583
2615
  * @param currentNode to sanitize
2584
2616
  */
2617
+ // eslint-disable-next-line complexity
2585
2618
  const _sanitizeAttributes = function _sanitizeAttributes(currentNode) {
2586
2619
  /* Execute a hook if present */
2587
2620
  _executeHooks(hooks.beforeSanitizeAttributes, currentNode, null);
@@ -2611,6 +2644,15 @@ function createDOMPurify() {
2611
2644
  const lcName = transformCaseFunc(name);
2612
2645
  const initValue = attrValue;
2613
2646
  let value = name === 'value' ? initValue : stringTrim(initValue);
2647
+ /* Tracks whether this specific attribute pushed a DOMPurify.removed
2648
+ record that a later _setAttributeValue() writeback is expected to pop
2649
+ back off (the SANITIZE_NAMED_PROPS remove-and-recreate below is the
2650
+ only path that does). A value that merely changed via trim, template
2651
+ scrubbing, or Trusted Types pushes no such record, so its writeback
2652
+ must NOT pop — otherwise it consumes an unrelated _forceRemove subtree
2653
+ record and that detached subtree escapes the IN_PLACE handler-
2654
+ neutralization pass (SO-001). */
2655
+ let recreatedNamedProp = false;
2614
2656
  /* Execute a hook if present */
2615
2657
  hookEvent.attrName = lcName;
2616
2658
  hookEvent.attrValue = value;
@@ -2626,6 +2668,9 @@ function createDOMPurify() {
2626
2668
  _removeAttribute(name, currentNode, attr);
2627
2669
  // Prefix the value and later re-create the attribute with the sanitized value
2628
2670
  value = SANITIZE_NAMED_PROPS_PREFIX + value;
2671
+ // This attribute owns the record just pushed; its recreate writeback
2672
+ // is the one allowed to pop it back off.
2673
+ recreatedNamedProp = true;
2629
2674
  }
2630
2675
  // Else: already prefixed, leave the attribute alone — the prefix is
2631
2676
  // itself the clobbering protection, and re-applying it is incorrect.
@@ -2666,7 +2711,14 @@ function createDOMPurify() {
2666
2711
  value = _applyTrustedTypesToAttribute(lcTag, lcName, namespaceURI, value);
2667
2712
  /* Handle invalid data-* attribute set by try-catching it */
2668
2713
  if (value !== initValue) {
2669
- _setAttributeValue(currentNode, name, namespaceURI, value);
2714
+ const cleanWrite = _setAttributeValue(currentNode, name, namespaceURI, value);
2715
+ /* Only the named-prop remove-and-recreate owns a DOMPurify.removed
2716
+ record to pop; a plain trim/template/Trusted-Types writeback owns
2717
+ none, so popping here would drop an unrelated subtree's cleanup
2718
+ record (SO-001). */
2719
+ if (cleanWrite && recreatedNamedProp) {
2720
+ arrayPop(DOMPurify.removed);
2721
+ }
2670
2722
  }
2671
2723
  }
2672
2724
  /* Execute a hook if present */
@@ -2942,8 +2994,15 @@ function createDOMPurify() {
2942
2994
  them before the main iterator runs, since the iterator does not
2943
2995
  descend into shadow trees. The walk routes every read through a
2944
2996
  cached prototype getter so clobbering descendants on a form root
2945
- cannot hide a shadow host from this pass. */
2946
- _sanitizeAttachedShadowRoots(importedNode);
2997
+ cannot hide a shadow host from this pass.
2998
+ Traverse from `body`, not `importedNode`: when importedNode is a
2999
+ DocumentFragment, the appendChild() above moves its children into
3000
+ `body` and leaves the fragment empty, so walking importedNode would
3001
+ scan nothing and miss every attached shadow host now under `body`
3002
+ (SO-003). In the BODY/HTML branches `body === importedNode`, so this
3003
+ is equivalent there; in the element branch `body` contains the
3004
+ appended element and its descendants. `body` covers all three. */
3005
+ _sanitizeAttachedShadowRoots(body);
2947
3006
  } else {
2948
3007
  /* Exit directly if we have nothing to do */
2949
3008
  if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT &&
@@ -5169,7 +5228,7 @@ const renderCategoryFacetSearchValue = ({ props })=>{
5169
5228
 
5170
5229
  const renderCategoryFacetTreeValueContainer = ()=>(children)=>lit.html`<li class="contents">${children}</li>`;
5171
5230
 
5172
- const styles$e = lit.css`/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}.value-count{margin-left:calc(var(--spacing,.25rem)*1.5);color:var(--atomic-neutral-dark)}[part=value-exclude-button]+.value-count{margin-right:calc(var(--spacing,.25rem)*2)}:host(.popover-nested){min-width:var(--container-2xs,18rem)}:host(.popover-nested)::part(label-button){display:none}:host(.popover-nested)::part(facet){--tw-shadow:0px 2px 8px var(--tw-shadow-color,#e5e8e8bf);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}:host(.popover-nested)::part(values){max-height:calc(var(--spacing,.25rem)*96);margin-top:0;overflow-y:auto}:host(.popover-nested)::part(search-wrapper){margin-bottom:calc(var(--spacing,.25rem)*2)}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}`;
5231
+ const styles$e = lit.css`/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}.value-count{margin-left:calc(var(--spacing,.25rem)*1.5);color:var(--atomic-neutral-dark)}[part=value-exclude-button]+.value-count{margin-right:calc(var(--spacing,.25rem)*2)}:host(:state(hidden)){display:none}:host(.popover-nested){min-width:var(--container-2xs,18rem)}:host(.popover-nested)::part(label-button){display:none}:host(.popover-nested)::part(facet){--tw-shadow:0px 2px 8px var(--tw-shadow-color,#e5e8e8bf);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}:host(.popover-nested)::part(values){max-height:calc(var(--spacing,.25rem)*96);margin-top:0;overflow-y:auto}:host(.popover-nested)::part(search-wrapper){margin-bottom:calc(var(--spacing,.25rem)*2)}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}`;
5173
5232
  const facet_common_tw_css = styles$e;
5174
5233
 
5175
5234
  const styles$d = lit.css`/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */input[type=text]:focus-visible~.search-icon{color:var(--atomic-primary)}input[type=text]:hover~.search-icon{color:var(--atomic-primary-light)}.search-icon atomic-icon{width:var(--atomic-facet-search-icon-size,.75rem);height:var(--atomic-facet-search-icon-size,.75rem)}.search-clear-button atomic-icon{width:var(--atomic-facet-search-clear-icon-size,.625rem);height:var(--atomic-facet-search-clear-icon-size,.625rem)}`;
@@ -8663,7 +8722,7 @@ class Interpolator {
8663
8722
  interpolationkey: match[1].trim()
8664
8723
  }), value.trim());
8665
8724
  }
8666
- str = str.replace(match[0], value);
8725
+ str = str.replace(match[0], regexSafe(makeString(value)));
8667
8726
  this.regexp.lastIndex = 0;
8668
8727
  }
8669
8728
  return str;
@@ -9722,7 +9781,7 @@ function getWindow() {
9722
9781
  }
9723
9782
  function getAtomicEnvironment(headlessVersion) {
9724
9783
  return {
9725
- version: "3.61.2",
9784
+ version: "3.61.4",
9726
9785
  headlessVersion
9727
9786
  };
9728
9787
  }
@@ -9920,7 +9979,7 @@ function isSafeUrlSegmentBase(v) {
9920
9979
  if (UNSAFE_KEYS$1.indexOf(v) > -1) return false;
9921
9980
  if (v.indexOf("..") > -1) return false;
9922
9981
  if (v.indexOf("\\") > -1) return false;
9923
- if (/[?#%\s]/.test(v)) return false;
9982
+ if (/[?#%:\s]/.test(v)) return false;
9924
9983
  if (/[\x00-\x1F\x7F]/.test(v)) return false;
9925
9984
  return true;
9926
9985
  }
@@ -9930,7 +9989,9 @@ function isSafeLangUrlSegment(v) {
9930
9989
  return true;
9931
9990
  }
9932
9991
  function isSafeNsUrlSegment(v) {
9933
- return isSafeUrlSegmentBase(v);
9992
+ if (!isSafeUrlSegmentBase(v)) return false;
9993
+ if (v.indexOf("//") > -1) return false;
9994
+ return true;
9934
9995
  }
9935
9996
  const SAFETY_CHECK_BY_KEY = {
9936
9997
  lng: isSafeLangUrlSegment,
@@ -17619,7 +17680,7 @@ var attachStyles = (hostRef) => {
17619
17680
  const cmpMeta = hostRef.$cmpMeta$;
17620
17681
  const elm = hostRef.$hostElement$;
17621
17682
  const flags = cmpMeta.$flags$;
17622
- createTime("attachStyles", cmpMeta.$tagName$);
17683
+ const endAttachStyles = createTime("attachStyles", cmpMeta.$tagName$);
17623
17684
  const scopeId2 = addStyle(
17624
17685
  elm.shadowRoot ? elm.shadowRoot : elm.getRootNode(),
17625
17686
  cmpMeta,
@@ -17632,6 +17693,7 @@ var attachStyles = (hostRef) => {
17632
17693
  elm.classList.add(scopeId2 + "-s");
17633
17694
  }
17634
17695
  }
17696
+ endAttachStyles();
17635
17697
  };
17636
17698
  var getScopeId = (cmp, mode) => "sc-" + (mode && cmp.$flags$ & 32 /* hasMode */ ? cmp.$tagName$ + "-" + mode : cmp.$tagName$);
17637
17699
  var setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => {
@@ -18313,7 +18375,7 @@ var scheduleUpdate = (hostRef, isInitialLoad) => {
18313
18375
  };
18314
18376
  var dispatchHooks = (hostRef, isInitialLoad) => {
18315
18377
  const elm = hostRef.$hostElement$;
18316
- createTime("scheduleUpdate", hostRef.$cmpMeta$.$tagName$);
18378
+ const endSchedule = createTime("scheduleUpdate", hostRef.$cmpMeta$.$tagName$);
18317
18379
  const instance = elm;
18318
18380
  if (!instance) {
18319
18381
  throw new Error(
@@ -18333,6 +18395,7 @@ var dispatchHooks = (hostRef, isInitialLoad) => {
18333
18395
  {
18334
18396
  maybePromise = enqueue(maybePromise, () => safeCall(instance, "componentWillRender"));
18335
18397
  }
18398
+ endSchedule();
18336
18399
  return enqueue(maybePromise, () => updateComponent(hostRef, instance, isInitialLoad));
18337
18400
  };
18338
18401
  var enqueue = (maybePromise, fn) => isPromisey(maybePromise) ? maybePromise.then(fn).catch((err2) => {
@@ -18342,15 +18405,17 @@ var enqueue = (maybePromise, fn) => isPromisey(maybePromise) ? maybePromise.then
18342
18405
  var isPromisey = (maybePromise) => maybePromise instanceof Promise || maybePromise && maybePromise.then && typeof maybePromise.then === "function";
18343
18406
  var updateComponent = async (hostRef, instance, isInitialLoad) => {
18344
18407
  const elm = hostRef.$hostElement$;
18345
- createTime("update", hostRef.$cmpMeta$.$tagName$);
18408
+ const endUpdate = createTime("update", hostRef.$cmpMeta$.$tagName$);
18346
18409
  elm["s-rc"];
18347
18410
  if (isInitialLoad) {
18348
18411
  attachStyles(hostRef);
18349
18412
  }
18350
- createTime("render", hostRef.$cmpMeta$.$tagName$);
18413
+ const endRender = createTime("render", hostRef.$cmpMeta$.$tagName$);
18351
18414
  {
18352
18415
  callRender(hostRef, instance, elm, isInitialLoad);
18353
18416
  }
18417
+ endRender();
18418
+ endUpdate();
18354
18419
  {
18355
18420
  postUpdateComponent(hostRef);
18356
18421
  }
@@ -18384,8 +18449,9 @@ var callRender = (hostRef, instance, elm, isInitialLoad) => {
18384
18449
  return null;
18385
18450
  };
18386
18451
  var postUpdateComponent = (hostRef) => {
18387
- hostRef.$cmpMeta$.$tagName$;
18452
+ const tagName = hostRef.$cmpMeta$.$tagName$;
18388
18453
  const elm = hostRef.$hostElement$;
18454
+ const endPostUpdate = createTime("postUpdate", tagName);
18389
18455
  const instance = elm;
18390
18456
  hostRef.$ancestorComponent$;
18391
18457
  {
@@ -18396,10 +18462,12 @@ var postUpdateComponent = (hostRef) => {
18396
18462
  {
18397
18463
  safeCall(instance, "componentDidLoad");
18398
18464
  }
18465
+ endPostUpdate();
18399
18466
  } else {
18400
18467
  {
18401
18468
  safeCall(instance, "componentDidUpdate");
18402
18469
  }
18470
+ endPostUpdate();
18403
18471
  }
18404
18472
  };
18405
18473
  var safeCall = (instance, method, arg) => {
@@ -18546,8 +18614,9 @@ var initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId) => {
18546
18614
  }
18547
18615
  const scopeId2 = getScopeId(cmpMeta, hostRef.$modeName$);
18548
18616
  if (!styles$1.has(scopeId2)) {
18549
- createTime("registerStyles", cmpMeta.$tagName$);
18617
+ const endRegisterStyles = createTime("registerStyles", cmpMeta.$tagName$);
18550
18618
  registerStyle(scopeId2, style, !!(cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */));
18619
+ endRegisterStyles();
18551
18620
  }
18552
18621
  }
18553
18622
  }
@@ -18565,7 +18634,7 @@ var connectedCallback = (elm) => {
18565
18634
  if ((plt.$flags$ & 1 /* isTmpDisconnected */) === 0) {
18566
18635
  const hostRef = getHostRef(elm);
18567
18636
  const cmpMeta = hostRef.$cmpMeta$;
18568
- createTime("connectedCallback", cmpMeta.$tagName$);
18637
+ const endConnected = createTime("connectedCallback", cmpMeta.$tagName$);
18569
18638
  if (!(hostRef.$flags$ & 1 /* hasConnected */)) {
18570
18639
  hostRef.$flags$ |= 1 /* hasConnected */;
18571
18640
  {
@@ -18594,6 +18663,7 @@ var connectedCallback = (elm) => {
18594
18663
  hostRef.$onReadyPromise$.then(() => fireConnectedCallback(hostRef.$lazyInstance$));
18595
18664
  }
18596
18665
  }
18666
+ endConnected();
18597
18667
  }
18598
18668
  };
18599
18669
  var setContentReference = (elm) => {