@zanichelli/albe-web-components 19.2.7 → 19.2.8-RC2

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 (121) hide show
  1. package/dist/cjs/index.cjs.js +1 -1
  2. package/dist/cjs/loader.cjs.js +1 -1
  3. package/dist/cjs/{utils-Ctc6JP2n.js → utils-BY7xrW7W.js} +6 -0
  4. package/dist/cjs/web-components-library.cjs.js +1 -1
  5. package/dist/cjs/z-app-header_12.cjs.entry.js +19 -17
  6. package/dist/cjs/z-book-card-deprecated.cjs.entry.js +1 -1
  7. package/dist/cjs/z-breadcrumb.cjs.entry.js +1 -1
  8. package/dist/cjs/z-color-picker.cjs.entry.js +1 -1
  9. package/dist/cjs/z-combobox.cjs.entry.js +3 -3
  10. package/dist/cjs/z-menu.cjs.entry.js +1 -1
  11. package/dist/cjs/z-myz-card-info.cjs.entry.js +1 -1
  12. package/dist/cjs/z-myz-list-item.cjs.entry.js +1 -1
  13. package/dist/cjs/z-popover.cjs.entry.js +1 -1
  14. package/dist/cjs/z-select.cjs.entry.js +4 -8
  15. package/dist/cjs/z-skip-to-content.cjs.entry.js +1 -1
  16. package/dist/cjs/z-slideshow.cjs.entry.js +1 -1
  17. package/dist/cjs/z-table.cjs.entry.js +1 -1
  18. package/dist/cjs/z-toast-notification.cjs.entry.js +92 -31
  19. package/dist/cjs/z-toggle-switch.cjs.entry.js +1 -1
  20. package/dist/cjs/z-tool.cjs.entry.js +1 -1
  21. package/dist/cjs/z-tr.cjs.entry.js +1 -1
  22. package/dist/collection/components/z-app-header/index.js +21 -2
  23. package/dist/collection/components/z-app-header/index.stories.js +25 -9
  24. package/dist/collection/components/z-combobox/index.js +3 -3
  25. package/dist/collection/components/z-input/index.js +49 -30
  26. package/dist/collection/components/z-searchbar/index.js +25 -3
  27. package/dist/collection/components/z-searchbar/index.stories.js +9 -0
  28. package/dist/collection/components/z-select/index.js +4 -8
  29. package/dist/collection/utils/utils.js +5 -0
  30. package/dist/components/index13.js +1 -1
  31. package/dist/components/index17.js +1 -1
  32. package/dist/components/index7.js +1 -1
  33. package/dist/components/utils.js +1 -1
  34. package/dist/components/z-app-header.js +1 -1
  35. package/dist/components/z-combobox.js +1 -1
  36. package/dist/components/z-select.js +1 -1
  37. package/dist/components/z-skip-to-content.js +1 -1
  38. package/dist/components/z-slideshow.js +1 -1
  39. package/dist/components/z-toast-notification.js +1 -1
  40. package/dist/esm/index.js +1 -1
  41. package/dist/esm/loader.js +1 -1
  42. package/dist/esm/{utils-DYd3kO0P.js → utils-BEzZQwOB.js} +6 -1
  43. package/dist/esm/web-components-library.js +1 -1
  44. package/dist/esm/z-app-header_12.entry.js +19 -17
  45. package/dist/esm/z-book-card-deprecated.entry.js +1 -1
  46. package/dist/esm/z-breadcrumb.entry.js +1 -1
  47. package/dist/esm/z-color-picker.entry.js +1 -1
  48. package/dist/esm/z-combobox.entry.js +3 -3
  49. package/dist/esm/z-menu.entry.js +1 -1
  50. package/dist/esm/z-myz-card-info.entry.js +1 -1
  51. package/dist/esm/z-myz-list-item.entry.js +1 -1
  52. package/dist/esm/z-popover.entry.js +1 -1
  53. package/dist/esm/z-select.entry.js +4 -8
  54. package/dist/esm/z-skip-to-content.entry.js +1 -1
  55. package/dist/esm/z-slideshow.entry.js +1 -1
  56. package/dist/esm/z-table.entry.js +1 -1
  57. package/dist/esm/z-toast-notification.entry.js +92 -31
  58. package/dist/esm/z-toggle-switch.entry.js +1 -1
  59. package/dist/esm/z-tool.entry.js +1 -1
  60. package/dist/esm/z-tr.entry.js +1 -1
  61. package/dist/types/components/z-app-header/index.d.ts +4 -0
  62. package/dist/types/components/z-app-header/index.stories.d.ts +7 -0
  63. package/dist/types/components/z-input/index.d.ts +6 -4
  64. package/dist/types/components/z-searchbar/index.d.ts +2 -0
  65. package/dist/types/components/z-searchbar/index.stories.d.ts +4 -0
  66. package/dist/types/components/z-select/index.d.ts +0 -1
  67. package/dist/types/components.d.ts +32 -3
  68. package/dist/types/utils/utils.d.ts +2 -0
  69. package/dist/web-components-library/index.esm.js +1 -1
  70. package/dist/web-components-library/{p-eddc2d19.entry.js → p-0105149a.entry.js} +1 -1
  71. package/{www/build/p-1d023220.entry.js → dist/web-components-library/p-20d94cce.entry.js} +1 -1
  72. package/dist/web-components-library/p-22da6202.entry.js +1 -0
  73. package/{www/build/p-14b804f9.entry.js → dist/web-components-library/p-271dfd9c.entry.js} +1 -1
  74. package/dist/web-components-library/{p-8a8df4f4.entry.js → p-2abf765d.entry.js} +1 -1
  75. package/dist/web-components-library/{p-299f0f85.entry.js → p-313fc91d.entry.js} +1 -1
  76. package/dist/web-components-library/{p-f7e46ef2.entry.js → p-4d1b3d16.entry.js} +1 -1
  77. package/dist/web-components-library/p-61992f12.entry.js +1 -0
  78. package/dist/web-components-library/{p-2c036e17.entry.js → p-62d2247e.entry.js} +1 -1
  79. package/dist/web-components-library/{p-583b8152.entry.js → p-64c025f6.entry.js} +1 -1
  80. package/dist/web-components-library/{p-3ea03d34.entry.js → p-660737b0.entry.js} +1 -1
  81. package/dist/web-components-library/p-7371a543.entry.js +2 -0
  82. package/dist/web-components-library/{p-85cac60d.entry.js → p-89daaeb5.entry.js} +1 -1
  83. package/dist/web-components-library/p-B0bOjMSb.js +1 -0
  84. package/dist/web-components-library/{p-83da1031.entry.js → p-b01ff8e6.entry.js} +1 -1
  85. package/dist/web-components-library/{p-8261c869.entry.js → p-ce3bbaf2.entry.js} +1 -1
  86. package/dist/web-components-library/{p-e48497f0.entry.js → p-d121122f.entry.js} +1 -1
  87. package/dist/web-components-library/p-f5e1420d.entry.js +1 -0
  88. package/dist/web-components-library/web-components-library.esm.js +1 -1
  89. package/package.json +5 -4
  90. package/www/build/index.esm.js +1 -1
  91. package/www/build/{p-eddc2d19.entry.js → p-0105149a.entry.js} +1 -1
  92. package/{dist/web-components-library/p-1d023220.entry.js → www/build/p-20d94cce.entry.js} +1 -1
  93. package/www/build/p-22da6202.entry.js +1 -0
  94. package/{dist/web-components-library/p-14b804f9.entry.js → www/build/p-271dfd9c.entry.js} +1 -1
  95. package/www/build/{p-8a8df4f4.entry.js → p-2abf765d.entry.js} +1 -1
  96. package/www/build/{p-299f0f85.entry.js → p-313fc91d.entry.js} +1 -1
  97. package/www/build/{p-f7e46ef2.entry.js → p-4d1b3d16.entry.js} +1 -1
  98. package/www/build/p-61992f12.entry.js +1 -0
  99. package/www/build/{p-2c036e17.entry.js → p-62d2247e.entry.js} +1 -1
  100. package/www/build/{p-583b8152.entry.js → p-64c025f6.entry.js} +1 -1
  101. package/www/build/{p-3ea03d34.entry.js → p-660737b0.entry.js} +1 -1
  102. package/www/build/p-7371a543.entry.js +2 -0
  103. package/www/build/{p-85cac60d.entry.js → p-89daaeb5.entry.js} +1 -1
  104. package/www/build/p-B0bOjMSb.js +1 -0
  105. package/www/build/{p-83da1031.entry.js → p-b01ff8e6.entry.js} +1 -1
  106. package/www/build/{p-23143b48.js → p-b3710a31.js} +1 -1
  107. package/www/build/{p-8261c869.entry.js → p-ce3bbaf2.entry.js} +1 -1
  108. package/www/build/{p-e48497f0.entry.js → p-d121122f.entry.js} +1 -1
  109. package/www/build/p-f5e1420d.entry.js +1 -0
  110. package/www/build/web-components-library.esm.js +1 -1
  111. package/www/index.html +1 -1
  112. package/dist/web-components-library/p-37e84b71.entry.js +0 -1
  113. package/dist/web-components-library/p-8b026993.entry.js +0 -1
  114. package/dist/web-components-library/p-9d15ecdf.entry.js +0 -2
  115. package/dist/web-components-library/p-CPsEG702.js +0 -1
  116. package/dist/web-components-library/p-d10e6b1a.entry.js +0 -1
  117. package/www/build/p-37e84b71.entry.js +0 -1
  118. package/www/build/p-8b026993.entry.js +0 -1
  119. package/www/build/p-9d15ecdf.entry.js +0 -2
  120. package/www/build/p-CPsEG702.js +0 -1
  121. package/www/build/p-d10e6b1a.entry.js +0 -1
