@swisspost/design-system-components 2.0.2 → 2.0.3

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 (113) hide show
  1. package/dist/cjs/attribute-observer-10f08c04.js +27 -0
  2. package/dist/cjs/index.cjs.js +13 -12
  3. package/dist/cjs/{package-e8091039.js → package-628f6e9c.js} +1 -1
  4. package/dist/cjs/{post-accordion-eebf7827.js → post-accordion-da546aa2.js} +1 -1
  5. package/dist/cjs/{post-accordion-item-b2977ca5.js → post-accordion-item-33d5593a.js} +2 -2
  6. package/dist/cjs/post-accordion-item.cjs.entry.js +2 -2
  7. package/dist/cjs/post-accordion.cjs.entry.js +2 -2
  8. package/dist/cjs/{post-alert-af7728e6.js → post-alert-26c1bcda.js} +2 -2
  9. package/dist/cjs/post-alert.cjs.entry.js +2 -2
  10. package/dist/cjs/{post-collapsible-15f79667.js → post-collapsible-278b2a71.js} +1 -1
  11. package/dist/cjs/post-collapsible.cjs.entry.js +2 -2
  12. package/dist/cjs/{post-icon-b80d7e24.js → post-icon-fd09bc54.js} +1 -1
  13. package/dist/cjs/post-icon.cjs.entry.js +2 -2
  14. package/dist/cjs/post-popover-1e454296.js +104 -0
  15. package/dist/cjs/post-popover.cjs.entry.js +3 -2
  16. package/dist/cjs/{post-popovercontainer-130193cf.js → post-popovercontainer-5e355de3.js} +26 -13
  17. package/dist/cjs/post-popovercontainer.cjs.entry.js +2 -2
  18. package/dist/cjs/{post-tab-header-454cc178.js → post-tab-header-5c8b9a0d.js} +1 -1
  19. package/dist/cjs/post-tab-header.cjs.entry.js +2 -2
  20. package/dist/cjs/{post-tab-panel-fc0bfcbe.js → post-tab-panel-67ba226d.js} +1 -1
  21. package/dist/cjs/post-tab-panel.cjs.entry.js +2 -2
  22. package/dist/cjs/{post-tabs-3f909e1c.js → post-tabs-71510ced.js} +1 -1
  23. package/dist/cjs/post-tabs.cjs.entry.js +2 -2
  24. package/dist/cjs/{post-tooltip-e5b22230.js → post-tooltip-b6bbb3e4.js} +10 -27
  25. package/dist/cjs/post-tooltip.cjs.entry.js +3 -2
  26. package/dist/collection/components/post-accordion-item/post-accordion-item.js +1 -1
  27. package/dist/collection/components/post-alert/post-alert.css +5 -5
  28. package/dist/collection/components/post-popover/post-popover.css +1 -1
  29. package/dist/collection/components/post-popover/post-popover.js +47 -63
  30. package/dist/collection/components/post-popovercontainer/post-popovercontainer.css +1 -1
  31. package/dist/collection/components/post-popovercontainer/post-popovercontainer.js +25 -12
  32. package/dist/collection/components/post-tooltip/post-tooltip.js +9 -26
  33. package/dist/collection/utils/attribute-observer.js +23 -0
  34. package/dist/components/attribute-observer.js +25 -0
  35. package/dist/components/package.js +1 -1
  36. package/dist/components/post-accordion-item2.js +1 -1
  37. package/dist/components/post-alert2.js +1 -1
  38. package/dist/components/post-popover2.js +51 -64
  39. package/dist/components/post-popovercontainer2.js +25 -12
  40. package/dist/components/post-tooltip2.js +9 -26
  41. package/dist/docs.json +3 -13
  42. package/dist/esm/attribute-observer-37fa950a.js +25 -0
  43. package/dist/esm/index.js +13 -12
  44. package/dist/esm/{package-aa903c40.js → package-15929f57.js} +1 -1
  45. package/dist/esm/{post-accordion-82b49f7b.js → post-accordion-be080240.js} +1 -1
  46. package/dist/esm/{post-accordion-item-3deff76a.js → post-accordion-item-7b3c726b.js} +2 -2
  47. package/dist/esm/post-accordion-item.entry.js +2 -2
  48. package/dist/esm/post-accordion.entry.js +2 -2
  49. package/dist/esm/{post-alert-c88451ba.js → post-alert-37f853eb.js} +2 -2
  50. package/dist/esm/post-alert.entry.js +2 -2
  51. package/dist/esm/{post-collapsible-87ce4e6e.js → post-collapsible-967bb191.js} +1 -1
  52. package/dist/esm/post-collapsible.entry.js +2 -2
  53. package/dist/esm/{post-icon-e0536000.js → post-icon-ba163099.js} +1 -1
  54. package/dist/esm/post-icon.entry.js +2 -2
  55. package/dist/esm/post-popover-69694fa6.js +102 -0
  56. package/dist/esm/post-popover.entry.js +3 -2
  57. package/dist/esm/{post-popovercontainer-6d1d7f76.js → post-popovercontainer-da870ff0.js} +26 -13
  58. package/dist/esm/post-popovercontainer.entry.js +2 -2
  59. package/dist/esm/{post-tab-header-0f7866f9.js → post-tab-header-14ed99cd.js} +1 -1
  60. package/dist/esm/post-tab-header.entry.js +2 -2
  61. package/dist/esm/{post-tab-panel-b41d5d0f.js → post-tab-panel-d89c4c50.js} +1 -1
  62. package/dist/esm/post-tab-panel.entry.js +2 -2
  63. package/dist/esm/{post-tabs-97868e9c.js → post-tabs-e995886a.js} +1 -1
  64. package/dist/esm/post-tabs.entry.js +2 -2
  65. package/dist/esm/{post-tooltip-531b569d.js → post-tooltip-0ec6a388.js} +10 -27
  66. package/dist/esm/post-tooltip.entry.js +3 -2
  67. package/dist/post-components/index.esm.js +1 -1
  68. package/dist/post-components/p-00ab91d9.entry.js +1 -0
  69. package/dist/post-components/p-04f47e54.entry.js +1 -0
  70. package/dist/post-components/{p-bf1293e1.js → p-1f284e66.js} +1 -1
  71. package/dist/post-components/{p-b111a381.js → p-209e33a5.js} +1 -1
  72. package/dist/post-components/p-282e21c2.entry.js +1 -0
  73. package/dist/post-components/p-34a772e3.entry.js +1 -0
  74. package/dist/post-components/p-46c47aa4.entry.js +1 -0
  75. package/dist/post-components/{p-dc9ffe1d.js → p-51fe19e0.js} +1 -1
  76. package/dist/post-components/p-557f0f10.entry.js +1 -0
  77. package/dist/post-components/p-5ecceba0.js +1 -0
  78. package/dist/post-components/{p-ba40e160.js → p-61d98756.js} +1 -1
  79. package/dist/post-components/p-6adeaa6c.js +1 -0
  80. package/dist/post-components/{p-284ca5da.js → p-6b3ba10a.js} +1 -1
  81. package/dist/post-components/p-82f4f464.entry.js +1 -0
  82. package/dist/post-components/p-94256868.js +15 -0
  83. package/dist/post-components/p-98cb0bbd.entry.js +1 -0
  84. package/dist/post-components/p-9ee95668.entry.js +1 -0
  85. package/dist/post-components/p-a0d342e4.entry.js +1 -0
  86. package/dist/post-components/{p-25766de1.js → p-a9d59b04.js} +1 -1
  87. package/dist/post-components/{p-202a23d3.js → p-ac7b779e.js} +1 -1
  88. package/dist/post-components/{p-d8ac8ae9.js → p-d9c9ed63.js} +1 -1
  89. package/dist/post-components/p-e1bf894f.entry.js +1 -0
  90. package/dist/post-components/p-e8d17225.js +1 -0
  91. package/dist/post-components/p-f47b0207.js +1 -0
  92. package/dist/post-components/post-components.esm.js +1 -1
  93. package/dist/types/components/post-popover/post-popover.d.ts +3 -17
  94. package/dist/types/components/post-popovercontainer/post-popovercontainer.d.ts +1 -0
  95. package/dist/types/utils/attribute-observer.d.ts +1 -0
  96. package/package.json +3 -2
  97. package/dist/cjs/post-popover-392b0554.js +0 -117
  98. package/dist/esm/post-popover-00b006b4.js +0 -115
  99. package/dist/post-components/p-0ef425cd.entry.js +0 -1
  100. package/dist/post-components/p-23d55894.entry.js +0 -1
  101. package/dist/post-components/p-2b5a940c.entry.js +0 -1
  102. package/dist/post-components/p-31c06741.entry.js +0 -1
  103. package/dist/post-components/p-320a90d8.entry.js +0 -1
  104. package/dist/post-components/p-3b8a1f9d.entry.js +0 -1
  105. package/dist/post-components/p-61ad6181.entry.js +0 -1
  106. package/dist/post-components/p-71a57911.js +0 -1
  107. package/dist/post-components/p-be08f39f.entry.js +0 -1
  108. package/dist/post-components/p-c3dd84af.js +0 -1
  109. package/dist/post-components/p-c9ecada7.entry.js +0 -1
  110. package/dist/post-components/p-cdd7ad0a.js +0 -15
  111. package/dist/post-components/p-d7863a77.js +0 -1
  112. package/dist/post-components/p-fbf645c4.entry.js +0 -1
  113. package/dist/post-components/p-ff9016ce.entry.js +0 -1
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  const index = require('./index-f243643b.js');
4
- const _package = require('./package-e8091039.js');
4
+ const _package = require('./package-628f6e9c.js');
5
5
  const fade = require('./fade-35a3633a.js');
6
6
 
7
7
  const postTabsCss = ".tabs-wrapper{position:relative;padding-top:1rem;border:0;background-color:#faf9f8}.tabs-wrapper::after{content:\"\";position:absolute;bottom:0;width:100%;height:1px;background-color:#ccc}.tabs-wrapper .tabs{background-color:rgba(0,0,0,0) !important}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.tabs-wrapper::after{background-color:ButtonBorder}}.tabs{margin:0;padding:0;list-style:none;display:flex;flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:contain;white-space:nowrap}.tabs::after{content:\"\";display:block;flex:1 0 auto;width:1rem}.tab-content{margin-block:1rem}.bg-yellow .tabs-wrapper{background-color:#fc0}.bg-light .tabs-wrapper{background-color:#faf9f8}.bg-gray .tabs-wrapper{background-color:#f4f3f1}.bg-dark .tabs-wrapper{background-color:#333}.bg-primary .tabs-wrapper{background-color:#333}.bg-white .tabs-wrapper{background-color:#fff}.bg-black .tabs-wrapper{background-color:#000}.bg-info .tabs-wrapper{background-color:#cce4ee}.bg-success .tabs-wrapper{background-color:#2c911c}.bg-warning .tabs-wrapper{background-color:#f49e00}.bg-danger .tabs-wrapper{background-color:#a51728}.bg-nightblue .tabs-wrapper{background-color:#004976}.bg-nightblue-bright .tabs-wrapper{background-color:#0076a8}.bg-petrol .tabs-wrapper{background-color:#006d68}.bg-petrol-bright .tabs-wrapper{background-color:#00968f}.bg-coral .tabs-wrapper{background-color:#9e2a2f}.bg-coral-bright .tabs-wrapper{background-color:#e03c31}.bg-olive .tabs-wrapper{background-color:#716135}.bg-olive-bright .tabs-wrapper{background-color:#aa9d2e}.bg-purple .tabs-wrapper{background-color:#80276c}.bg-purple-bright .tabs-wrapper{background-color:#c5299b}.bg-aubergine .tabs-wrapper{background-color:#523178}.bg-aubergine-bright .tabs-wrapper{background-color:#7566a0}.bg-success-green .tabs-wrapper{background-color:#2c871d}.bg-error-red .tabs-wrapper{background-color:#a51728}.bg-warning-orange .tabs-wrapper{background-color:#f49e00}.bg-success-background .tabs-wrapper{background-color:#c0debb}.bg-error-background .tabs-wrapper{background-color:#ffdade}.bg-warning-background .tabs-wrapper{background-color:#fce2b2}:host{display:block}";
@@ -2,9 +2,9 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const postTabs = require('./post-tabs-3f909e1c.js');
5
+ const postTabs = require('./post-tabs-71510ced.js');
6
6
  require('./index-f243643b.js');
7
- require('./package-e8091039.js');
7
+ require('./package-628f6e9c.js');
8
8
  require('./fade-35a3633a.js');
9
9
 
10
10
 
@@ -1,7 +1,8 @@
1
1
  'use strict';
2
2
 
3
3
  const index = require('./index-f243643b.js');
4
- const _package = require('./package-e8091039.js');
4
+ const _package = require('./package-628f6e9c.js');
5
+ const attributeObserver = require('./attribute-observer-10f08c04.js');
5
6
 
6
7
  var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
7
8
 
@@ -4782,6 +4783,7 @@ const PostTooltipStyle0 = postTooltipCss;
4782
4783
  */
4783
4784
  let tooltipInstances = 0;
4784
4785
  let hideTooltipTimeout = null;
4786
+ const tooltipTargetAttribute = 'data-tooltip-target';
4785
4787
  /**
4786
4788
  * Global event listener to show tooltips. This is globalized so that triggers that are rendered
4787
4789
  * async will still work without the need to set listeners on the element itself
@@ -4790,9 +4792,9 @@ let hideTooltipTimeout = null;
4790
4792
  */