@@ -2,7 +2,7 @@
2
2
 
3
3
  var index = require('./index-D_S5lGcb.js');
4
4
  var index$1 = require('./index-wGaSHN1_.js');
5
- var utils = require('./utils-Ctc6JP2n.js');
5
+ var utils = require('./utils-BY7xrW7W.js');
6
6
  require('./breakpoints-B7vFm-3T.js');
7
7
 
8
8
  const stylesCss$1 = () => `.z-label{display:block;padding-bottom:var(--space-unit);color:var(--color-default-text);font-family:var(--font-family-sans);font-size:var(--font-size-1);font-weight:var(--font-sb);text-align:left;text-transform:uppercase}`;
@@ -70,7 +70,7 @@ const ZCombobox = class {
70
70
  }
71
71
  }
72
72
  getOptionId(itemId) {
73
- return `${this.inputid}-option-${itemId}`;
73
+ return `${this.inputid}-option-${utils.encodeString(itemId || utils.randomId())}`;
74
74
  }
75
75
  getCheckAllOptionId() {
76
76
  return `${this.inputid}-check-all`;
@@ -304,7 +304,7 @@ const ZCombobox = class {
304
304
  return (index.h("z-list-element", { class: "check-all-wrapper", role: "presentation", htmlTabindex: -1, dividerType: index$1.ListDividerType.ELEMENT, dividerColor: "gray800", size: this.getControlToListSize(), disabled: !!isDisabled }, index.h("span", { class: "option-wrap", role: "presentation", onClick: () => this.checkOption(optionId) }, index.h("z-icon", { name: allChecked ? "checkbox-checked" : "checkbox", class: this.focusedItemId === optionId ? "focused" : "" }), index.h("span", { id: optionId, role: isDisabled ? "presentation" : "option", "aria-selected": allChecked ? "true" : "false" }, allChecked ? this.uncheckalltext : this.checkalltext))));
305
305
  }
306
306
  render() {
307
- return (index.h("div", { key: '23cd031ec2894308960df94374713e9395521a56', "data-action": `combo-${this.inputid}`, class: { open: this.isopen, fixed: this.isfixed, disabled: this.disabled }, id: this.inputid }, this.renderHeader(), !this.disabled && this.renderContent()));
307
+ return (index.h("div", { key: '9abef20bcd118d5aaf14caf7e92978df7a4ec73b', "data-action": `combo-${this.inputid}`, class: { open: this.isopen, fixed: this.isfixed, disabled: this.disabled }, id: this.inputid }, this.renderHeader(), !this.disabled && this.renderContent()));
308
308
  }
309
309
  get element() { return index.getElement(this); }
310
310
  static get watchers() { return {
@@ -2,7 +2,7 @@
2
2
 
3
3
  var index$1 = require('./index-D_S5lGcb.js');
4
4
  var index = require('./index-wGaSHN1_.js');
5
- var utils = require('./utils-Ctc6JP2n.js');
5
+ var utils = require('./utils-BY7xrW7W.js');
6
6
  require('./breakpoints-B7vFm-3T.js');
7
7
 
8
8
  const stylesCss = () => `:host,::slotted(*),*{box-sizing:border-box;outline:none}:host{position:relative;display:inline-flex;height:fit-content;flex-direction:column}::slotted(a){text-decoration:none}::slotted(*){color:var(--color-default-text);font-family:var(--font-family-sans);font-weight:var(--font-rg)}.menu-label{position:relative;display:flex;width:100%;align-items:center;padding:0;border:0;border-bottom:var(--border-size-large) solid transparent;margin:0;background:transparent;border-radius:0;color:inherit;text-align:left}button.menu-label{cursor:pointer}.menu-label:focus-visible,div.menu-label:focus-within{box-shadow:var(--shadow-focus-primary)}:host(:is([active],[open])) .menu-label ::slotted(*),.menu-label:focus-visible ::slotted(*),div.menu-label:focus-within ::slotted(*){color:var(--color-primary01);font-weight:var(--font-bd)}:host([vertical-context]) .menu-label{padding:var(--space-unit) 0;border-width:var(--border-size-small);border-color:var(--color-surface03)}:host(:is([active],[open])) .menu-label,.menu-label:hover,.menu-label:focus-visible,div.menu-label:focus-within{border-color:var(--color-primary01)}:host([vertical-context]:is([active],[open])) .menu-label::after,:host([vertical-context]) .menu-label:hover::after,:host([vertical-context]) .menu-label:focus-visible::after,:host([vertical-context]) div.menu-label:focus-within::after{position:absolute;bottom:calc(var(--border-size-small) * -1);left:0;width:100%;height:var(--border-size-large);background-color:var(--color-primary01);content:""}:host([vertical-context]) .menu-label ::slotted(*){padding:0}.menu-label ::slotted(*){display:inline-flex;width:100%;min-width:fit-content;padding-bottom:2px;margin:0;appearance:none;color:var(--z-menu-label-color, var(--color-default-text));font-family:var(--font-family-sans);font-size:var(--font-size-3);font-weight:inherit;line-height:1.5;white-space:nowrap}.menu-label z-icon{margin-left:calc(var(--space-unit) * 1.5);fill:var(--color-default-icon)}::slotted([data-text]:not([slot]))::after{height:0;content:attr(data-text);content:attr(data-text) / "";font-weight:var(--font-bd);letter-spacing:normal;pointer-events:none;user-select:none;visibility:hidden}@media speech{::slotted([data-text]:not([slot]))::after{display:none}}::slotted([data-text]:not([slot])){display:inline-flex;flex-direction:column}.content{background:var(--color-surface01)}:host(:not([open])) .content{display:none}:host([floating]:not([vertical-context])) .content{position:absolute;top:100%;left:0;width:375px;min-width:100%;max-width:100vw;padding:0 calc(var(--space-unit) * 2);box-shadow:var(--shadow-2)}:host(:not([floating])) .content{width:100%}.header{display:flex;align-items:center;padding:var(--space-unit) 0 calc(var(--space-unit) * 2)}.header ::slotted(img[slot="header"]){width:calc(var(--space-unit) * 11.25);height:auto;object-fit:contain}.header ::slotted([slot="header"]:not(:first-child)){margin:auto 0;margin-left:calc(var(--space-unit) * 2.5);font-size:var(--font-size-3);font-weight:var(--font-sb);line-height:1.5}.items{display:flex;flex-direction:column;align-items:flex-start;background:inherit}.items>::slotted([slot="item"]){width:100%;margin:0;font-size:var(--font-size-3);line-height:1.5}.items>::slotted([slot="item"]:focus:focus-visible){box-shadow:var(--shadow-focus-primary)}.items>::slotted([slot="item"]:not(z-menu-section)){padding:var(--space-unit) 0;border-bottom:var(--border-size-small) solid var(--color-surface03)}:host(:not([vertical-context])) .items>::slotted([slot="item"]:last-child){border-bottom:0}.items>::slotted([slot="item"]:hover),.items>::slotted([slot="item"]:focus:focus-visible),.items>::slotted([slot="item"]:active),.items>::slotted([slot="item"][active]),.items>::slotted([slot="item"][data-active]){border-color:var(--color-primary01);font-weight:var(--font-bd)}`;
@@ -2,7 +2,7 @@
2
2
 
3
3
  var index = require('./index-D_S5lGcb.js');
4
4
  var index$1 = require('./index-wGaSHN1_.js');
5
- var utils = require('./utils-Ctc6JP2n.js');
5
+ var utils = require('./utils-BY7xrW7W.js');
6
6
  require('./breakpoints-B7vFm-3T.js');
7
7
 
8
8
  const stylesCss = () => `:host{width:100%;font-family:var(--font-family-sans);font-weight:var(--font-rg)}:host>div{position:relative;display:grid;width:calc(100% + calc(var(--space-unit) * 2));height:402px;box-sizing:border-box;padding:calc(var(--space-unit) * 2) calc(var(--space-unit) * 3);border:var(--border-size-small) solid var(--color-primary01);margin-left:calc(-1 * var(--space-unit));background:var(--color-surface01);border-radius:0;box-shadow:0 2px 4px 0 rgb(66 69 72 / 35%)}:host>div>z-icon{position:absolute;top:var(--space-unit);right:var(--space-unit);cursor:pointer;fill:var(--color-primary01)}:host>div>div.cta-wrapper{display:flex;flex-flow:column nowrap;align-self:end;justify-content:space-between}:host>div>div.content-wrapper{position:relative;overflow:hidden;align-self:stretch}:host>div>div.content-wrapper>section{box-sizing:border-box;padding:var(--space-unit) 0;border-bottom:var(--border-size-small) solid var(--color-surface04);color:var(--color-surface05);font-size:14px;line-height:20px}:host>div>div.content-wrapper>section:last-child{border-bottom:none}:host>div>div.content-wrapper>section.info-wrapper{position:relative;overflow:hidden;box-sizing:border-box}:host>div>div.content-wrapper>section.info-wrapper.hidden::after{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg, rgb(255 0 0 / 0%), rgb(255 0 0 / 0%) 60%, white);content:"";pointer-events:none}:host>div>div.content-wrapper>section>span.license-heading{display:flex;justify-content:space-between}:host>div>div.content-wrapper>section>span.license-heading>span.expired{color:var(--color-primary01);font-size:12px;font-weight:600}:host>div>div.content-wrapper>section>span.license-heading>span.expiring{color:var(--color-hover-warning);font-size:12px;font-weight:600}:host>div>div.content-wrapper>z-popover{position:absolute;top:0;left:calc(var(--space-unit) * 4)}`;
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var index = require('./index-D_S5lGcb.js');
4
- var utils = require('./utils-Ctc6JP2n.js');
4
+ var utils = require('./utils-BY7xrW7W.js');
5
5
  require('./index-wGaSHN1_.js');
6
6
  require('./breakpoints-B7vFm-3T.js');
7
7
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  var index = require('./index-D_S5lGcb.js');
4
4
  var index$1 = require('./index-wGaSHN1_.js');
5
- var utils = require('./utils-Ctc6JP2n.js');
5
+ var utils = require('./utils-BY7xrW7W.js');
6
6
  require('./breakpoints-B7vFm-3T.js');
7
7
 
8
8
  const stylesCss = () => `:host{position:fixed;display:none;max-width:calc(100dvw - var(--grid-margin) * 2);max-height:calc(100dvh - var(--grid-margin) * 2);padding:var(--z-popover-padding, 0);background:var(--z-popover-theme--surface, var(--color-surface01));border-radius:var(--border-radius-small);color:var(--z-popover-theme--text, var(--color-default-text));fill:currentcolor;filter:var(--z-popover-shadow-filter, drop-shadow(0 1px 2px var(--shadow-color-base)));text-align:center;visibility:hidden;}:host([open]:not([open="false"])[current-position]){display:block}:host([center][current-position="top"]),:host([center][current-position="bottom"]){transform:translateX(-50%)}:host([center][current-position="right"]),:host([center][current-position="left"]){transform:translateY(-50%)}:host([current-position^="top"]){margin:0 0 var(--space-unit)}:host([current-position^="bottom"]){margin:var(--space-unit) 0 0}:host([current-position^="left"]){margin:0 var(--space-unit) 0 0}:host([current-position^="right"]){margin:0 0 0 var(--space-unit)}:host([current-position])::before{--arrow-size:6px;--arrow-edge-offset:calc(100% - var(--space-unit) - (var(--arrow-size) / 2));--arrow-center-x-offset:calc(50% - (var(--arrow-size) / 2));--arrow-center-y-offset:calc(100% - (var(--arrow-size) / 2));position:absolute;display:block;width:var(--arrow-size);height:var(--arrow-size);background:var(--z-popover-theme--surface, var(--color-surface01));content:"";transform:rotate(45deg)}:host([show-arrow="false"])::before,:host(:not([show-arrow]))::before{display:none}:host([current-position^="top"])::before{top:var(--arrow-center-y-offset)}:host([current-position^="bottom"])::before{bottom:var(--arrow-center-y-offset)}:host([current-position="top"])::before,:host([current-position="bottom"])::before{right:var(--arrow-edge-offset)}:host([current-position="right"])::before,:host([current-position="left"])::before{bottom:var(--arrow-edge-offset)}:host([current-position="right"])::before{right:var(--arrow-center-y-offset)}:host([current-position="left"])::before{left:var(--arrow-center-y-offset)}:host([current-position="top_right"])::before,:host([current-position="bottom_right"])::before{right:var(--arrow-edge-offset)}:host([current-position="top_left"])::before,:host([current-position="bottom_left"])::before{left:var(--arrow-edge-offset)}:host([current-position="right_top"])::before,:host([current-position="left_top"])::before{top:var(--arrow-edge-offset)}:host([current-position="right_top"])::before,:host([current-position="right_bottom"])::before{right:var(--arrow-center-y-offset)}:host([current-position="left_top"])::before,:host([current-position="left_bottom"])::before{left:var(--arrow-center-y-offset)}:host([current-position="right_bottom"])::before,:host([current-position="left_bottom"])::before{bottom:var(--arrow-edge-offset)}:host([center][current-position="top"])::before,:host([center][current-position="bottom"])::before{right:auto;left:var(--arrow-center-x-offset)}:host([center][current-position="right"])::before,:host([center][current-position="left"])::before{top:var(--arrow-center-x-offset);bottom:auto}`;
@@ -2,7 +2,7 @@
2
2
 
3
3
  var index = require('./index-D_S5lGcb.js');
4
4
  var index$1 = require('./index-wGaSHN1_.js');
5
- var utils = require('./utils-Ctc6JP2n.js');
5
+ var utils = require('./utils-BY7xrW7W.js');
6
6
  require('./breakpoints-B7vFm-3T.js');
7
7
 
8
8
  const stylesCss = () => `.sc-z-select-h{display:inline-block;width:inherit;color:var(--color-form-default-text);font-family:var(--font-family-sans);font-size:var(--font-size-3);font-weight:var(--font-rg)}[size="small"].sc-z-select-h,[size="x-small"].sc-z-select-h{font-size:var(--font-size-2)}.select-wrapper.sc-z-select>z-input.sc-z-select{width:100%}.select-wrapper.sc-z-select>z-input.sc-z-select .input-icon.sc-z-select{cursor:pointer}.select-wrapper.sc-z-select>div.sc-z-select{position:relative}.select-wrapper.sc-z-select>div.closed.sc-z-select{overflow:hidden;height:0}.select-wrapper.sc-z-select .ul-scroll-wrapper.sc-z-select{position:absolute;width:100%;box-sizing:border-box;border-top:none;background:var(--color-form-background);box-shadow:var(--shadow-2);outline:none}.select-wrapper.sc-z-select .closed.sc-z-select .ul-scroll-wrapper.sc-z-select{z-index:10}.select-wrapper.sc-z-select .open.sc-z-select .ul-scroll-wrapper.sc-z-select{z-index:20}.select-wrapper.sc-z-select .ul-scroll-wrapper.fixed.sc-z-select{position:static}.select-wrapper.sc-z-select z-list.sc-z-select{--background-color-list-element:var(--color-form-background);--background-hover-color-list-element:var(--color-surface02);--background-active-color-list-element:var(--color-surface02)}.select-wrapper.sc-z-select .ul-scroll-wrapper.sc-z-select>z-list.sc-z-select{position:relative;overflow:auto;max-height:240px;padding:var(--space-unit) calc(var(--space-unit) * 1.5);margin:0;outline:none}.select-wrapper.sc-z-select .ul-scroll-wrapper.sc-z-select z-list.sc-z-select z-list-element[disabled].sc-z-select{color:var(--color-form-disabled03)}.select-wrapper.sc-z-select .ul-scroll-wrapper.sc-z-select z-list.sc-z-select z-list-element.sc-z-select .list-element-container.sc-z-select{display:flex;align-items:center;padding:calc(var(--space-unit) / 2) var(--space-unit);column-gap:var(--space-unit)}.select-wrapper.sc-z-select .ul-scroll-wrapper.sc-z-select z-list.sc-z-select z-list-element.sc-z-select .list-element-container.active.sc-z-select{box-shadow:var(--shadow-focus-primary)}.select-wrapper.sc-z-select .ul-scroll-wrapper.sc-z-select z-list.sc-z-select z-list-element.sc-z-select .list-element-container.sc-z-select .list-element-content.sc-z-select{margin-right:auto}.select-wrapper.sc-z-select .ul-scroll-wrapper.sc-z-select z-list.sc-z-select z-list-element.sc-z-select .list-element-container.sc-z-select>z-icon.sc-z-select+.list-element-content.sc-z-select{padding:calc(var(--space-unit) * 0.5) var(--space-unit)}[size="x-small"].sc-z-select-h .select-wrapper.sc-z-select .ul-scroll-wrapper.sc-z-select z-list.sc-z-select z-list-element.sc-z-select .list-element-container.sc-z-select .list-element-content.sc-z-select{padding:0}[size="small"].sc-z-select-h .select-wrapper.sc-z-select .ul-scroll-wrapper.sc-z-select z-list.sc-z-select z-list-element.sc-z-select .list-element-container.sc-z-select>z-icon.sc-z-select{--z-icon-width:16px;--z-icon-height:16px}[size="x-small"].sc-z-select-h .select-wrapper.sc-z-select .ul-scroll-wrapper.sc-z-select z-list.sc-z-select z-list-element.sc-z-select .list-element-container.sc-z-select>z-icon.sc-z-select{--z-icon-width:14px;--z-icon-height:14px}[size="x-small"].sc-z-select-h .select-wrapper.sc-z-select .ul-scroll-wrapper.sc-z-select z-list.sc-z-select z-list-element.sc-z-select .list-element-container.sc-z-select>z-icon.sc-z-select+.list-element-content.sc-z-select{padding:0 var(--space-unit)}.select-wrapper.sc-z-select .ul-scroll-wrapper.sc-z-select z-list.sc-z-select z-list-element.sc-z-select .list-element-container.sc-z-select .list-element-content.selected.sc-z-select{font-weight:var(--font-sb)}.select-wrapper.sc-z-select .ul-scroll-wrapper.sc-z-select .no-results.sc-z-select z-icon.sc-z-select{margin-right:var(--space-unit)}.z-list-group-title.sc-z-select{color:var(--color-form-default-text)}.reset-item.sc-z-select{color:var(--color-form-active-primary);fill:var(--color-form-active-primary)}.reset-item-content.sc-z-select{display:flex;align-items:center}.reset-item.sc-z-select .reset-item-content.active.sc-z-select{box-shadow:var(--shadow-focus-primary)}.reset-item.reset-item-margin.sc-z-select .reset-item-content.sc-z-select{margin-left:var(--space-unit)}.reset-item.sc-z-select .reset-item-content.sc-z-select>z-icon.sc-z-select{margin-right:var(--space-unit)}.reset-item.hide.sc-z-select{display:none}.tree-list-reset-item.sc-z-select{padding:var(--space-unit) 0}z-list-element.sc-z-select{position:relative;display:block}z-list.sc-z-select z-list-element.sc-z-select::before{position:absolute;z-index:100;top:3px;left:-8px;width:8px;height:1em;border-bottom:1px solid var(--color-form-disabled01-icon);border-left:1px solid var(--color-form-disabled01-icon);content:"";cursor:pointer}z-list.sc-z-select z-list-element.sc-z-select::after{position:absolute;z-index:100;top:5px;left:-8px;width:8px;height:100%;border-left:1px solid var(--color-form-disabled01-icon);content:"";cursor:pointer}z-list.sc-z-select z-list-element.sc-z-select:last-child::after{display:none}z-list.sc-z-select>z-list-element.sc-z-select::before,z-list.sc-z-select>z-list-element.sc-z-select::after,z-list.sc-z-select>z-list-group.sc-z-select>z-list-element.sc-z-select::before,z-list.sc-z-select>z-list-group.sc-z-select>z-list-element.sc-z-select::after{display:none}z-list.sc-z-select>div.children-node.sc-z-select{padding-left:calc(var(--space-unit) * 2)}z-list-element.sc-z-select>.list-element.sc-z-select{display:flex;justify-content:space-between;padding:calc(var(--space-unit) * 1.5) var(--space-unit);cursor:pointer}z-list-element.sc-z-select>.list-element.active.sc-z-select{box-shadow:var(--shadow-focus-primary)}z-list-element.sc-z-select:not([disabled])>.list-element.sc-z-select:hover,z-list-element.sc-z-select:not([disabled])>.list-element.sc-z-select:hover::after{background-color:var(--background-hover-color-list-element, var(--color-background))}z-list-element.sc-z-select>.list-element.sc-z-select .item.ellipsis.sc-z-select{overflow:hidden}z-list-element.sc-z-select .list-element.sc-z-select::after{position:absolute;top:0;right:-1px;display:block;width:100%;height:45px;content:"";transform:translateX(-100%)}z-list-element.tree-search-item.sc-z-select{padding-top:0}z-list-element.tree-search-item.sc-z-select .list-element.sc-z-select::after{position:absolute;right:-25px;display:block;width:100%;height:45px;content:"";transform:translateX(-100%)}z-list-element.grouped-tree-parent-node.sc-z-select .list-element.sc-z-select::after{position:absolute;right:-25px;display:block;width:100%;height:45px;content:"";transform:translateX(-100%)}.item-label.selected.sc-z-select{font-weight:bold}.item.ellipsis.sc-z-select{display:inline-block;overflow:hidden;max-width:100%;text-overflow:ellipsis;white-space:nowrap}z-list.sc-z-select>z-list-element.grouped-tree-parent-node.sc-z-select>.list-element.sc-z-select:hover::after,z-list-element.tree-search-item.sc-z-select .list-element.sc-z-select:hover::after,z-list.sc-z-select>z-list-group.sc-z-select>z-list-element.grouped-tree-parent-node.sc-z-select>.list-element.sc-z-select:hover::after{position:absolute;z-index:-1;right:-18px;display:block;width:100%;height:45px;content:"";transform:translateX(-100%)}z-list-element.sc-z-select>.list-element.sc-z-select:hover::after{position:absolute;z-index:-1;top:0;right:0;display:block;width:100%;height:45px;content:"";transform:translateX(-100%)}.children-node.sc-z-select z-list-element.sc-z-select::before,.children-node.sc-z-select z-list-element.sc-z-select::after{left:-8px}.children-node.sc-z-select .children-node.sc-z-select z-list-element.sc-z-select::before,.children-node.sc-z-select .children-node.sc-z-select z-list-element.sc-z-select::after{left:-8px}.children-node.sc-z-select>z-list-element.sc-z-select{padding:0}`;
@@ -96,14 +96,11 @@ const ZSelect = class {
96
96
  return (_a = this.selectedItem) === null || _a === void 0 ? void 0 : _a.id;
97
97
  }
98
98
  getOptionId(item) {
99
- return `${this.htmlid}_key_${item.id}`;
99
+ return `${this.htmlid}_key_${utils.encodeString(item.id || utils.randomId())}`;
100
100
  }
101
101
  getResetOptionId() {
102
102
  return `${this.htmlid}_key_reset`;
103
103
  }
104
- getItemIdFromOptionId(optionId) {
105
- return optionId.replace(`${this.htmlid}_key_`, ``);
106
- }
107
104
  getGroupedItems() {
108
105
  if (!this.itemsList.length) {
109
106
  return [];
@@ -233,8 +230,7 @@ const ZSelect = class {
233
230
  this.handleResetClick();
234
231
  }
235
232
  else {
236
- const itemId = this.getItemIdFromOptionId(this.focusedItemId);
237
- const item = this.itemsList.find((e) => e.id === itemId) || null;
233
+ const item = this.itemsList.find((e) => this.getOptionId(e) === this.focusedItemId) || null;
238
234
  if (item) {
239
235
  this.selectedItem = item;
240
236
  this.emitOptionSelect();
@@ -478,7 +474,7 @@ const ZSelect = class {
478
474
  return (index.h("z-input-message", { message: utils.boolean(this.message) === true ? undefined : this.message, status: this.status, class: this.size, disabled: this.disabled }));
479
475
  }
480
476
  render() {
481
- return (index.h("div", { key: '375b2aba49331cc572cb884f41f2d37c94c7f920', class: "select-wrapper" }, this.renderInput(), this.renderSelectUl(), this.renderMessage()));
477
+ return (index.h("div", { key: '3a7af215bd74e5ac48cd7f9711ab019456eb0735', class: "select-wrapper" }, this.renderInput(), this.renderSelectUl(), this.renderMessage()));
482
478
  }
483
479
  get host() { return index.getElement(this); }
484
480
  static get watchers() { return {
@@ -2,7 +2,7 @@
2
2
 
3
3
  var index = require('./index-D_S5lGcb.js');
4
4
  var index$1 = require('./index-wGaSHN1_.js');
5
- var utils = require('./utils-Ctc6JP2n.js');
5
+ var utils = require('./utils-BY7xrW7W.js');
6
6
  require('./breakpoints-B7vFm-3T.js');
7
7
 
8
8
  const stylesCss = () => `.sc-z-skip-to-content-h{position:absolute;left:-100%;height:60px;box-sizing:border-box;padding:calc(var(--space-unit) * 1.25) calc(var(--space-unit) * 3);background-color:#24f4ff;font-family:var(--font-family-sans);font-weight:var(--font-rg);text-align:center}.sc-z-skip-to-content-h>.link-container.sc-z-skip-to-content{display:inline-flex;height:100%;align-items:center}.skip-to-content-visible.sc-z-skip-to-content-h,.sc-z-skip-to-content-h:focus{position:static;display:block}.sc-z-skip-to-content-h>.link-container.sc-z-skip-to-content>a.z-link.link-invisible.sc-z-skip-to-content{overflow:hidden;width:0;height:0}.sc-z-skip-to-content-h>.link-container.sc-z-skip-to-content>a.z-link.link-visible.sc-z-skip-to-content{width:initial;height:initial}.dark.sc-z-skip-to-content-h{background-color:var(--color-surface05);color:var(--color-surface01)}.light.sc-z-skip-to-content-h{border:var(--border-size-medium) solid var(--color-surface05);background-color:var(--color-surface01);color:var(--color-default-text)}@media (min-width: 768px){.sc-z-skip-to-content-h{text-align:start}}@media (min-width: 1152px){.sc-z-skip-to-content-h>.link-container.sc-z-skip-to-content{padding:0 calc(var(--space-unit) * 3);border-right:var(--border-size-small) solid var(--color-surface05)}.sc-z-skip-to-content-h>.link-container.sc-z-skip-to-content>a.z-link.link-invisible.sc-z-skip-to-content{overflow:initial;width:initial;height:initial}.sc-z-skip-to-content-h>.link-container.sc-z-skip-to-content:first-child{padding-left:0}.sc-z-skip-to-content-h>.link-container.sc-z-skip-to-content:last-child,.dark.sc-z-skip-to-content-h>.link-container.sc-z-skip-to-content:last-child,.light.sc-z-skip-to-content-h>.link-container.sc-z-skip-to-content:last-child{padding-right:0;border-right:none}.dark.sc-z-skip-to-content-h>.link-container.sc-z-skip-to-content{border-right:var(--border-size-small) solid var(--color-surface01)}}`;
@@ -2,7 +2,7 @@
2
2
 
3
3
  var index = require('./index-D_S5lGcb.js');
4
4
  var index$1 = require('./index-wGaSHN1_.js');
5
- var utils = require('./utils-Ctc6JP2n.js');
5
+ var utils = require('./utils-BY7xrW7W.js');
6
6
  require('./breakpoints-B7vFm-3T.js');
7
7
 
8
8
  const stylesCss = () => `:host{display:block;width:inherit;font-family:var(--font-family-sans);font-weight:var(--font-rg)}:host>div{display:flex;width:inherit;flex-direction:column}main{position:relative;overflow:hidden;width:100%}main z-icon.scroll{position:absolute;z-index:10;top:50%;width:auto;margin:0 var(--space-unit);cursor:pointer;fill:var(--color-primary01);transition:0.6s ease}main .scroll.disabled{opacity:0.5;pointer-events:none}main .scroll.right{right:0}#slides{display:flex;flex-wrap:wrap;line-height:0px;overflow-y:hidden;transition:all 300ms}footer{display:grid;width:100%;height:56px;align-items:center;border-top:var(--border-size-medium) solid var(--color-background);grid-template:2 / 2;grid-template-areas:"center center" "left right"}footer>div{width:100%;align-items:center}footer .footer-center{grid-area:center}footer .footer-left{grid-area:left}footer .footer-right{grid-area:right}footer .bullet-container{display:flex;min-height:60px;align-items:center;justify-content:center;margin:0 auto}footer .bullet-container .bullet{width:8px;height:8px;margin:var(--space-unit) 2px;background-color:var(--gray200);border-radius:50%;pointer-events:none}footer .bullet-container .bullet.selected{background-color:var(--gray400)}main z-icon:focus,footer .bullet-container .bullet:focus{border-radius:50%;box-shadow:var(--shadow-focus-primary);outline:none !important}@media only screen and (min-width: 768px){footer{height:76px;border-top:var(--border-size-medium) solid var(--color-background);grid-template:1 / 1fr 2fr 1fr;grid-template-areas:"left center right"}footer .bullet-container .bullet{width:10px;height:10px;margin:var(--space-unit) 3px}}@media only screen and (min-width: 1025px){main z-icon.scroll{margin:0 10px}footer .bullet-container .bullet{width:16px;height:16px;margin:var(--space-unit) calc(var(--space-unit) * 0.5);cursor:pointer;pointer-events:auto}}`;
@@ -5,7 +5,7 @@ require('./z-tbody.cjs.entry.js');
5
5
  require('./z-tfoot.cjs.entry.js');
6
6
  require('./z-thead.cjs.entry.js');
7
7
  require('./z-tr.cjs.entry.js');
8
- require('./utils-Ctc6JP2n.js');
8
+ require('./utils-BY7xrW7W.js');
9
9
  require('./index-wGaSHN1_.js');
10
10
  require('./breakpoints-B7vFm-3T.js');
11
11
  require('./z-td.cjs.entry.js');
@@ -4,7 +4,7 @@ var index = require('./index-D_S5lGcb.js');
4
4
  var index$1 = require('./index-wGaSHN1_.js');
5
5
  var _commonjsHelpers = require('./_commonjsHelpers-CFO10eej.js');
6
6
 
7
- /*! @license DOMPurify 3.2.6 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.2.6/LICENSE */
7
+ /*! @license DOMPurify 3.4.0 | (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.0/LICENSE */
8
8
 
9
9
  const {
10
10
  entries,
@@ -33,12 +33,18 @@ if (!seal) {
33
33
  };
34
34
  }
35
35
  if (!apply) {
36
- apply = function apply(fun, thisValue, args) {
37
- return fun.apply(thisValue, args);
36
+ apply = function apply(func, thisArg) {
37
+ for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
38
+ args[_key - 2] = arguments[_key];
39
+ }
40
+ return func.apply(thisArg, args);
38
41
  };
39
42
  }
40
43
  if (!construct) {
41
- construct = function construct(Func, args) {
44
+ construct = function construct(Func) {
45
+ for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
46
+ args[_key2 - 1] = arguments[_key2];
47
+ }
42
48
  return new Func(...args);
43
49
  };
44
50
  }
@@ -67,8 +73,8 @@ function unapply(func) {
67
73
  if (thisArg instanceof RegExp) {
68
74
  thisArg.lastIndex = 0;
69
75
  }
70
- for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
71
- args[_key - 1] = arguments[_key];
76
+ for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {
77
+ args[_key3 - 1] = arguments[_key3];
72
78
  }
73
79
  return apply(func, thisArg, args);
74
80
  };
@@ -79,12 +85,12 @@ function unapply(func) {
79
85
  * @param func - The constructor function to be wrapped and called.
80
86
  * @returns A new function that constructs an instance of the given constructor function with the provided arguments.
81
87
  */
82
- function unconstruct(func) {
88
+ function unconstruct(Func) {
83
89
  return function () {
84
- for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
85
- args[_key2] = arguments[_key2];
90
+ for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
91
+ args[_key4] = arguments[_key4];
86
92
  }
87
- return construct(func, args);
93
+ return construct(Func, args);
88
94
  };
89
95
  }
90
96
  /**
@@ -183,8 +189,8 @@ function lookupGetter(object, prop) {
183
189
  return fallbackValue;
184
190
  }
185
191
 
186
- const html$1 = freeze(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dialog', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'section', 'select', 'shadow', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']);
187
- const svg$1 = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'view', 'vkern']);
192
+ const html$1 = freeze(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dialog', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'search', 'section', 'select', 'shadow', 'slot', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']);
193
+ const svg$1 = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'enterkeyhint', 'exportparts', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'inputmode', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'part', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'view', 'vkern']);
188
194
  const svgFilters = freeze(['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feDropShadow', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence']);
189
195
  // List of SVG elements that are disallowed by default.
190
196
  // We still need to know them so that we can do namespace
@@ -197,9 +203,9 @@ const mathMl$1 = freeze(['math', 'menclose', 'merror', 'mfenced', 'mfrac', 'mgly
197
203
  const mathMlDisallowed = freeze(['maction', 'maligngroup', 'malignmark', 'mlongdiv', 'mscarries', 'mscarry', 'msgroup', 'mstack', 'msline', 'msrow', 'semantics', 'annotation', 'annotation-xml', 'mprescripts', 'none']);
198
204
  const text = freeze(['#text']);
199
205
 
200
- const html = freeze(['accept', 'action', 'align', 'alt', 'autocapitalize', 'autocomplete', 'autopictureinpicture', 'autoplay', 'background', 'bgcolor', 'border', 'capture', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'controls', 'controlslist', 'coords', 'crossorigin', 'datetime', 'decoding', 'default', 'dir', 'disabled', 'disablepictureinpicture', 'disableremoteplayback', 'download', 'draggable', 'enctype', 'enterkeyhint', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'inputmode', 'integrity', 'ismap', 'kind', 'label', 'lang', 'list', 'loading', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'muted', 'name', 'nonce', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'pattern', 'placeholder', 'playsinline', 'popover', 'popovertarget', 'popovertargetaction', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'translate', 'type', 'usemap', 'valign', 'value', 'width', 'wrap', 'xmlns', 'slot']);
201
- const svg = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'amplitude', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'exponent', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'intercept', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'slope', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'tablevalues', 'targetx', 'targety', 'transform', 'transform-origin', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);
202
- const mathMl = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnsalign', 'columnlines', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lspace', 'lquote', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']);
206
+ const html = freeze(['accept', 'action', 'align', 'alt', 'autocapitalize', 'autocomplete', 'autopictureinpicture', 'autoplay', 'background', 'bgcolor', 'border', 'capture', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'controls', 'controlslist', 'coords', 'crossorigin', 'datetime', 'decoding', 'default', 'dir', 'disabled', 'disablepictureinpicture', 'disableremoteplayback', 'download', 'draggable', 'enctype', 'enterkeyhint', 'exportparts', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'inert', 'inputmode', 'integrity', 'ismap', 'kind', 'label', 'lang', 'list', 'loading', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'muted', 'name', 'nonce', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'part', 'pattern', 'placeholder', 'playsinline', 'popover', 'popovertarget', 'popovertargetaction', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'slot', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'translate', 'type', 'usemap', 'valign', 'value', 'width', 'wrap', 'xmlns', 'slot']);
207
+ const svg = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'amplitude', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'exponent', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'intercept', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'mask-type', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'slope', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'tablevalues', 'targetx', 'targety', 'transform', 'transform-origin', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);
208
+ const mathMl = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnalign', 'columnlines', 'columnspacing', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lquote', 'lspace', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']);
203
209
  const xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);
204
210
 
205
211
  // eslint-disable-next-line unicorn/better-regex
@@ -296,7 +302,7 @@ const _createHooksMap = function _createHooksMap() {
296
302
  function createDOMPurify() {
297
303
  let window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();
298
304
  const DOMPurify = root => createDOMPurify(root);
299
- DOMPurify.version = '3.2.6';
305
+ DOMPurify.version = '3.4.0';
300
306
  DOMPurify.removed = [];
301
307
  if (!window || !window.document || window.document.nodeType !== NODE_TYPE.document || !window.Element) {
302
308
  // Not running in a browser, provide a factory function
@@ -407,6 +413,21 @@ function createDOMPurify() {
407
413
  let FORBID_TAGS = null;
408
414
  /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */
409
415
  let FORBID_ATTR = null;
416
+ /* Config object to store ADD_TAGS/ADD_ATTR functions (when used as functions) */
417
+ const EXTRA_ELEMENT_HANDLING = Object.seal(create(null, {
418
+ tagCheck: {
419
+ writable: true,
420
+ configurable: false,
421
+ enumerable: true,
422
+ value: null
423
+ },
424
+ attributeCheck: {
425
+ writable: true,
426
+ configurable: false,
427
+ enumerable: true,
428
+ value: null
429
+ }
430
+ }));
410
431
  /* Decide if ARIA attributes are okay */
411
432
  let ALLOW_ARIA_ATTR = true;
412
433
  /* Decide if custom data attributes are okay */
@@ -557,7 +578,7 @@ function createDOMPurify() {
557
578
  NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;
558
579
  MATHML_TEXT_INTEGRATION_POINTS = cfg.MATHML_TEXT_INTEGRATION_POINTS || MATHML_TEXT_INTEGRATION_POINTS;
559
580
  HTML_INTEGRATION_POINTS = cfg.HTML_INTEGRATION_POINTS || HTML_INTEGRATION_POINTS;
560
- CUSTOM_ELEMENT_HANDLING = cfg.CUSTOM_ELEMENT_HANDLING || {};
581
+ CUSTOM_ELEMENT_HANDLING = cfg.CUSTOM_ELEMENT_HANDLING || create(null);
561
582
  if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)) {
562
583
  CUSTOM_ELEMENT_HANDLING.tagNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;
563
584
  }
@@ -576,7 +597,7 @@ function createDOMPurify() {
576
597
  /* Parse profile info */
577
598
  if (USE_PROFILES) {
578
599
  ALLOWED_TAGS = addToSet({}, text);
579
- ALLOWED_ATTR = [];
600
+ ALLOWED_ATTR = create(null);
580
601
  if (USE_PROFILES.html === true) {
581
602
  addToSet(ALLOWED_TAGS, html$1);
582
603
  addToSet(ALLOWED_ATTR, html);
@@ -597,18 +618,30 @@ function createDOMPurify() {
597
618
  addToSet(ALLOWED_ATTR, xml);
598
619
  }
599
620
  }
621
+ /* Always reset function-based ADD_TAGS / ADD_ATTR checks to prevent
622
+ * leaking across calls when switching from function to array config */
623
+ EXTRA_ELEMENT_HANDLING.tagCheck = null;
624
+ EXTRA_ELEMENT_HANDLING.attributeCheck = null;
600
625
  /* Merge configuration parameters */
601
626
  if (cfg.ADD_TAGS) {
602
- if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {
603
- ALLOWED_TAGS = clone(ALLOWED_TAGS);
627
+ if (typeof cfg.ADD_TAGS === 'function') {
628
+ EXTRA_ELEMENT_HANDLING.tagCheck = cfg.ADD_TAGS;
629
+ } else {
630
+ if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {
631
+ ALLOWED_TAGS = clone(ALLOWED_TAGS);
632
+ }
633
+ addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);
604
634
  }
605
- addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);
606
635
  }
607
636
  if (cfg.ADD_ATTR) {
608
- if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {
609
- ALLOWED_ATTR = clone(ALLOWED_ATTR);
637
+ if (typeof cfg.ADD_ATTR === 'function') {
638
+ EXTRA_ELEMENT_HANDLING.attributeCheck = cfg.ADD_ATTR;
639
+ } else {
640
+ if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {
641
+ ALLOWED_ATTR = clone(ALLOWED_ATTR);
642
+ }
643
+ addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);
610
644
  }
611
- addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);
612
645
  }
613
646
  if (cfg.ADD_URI_SAFE_ATTR) {
614
647
  addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);
@@ -619,6 +652,12 @@ function createDOMPurify() {
619
652
  }
620
653
  addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);
621
654
  }
655
+ if (cfg.ADD_FORBID_CONTENTS) {
656
+ if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {
657
+ FORBID_CONTENTS = clone(FORBID_CONTENTS);
658
+ }
659
+ addToSet(FORBID_CONTENTS, cfg.ADD_FORBID_CONTENTS, transformCaseFunc);
660
+ }
622
661
  /* Add #text in case KEEP_CONTENT is set to true */
623
662
  if (KEEP_CONTENT) {
624
663
  ALLOWED_TAGS['#text'] = true;
@@ -905,6 +944,11 @@ function createDOMPurify() {
905
944
  _forceRemove(currentNode);
906
945
  return true;
907
946
  }
947
+ /* Remove risky CSS construction leading to mXSS */
948
+ if (SAFE_FOR_XML && currentNode.namespaceURI === HTML_NAMESPACE && tagName === 'style' && _isNode(currentNode.firstElementChild)) {
949
+ _forceRemove(currentNode);
950
+ return true;
951
+ }
908
952
  /* Remove any occurrence of processing instructions */
909
953
  if (currentNode.nodeType === NODE_TYPE.progressingInstruction) {
910
954
  _forceRemove(currentNode);
@@ -916,7 +960,7 @@ function createDOMPurify() {
916
960
  return true;
917
961
  }
918
962
  /* Remove element if anything forbids its presence */
919
- if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {
963
+ if (FORBID_TAGS[tagName] || !(EXTRA_ELEMENT_HANDLING.tagCheck instanceof Function && EXTRA_ELEMENT_HANDLING.tagCheck(tagName)) && !ALLOWED_TAGS[tagName]) {
920
964
  /* Check if we have a custom element to handle */
921
965
  if (!FORBID_TAGS[tagName] && _isBasicCustomElement(tagName)) {
922
966
  if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) {
@@ -980,6 +1024,10 @@ function createDOMPurify() {
980
1024
  */
981
1025
  // eslint-disable-next-line complexity
982
1026
  const _isValidAttribute = function _isValidAttribute(lcTag, lcName, value) {
1027
+ /* FORBID_ATTR must always win, even if ADD_ATTR predicate would allow it */
1028
+ if (FORBID_ATTR[lcName]) {
1029
+ return false;
1030
+ }
983
1031
  /* Make sure attribute cannot clobber */
984
1032
  if (SANITIZE_DOM && (lcName === 'id' || lcName === 'name') && (value in document || value in formElement)) {
985
1033
  return false;
@@ -988,12 +1036,12 @@ function createDOMPurify() {
988
1036
  (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)
989
1037
  XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)
990
1038
  We don't need to check the value; it's always URI safe. */
991
- if (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR, lcName)) ; else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR, lcName)) ; else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {
1039
+ if (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR, lcName)) ; else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR, lcName)) ; else if (EXTRA_ELEMENT_HANDLING.attributeCheck instanceof Function && EXTRA_ELEMENT_HANDLING.attributeCheck(lcName, lcTag)) ; else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {
992
1040
  if (
993
1041
  // First condition does a very basic check if a) it's basically a valid custom element tagname AND
994
1042
  // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck
995
1043
  // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck
996
- _isBasicCustomElement(lcTag) && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag)) && (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName) || CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName)) ||
1044
+ _isBasicCustomElement(lcTag) && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag)) && (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName) || CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName, lcTag)) ||
997
1045
  // Alternative, second condition checks if it's an `is`-attribute, AND
998
1046
  // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck
999
1047
  lcName === 'is' && CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(value))) ; else {
@@ -1072,7 +1120,12 @@ function createDOMPurify() {
1072
1120
  value = SANITIZE_NAMED_PROPS_PREFIX + value;
1073
1121
  }
1074
1122
  /* Work around a security issue with comments inside attributes */
1075
- if (SAFE_FOR_XML && regExpTest(/((--!?|])>)|<\/(style|title)/i, value)) {
1123
+ if (SAFE_FOR_XML && regExpTest(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i, value)) {
1124
+ _removeAttribute(name, currentNode);
1125
+ continue;
1126
+ }
1127
+ /* Make sure we cannot easily use animated hrefs, even if animations are allowed */
1128
+ if (lcName === 'attributename' && stringMatch(value, 'href')) {
1076
1129
  _removeAttribute(name, currentNode);
1077
1130
  continue;
1078
1131
  }
@@ -1146,7 +1199,7 @@ function createDOMPurify() {
1146
1199
  *
1147
1200
  * @param fragment to iterate over recursively
1148
1201
  */
1149
- const _sanitizeShadowDOM = function _sanitizeShadowDOM(fragment) {
1202
+ const _sanitizeShadowDOM2 = function _sanitizeShadowDOM(fragment) {
1150
1203
  let shadowNode = null;
1151
1204
  const shadowIterator = _createNodeIterator(fragment);
1152
1205
  /* Execute a hook if present */
@@ -1160,7 +1213,7 @@ function createDOMPurify() {
1160
1213
  _sanitizeAttributes(shadowNode);
1161
1214
  /* Deep shadow DOM detected */
1162
1215
  if (shadowNode.content instanceof DocumentFragment) {
1163
- _sanitizeShadowDOM(shadowNode.content);
1216
+ _sanitizeShadowDOM2(shadowNode.content);
1164
1217
  }
1165
1218
  }
1166
1219
  /* Execute a hook if present */
@@ -1255,7 +1308,7 @@ function createDOMPurify() {
1255
1308
  _sanitizeAttributes(currentNode);
1256
1309
  /* Shadow DOM detected, sanitize it */
1257
1310
  if (currentNode.content instanceof DocumentFragment) {
1258
- _sanitizeShadowDOM(currentNode.content);
1311
+ _sanitizeShadowDOM2(currentNode.content);
1259
1312
  }
1260
1313
  }
1261
1314
  /* If we sanitized `dirty` in-place, return it. */
@@ -1264,6 +1317,14 @@ function createDOMPurify() {
1264
1317
  }
1265
1318
  /* Return sanitized string or DOM */
1266
1319
  if (RETURN_DOM) {
1320
+ if (SAFE_FOR_TEMPLATES) {
1321
+ body.normalize();
1322
+ let html = body.innerHTML;
1323
+ arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {
1324
+ html = stringReplace(html, expr, ' ');
1325
+ });
1326
+ body.innerHTML = html;
1327
+ }
1267
1328
  if (RETURN_DOM_FRAGMENT) {
1268
1329
  returnNode = createDocumentFragment.call(body.ownerDocument);
1269
1330
  while (body.firstChild) {
@@ -2,7 +2,7 @@
2
2
 
3
3
  var index = require('./index-D_S5lGcb.js');
4
4
  var index$1 = require('./index-wGaSHN1_.js');
5
- var utils = require('./utils-Ctc6JP2n.js');
5
+ var utils = require('./utils-BY7xrW7W.js');
6
6
  require('./breakpoints-B7vFm-3T.js');
7
7
 
8
8
  const stylesCss = () => `.sc-z-toggle-switch-h{position:relative;display:inline-flex;font-family:var(--font-family-sans);font-weight:var(--font-rg)}label.sc-z-toggle-switch{display:flex;flex-direction:row;align-items:center;cursor:pointer}label.disabled.sc-z-toggle-switch{cursor:default}label.right.sc-z-toggle-switch{flex-direction:row-reverse}label.sc-z-toggle-switch>span.sc-z-toggle-switch:first-child{color:var(--color-default-text);letter-spacing:0}label.left.sc-z-toggle-switch>span.sc-z-toggle-switch:first-child{margin-right:var(--space-unit)}label.right.sc-z-toggle-switch>span.sc-z-toggle-switch:first-child{margin-left:var(--space-unit)}label.sc-z-toggle-switch>span.container.sc-z-toggle-switch{position:relative;top:1px;left:1px;display:flex;width:calc(var(--space-unit) * 4);height:18px;align-items:center;background-color:var(--gray500);border-radius:var(--space-unit);color:var(--gray500);cursor:pointer}label.sc-z-toggle-switch>span.container.disabled.sc-z-toggle-switch,label.sc-z-toggle-switch>span.container.checked.disabled.sc-z-toggle-switch{background-color:var(--color-disabled01);cursor:default}label.sc-z-toggle-switch>span.container.checked.disabled.sc-z-toggle-switch>span.circle.sc-z-toggle-switch>z-icon.sc-z-toggle-switch{fill:var(--color-disabled01)}label.sc-z-toggle-switch>span.container.checked.sc-z-toggle-switch{background-color:var(--color-primary01);fill:var(--color-primary01)}input.sc-z-toggle-switch:focus:focus-visible+label.sc-z-toggle-switch>span.container.sc-z-toggle-switch:not(.disabled){box-shadow:var(--shadow-focus-primary);outline:none}input.sc-z-toggle-switch:focus:focus-visible+label.sc-z-toggle-switch>span.container.disabled.sc-z-toggle-switch{outline:none}label.sc-z-toggle-switch>span.container.sc-z-toggle-switch:not(.disabled):hover{background-color:var(--color-hover-primary);fill:var(--color-hover-primary)}label.sc-z-toggle-switch>span.container.sc-z-toggle-switch>span.circle.sc-z-toggle-switch{position:absolute;top:1px;left:1px;display:flex;width:calc(var(--space-unit) * 2);height:calc(var(--space-unit) * 2);align-items:center;justify-content:center;margin:0;background-color:var(--color-white);border-radius:7px;box-shadow:var(--shadow-1);transition:transform 0.3s ease}label.sc-z-toggle-switch>span.container.checked.sc-z-toggle-switch>span.circle.sc-z-toggle-switch{transform:translateX(calc(100% - 2px))}input[type="checkbox"].sc-z-toggle-switch{position:absolute;z-index:-1;opacity:0;pointer-events:none}`;
@@ -2,7 +2,7 @@
2
2
 
3
3
  var index = require('./index-D_S5lGcb.js');
4
4
  var index$1 = require('./index-wGaSHN1_.js');
5
- var utils = require('./utils-Ctc6JP2n.js');
5
+ var utils = require('./utils-BY7xrW7W.js');
6
6
  require('./breakpoints-B7vFm-3T.js');
7
7
 
8
8
  const stylesCss = () => `:host,*{box-sizing:border-box}.z-tool{--z-tool-size:calc(var(--space-unit) * 5.5);--z-tool-icon-size:calc(var(--space-unit) * 2.5);position:relative;display:inline-flex;width:var(--z-tool-size);height:var(--z-tool-size);align-items:center;justify-content:center;padding:0;border:none;margin:0;background-color:var(--color-surface01);border-radius:var(--border-radius);cursor:pointer}:host(:is([active],[open])) .z-tool{box-shadow:inset 0 0 0 2px var(--color-primary01)}:host([open]) .z-tool{background:var(--color-primary03)}@media (hover: hover){:host(:hover),:host(.z-tool-tooltip-open){z-index:1}:host(:not([disabled])) .z-tool:hover{background-color:var(--color-primary03)}}.z-tool:focus:focus-visible{background-color:var(--color-primary03);outline:none}z-icon{--z-icon-width:var(--z-tool-icon-size);--z-icon-height:var(--z-tool-icon-size);display:block;fill:var(--color-default-icon)}:host([disabled]) .z-tool{color:var(--color-disabled01-icon);cursor:not-allowed}:host([disabled]) z-icon{fill:var(--color-disabled01-icon)}.z-tool-tooltip{--z-tooltip-padding:calc(var(--space-unit) * 1.5) calc(var(--space-unit) * 2);--z-tooltip-shadow-filter:drop-shadow(0 4px 8px var(--shadow-color-base));position:relative;z-index:2;font-family:var(--font-family-sans);white-space:nowrap}.z-tool-submenu{z-index:3;border-radius:calc(var(--border-radius) + var(--border-size-small))}.z-tool-submenu ::slotted(z-color-picker){border:var(--border-size-small) solid var(--color-surface03);border-radius:var(--border-radius)}@media (max-width: 767px) and (hover: none){.z-tool-tooltip{display:none !important}}`;
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var index = require('./index-D_S5lGcb.js');
4
- var utils = require('./utils-Ctc6JP2n.js');
4
+ var utils = require('./utils-BY7xrW7W.js');
5
5
  require('./z-td.cjs.entry.js');
6
6
  require('./z-th.cjs.entry.js');
7
7
  require('./index-wGaSHN1_.js');
@@ -198,7 +198,7 @@ export class ZAppHeader {
198
198
  if (this.searchPageUrl && (this.isMobile || this.isTablet)) {
199
199
  return (h("z-button", { class: "search-page-button", variant: ButtonVariant.SECONDARY, href: this.searchPageUrl, icon: "search", size: ControlSize.X_SMALL }));
200
200
  }
201
- return (h("z-searchbar", { value: this.searchString, placeholder: this.searchPlaceholder, showSearchButton: true, searchButtonIconOnly: this.isMobile || this.isTablet, size: ControlSize.X_SMALL, variant: ButtonVariant.SECONDARY, preventSubmit: this.searchString.length < 3, onSearchTyping: (e) => (this.searchString = e.detail) }));
201
+ return (h("z-searchbar", { value: this.searchString, placeholder: this.searchPlaceholder, showSearchButton: true, searchButtonIconOnly: this.isMobile || this.isTablet, searchButtonLabel: this.isMobile || this.isTablet ? undefined : this.searchButtonLabel, size: ControlSize.X_SMALL, variant: ButtonVariant.SECONDARY, preventSubmit: this.searchString.length < 3, onSearchTyping: (e) => (this.searchString = e.detail) }));
202
202
  }
203
203
  renderProductLogos() {
204
204
  return (h(Fragment, null, this.enableZLogo && (h("span", { class: "z-logo" }, h("img", { alt: "Logo Zanichelli" }))), this.hostElement.querySelector("[slot='product-logo']") && (h("span", { class: "product-logo" }, h("slot", { name: "product-logo" })))));
@@ -280,7 +280,7 @@ export class ZAppHeader {
280
280
  }
281
281
  render() {
282
282
  const hasTopSubtitle = this.hasSlot("top-subtitle");
283
- return (h(Host, { key: 'dc030db81c271ed36850fb287d29ace79851d4a1', "menu-length": this.menuLength }, h("div", { key: '49d34b66c216a92c80eb9216fa52e48add4cee0a', class: { "heading-panel": true, "has-menubar": this.menuLength > 0 && !this.enableOffcanvas }, ref: (el) => (this.container = el) }, h("div", { key: '29639ab6d0620491c69651139ddf8311e2177122', class: { "heading-container": true, "has-top-subtitle": hasTopSubtitle } }, ((!this.enableSearch && this.isMobile) || !this.isMobile) && (h("div", { key: 'bc685fb828a89777bec6dcc5bc754534f83361cd', class: { "top-subtitle": true, "has-product-logo": hasTopSubtitle && this.hasSlot("product-logo") } }, h("slot", { key: 'cb2b1468f4b34d11dbf444f2cde0c7cce86cbd1e', name: "top-subtitle" }))), h("div", { key: '80036c45fcbd3d490b85f653efb35010b1639b6f', class: "heading-title" }, h("slot", { key: 'bc4a0397893534c0dac99e081ef0ba5d6db2ecd3', name: "menu-button" }, this.renderMenuButton()), !this._stuck && this.renderProductLogos(), h("slot", { key: 'a72c2c657ae430e0cc6b134e843fec1c983e7777', name: "title" }), this.enableSearch && !this.isMobile && this.renderSeachbar()), this.enableSearch && this.isMobile && this.renderSeachbar()), h("nav", { key: 'b620b02b62b99b13e6b4c0c1be0997d3af448aeb', class: "menu-container", "aria-label": this.title || undefined }, this.canShowMenu && (h("div", { key: '6c1887c703734a0e1ab4b77b821dad2e9bc0c3df', role: "menubar", "aria-label": this.title || undefined }, h("slot", { key: '2daaf3501852cab84cf2b3a85a770553dc70a101', name: "menu", onSlotchange: this.collectMenuElements }))))), this.renderOffcanvas(), this._stuck && this.renderStuck()));
283
+ return (h(Host, { key: 'dba00e6ba8614f38c6382a42420430ee44d61757', "menu-length": this.menuLength }, h("div", { key: '14462adce8a9cb03fe571a4eea4c1356d77d49d5', class: { "heading-panel": true, "has-menubar": this.menuLength > 0 && !this.enableOffcanvas }, ref: (el) => (this.container = el) }, h("div", { key: '18f406f950a9f2946d5c1c74e5c3a52c9f139069', class: { "heading-container": true, "has-top-subtitle": hasTopSubtitle } }, ((!this.enableSearch && this.isMobile) || !this.isMobile) && (h("div", { key: '1e74736f45625644289425d0e5cc6c825c6ac2b9', class: { "top-subtitle": true, "has-product-logo": hasTopSubtitle && this.hasSlot("product-logo") } }, h("slot", { key: '747325238cde4fb40d8448c58e4b6483ca049f28', name: "top-subtitle" }))), h("div", { key: '8d5159eabc8cddbb3fdc2227be62b5b1f318b1d4', class: "heading-title" }, h("slot", { key: '64c48e48e13c50d367fb52ed509d25cacbbc85da', name: "menu-button" }, this.renderMenuButton()), !this._stuck && this.renderProductLogos(), h("slot", { key: '990a282a81bd96d2524d3fbfff1dabce807824d9', name: "title" }), this.enableSearch && !this.isMobile && this.renderSeachbar()), this.enableSearch && this.isMobile && this.renderSeachbar()), h("nav", { key: '0048e85cccd48f1a9e587dc40bfc54ebf6c603bc', class: "menu-container", "aria-label": this.title || undefined }, this.canShowMenu && (h("div", { key: '41423d5aa2004b61c6d9ef0342013598e4e59d55', role: "menubar", "aria-label": this.title || undefined }, h("slot", { key: '4e12bbc0d9a8b54ecec94b1b12ad456ebcdb5bec', name: "menu", onSlotchange: this.collectMenuElements }))))), this.renderOffcanvas(), this._stuck && this.renderStuck()));
284
284
  }
285
285
  static get is() { return "z-app-header"; }
286
286
  static get encapsulation() { return "shadow"; }
@@ -376,6 +376,25 @@ export class ZAppHeader {
376
376
  "attribute": "search-placeholder",
377
377
  "defaultValue": "\"Cerca\""
378
378
  },
379
+ "searchButtonLabel": {
380
+ "type": "string",
381
+ "mutable": false,
382
+ "complexType": {
383
+ "original": "string",
384
+ "resolved": "string",
385
+ "references": {}
386
+ },
387
+ "required": false,
388
+ "optional": true,
389
+ "docs": {
390
+ "tags": [],
391
+ "text": "Label of the search button."
392
+ },
393
+ "getter": false,
394
+ "setter": false,
395
+ "reflect": false,
396
+ "attribute": "search-button-label"
397
+ },
379
398
  "searchString": {
380
399
  "type": "string",
381
400
  "mutable": true,