4791
4793
  const globalInterestHandler = (e) => {
4792
4794
  const target = e.target;
4793
- if (!(e === null || e === void 0 ? void 0 : e.target) || !('getAttribute' in e.target))
4795
+ if (!target || !('getAttribute' in target))
4794
4796
  return;
4795
- const tooltipTarget = target.getAttribute('data-tooltip-target');
4797
+ const tooltipTarget = target.getAttribute(tooltipTargetAttribute);
4796
4798
  if (!tooltipTarget || tooltipTarget === '')
4797
4799
  return;
4798
4800
  const tooltip = document.getElementById(tooltipTarget);
@@ -4810,7 +4812,7 @@ const globalInterestHandler = (e) => {
4810
4812
  */
4811
4813
  const globalInterestLostHandler = (e) => {
4812
4814
  const target = e.target;
4813
- const tooltipTarget = target.getAttribute('data-tooltip-target');
4815
+ const tooltipTarget = target.getAttribute(tooltipTargetAttribute);
4814
4816
  if (!tooltipTarget || tooltipTarget === '')
4815
4817
  return;
4816
4818
  const tooltip = document.getElementById(tooltipTarget);
@@ -4833,7 +4835,7 @@ const globalHideTooltip = (tooltip) => {
4833
4835
  */
4834
4836
  const patchAccessibilityFeatures = (trigger) => {
4835
4837
  const describedBy = trigger.getAttribute('aria-describedby');
4836
- const id = trigger.getAttribute('data-tooltip-target');
4838
+ const id = trigger.getAttribute(tooltipTargetAttribute);
4837
4839
  // Add tooltip to aria-describedby
4838
4840
  if (!(describedBy === null || describedBy === void 0 ? void 0 : describedBy.includes(id))) {
4839
4841
  const newDescribedBy = describedBy ? `${describedBy} ${id}` : id;
@@ -4844,27 +4846,8 @@ const patchAccessibilityFeatures = (trigger) => {
4844
4846
  trigger.setAttribute('tabindex', '0');
4845
4847
  }
4846
4848
  };
4847
- /**
4848
- * Handle attribute changes and childList changes from the observer
4849
- * @param {MutationRecord[]} mutationList
4850
- */
4851
- const triggerObserverHandler = mutationList => {
4852
- mutationList.forEach(mutation => {
4853
- if (mutation.type === 'attributes' && mutation.attributeName === 'data-tooltip-target') {
4854
- patchAccessibilityFeatures(mutation.target);
4855
- }
4856
- if (mutation.type === 'childList') {
4857
- mutation.addedNodes.forEach(node => {
4858
- if (node.nodeType === Node.ELEMENT_NODE &&
4859
- node.hasAttribute('data-tooltip-target')) {
4860
- patchAccessibilityFeatures(node);
4861
- }
4862
- });
4863
- }
4864
- });
4865
- };
4866
4849
  // Initialize a mutation observer for patching accessibility features
4867
- const triggerObserver = new MutationObserver(triggerObserverHandler);
4850
+ const triggerObserver = attributeObserver.getAttributeObserver(tooltipTargetAttribute, patchAccessibilityFeatures);
4868
4851
  const PostTooltip = class {
4869
4852
  constructor(hostRef) {
4870
4853
  index.registerInstance(this, hostRef);
@@ -4896,7 +4879,7 @@ const PostTooltip = class {
4896
4879
  triggerObserver.observe(document.body, {
4897
4880
  subtree: true,
4898
4881
  childList: true,
4899
- attributeFilter: ['data-tooltip-target'],
4882
+ attributeFilter: [tooltipTargetAttribute],
4900
4883
  });
4901
4884
  }
4902
4885
  tooltipInstances++;
@@ -4955,7 +4938,7 @@ const PostTooltip = class {
4955
4938
  }
4956
4939
  render() {
4957
4940
  const popoverClass = `${this.arrow ? ' has-arrow' : ''}`;
4958
- return (index.h(index.Host, { key: 'd773ddc0ce1a4dc682dfd05aea2191edb592a1a9', "data-version": _package.version, role: "tooltip", onPointerOver: this.handleInterest, onPointerOut: this.handleInterestLost, onFocusIn: this.handleInterest, onFocusOut: this.handleInterestLost }, index.h("post-popovercontainer", { key: '4465e819738b663ef9961e61b2b58a4a0a3a1039', class: popoverClass, arrow: this.arrow, placement: this.placement, ref: (el) => (this.popoverRef = el) }, index.h("slot", { key: 'c97e4c780acf110048b8415d2714273abbe5e479' }))));
4941
+ return (index.h(index.Host, { key: 'cf89d38b05fbb49ecfcfd339baf325a4fb850f3a', "data-version": _package.version, role: "tooltip", onPointerOver: this.handleInterest, onPointerOut: this.handleInterestLost, onFocusIn: this.handleInterest, onFocusOut: this.handleInterestLost }, index.h("post-popovercontainer", { key: '2f6f473007ae8d4fc7ef3bcec38a8f19222eaf5d', class: popoverClass, arrow: this.arrow, placement: this.placement, ref: (el) => (this.popoverRef = el) }, index.h("slot", { key: '84bfd25818068ce1fb644b3b0e6858f9cb1bd605' }))));
4959
4942
  }
4960
4943
  get host() { return index.getElement(this); }
4961
4944
  };
@@ -2,9 +2,10 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const postTooltip = require('./post-tooltip-e5b22230.js');
5
+ const postTooltip = require('./post-tooltip-b6bbb3e4.js');
6
6
  require('./index-f243643b.js');
7
- require('./package-e8091039.js');
7
+ require('./package-628f6e9c.js');
8
+ require('./attribute-observer-10f08c04.js');
8
9
 
9
10
 
10
11
 
@@ -35,7 +35,7 @@ export class PostAccordionItem {
35
35
  render() {
36
36
  var _a;
37
37
  const HeadingTag = `h${(_a = this.headingLevel) !== null && _a !== void 0 ? _a : 2}`;
38
- return (h(Host, { key: '795ccef5a57e07755df60f651712dff5eb3fcfaf', id: this.id, "data-version": version }, h("div", { key: '529feda41150180001d5535d0d79007e312b0d39', part: "accordion-item", class: "accordion-item" }, h(HeadingTag, { key: '4ddcc8f6ab703625ab072541b65ed0dcb7392129', class: "accordion-header", id: `${this.id}--header` }, h("button", { key: '09dcd22dc3382fe442018649b392ba95ed3918f9', "aria-controls": `${this.id}--collapse`, "aria-expanded": `${this.isOpen}`, class: `accordion-button${this.isOpen ? '' : ' collapsed'}`, onClick: () => this.toggle(), type: "button" }, h("slot", { key: '8e4026adc26445aa84cce3587bf4cc82b816641a', name: "header" }))), h("post-collapsible", { key: '83aeca309682e6f0d9dc2f6fa0701a01229a8f2b', collapsed: this.collapsed, ref: el => (this.collapsible = el) }, h("div", { key: 'c881ddf1fe72345d1e6fedaff9376cf43ad566b4', class: "accordion-body" }, h("slot", { key: '8d72ce66dd9b3b2059ea789ec5854d53b4895907' }))))));
38
+ return (h(Host, { key: '795ccef5a57e07755df60f651712dff5eb3fcfaf', id: this.id, "data-version": version }, h("div", { key: '529feda41150180001d5535d0d79007e312b0d39', part: "accordion-item", class: "accordion-item" }, h(HeadingTag, { key: '4ddcc8f6ab703625ab072541b65ed0dcb7392129', class: "accordion-header", id: `${this.id}--header` }, h("button", { key: '09dcd22dc3382fe442018649b392ba95ed3918f9', "aria-controls": `${this.id}--collapse`, "aria-expanded": `${this.isOpen}`, class: `accordion-button${this.isOpen ? '' : ' collapsed'}`, onClick: () => this.toggle(), type: "button" }, h("slot", { key: '8e4026adc26445aa84cce3587bf4cc82b816641a', name: "header" }))), h("post-collapsible", { key: 'c7a4078dd9b2f38651370bfa215361bdc3aaaf5c', id: `${this.id}--collapse`, collapsed: this.collapsed, ref: el => (this.collapsible = el) }, h("div", { key: '9841b925e1d9d1dc394762b51bd2da35a4ec02c6', class: "accordion-body" }, h("slot", { key: '6474e69b6e8d26b7d22c3ab86c0a472fddaffdb1' }))))));
39
39
  }
40
40
  static get is() { return "post-accordion-item"; }
41
41
  static get encapsulation() { return "shadow"; }
@@ -26,10 +26,10 @@
26
26
  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
27
27
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
28
28
  * THE SOFTWARE.
29
- */.alert-primary,.alert-success,.alert-danger,.alert-warning,.alert-info,.alert-gray,.alert-notification,.alert-error{background-color:rgb(var(--post-bg-rgb)) !important;color:var(--post-contrast-color) !important}.alert-success,.alert-warning,.alert-info,.alert-gray{--post-contrast-color: #000;--post-contrast-color-inverted: #fff;--post-gray-10: hsl(0, 0%, 90%);--post-gray-20: hsl(0, 0%, 80%);--post-gray-40: hsl(0, 0%, 60%);--post-gray-60: hsl(0, 0%, 40%);--post-gray-80: hsl(0, 0%, 20%);--post-yellow: #fc0;--post-light: #faf9f8;--post-gray: #f4f3f1;--post-dark: hsl(0, 0%, 20%);--post-primary: hsl(0, 0%, 20%);--post-white: #fff;--post-black: #000;--post-info: #cce4ee;--post-success: #2c911c;--post-warning: #f49e00;--post-danger: #a51728;--post-nightblue: #004976;--post-nightblue-bright: #0076a8;--post-petrol: #006d68;--post-petrol-bright: #00968f;--post-coral: #9e2a2f;--post-coral-bright: #e03c31;--post-olive: #716135;--post-olive-bright: #aa9d2e;--post-purple: #80276c;--post-purple-bright: #c5299b;--post-aubergine: #523178;--post-aubergine-bright: #7566a0;--post-success-green: #2c871d;--post-error-red: #a51728;--post-warning-orange: #f49e00;--post-success-background: #c0debb;--post-error-background: #ffdade;--post-warning-background: #fce2b2;--post-contrast-color-rgb: 0, 0, 0;--post-contrast-color-inverted-rgb: 255, 255, 255;--post-gray-10-rgb: 230, 230, 230;--post-gray-20-rgb: 204, 204, 204;--post-gray-40-rgb: 153, 153, 153;--post-gray-60-rgb: 102, 102, 102;--post-gray-80-rgb: 51, 51, 51;--post-yellow-rgb: 255, 204, 0;--post-light-rgb: 250, 249, 248;--post-gray-rgb: 244, 243, 241;--post-dark-rgb: 51, 51, 51;--post-primary-rgb: 51, 51, 51;--post-white-rgb: 255, 255, 255;--post-black-rgb: 0, 0, 0;--post-info-rgb: 204, 228, 238;--post-success-rgb: 44, 145, 28;--post-warning-rgb: 244, 158, 0;--post-danger-rgb: 165, 23, 40;--post-nightblue-rgb: 0, 73, 118;--post-nightblue-bright-rgb: 0, 118, 168;--post-petrol-rgb: 0, 109, 104;--post-petrol-bright-rgb: 0, 150, 143;--post-coral-rgb: 158, 42, 47;--post-coral-bright-rgb: 224, 60, 49;--post-olive-rgb: 113, 97, 53;--post-olive-bright-rgb: 170, 157, 46;--post-purple-rgb: 128, 39, 108;--post-purple-bright-rgb: 197, 41, 155;--post-aubergine-rgb: 82, 49, 120;--post-aubergine-bright-rgb: 117, 102, 160;--post-success-green-rgb: 44, 135, 29;--post-error-red-rgb: 165, 23, 40;--post-warning-orange-rgb: 244, 158, 0;--post-success-background-rgb: 192, 222, 187;--post-error-background-rgb: 255, 218, 222;--post-warning-background-rgb: 252, 226, 178}.alert-primary,.alert-danger,.alert-notification,.alert-error{--post-contrast-color: #fff;--post-contrast-color-inverted: #000;--post-dark: #faf9f8;--post-light: hsl(0, 0%, 20%);--post-gray-80: hsl(0, 0%, 90%);--post-gray-60: hsl(0, 0%, 80%);--post-gray-40: hsl(0, 0%, 60%);--post-gray-20: hsl(0, 0%, 40%);--post-gray-10: hsl(0, 0%, 20%);--post-contrast-color-rgb: 255, 255, 255;--post-contrast-color-inverted-rgb: 0, 0, 0;--post-dark-rgb: 250, 249, 248;--post-light-rgb: 51, 51, 51;--post-gray-80-rgb: 230, 230, 230;--post-gray-60-rgb: 204, 204, 204;--post-gray-40-rgb: 153, 153, 153;--post-gray-20-rgb: 102, 102, 102;--post-gray-10-rgb: 51, 51, 51}.alert{position:relative;box-sizing:border-box;min-height:5rem;box-shadow:0 2px 4px 0 rgba(0,0,0,.2);border-radius:4px;padding:1rem 1.25rem;padding-inline-start:5.5rem;margin-block-end:1rem;font-size:1rem;font-weight:300}.alert.no-icon{min-height:3.5rem;padding-inline-start:1.25rem}.alert[class^=pi-],.alert[class*=" pi-"]{background-size:3rem;background-position:1.25rem 1rem;background-repeat:no-repeat}.alert[class^=pi-].no-icon,.alert[class*=" pi-"].no-icon{background-image:none}.alert::before{content:"";display:block}.alert::before,.alert>post-icon{position:absolute;height:3rem;width:3rem;left:1.25rem;top:1rem}.alert.no-icon::before,.alert[class^=pi-]::before,.alert[class*=" pi-"]::before{content:unset}.alert.no-icon>post-icon,.alert[class^=pi-]>post-icon,.alert[class*=" pi-"]>post-icon{display:none}@media(forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.alert{filter:none !important;border:2px solid CanvasText}}.alert:not(.alert-action){display:flex;flex-direction:column;justify-content:center;gap:.25rem}.alert:not(.alert-action) a{font-weight:400}.alert:not(.alert-action) hr{margin-block:.5rem .75rem !important}.alert:not(.alert-action)>:only-child,.alert:not(.alert-action)>post-icon:first-child+:last-child{font-size:1.0625rem;font-weight:700}.alert:not(.alert-action)>*{margin:0}.alert-heading{font-size:1.0625rem;font-weight:700}.alert-dismissible{pointer-events:auto;position:relative;padding-inline-end:4rem}.alert-dismissible>.btn-close{position:absolute;inset-block-start:1rem;inset-inline-end:1.25rem}.alert-dismissible>.btn-close:first-child+:last-child{font-size:1.0625rem;font-weight:700}.alert-action{display:flex;flex-direction:row;align-items:center;gap:1.25rem}.alert-action>.alert-content{flex:1 1 auto;display:flex;flex-direction:column;justify-content:center;gap:.25rem}.alert-action>.alert-content a{font-weight:400}.alert-action>.alert-content hr{margin-block:.5rem .75rem !important}.alert-action>.alert-content>:only-child,.alert-action>.alert-content>post-icon:first-child+:last-child{font-size:1.0625rem;font-weight:700}.alert-action>.alert-content>*{margin:0}.alert-action>.alert-buttons{flex:0 0 auto;display:flex;align-items:center;gap:.5rem}@media(min-width: 780px){.alert-action.alert-dismissible>.btn-close{inset-block-start:calc(50% - 0.75rem)}}@media(max-width: 779.98px){.alert-action{flex-direction:column;align-items:stretch;padding-inline:1.25rem}.alert-action>.alert-content{padding-inline-start:4.25rem;padding-inline-end:2.75rem}.alert-action>.alert-buttons{display:flex}.alert-action>.alert-buttons>.btn{flex:1 0 0;width:100%}.alert-action>.alert-buttons>.btn:first-child{margin-inline-start:0}}.alert-fixed-bottom{position:fixed;inset-block-end:0;inset-inline-start:0;inset-inline-end:0;margin-bottom:0;border-radius:0;z-index:1030}@media(min-width: 1441px){.alert-fixed-bottom{padding-inline-end:calc((100% - 1440px) / 2 + 120px + 1.25rem);padding-inline-start:calc(
30
- (100% - 1440px) / 2 + 120px + 1.25rem + 3rem + 1.25rem
31
- );background-position-x:calc((100% - 1440px) / 2 + 120px + 1.25rem + 1.5rem)}.alert-fixed-bottom::before{left:calc((100% - 1440px) / 2 + 120px + 1.25rem)}.alert-fixed-bottom.no-icon{padding-inline-start:calc((100% - 1440px) / 2 + 120px + 1.25rem)}.alert-fixed-bottom.alert-dismissible{padding-inline-end:calc(
32
- (100% - 1440px) / 2 + 120px + 1.25rem + 1.25rem + 1.5rem
33
- )}.alert-fixed-bottom.alert-dismissible>.btn-close{inset-inline-end:calc((100% - 1440px) / 2 + 120px + 1.25rem)}}.alert-primary{--post-bg-rgb: 51, 51, 51}.alert-primary:not(.no-icon,[class^=pi-],[class*=" pi-"])::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg id='icon'%3E%3Cpath d='M30.533 26.933c-3.333-4.8-5.867-12.667-5.867-18.267 0-4.8-3.867-8.667-8.667-8.667S7.332 3.866 7.332 8.666c0 5.6-2.533 13.467-5.867 18.267L1.998 28h11.333v4h5.333v-4h11.333l.533-1.067zm-13.2 3.734h-2.667V28h2.667zm-14.133-4c3.2-5.067 5.467-12.533 5.467-18 0-4 3.333-7.333 7.333-7.333s7.333 3.333 7.333 7.333c0 5.467 2.267 12.933 5.467 18z'/%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg id='icon'%3E%3Cpath d='M30.533 26.933c-3.333-4.8-5.867-12.667-5.867-18.267 0-4.8-3.867-8.667-8.667-8.667S7.332 3.866 7.332 8.666c0 5.6-2.533 13.467-5.867 18.267L1.998 28h11.333v4h5.333v-4h11.333l.533-1.067zm-13.2 3.734h-2.667V28h2.667zm-14.133-4c3.2-5.067 5.467-12.533 5.467-18 0-4 3.333-7.333 7.333-7.333s7.333 3.333 7.333 7.333c0 5.467 2.267 12.933 5.467 18z'/%3E%3C/g%3E%3C/svg%3E");background-color:currentColor;color:currentColor;forced-color-adjust:preserve-parent-color}.alert-primary:has(>post-icon)::before{content:none}.alert-primary>post-icon{background-color:#333}.alert-success{--post-bg-rgb: 44, 145, 28}.alert-success:not(.no-icon,[class^=pi-],[class*=" pi-"])::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg id='icon'%3E%3Cpath d='m12.667 24.533-7.6-7.6 1.867-1.867 5.733 5.733 12.4-12.4 1.867 1.867z'/%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg id='icon'%3E%3Cpath d='m12.667 24.533-7.6-7.6 1.867-1.867 5.733 5.733 12.4-12.4 1.867 1.867z'/%3E%3C/g%3E%3C/svg%3E");background-color:currentColor;color:currentColor;forced-color-adjust:preserve-parent-color}.alert-success:has(>post-icon)::before{content:none}.alert-success>post-icon{background-color:#2c911c}.alert-danger{--post-bg-rgb: 165, 23, 40}.alert-danger:not(.no-icon,[class^=pi-],[class*=" pi-"])::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg id='icon'%3E%3Cpath d='M14.667 4h2.667v18.667h-2.667zm0 21.333h2.667V28h-2.667z'/%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg id='icon'%3E%3Cpath d='M14.667 4h2.667v18.667h-2.667zm0 21.333h2.667V28h-2.667z'/%3E%3C/g%3E%3C/svg%3E");background-color:currentColor;color:currentColor;forced-color-adjust:preserve-parent-color}.alert-danger:has(>post-icon)::before{content:none}.alert-danger>post-icon{background-color:#a51728}.alert-warning{--post-bg-rgb: 244, 158, 0}.alert-warning:not(.no-icon,[class^=pi-],[class*=" pi-"])::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg id='icon'%3E%3Cpath d='M14.667 4h2.667v18.667h-2.667zm0 21.333h2.667V28h-2.667z'/%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg id='icon'%3E%3Cpath d='M14.667 4h2.667v18.667h-2.667zm0 21.333h2.667V28h-2.667z'/%3E%3C/g%3E%3C/svg%3E");background-color:currentColor;color:currentColor;forced-color-adjust:preserve-parent-color}.alert-warning:has(>post-icon)::before{content:none}.alert-warning>post-icon{background-color:#f49e00}.alert-info{--post-bg-rgb: 204, 228, 238}.alert-info:not(.no-icon,[class^=pi-],[class*=" pi-"])::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg id='icon'%3E%3Cpath d='M17.333 25.333v-16h-4.667V12h2v13.333h-2V28h6.667v-2.667zM14.667 4h2.667v2.667h-2.667z'/%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg id='icon'%3E%3Cpath d='M17.333 25.333v-16h-4.667V12h2v13.333h-2V28h6.667v-2.667zM14.667 4h2.667v2.667h-2.667z'/%3E%3C/g%3E%3C/svg%3E");background-color:currentColor;color:currentColor;forced-color-adjust:preserve-parent-color}.alert-info:has(>post-icon)::before{content:none}.alert-info>post-icon{background-color:#cce4ee}.alert-gray{--post-bg-rgb: 244, 243, 241}.alert-gray:not(.no-icon,[class^=pi-],[class*=" pi-"])::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xml:space='preserve' viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg id='icon'%3E%3Cpath d='M31.986 15.73c-.503.16-1.03.27-1.586.27a5.24 5.24 0 0 1-4.43-2.448c-.73.382-1.547.62-2.427.62a5.257 5.257 0 0 1-5.257-5.258c0-.88.237-1.698.62-2.427a5.24 5.24 0 0 1-2.449-4.43c0-.714.145-1.393.403-2.014C16.574.028 16.29 0 16 0 7.163 0 0 7.163 0 16s7.163 16 16 16 16-7.163 16-16c0-.091-.012-.18-.014-.27M16 30.667c-8.087 0-14.667-6.58-14.667-14.667 0-7.806 6.13-14.207 13.828-14.643a6.54 6.54 0 0 0 2.116 5.56 6.3 6.3 0 0 0-.325 1.997 6.6 6.6 0 0 0 6.59 6.59c.677 0 1.346-.108 1.998-.324a6.54 6.54 0 0 0 5.067 2.15C29.933 24.796 23.639 30.667 16 30.667M11.352 14.17a2.667 2.667 0 1 0-5.333 0 2.667 2.667 0 0 0 5.333 0m-4 0c0-.735.599-1.333 1.334-1.333s1.333.598 1.333 1.333-.598 1.334-1.333 1.334-1.334-.598-1.334-1.334m13.981 8.496a2.667 2.667 0 1 0-5.333 0 2.667 2.667 0 0 0 5.333 0m-4 0a1.335 1.335 0 0 1 2.667 0c0 .735-.598 1.333-1.333 1.333a1.335 1.335 0 0 1-1.334-1.333m-7.276-1.829a2 2 0 1 0 0 4 2 2 0 0 0 0-4m0 2.667a.667.667 0 1 1 .002-1.335.667.667 0 0 1-.002 1.335m7.772-6a2 2 0 1 0-4 0 2 2 0 0 0 4 0m-2 .666a.667.667 0 1 1 .001-1.334.667.667 0 0 1-.001 1.334M11.505 5.505a2 2 0 1 0 0 4 2 2 0 0 0 0-4m0 2.666a.667.667 0 1 1 .001-1.334.667.667 0 0 1-.001 1.334M28.93 18.548a13.2 13.2 0 0 1-4.335 7.357.663.663 0 0 1-.94-.073.666.666 0 0 1 .073-.94 11.84 11.84 0 0 0 3.894-6.61.668.668 0 0 1 1.307.266m-6.668 8.212a.667.667 0 0 1-.295.896c-.837.423-1.722.757-2.63.99a.665.665 0 1 1-.33-1.292 11.7 11.7 0 0 0 2.359-.888.67.67 0 0 1 .896.294M4 15.921a.666.666 0 1 1-1.333 0 13.13 13.13 0 0 1 4.597-9.984.666.666 0 1 1 .867 1.013A11.8 11.8 0 0 0 4 15.92'/%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xml:space='preserve' viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg id='icon'%3E%3Cpath d='M31.986 15.73c-.503.16-1.03.27-1.586.27a5.24 5.24 0 0 1-4.43-2.448c-.73.382-1.547.62-2.427.62a5.257 5.257 0 0 1-5.257-5.258c0-.88.237-1.698.62-2.427a5.24 5.24 0 0 1-2.449-4.43c0-.714.145-1.393.403-2.014C16.574.028 16.29 0 16 0 7.163 0 0 7.163 0 16s7.163 16 16 16 16-7.163 16-16c0-.091-.012-.18-.014-.27M16 30.667c-8.087 0-14.667-6.58-14.667-14.667 0-7.806 6.13-14.207 13.828-14.643a6.54 6.54 0 0 0 2.116 5.56 6.3 6.3 0 0 0-.325 1.997 6.6 6.6 0 0 0 6.59 6.59c.677 0 1.346-.108 1.998-.324a6.54 6.54 0 0 0 5.067 2.15C29.933 24.796 23.639 30.667 16 30.667M11.352 14.17a2.667 2.667 0 1 0-5.333 0 2.667 2.667 0 0 0 5.333 0m-4 0c0-.735.599-1.333 1.334-1.333s1.333.598 1.333 1.333-.598 1.334-1.333 1.334-1.334-.598-1.334-1.334m13.981 8.496a2.667 2.667 0 1 0-5.333 0 2.667 2.667 0 0 0 5.333 0m-4 0a1.335 1.335 0 0 1 2.667 0c0 .735-.598 1.333-1.333 1.333a1.335 1.335 0 0 1-1.334-1.333m-7.276-1.829a2 2 0 1 0 0 4 2 2 0 0 0 0-4m0 2.667a.667.667 0 1 1 .002-1.335.667.667 0 0 1-.002 1.335m7.772-6a2 2 0 1 0-4 0 2 2 0 0 0 4 0m-2 .666a.667.667 0 1 1 .001-1.334.667.667 0 0 1-.001 1.334M11.505 5.505a2 2 0 1 0 0 4 2 2 0 0 0 0-4m0 2.666a.667.667 0 1 1 .001-1.334.667.667 0 0 1-.001 1.334M28.93 18.548a13.2 13.2 0 0 1-4.335 7.357.663.663 0 0 1-.94-.073.666.666 0 0 1 .073-.94 11.84 11.84 0 0 0 3.894-6.61.668.668 0 0 1 1.307.266m-6.668 8.212a.667.667 0 0 1-.295.896c-.837.423-1.722.757-2.63.99a.665.665 0 1 1-.33-1.292 11.7 11.7 0 0 0 2.359-.888.67.67 0 0 1 .896.294M4 15.921a.666.666 0 1 1-1.333 0 13.13 13.13 0 0 1 4.597-9.984.666.666 0 1 1 .867 1.013A11.8 11.8 0 0 0 4 15.92'/%3E%3C/g%3E%3C/svg%3E");background-color:currentColor;color:currentColor;forced-color-adjust:preserve-parent-color}.alert-gray:has(>post-icon)::before{content:none}.alert-gray>post-icon{background-color:#f4f3f1}.alert-notification{--post-bg-rgb: 51, 51, 51}.alert-notification:not(.no-icon,[class^=pi-],[class*=" pi-"])::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg id='icon'%3E%3Cpath d='M30.533 26.933c-3.333-4.8-5.867-12.667-5.867-18.267 0-4.8-3.867-8.667-8.667-8.667S7.332 3.866 7.332 8.666c0 5.6-2.533 13.467-5.867 18.267L1.998 28h11.333v4h5.333v-4h11.333l.533-1.067zm-13.2 3.734h-2.667V28h2.667zm-14.133-4c3.2-5.067 5.467-12.533 5.467-18 0-4 3.333-7.333 7.333-7.333s7.333 3.333 7.333 7.333c0 5.467 2.267 12.933 5.467 18z'/%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg id='icon'%3E%3Cpath d='M30.533 26.933c-3.333-4.8-5.867-12.667-5.867-18.267 0-4.8-3.867-8.667-8.667-8.667S7.332 3.866 7.332 8.666c0 5.6-2.533 13.467-5.867 18.267L1.998 28h11.333v4h5.333v-4h11.333l.533-1.067zm-13.2 3.734h-2.667V28h2.667zm-14.133-4c3.2-5.067 5.467-12.533 5.467-18 0-4 3.333-7.333 7.333-7.333s7.333 3.333 7.333 7.333c0 5.467 2.267 12.933 5.467 18z'/%3E%3C/g%3E%3C/svg%3E");background-color:currentColor;color:currentColor;forced-color-adjust:preserve-parent-color}.alert-notification:has(>post-icon)::before{content:none}.alert-notification>post-icon{background-color:#333}.alert-error{--post-bg-rgb: 165, 23, 40}.alert-error:not(.no-icon,[class^=pi-],[class*=" pi-"])::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg id='icon'%3E%3Cpath d='M14.667 4h2.667v18.667h-2.667zm0 21.333h2.667V28h-2.667z'/%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg id='icon'%3E%3Cpath d='M14.667 4h2.667v18.667h-2.667zm0 21.333h2.667V28h-2.667z'/%3E%3C/g%3E%3C/svg%3E");background-color:currentColor;color:currentColor;forced-color-adjust:preserve-parent-color}.alert-error:has(>post-icon)::before{content:none}.alert-error>post-icon{background-color:#a51728}.btn-close{padding:0;overflow:visible;border:0;background:none;color:inherit;font:inherit;-webkit-user-select:none;user-select:none;-webkit-appearance:button;appearance:button;outline:none;outline-offset:2px;border-radius:4px;color:var(--post-gray-80);transition:opacity 250ms,border-color 250ms,background-color 250ms,color 250ms;cursor:pointer}.btn-close:is(:focus-visible,:focus-within,.pretend-focus){outline:2px solid var(--post-contrast-color)}.btn-close::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg id='icon'%3E%3Cpath d='m16.267 16.667 6.667-6.533-.933-1.067-6.667 6.667-6.667-6.667-.933 1.067 6.667 6.533-6.667 6.667 1.067.933 6.533-6.667 6.667 6.667.933-1.067z'/%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg id='icon'%3E%3Cpath d='m16.267 16.667 6.667-6.533-.933-1.067-6.667 6.667-6.667-6.667-.933 1.067 6.667 6.533-6.667 6.667 1.067.933 6.533-6.667 6.667 6.667.933-1.067z'/%3E%3C/g%3E%3C/svg%3E");background-color:currentColor;color:currentColor;forced-color-adjust:preserve-parent-color;content:"";display:block;height:1.5rem;width:1.5rem}.btn-close:focus,.btn-close:not(:disabled):hover,.pretend-hover.btn-close{color:var(--post-contrast-color)}.btn-close:disabled{color:var(--post-gray-40)}@media(forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.btn-close{color:CanvasText;forced-color-adjust:none}}.btn-close-white{color:#e6e6e6}.btn-close-white:focus,.btn-close-white:not(:disabled):hover,.btn-close-white.pretend-hover{color:#fff}.btn-close-white:disabled{color:#999}/*!
29
+ */.alert-primary,.alert-success,.alert-danger,.alert-warning,.alert-info,.alert-gray,.alert-notification,.alert-error{background-color:rgb(var(--post-bg-rgb)) !important;color:var(--post-contrast-color) !important}.alert-warning,.alert-info,.alert-gray{--post-contrast-color: #000;--post-contrast-color-inverted: #fff;--post-gray-10: hsl(0, 0%, 90%);--post-gray-20: hsl(0, 0%, 80%);--post-gray-40: hsl(0, 0%, 60%);--post-gray-60: hsl(0, 0%, 40%);--post-gray-80: hsl(0, 0%, 20%);--post-yellow: #fc0;--post-light: #faf9f8;--post-gray: #f4f3f1;--post-dark: hsl(0, 0%, 20%);--post-primary: hsl(0, 0%, 20%);--post-white: #fff;--post-black: #000;--post-info: #cce4ee;--post-success: #2c911c;--post-warning: #f49e00;--post-danger: #a51728;--post-nightblue: #004976;--post-nightblue-bright: #0076a8;--post-petrol: #006d68;--post-petrol-bright: #00968f;--post-coral: #9e2a2f;--post-coral-bright: #e03c31;--post-olive: #716135;--post-olive-bright: #aa9d2e;--post-purple: #80276c;--post-purple-bright: #c5299b;--post-aubergine: #523178;--post-aubergine-bright: #7566a0;--post-success-green: #2c871d;--post-error-red: #a51728;--post-warning-orange: #f49e00;--post-success-background: #c0debb;--post-error-background: #ffdade;--post-warning-background: #fce2b2;--post-contrast-color-rgb: 0, 0, 0;--post-contrast-color-inverted-rgb: 255, 255, 255;--post-gray-10-rgb: 230, 230, 230;--post-gray-20-rgb: 204, 204, 204;--post-gray-40-rgb: 153, 153, 153;--post-gray-60-rgb: 102, 102, 102;--post-gray-80-rgb: 51, 51, 51;--post-yellow-rgb: 255, 204, 0;--post-light-rgb: 250, 249, 248;--post-gray-rgb: 244, 243, 241;--post-dark-rgb: 51, 51, 51;--post-primary-rgb: 51, 51, 51;--post-white-rgb: 255, 255, 255;--post-black-rgb: 0, 0, 0;--post-info-rgb: 204, 228, 238;--post-success-rgb: 44, 145, 28;--post-warning-rgb: 244, 158, 0;--post-danger-rgb: 165, 23, 40;--post-nightblue-rgb: 0, 73, 118;--post-nightblue-bright-rgb: 0, 118, 168;--post-petrol-rgb: 0, 109, 104;--post-petrol-bright-rgb: 0, 150, 143;--post-coral-rgb: 158, 42, 47;--post-coral-bright-rgb: 224, 60, 49;--post-olive-rgb: 113, 97, 53;--post-olive-bright-rgb: 170, 157, 46;--post-purple-rgb: 128, 39, 108;--post-purple-bright-rgb: 197, 41, 155;--post-aubergine-rgb: 82, 49, 120;--post-aubergine-bright-rgb: 117, 102, 160;--post-success-green-rgb: 44, 135, 29;--post-error-red-rgb: 165, 23, 40;--post-warning-orange-rgb: 244, 158, 0;--post-success-background-rgb: 192, 222, 187;--post-error-background-rgb: 255, 218, 222;--post-warning-background-rgb: 252, 226, 178}.alert-primary,.alert-success,.alert-danger,.alert-notification,.alert-error{--post-contrast-color: #fff;--post-contrast-color-inverted: #000;--post-dark: #faf9f8;--post-light: hsl(0, 0%, 20%);--post-gray-80: hsl(0, 0%, 90%);--post-gray-60: hsl(0, 0%, 80%);--post-gray-40: hsl(0, 0%, 60%);--post-gray-20: hsl(0, 0%, 40%);--post-gray-10: hsl(0, 0%, 20%);--post-contrast-color-rgb: 255, 255, 255;--post-contrast-color-inverted-rgb: 0, 0, 0;--post-dark-rgb: 250, 249, 248;--post-light-rgb: 51, 51, 51;--post-gray-80-rgb: 230, 230, 230;--post-gray-60-rgb: 204, 204, 204;--post-gray-40-rgb: 153, 153, 153;--post-gray-20-rgb: 102, 102, 102;--post-gray-10-rgb: 51, 51, 51}.alert{position:relative;box-sizing:border-box;min-height:5rem;box-shadow:0 2px 4px 0 rgba(0,0,0,.2);border-radius:4px;padding:1rem 1.25rem;padding-inline-start:5.5rem;margin-block-end:1rem;font-size:1rem;font-weight:300}.alert.no-icon{min-height:3.5rem;padding-inline-start:1.25rem}.alert[class^=pi-],.alert[class*=" pi-"]{background-size:3rem;background-position:1.25rem 1rem;background-repeat:no-repeat}.alert[class^=pi-].no-icon,.alert[class*=" pi-"].no-icon{background-image:none}.alert::before{content:"";display:block}.alert::before,.alert>post-icon{position:absolute;height:3rem;width:3rem;left:1.25rem;top:1rem}.alert.no-icon::before,.alert[class^=pi-]::before,.alert[class*=" pi-"]::before{content:unset}.alert.no-icon>post-icon,.alert[class^=pi-]>post-icon,.alert[class*=" pi-"]>post-icon{display:none}@media(forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.alert{filter:none !important;border:2px solid CanvasText}}.alert:not(.alert-action){display:flex;flex-direction:column;justify-content:center;gap:.25rem}.alert:not(.alert-action) a{font-weight:400}.alert:not(.alert-action) hr{margin-block:.5rem .75rem !important}.alert:not(.alert-action)>:only-child,.alert:not(.alert-action)>post-icon:first-child+:last-child{font-size:1.0625rem;font-weight:700}.alert:not(.alert-action)>*{margin:0}.alert-heading{font-size:1.0625rem;font-weight:700}.alert-dismissible{pointer-events:auto;position:relative;padding-inline-end:4rem}.alert-dismissible>.btn-close{position:absolute;inset-block-start:1rem;inset-inline-end:1.25rem}.alert-dismissible>.btn-close:first-child+:last-child{font-size:1.0625rem;font-weight:700}.alert-action{display:flex;flex-direction:row;align-items:center;gap:1.25rem}.alert-action>.alert-content{flex:1 1 auto;display:flex;flex-direction:column;justify-content:center;gap:.25rem}.alert-action>.alert-content a{font-weight:400}.alert-action>.alert-content hr{margin-block:.5rem .75rem !important}.alert-action>.alert-content>:only-child,.alert-action>.alert-content>post-icon:first-child+:last-child{font-size:1.0625rem;font-weight:700}.alert-action>.alert-content>*{margin:0}.alert-action>.alert-buttons{flex:0 0 auto;display:flex;align-items:center;gap:.5rem}@media(min-width: 780px){.alert-action.alert-dismissible>.btn-close{inset-block-start:calc(50% - 0.75rem)}}@media(max-width: 779.98px){.alert-action{flex-direction:column;align-items:stretch;padding-inline:1.25rem}.alert-action>.alert-content{padding-inline-start:4.25rem;padding-inline-end:2.75rem}.alert-action>.alert-buttons{display:flex}.alert-action>.alert-buttons>.btn{flex:1 0 0;width:100%}.alert-action>.alert-buttons>.btn:first-child{margin-inline-start:0}}.alert-fixed-bottom{position:fixed;inset-block-end:0;inset-inline-start:0;inset-inline-end:0;margin-bottom:0;border-radius:0;z-index:1030}@media(min-width: 1440px){.alert-fixed-bottom{padding-inline-end:calc((100% - 1439px) / 2 + 120px + 1.25rem);padding-inline-start:calc(
30
+ (100% - 1439px) / 2 + 120px + 1.25rem + 3rem + 1.25rem
31
+ );background-position-x:calc((100% - 1439px) / 2 + 120px + 1.25rem + 1.5rem)}.alert-fixed-bottom::before{left:calc((100% - 1439px) / 2 + 120px + 1.25rem)}.alert-fixed-bottom.no-icon{padding-inline-start:calc((100% - 1439px) / 2 + 120px + 1.25rem)}.alert-fixed-bottom.alert-dismissible{padding-inline-end:calc(
32
+ (100% - 1439px) / 2 + 120px + 1.25rem + 1.25rem + 1.5rem
33
+ )}.alert-fixed-bottom.alert-dismissible>.btn-close{inset-inline-end:calc((100% - 1439px) / 2 + 120px + 1.25rem)}}.alert-primary{--post-bg-rgb: 51, 51, 51}.alert-primary:not(.no-icon,[class^=pi-],[class*=" pi-"])::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg id='icon'%3E%3Cpath d='M30.533 26.933c-3.333-4.8-5.867-12.667-5.867-18.267 0-4.8-3.867-8.667-8.667-8.667S7.332 3.866 7.332 8.666c0 5.6-2.533 13.467-5.867 18.267L1.998 28h11.333v4h5.333v-4h11.333l.533-1.067zm-13.2 3.734h-2.667V28h2.667zm-14.133-4c3.2-5.067 5.467-12.533 5.467-18 0-4 3.333-7.333 7.333-7.333s7.333 3.333 7.333 7.333c0 5.467 2.267 12.933 5.467 18z'/%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg id='icon'%3E%3Cpath d='M30.533 26.933c-3.333-4.8-5.867-12.667-5.867-18.267 0-4.8-3.867-8.667-8.667-8.667S7.332 3.866 7.332 8.666c0 5.6-2.533 13.467-5.867 18.267L1.998 28h11.333v4h5.333v-4h11.333l.533-1.067zm-13.2 3.734h-2.667V28h2.667zm-14.133-4c3.2-5.067 5.467-12.533 5.467-18 0-4 3.333-7.333 7.333-7.333s7.333 3.333 7.333 7.333c0 5.467 2.267 12.933 5.467 18z'/%3E%3C/g%3E%3C/svg%3E");background-color:currentColor;color:currentColor;forced-color-adjust:preserve-parent-color}.alert-primary:has(>post-icon)::before{content:none}.alert-primary>post-icon{background-color:#333}.alert-success{--post-bg-rgb: 44, 135, 29}.alert-success:not(.no-icon,[class^=pi-],[class*=" pi-"])::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg id='icon'%3E%3Cpath d='m12.667 24.533-7.6-7.6 1.867-1.867 5.733 5.733 12.4-12.4 1.867 1.867z'/%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg id='icon'%3E%3Cpath d='m12.667 24.533-7.6-7.6 1.867-1.867 5.733 5.733 12.4-12.4 1.867 1.867z'/%3E%3C/g%3E%3C/svg%3E");background-color:currentColor;color:currentColor;forced-color-adjust:preserve-parent-color}.alert-success:has(>post-icon)::before{content:none}.alert-success>post-icon{background-color:#2c871d}.alert-danger{--post-bg-rgb: 165, 23, 40}.alert-danger:not(.no-icon,[class^=pi-],[class*=" pi-"])::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg id='icon'%3E%3Cpath d='M14.667 4h2.667v18.667h-2.667zm0 21.333h2.667V28h-2.667z'/%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg id='icon'%3E%3Cpath d='M14.667 4h2.667v18.667h-2.667zm0 21.333h2.667V28h-2.667z'/%3E%3C/g%3E%3C/svg%3E");background-color:currentColor;color:currentColor;forced-color-adjust:preserve-parent-color}.alert-danger:has(>post-icon)::before{content:none}.alert-danger>post-icon{background-color:#a51728}.alert-warning{--post-bg-rgb: 244, 158, 0}.alert-warning:not(.no-icon,[class^=pi-],[class*=" pi-"])::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg id='icon'%3E%3Cpath d='M14.667 4h2.667v18.667h-2.667zm0 21.333h2.667V28h-2.667z'/%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg id='icon'%3E%3Cpath d='M14.667 4h2.667v18.667h-2.667zm0 21.333h2.667V28h-2.667z'/%3E%3C/g%3E%3C/svg%3E");background-color:currentColor;color:currentColor;forced-color-adjust:preserve-parent-color}.alert-warning:has(>post-icon)::before{content:none}.alert-warning>post-icon{background-color:#f49e00}.alert-info{--post-bg-rgb: 204, 228, 238}.alert-info:not(.no-icon,[class^=pi-],[class*=" pi-"])::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg id='icon'%3E%3Cpath d='M17.333 25.333v-16h-4.667V12h2v13.333h-2V28h6.667v-2.667zM14.667 4h2.667v2.667h-2.667z'/%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg id='icon'%3E%3Cpath d='M17.333 25.333v-16h-4.667V12h2v13.333h-2V28h6.667v-2.667zM14.667 4h2.667v2.667h-2.667z'/%3E%3C/g%3E%3C/svg%3E");background-color:currentColor;color:currentColor;forced-color-adjust:preserve-parent-color}.alert-info:has(>post-icon)::before{content:none}.alert-info>post-icon{background-color:#cce4ee}.alert-gray{--post-bg-rgb: 244, 243, 241}.alert-gray:not(.no-icon,[class^=pi-],[class*=" pi-"])::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xml:space='preserve' viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg id='icon'%3E%3Cpath d='M31.986 15.73c-.503.16-1.03.27-1.586.27a5.24 5.24 0 0 1-4.43-2.448c-.73.382-1.547.62-2.427.62a5.257 5.257 0 0 1-5.257-5.258c0-.88.237-1.698.62-2.427a5.24 5.24 0 0 1-2.449-4.43c0-.714.145-1.393.403-2.014C16.574.028 16.29 0 16 0 7.163 0 0 7.163 0 16s7.163 16 16 16 16-7.163 16-16c0-.091-.012-.18-.014-.27M16 30.667c-8.087 0-14.667-6.58-14.667-14.667 0-7.806 6.13-14.207 13.828-14.643a6.54 6.54 0 0 0 2.116 5.56 6.3 6.3 0 0 0-.325 1.997 6.6 6.6 0 0 0 6.59 6.59c.677 0 1.346-.108 1.998-.324a6.54 6.54 0 0 0 5.067 2.15C29.933 24.796 23.639 30.667 16 30.667M11.352 14.17a2.667 2.667 0 1 0-5.333 0 2.667 2.667 0 0 0 5.333 0m-4 0c0-.735.599-1.333 1.334-1.333s1.333.598 1.333 1.333-.598 1.334-1.333 1.334-1.334-.598-1.334-1.334m13.981 8.496a2.667 2.667 0 1 0-5.333 0 2.667 2.667 0 0 0 5.333 0m-4 0a1.335 1.335 0 0 1 2.667 0c0 .735-.598 1.333-1.333 1.333a1.335 1.335 0 0 1-1.334-1.333m-7.276-1.829a2 2 0 1 0 0 4 2 2 0 0 0 0-4m0 2.667a.667.667 0 1 1 .002-1.335.667.667 0 0 1-.002 1.335m7.772-6a2 2 0 1 0-4 0 2 2 0 0 0 4 0m-2 .666a.667.667 0 1 1 .001-1.334.667.667 0 0 1-.001 1.334M11.505 5.505a2 2 0 1 0 0 4 2 2 0 0 0 0-4m0 2.666a.667.667 0 1 1 .001-1.334.667.667 0 0 1-.001 1.334M28.93 18.548a13.2 13.2 0 0 1-4.335 7.357.663.663 0 0 1-.94-.073.666.666 0 0 1 .073-.94 11.84 11.84 0 0 0 3.894-6.61.668.668 0 0 1 1.307.266m-6.668 8.212a.667.667 0 0 1-.295.896c-.837.423-1.722.757-2.63.99a.665.665 0 1 1-.33-1.292 11.7 11.7 0 0 0 2.359-.888.67.67 0 0 1 .896.294M4 15.921a.666.666 0 1 1-1.333 0 13.13 13.13 0 0 1 4.597-9.984.666.666 0 1 1 .867 1.013A11.8 11.8 0 0 0 4 15.92'/%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xml:space='preserve' viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg id='icon'%3E%3Cpath d='M31.986 15.73c-.503.16-1.03.27-1.586.27a5.24 5.24 0 0 1-4.43-2.448c-.73.382-1.547.62-2.427.62a5.257 5.257 0 0 1-5.257-5.258c0-.88.237-1.698.62-2.427a5.24 5.24 0 0 1-2.449-4.43c0-.714.145-1.393.403-2.014C16.574.028 16.29 0 16 0 7.163 0 0 7.163 0 16s7.163 16 16 16 16-7.163 16-16c0-.091-.012-.18-.014-.27M16 30.667c-8.087 0-14.667-6.58-14.667-14.667 0-7.806 6.13-14.207 13.828-14.643a6.54 6.54 0 0 0 2.116 5.56 6.3 6.3 0 0 0-.325 1.997 6.6 6.6 0 0 0 6.59 6.59c.677 0 1.346-.108 1.998-.324a6.54 6.54 0 0 0 5.067 2.15C29.933 24.796 23.639 30.667 16 30.667M11.352 14.17a2.667 2.667 0 1 0-5.333 0 2.667 2.667 0 0 0 5.333 0m-4 0c0-.735.599-1.333 1.334-1.333s1.333.598 1.333 1.333-.598 1.334-1.333 1.334-1.334-.598-1.334-1.334m13.981 8.496a2.667 2.667 0 1 0-5.333 0 2.667 2.667 0 0 0 5.333 0m-4 0a1.335 1.335 0 0 1 2.667 0c0 .735-.598 1.333-1.333 1.333a1.335 1.335 0 0 1-1.334-1.333m-7.276-1.829a2 2 0 1 0 0 4 2 2 0 0 0 0-4m0 2.667a.667.667 0 1 1 .002-1.335.667.667 0 0 1-.002 1.335m7.772-6a2 2 0 1 0-4 0 2 2 0 0 0 4 0m-2 .666a.667.667 0 1 1 .001-1.334.667.667 0 0 1-.001 1.334M11.505 5.505a2 2 0 1 0 0 4 2 2 0 0 0 0-4m0 2.666a.667.667 0 1 1 .001-1.334.667.667 0 0 1-.001 1.334M28.93 18.548a13.2 13.2 0 0 1-4.335 7.357.663.663 0 0 1-.94-.073.666.666 0 0 1 .073-.94 11.84 11.84 0 0 0 3.894-6.61.668.668 0 0 1 1.307.266m-6.668 8.212a.667.667 0 0 1-.295.896c-.837.423-1.722.757-2.63.99a.665.665 0 1 1-.33-1.292 11.7 11.7 0 0 0 2.359-.888.67.67 0 0 1 .896.294M4 15.921a.666.666 0 1 1-1.333 0 13.13 13.13 0 0 1 4.597-9.984.666.666 0 1 1 .867 1.013A11.8 11.8 0 0 0 4 15.92'/%3E%3C/g%3E%3C/svg%3E");background-color:currentColor;color:currentColor;forced-color-adjust:preserve-parent-color}.alert-gray:has(>post-icon)::before{content:none}.alert-gray>post-icon{background-color:#f4f3f1}.alert-notification{--post-bg-rgb: 51, 51, 51}.alert-notification:not(.no-icon,[class^=pi-],[class*=" pi-"])::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg id='icon'%3E%3Cpath d='M30.533 26.933c-3.333-4.8-5.867-12.667-5.867-18.267 0-4.8-3.867-8.667-8.667-8.667S7.332 3.866 7.332 8.666c0 5.6-2.533 13.467-5.867 18.267L1.998 28h11.333v4h5.333v-4h11.333l.533-1.067zm-13.2 3.734h-2.667V28h2.667zm-14.133-4c3.2-5.067 5.467-12.533 5.467-18 0-4 3.333-7.333 7.333-7.333s7.333 3.333 7.333 7.333c0 5.467 2.267 12.933 5.467 18z'/%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg id='icon'%3E%3Cpath d='M30.533 26.933c-3.333-4.8-5.867-12.667-5.867-18.267 0-4.8-3.867-8.667-8.667-8.667S7.332 3.866 7.332 8.666c0 5.6-2.533 13.467-5.867 18.267L1.998 28h11.333v4h5.333v-4h11.333l.533-1.067zm-13.2 3.734h-2.667V28h2.667zm-14.133-4c3.2-5.067 5.467-12.533 5.467-18 0-4 3.333-7.333 7.333-7.333s7.333 3.333 7.333 7.333c0 5.467 2.267 12.933 5.467 18z'/%3E%3C/g%3E%3C/svg%3E");background-color:currentColor;color:currentColor;forced-color-adjust:preserve-parent-color}.alert-notification:has(>post-icon)::before{content:none}.alert-notification>post-icon{background-color:#333}.alert-error{--post-bg-rgb: 165, 23, 40}.alert-error:not(.no-icon,[class^=pi-],[class*=" pi-"])::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg id='icon'%3E%3Cpath d='M14.667 4h2.667v18.667h-2.667zm0 21.333h2.667V28h-2.667z'/%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg id='icon'%3E%3Cpath d='M14.667 4h2.667v18.667h-2.667zm0 21.333h2.667V28h-2.667z'/%3E%3C/g%3E%3C/svg%3E");background-color:currentColor;color:currentColor;forced-color-adjust:preserve-parent-color}.alert-error:has(>post-icon)::before{content:none}.alert-error>post-icon{background-color:#a51728}.btn-close{padding:0;overflow:visible;border:0;background:none;color:inherit;font:inherit;-webkit-user-select:none;user-select:none;-webkit-appearance:button;appearance:button;outline:none;outline-offset:2px;border-radius:4px;color:var(--post-gray-80);transition:opacity 250ms,border-color 250ms,background-color 250ms,color 250ms;cursor:pointer}.btn-close:is(:focus-visible,:focus-within,.pretend-focus){outline:2px solid var(--post-contrast-color)}.btn-close::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg id='icon'%3E%3Cpath d='m16.267 16.667 6.667-6.533-.933-1.067-6.667 6.667-6.667-6.667-.933 1.067 6.667 6.533-6.667 6.667 1.067.933 6.533-6.667 6.667 6.667.933-1.067z'/%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg id='icon'%3E%3Cpath d='m16.267 16.667 6.667-6.533-.933-1.067-6.667 6.667-6.667-6.667-.933 1.067 6.667 6.533-6.667 6.667 1.067.933 6.533-6.667 6.667 6.667.933-1.067z'/%3E%3C/g%3E%3C/svg%3E");background-color:currentColor;color:currentColor;forced-color-adjust:preserve-parent-color;content:"";display:block;height:1.5rem;width:1.5rem}.btn-close:focus,.btn-close:not(:disabled):hover,.pretend-hover.btn-close{color:var(--post-contrast-color)}.btn-close:disabled{color:var(--post-gray-40)}@media(forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.btn-close{color:CanvasText;forced-color-adjust:none}.btn-close:focus,.btn-close:not(:disabled):hover,.pretend-hover.btn-close{color:Highlight}}.btn-close-white{color:#e6e6e6}.btn-close-white:focus,.btn-close-white:not(:disabled):hover,.btn-close-white.pretend-hover{color:#fff}.btn-close-white:disabled{color:#999}/*!
34
34
  * Copyright 2021 by Swiss Post, Information Technology
35
35
  */:host{display:block}:host ::slotted(*){margin:0 !important}.visually-hidden{width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border:0 !important}.visually-hidden:not(caption){position:absolute !important}.alert-heading>::slotted(h1){font-size:inherit !important;font-weight:inherit !important}.alert-heading>::slotted(h2){font-size:inherit !important;font-weight:inherit !important}.alert-heading>::slotted(h3){font-size:inherit !important;font-weight:inherit !important}.alert-heading>::slotted(h4){font-size:inherit !important;font-weight:inherit !important}.alert-heading>::slotted(h5){font-size:inherit !important;font-weight:inherit !important}.alert-heading>::slotted(h6){font-size:inherit !important;font-weight:inherit !important}
@@ -1,3 +1,3 @@
1
1
  /*!
2
2
  * Copyright 2021 by Swiss Post, Information Technology
3
- */.btn-close{padding:0;overflow:visible;border:0;background:none;color:inherit;font:inherit;-webkit-user-select:none;user-select:none;-webkit-appearance:button;appearance:button;outline:none;outline-offset:2px;border-radius:4px;color:var(--post-gray-80);transition:opacity 250ms,border-color 250ms,background-color 250ms,color 250ms;cursor:pointer}.btn-close:is(:focus-visible,:focus-within,.pretend-focus){outline:2px solid var(--post-contrast-color)}.btn-close::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg id='icon'%3E%3Cpath d='m16.267 16.667 6.667-6.533-.933-1.067-6.667 6.667-6.667-6.667-.933 1.067 6.667 6.533-6.667 6.667 1.067.933 6.533-6.667 6.667 6.667.933-1.067z'/%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg id='icon'%3E%3Cpath d='m16.267 16.667 6.667-6.533-.933-1.067-6.667 6.667-6.667-6.667-.933 1.067 6.667 6.533-6.667 6.667 1.067.933 6.533-6.667 6.667 6.667.933-1.067z'/%3E%3C/g%3E%3C/svg%3E");background-color:currentColor;color:currentColor;forced-color-adjust:preserve-parent-color;content:"";display:block;height:1.5rem;width:1.5rem}.btn-close:focus,.btn-close:not(:disabled):hover,.pretend-hover.btn-close{color:var(--post-contrast-color)}.btn-close:disabled{color:var(--post-gray-40)}@media(forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.btn-close{color:CanvasText;forced-color-adjust:none}}.btn-close-white{color:#e6e6e6}.btn-close-white:focus,.btn-close-white:not(:disabled):hover,.btn-close-white.pretend-hover{color:#fff}.btn-close-white:disabled{color:#999}*{box-sizing:border-box}:host{--post-contrast-color: #fff;--post-bg-rgb: 51, 51, 51;display:block}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);border:0}.popover-container{display:flex;align-items:self-start;padding:.5em;max-width:min(66vw,60rem)}@media(max-width: 599.98px){.popover-container{max-width:100%}}.popover-content{padding:.5em}
3
+ */.btn-close{padding:0;overflow:visible;border:0;background:none;color:inherit;font:inherit;-webkit-user-select:none;user-select:none;-webkit-appearance:button;appearance:button;outline:none;outline-offset:2px;border-radius:4px;color:var(--post-gray-80);transition:opacity 250ms,border-color 250ms,background-color 250ms,color 250ms;cursor:pointer}.btn-close:is(:focus-visible,:focus-within,.pretend-focus){outline:2px solid var(--post-contrast-color)}.btn-close::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg id='icon'%3E%3Cpath d='m16.267 16.667 6.667-6.533-.933-1.067-6.667 6.667-6.667-6.667-.933 1.067 6.667 6.533-6.667 6.667 1.067.933 6.533-6.667 6.667 6.667.933-1.067z'/%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cg id='icon'%3E%3Cpath d='m16.267 16.667 6.667-6.533-.933-1.067-6.667 6.667-6.667-6.667-.933 1.067 6.667 6.533-6.667 6.667 1.067.933 6.533-6.667 6.667 6.667.933-1.067z'/%3E%3C/g%3E%3C/svg%3E");background-color:currentColor;color:currentColor;forced-color-adjust:preserve-parent-color;content:"";display:block;height:1.5rem;width:1.5rem}.btn-close:focus,.btn-close:not(:disabled):hover,.pretend-hover.btn-close{color:var(--post-contrast-color)}.btn-close:disabled{color:var(--post-gray-40)}@media(forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.btn-close{color:CanvasText;forced-color-adjust:none}.btn-close:focus,.btn-close:not(:disabled):hover,.pretend-hover.btn-close{color:Highlight}}.btn-close-white{color:#e6e6e6}.btn-close-white:focus,.btn-close-white:not(:disabled):hover,.btn-close-white.pretend-hover{color:#fff}.btn-close-white:disabled{color:#999}*{box-sizing:border-box}:host{--post-contrast-color: #fff;--post-bg-rgb: 51, 51, 51;display:block}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);border:0}.popover-container{display:flex;align-items:self-start;padding:.5em;max-width:min(66vw,60rem)}@media(max-width: 599.98px){.popover-container{max-width:100%}}.popover-content{padding:.5em}
@@ -1,54 +1,66 @@
1
1
  import { h, Host } from "@stencil/core";
2
2
  import { version } from "../../../package.json";
3
+ import { getAttributeObserver } from "../../utils/attribute-observer";
3
4
  /**
4
5
  * @slot default - Slot for placing content inside the popover.
5
6
  */
7
+ let popoverInstances = 0;
8
+ const popoverTargetAttribute = 'data-popover-target';
9
+ const globalToggleHandler = (e) => {
10
+ const target = e.target;
11
+ if (!target || !('getAttribute' in target))
12
+ return;
13
+ const popoverTarget = target.getAttribute(popoverTargetAttribute);
14
+ if (!popoverTarget || ('key' in e && e.key !== 'Enter'))
15
+ return;
16
+ const popover = document.getElementById(popoverTarget);
17
+ popover === null || popover === void 0 ? void 0 : popover.toggle(target);
18
+ };
19
+ // Initialize a mutation observer for patching accessibility features
20
+ const triggerObserver = getAttributeObserver(popoverTargetAttribute, trigger => {
21
+ const force = trigger.hasAttribute(popoverTargetAttribute);
22
+ trigger.setAttribute('aria-expanded', force ? 'false' : null);
23
+ });
6
24
  export class PostPopover {
7
25
  constructor() {
8
26
  this.placement = 'top';
9
27
  this.closeButtonCaption = undefined;
10
28
  this.arrow = true;
11
- this.localTogglePopover = e => this.toggle(e.target);
12
- this.localEnterTogglePopover = e => {
13
- if (e.key === 'Enter')
14
- this.toggle(e.target);
15
- };
16
- this.localTouchTogglePopover = e => {
17
- e.preventDefault();
18
- this.toggle(e.target);
19
- };
29
+ this.localBeforeToggleHandler = this.beforeToggleHandler.bind(this);
20
30
  }
21
31
  connectedCallback() {
22
- if (!this.triggers) {
23
- throw new Error(`No trigger found for <post-popover popover-id="${this.host.id}`);
32
+ // Set up accessibility patcher and event listeners for the first component
33
+ if (popoverInstances === 0) {
34
+ window.addEventListener('pointerup', globalToggleHandler);
35
+ window.addEventListener('keydown', globalToggleHandler);
36
+ triggerObserver.observe(document.body, {
37
+ subtree: true,
38
+ childList: true,
39
+ attributeFilter: [popoverTargetAttribute],
40
+ });
24
41
  }
25
- // As long as cross-shadow-boundary [popovertarget] and button.popoverTargetElement are not working
26
- // we're left with listening to trigger events ourselves
27
- // https://developer.mozilla.org/en-US/docs/Web/API/HTMLButtonElement/popoverTargetElement
28
- // https://github.com/whatwg/html/issues/9109#issuecomment-1494030465 (does not seem to work for now)
29
- // https://stackoverflow.com/questions/77324143/popovertargetelement-does-not-cross-shadow-boundaries?noredirect=1#comment136318281_77324143
30
- this.triggers.forEach(trigger => {
31
- // See this.onToggle for one time mouse event listener
32
- trigger.addEventListener('mouseup', this.localTogglePopover, { once: true });
33
- trigger.addEventListener('keypress', this.localEnterTogglePopover);
34
- trigger.addEventListener('touch', this.localTouchTogglePopover, { once: true });
35
- trigger.setAttribute('aria-expanded', 'false');
36
- });
42
+ popoverInstances++;
43
+ this.triggers.forEach(trigger => trigger.setAttribute('aria-expanded', 'false'));
44
+ }
45
+ componentDidLoad() {
46
+ this.popoverRef.addEventListener('beforetoggle', this.localBeforeToggleHandler);
37
47
  }
38
48
  disconnectedCallback() {
39
- this.triggers.forEach(trigger => {
40
- trigger.removeEventListener('mouseup', this.localTogglePopover);
41
- trigger.removeEventListener('keypress', this.localEnterTogglePopover);
42
- trigger.removeEventListener('touch', this.localTouchTogglePopover);
43
- trigger.removeAttribute('aria-expanded');
44
- });
49
+ popoverInstances--;
50
+ // Remove listeners and observer after the last popover has been destructed
51
+ if (popoverInstances === 0) {
52
+ window.removeEventListener('click', globalToggleHandler);
53
+ window.removeEventListener('keydown', globalToggleHandler);
54
+ triggerObserver.disconnect();
55
+ }
56
+ this.popoverRef.removeEventListener('beforetoggle', this.localBeforeToggleHandler);
57
+ this.triggers.forEach(trigger => trigger.removeAttribute('aria-expanded'));
45
58
  }
46
59
  /**
47
60
  * Programmatically display the popover
48
61
  * @param target An element with [data-popover-target="id"] where the popover should be shown
49
62
  */
50
63
  async show(target) {
51
- this.currentTarget = target;
52
64
  this.popoverRef.show(target);
53
65
  target.setAttribute('aria-expanded', 'true');
54
66
  }
@@ -65,46 +77,18 @@ export class PostPopover {
65
77
  * @param force Pass true to always show or false to always hide
66
78
  */
67
79
  async toggle(target, force) {
68
- this.currentTarget = target;
69
80
  const newState = await this.popoverRef.toggle(target, force);
81
+ this.triggers.forEach(trigger => trigger.setAttribute('aria-expanded', 'false'));
70
82
  target.setAttribute('aria-expanded', `${newState}`);
71
83
  }
72
84
  get triggers() {
73
- return document.querySelectorAll(`[data-popover-target="${this.host.id}"]`);
85
+ return document.querySelectorAll(`[${popoverTargetAttribute}="${this.host.id}"]`);
74
86
  }
75
- /**
76
- * One time event handler for click events
77
- * A permanent event listener would prevent a toggle button from working properly:
78
- * A click opens the popover, a second click first closes it (due to light dismiss), then directly
79
- * opens it again because of the click listener on the button. Registering a new
80
- * one time listener after a small timeout solves this issue.
81
- * @param e toggle event from post-popovercontainer
82
- */
83
- onToggle(e) {
84
- if (this.currentTarget) {
85
- this.currentTarget.setAttribute('aria-expanded', `${e.detail}`);
86
- }
87
- if (!e.detail) {
88
- window.requestAnimationFrame(() => {
89
- this.triggers.forEach(trigger => {
90
- trigger.addEventListener('mouseup', this.localTogglePopover, { once: true });
91
- trigger.addEventListener('touch', this.localTouchTogglePopover, { once: true });
92
- });
93
- });
94
- // Handle missing re-focusing logic after close. Can be removed as soon as popovertarget works correctly
95
- if (this.currentTarget) {
96
- this.currentTarget.focus();
97
- this.currentTarget = null;
98
- }
99
- }
100
- }
101
- // Fix for firefox to prevent the following lines from triggering
102
- // https://github.com/oddbird/popover-polyfill/blob/main/src/popover.ts#L338
103
- stopImmediatePropagation(e) {
104
- e.stopImmediatePropagation();
87
+ beforeToggleHandler() {
88
+ this.triggers.forEach(trigger => trigger.setAttribute('aria-expanded', 'false'));
105
89
  }
106
90
  render() {
107
- return (h(Host, { key: 'f1580a33b1a6398ce0f32ce76365a1cebe68ceeb', "data-version": version }, h("post-popovercontainer", { key: '3fbf43896d0cb2c4d35b18302a66097499aa31c0', arrow: this.arrow, placement: this.placement, ref: e => (this.popoverRef = e), onPostPopoverToggled: e => this.onToggle(e) }, h("div", { key: '3b698cdc50d72e59238a1dbc48aced03c0c7dc43', class: "popover-container", onPointerDown: e => this.stopImmediatePropagation(e), onPointerUp: e => this.stopImmediatePropagation(e) }, h("div", { key: '1e9f888bba7c54fa4ba956553e7668f3f37daa67', class: "popover-content" }, h("slot", { key: '433e2b5d75f7bf7b07ba2895c97fc362a98b653f' })), h("button", { key: 'ee88604aabea87068e5653a0d14111064c6e8829', class: "btn-close", onClick: () => this.hide() }, h("span", { key: 'f9fbd6ab73a99c293281c5a80e4c583fe5ca8f37', class: "visually-hidden" }, this.closeButtonCaption))))));
91
+ return (h(Host, { key: '90cd97eedfdecb6666c5825cd09bb323cf857cbb', "data-version": version }, h("post-popovercontainer", { key: 'fe555322454124f4b9a618c634f2ae504ec89c07', arrow: this.arrow, placement: this.placement, ref: e => (this.popoverRef = e) }, h("div", { key: 'd6e30229dd8d38c95e165d1fc55b1c7af5c7b5e2', class: "popover-container" }, h("div", { key: 'c43c1347bb6bfe3532387693b1761b53533584ec', class: "popover-content" }, h("slot", { key: '24a4aa1df86497a4fe4b72adaac76f6e69db9d9e' })), h("button", { key: '3a5e52f480ddd1ef41d068e476d2a8c5f7d77c4a', class: "btn-close", onClick: () => this.hide() }, h("span", { key: '493310100d3f76dfe5bf6cf1d64250b7551be43c', class: "visually-hidden" }, this.closeButtonCaption))))));
108
92
  }
109
93
  static get is() { return "post-popover"; }
110
94
  static get encapsulation() { return "shadow"; }
@@ -1 +1 @@
1
- @layer polyfill{@supports not selector(:popover-open){[popover]:not(.\:popover-open){display:none}}}.popover{box-shadow:.5px 3px 4px rgba(0,0,0,.1),2px 4px 10px 4px rgba(0,0,0,.12);position:fixed;z-index:1060;width:max-content;margin:0;padding:0;box-sizing:border-box;color:var(--post-contrast-color);background-color:rgb(var(--post-bg-rgb));border:1px solid rgba(0,0,0,0);border-radius:4px;overflow:visible}.arrow{position:absolute;width:.7071067812rem;height:.7071067812rem;background-color:inherit;rotate:45deg;pointer-events:none;z-index:-1;border-right:2px solid rgba(0,0,0,0);border-bottom:2px solid rgba(0,0,0,0)}
1
+ @layer polyfill{@supports not selector(:popover-open){[popover]:not(.\:popover-open){display:none}}}.popover{box-shadow:.5px 3px 4px rgba(0,0,0,.1),2px 4px 10px 4px rgba(0,0,0,.12);position:fixed;z-index:1060;width:max-content;margin:0;padding:0;box-sizing:border-box;color:var(--post-contrast-color);background-color:rgb(var(--post-bg-rgb));border:2px solid rgba(0,0,0,0);border-radius:4px;overflow:visible}.arrow{position:absolute;width:.7071067812rem;height:.7071067812rem;background-color:inherit;rotate:45deg;pointer-events:none;z-index:-1}.arrow.top{border-left:2px solid rgba(0,0,0,0);border-top:2px solid rgba(0,0,0,0)}.arrow.right{border-right:2px solid rgba(0,0,0,0);border-top:2px solid rgba(0,0,0,0)}.arrow.left{border-left:2px solid rgba(0,0,0,0);border-bottom:2px solid rgba(0,0,0,0)}.arrow.bottom{border-right:2px solid rgba(0,0,0,0);border-bottom:2px solid rgba(0,0,0,0)}
@@ -1,5 +1,5 @@
1
1
  import { h, Host } from "@stencil/core";
2
- import { arrow, autoUpdate, computePosition, flip, inline, offset, shift, limitShift, size, } from "@floating-ui/dom";
2
+ import { arrow, autoUpdate, computePosition, flip, inline, limitShift, offset, shift, size, } from "@floating-ui/dom";
3
3
  // Polyfill for popovers, can be removed when https://caniuse.com/?search=popover is green
4
4
  import "@oddbird/popover-polyfill";
5
5
  import { version } from "../../../package.json";
@@ -32,16 +32,20 @@ export class PostPopovercontainer {
32
32
  * @param target An element with [data-tooltip-target="id"] where the tooltip should be shown
33
33
  */
34
34
  async show(target) {
35
- this.eventTarget = target;
36
- this.calculatePosition();
37
- this.popoverRef.showPopover();
35
+ if (!this.toggleTimeoutId) {
36
+ this.eventTarget = target;
37
+ this.calculatePosition();
38
+ this.popoverRef.showPopover();
39
+ }
38
40
  }
39
41
  /**
40
42
  * Programmatically hide this tooltip
41
43
  */
42
44
  async hide() {
43
- this.eventTarget = null;
44
- this.popoverRef.hidePopover();
45
+ if (!this.toggleTimeoutId) {
46
+ this.eventTarget = null;
47
+ this.popoverRef.hidePopover();
48
+ }
45
49
  }
46
50
  /**
47
51
  * Toggle tooltip display
@@ -49,9 +53,13 @@ export class PostPopovercontainer {
49
53
  * @param force Pass true to always show or false to always hide
50
54
  */
51
55
  async toggle(target, force) {
52
- this.eventTarget = target;
53
- this.calculatePosition();
54
- this.popoverRef.togglePopover(force);
56
+ // Prevent instant double toggle
57
+ if (!this.toggleTimeoutId) {
58
+ this.eventTarget = target;
59
+ this.calculatePosition();
60
+ this.popoverRef.togglePopover(force);
61
+ this.toggleTimeoutId = null;
62
+ }
55
63
  return this.popoverRef.matches(':popover-open');
56
64
  }
57
65
  /**
@@ -61,6 +69,7 @@ export class PostPopovercontainer {
61
69
  * @param e ToggleEvent
62
70
  */
63
71
  handleToggle(e) {
72
+ this.toggleTimeoutId = window.setTimeout(() => (this.toggleTimeoutId = null), 10);
64
73
  const isOpen = e.newState === 'open';
65
74
  if (isOpen) {
66
75
  this.startAutoupdates();
@@ -116,17 +125,21 @@ export class PostPopovercontainer {
116
125
  const side = currentPlacement.split('-')[0];
117
126
  const { x: arrowX, y: arrowY } = middlewareData.arrow;
118
127
  const staticSide = SIDE_MAP[side];
128
+ const offsetBorderLineJoin = 2;
119
129
  Object.assign(this.arrowRef.style, {
120
130
  top: arrowY ? `${arrowY}px` : '',
121
131
  left: arrowX ? `${arrowX}px` : '',
122
- [staticSide]: `${-this.arrowRef.offsetWidth / 2}px`,
132
+ [staticSide]: `${-this.arrowRef.offsetWidth / 2 - offsetBorderLineJoin}px`,
123
133
  });
134
+ // Add position as a class to be able to style arrow for HCM
135
+ this.arrowRef.classList.remove(...Object.values(SIDE_MAP));
136
+ this.arrowRef.classList.add(staticSide);
124
137
  }
125
138
  }
126
139
  render() {
127
- return (h(Host, { key: '684e4cc286af23b25ca15f0ca3fd86ad017a16f1', "data-version": version }, h("div", { key: '6c34a3008e50b6aecfd176e9ca7fef08946ab18d', class: "popover", part: "popover", ref: (el) => (this.popoverRef = el) }, this.arrow && (h("span", { class: "arrow", ref: el => {
140
+ return (h(Host, { key: '8049387a5ba6eefb3165e84c098ba4ae5b8f443f', "data-version": version }, h("div", { key: '63d3095a7992baf46fbc74b5c595654cbdeaba66', class: "popover", part: "popover", ref: (el) => (this.popoverRef = el) }, this.arrow && (h("span", { class: "arrow", ref: el => {
128
141
  this.arrowRef = el;
129
- } })), h("slot", { key: 'a79f799160b2cda12517ccd684e190304d4eb4ae' }))));
142
+ } })), h("slot", { key: '74b1746bf48f8aa915c443721c1c2af1c1a3df5d' }))));
130
143
  }
131
144
  static get is() { return "post-popovercontainer"; }
132
145
  static get encapsulation() { return "shadow"; }
@@ -2,6 +2,7 @@ import { h, Host } from "@stencil/core";
2
2
  import { version } from "../../../package.json";
3
3
  import isFocusable from "ally.js/is/focusable";
4
4
  import "long-press-event";
5
+ import { getAttributeObserver } from "../../utils/attribute-observer";
5
6
  /**
6
7
  * @slot default - Slot for the content of the tooltip.
7
8
  */
@@ -10,6 +11,7 @@ import "long-press-event";
10
11
  */
11
12
  let tooltipInstances = 0;
12
13
  let hideTooltipTimeout = null;
14
+ const tooltipTargetAttribute = 'data-tooltip-target';
13
15
  /**
14
16
  * Global event listener to show tooltips. This is globalized so that triggers that are rendered
15
17
  * async will still work without the need to set listeners on the element itself
@@ -18,9 +20,9 @@ let hideTooltipTimeout = null;
18
20
  */
19
21
  const globalInterestHandler = (e) => {
20
22
  const target = e.target;
21
- if (!(e === null || e === void 0 ? void 0 : e.target) || !('getAttribute' in e.target))
23
+ if (!target || !('getAttribute' in target))
22
24
  return;
23
- const tooltipTarget = target.getAttribute('data-tooltip-target');
25
+ const tooltipTarget = target.getAttribute(tooltipTargetAttribute);
24
26
  if (!tooltipTarget || tooltipTarget === '')
25
27
  return;
26
28
  const tooltip = document.getElementById(tooltipTarget);
@@ -38,7 +40,7 @@ const globalInterestHandler = (e) => {
38
40
  */
39
41
  const globalInterestLostHandler = (e) => {
40
42
  const target = e.target;
41
- const tooltipTarget = target.getAttribute('data-tooltip-target');
43
+ const tooltipTarget = target.getAttribute(tooltipTargetAttribute);
42
44
  if (!tooltipTarget || tooltipTarget === '')
43
45
  return;
44
46
  const tooltip = document.getElementById(tooltipTarget);
@@ -61,7 +63,7 @@ const globalHideTooltip = (tooltip) => {
61
63
  */
62
64
  const patchAccessibilityFeatures = (trigger) => {
63
65
  const describedBy = trigger.getAttribute('aria-describedby');
64
- const id = trigger.getAttribute('data-tooltip-target');
66
+ const id = trigger.getAttribute(tooltipTargetAttribute);
65
67
  // Add tooltip to aria-describedby
66
68
  if (!(describedBy === null || describedBy === void 0 ? void 0 : describedBy.includes(id))) {
67
69
  const newDescribedBy = describedBy ? `${describedBy} ${id}` : id;
@@ -72,27 +74,8 @@ const patchAccessibilityFeatures = (trigger) => {
72
74
  trigger.setAttribute('tabindex', '0');
73
75
  }
74
76
  };
75
- /**
76
- * Handle attribute changes and childList changes from the observer
77
- * @param {MutationRecord[]} mutationList
78
- */
79
- const triggerObserverHandler = mutationList => {
80
- mutationList.forEach(mutation => {
81
- if (mutation.type === 'attributes' && mutation.attributeName === 'data-tooltip-target') {
82
- patchAccessibilityFeatures(mutation.target);
83
- }
84
- if (mutation.type === 'childList') {
85
- mutation.addedNodes.forEach(node => {
86
- if (node.nodeType === Node.ELEMENT_NODE &&
87
- node.hasAttribute('data-tooltip-target')) {
88
- patchAccessibilityFeatures(node);
89
- }
90
- });
91
- }
92
- });
93
- };
94
77
  // Initialize a mutation observer for patching accessibility features
95
- const triggerObserver = new MutationObserver(triggerObserverHandler);
78
+ const triggerObserver = getAttributeObserver(tooltipTargetAttribute, patchAccessibilityFeatures);
96
79
  export class PostTooltip {
97
80
  constructor() {
98
81
  this.placement = 'top';
@@ -123,7 +106,7 @@ export class PostTooltip {
123
106
  triggerObserver.observe(document.body, {
124
107
  subtree: true,
125
108
  childList: true,
126
- attributeFilter: ['data-tooltip-target'],
109
+ attributeFilter: [tooltipTargetAttribute],
127
110
  });
128
111
  }
129
112
  tooltipInstances++;
@@ -182,7 +165,7 @@ export class PostTooltip {
182
165
  }
183
166
  render() {
184
167
  const popoverClass = `${this.arrow ? ' has-arrow' : ''}`;
185
- return (h(Host, { key: 'd773ddc0ce1a4dc682dfd05aea2191edb592a1a9', "data-version": version, role: "tooltip", onPointerOver: this.handleInterest, onPointerOut: this.handleInterestLost, onFocusIn: this.handleInterest, onFocusOut: this.handleInterestLost }, h("post-popovercontainer", { key: '4465e819738b663ef9961e61b2b58a4a0a3a1039', class: popoverClass, arrow: this.arrow, placement: this.placement, ref: (el) => (this.popoverRef = el) }, h("slot", { key: 'c97e4c780acf110048b8415d2714273abbe5e479' }))));
168
+ return (h(Host, { key: 'cf89d38b05fbb49ecfcfd339baf325a4fb850f3a', "data-version": version, role: "tooltip", onPointerOver: this.handleInterest, onPointerOut: this.handleInterestLost, onFocusIn: this.handleInterest, onFocusOut: this.handleInterestLost }, h("post-popovercontainer", { key: '2f6f473007ae8d4fc7ef3bcec38a8f19222eaf5d', class: popoverClass, arrow: this.arrow, placement: this.placement, ref: (el) => (this.popoverRef = el) }, h("slot", { key: '84bfd25818068ce1fb644b3b0e6858f9cb1bd605' }))));
186
169
  }
187
170
  static get is() { return "post-tooltip"; }
188
171
  static get encapsulation() { return "shadow"; }
@@ -0,0 +1,23 @@
1
+ export const getAttributeObserver = (attribute, handler) => {
2
+ /**
3
+ * Handle attribute changes and childList changes from the observer
4
+ * @param {MutationRecord[]} mutationList
5
+ */
6
+ const observerHandler = (mutationList) => {
7
+ mutationList.forEach(mutation => {
8
+ if (mutation.type === 'attributes' && mutation.attributeName === attribute) {
9
+ handler(mutation.target);
10
+ }
11
+ if (mutation.type === 'childList') {
12
+ mutation.addedNodes.forEach(node => {
13
+ if (node.nodeType === Node.ELEMENT_NODE &&
14
+ node.hasAttribute(attribute)) {
15
+ handler(node);
16
+ }
17
+ });
18
+ }
19
+ });
20
+ };
21
+ // Initialize a mutation observer for patching accessibility features
22
+ return new MutationObserver(observerHandler);
23
+ };