@zanichelli/albe-web-components 19.2.6 → 19.2.8-RC1

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 (266) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/cjs/index-D_S5lGcb.js +4 -4
  3. package/dist/cjs/index.cjs.js +1 -1
  4. package/dist/cjs/loader.cjs.js +1 -1
  5. package/dist/cjs/{utils-Ctc6JP2n.js → utils-BY7xrW7W.js} +6 -0
  6. package/dist/cjs/web-components-library.cjs.js +1 -1
  7. package/dist/cjs/z-alert.cjs.entry.js +1 -1
  8. package/dist/cjs/z-app-header_12.cjs.entry.js +141 -211
  9. package/dist/cjs/z-book-card-deprecated.cjs.entry.js +1 -1
  10. package/dist/cjs/z-breadcrumb.cjs.entry.js +1 -1
  11. package/dist/cjs/z-color-picker.cjs.entry.js +1 -1
  12. package/dist/cjs/z-combobox.cjs.entry.js +7 -5
  13. package/dist/cjs/z-menu.cjs.entry.js +1 -1
  14. package/dist/cjs/z-myz-card-alert.cjs.entry.js +1 -1
  15. package/dist/cjs/z-myz-card-dictionary.cjs.entry.js +1 -1
  16. package/dist/cjs/z-myz-card-footer-sections.cjs.entry.js +1 -1
  17. package/dist/cjs/z-myz-card-footer.cjs.entry.js +1 -1
  18. package/dist/cjs/z-myz-card-icon.cjs.entry.js +1 -1
  19. package/dist/cjs/z-myz-card-info.cjs.entry.js +2 -2
  20. package/dist/cjs/z-myz-card-list.cjs.entry.js +1 -1
  21. package/dist/cjs/z-myz-card_4.cjs.entry.js +4 -4
  22. package/dist/cjs/z-myz-list-item.cjs.entry.js +2 -2
  23. package/dist/cjs/z-myz-list.cjs.entry.js +1 -1
  24. package/dist/cjs/z-otp.cjs.entry.js +2 -2
  25. package/dist/cjs/z-popover.cjs.entry.js +1 -1
  26. package/dist/cjs/z-select.cjs.entry.js +4 -8
  27. package/dist/cjs/z-skip-to-content.cjs.entry.js +2 -2
  28. package/dist/cjs/z-slideshow.cjs.entry.js +1 -1
  29. package/dist/cjs/z-stepper-item.cjs.entry.js +1 -1
  30. package/dist/cjs/z-stepper.cjs.entry.js +1 -1
  31. package/dist/cjs/z-table.cjs.entry.js +1 -1
  32. package/dist/cjs/z-td.cjs.entry.js +3 -3
  33. package/dist/cjs/z-th.cjs.entry.js +5 -3
  34. package/dist/cjs/z-toast-notification-list.cjs.entry.js +1 -1
  35. package/dist/cjs/z-toast-notification.cjs.entry.js +95 -34
  36. package/dist/cjs/z-toggle-button.cjs.entry.js +2 -2
  37. package/dist/cjs/z-toggle-switch.cjs.entry.js +4 -4
  38. package/dist/cjs/z-tool.cjs.entry.js +3 -3
  39. package/dist/cjs/z-toolbar.cjs.entry.js +1 -1
  40. package/dist/cjs/z-tooltip.cjs.entry.js +1 -1
  41. package/dist/cjs/z-tr.cjs.entry.js +1 -1
  42. package/dist/collection/components/css-components/z-scrollbar/styles.css +40 -0
  43. package/dist/collection/components/table/cells/{z-td/styles.css → z-table-cells.css} +0 -1
  44. package/dist/collection/components/table/cells/z-td/index.js +3 -3
  45. package/dist/collection/components/table/cells/z-th/index.js +3 -3
  46. package/dist/collection/components/table/cells/z-th/styles.css +0 -72
  47. package/dist/collection/components/z-app-header/index.js +21 -2
  48. package/dist/collection/components/z-app-header/index.stories.js +25 -9
  49. package/dist/collection/components/z-combobox/index.js +5 -5
  50. package/dist/collection/components/z-combobox/styles.css +0 -12
  51. package/dist/collection/components/z-input/index.js +51 -32
  52. package/dist/collection/components/z-input/styles-checkbox-radio.css +130 -0
  53. package/dist/collection/components/z-input/styles-general.css +166 -0
  54. package/dist/collection/components/z-input/styles-text.css +87 -0
  55. package/dist/collection/components/z-input/styles-textarea.css +19 -0
  56. package/dist/collection/components/z-searchbar/index.js +133 -193
  57. package/dist/collection/components/z-searchbar/index.stories.js +12 -16
  58. package/dist/collection/components/z-searchbar/styles.css +87 -201
  59. package/dist/collection/components/z-select/index.js +4 -8
  60. package/dist/collection/components/z-skip-to-content/index.js +1 -1
  61. package/dist/collection/components/z-stepper/index.js +1 -1
  62. package/dist/collection/components/z-stepper-item/index.js +1 -1
  63. package/dist/collection/components/z-toast-notification/index.js +3 -3
  64. package/dist/collection/components/z-toast-notification-list/index.js +1 -1
  65. package/dist/collection/components/z-toggle-button/index.js +2 -2
  66. package/dist/collection/components/z-toggle-switch/index.js +3 -3
  67. package/dist/collection/components/z-tool/index.js +2 -2
  68. package/dist/collection/components/z-toolbar/index.js +1 -1
  69. package/dist/collection/components/z-tooltip/index.js +1 -1
  70. package/dist/collection/snowflakes/myz/card/z-myz-card/index.js +1 -1
  71. package/dist/collection/snowflakes/myz/card/z-myz-card-alert/index.js +1 -1
  72. package/dist/collection/snowflakes/myz/card/z-myz-card-body/index.js +1 -1
  73. package/dist/collection/snowflakes/myz/card/z-myz-card-cover/index.js +1 -1
  74. package/dist/collection/snowflakes/myz/card/z-myz-card-dictionary/index.js +1 -1
  75. package/dist/collection/snowflakes/myz/card/z-myz-card-footer/index.js +1 -1
  76. package/dist/collection/snowflakes/myz/card/z-myz-card-footer-sections/index.js +1 -1
  77. package/dist/collection/snowflakes/myz/card/z-myz-card-header/index.js +1 -1
  78. package/dist/collection/snowflakes/myz/card/z-myz-card-icon/index.js +1 -1
  79. package/dist/collection/snowflakes/myz/card/z-myz-card-info/index.js +1 -1
  80. package/dist/collection/snowflakes/myz/card/z-myz-card-list/index.js +1 -1
  81. package/dist/collection/snowflakes/myz/list/z-myz-list/index.js +1 -1
  82. package/dist/collection/snowflakes/myz/list/z-myz-list-item/index.js +1 -1
  83. package/dist/collection/snowflakes/myz/z-alert/index.js +1 -1
  84. package/dist/collection/snowflakes/myz/z-otp/index.js +2 -2
  85. package/dist/collection/utils/utils.js +5 -0
  86. package/dist/components/index13.js +1 -1
  87. package/dist/components/index17.js +1 -1
  88. package/dist/components/index22.js +1 -1
  89. package/dist/components/index23.js +1 -1
  90. package/dist/components/index24.js +1 -1
  91. package/dist/components/index25.js +1 -1
  92. package/dist/components/index26.js +1 -1
  93. package/dist/components/index27.js +1 -1
  94. package/dist/components/index4.js +1 -1
  95. package/dist/components/index7.js +1 -1
  96. package/dist/components/utils.js +1 -1
  97. package/dist/components/z-app-header.js +1 -1
  98. package/dist/components/z-combobox.js +1 -1
  99. package/dist/components/z-myz-card-alert.js +1 -1
  100. package/dist/components/z-myz-card-dictionary.js +1 -1
  101. package/dist/components/z-myz-card-footer-sections.js +1 -1
  102. package/dist/components/z-myz-card-footer.js +1 -1
  103. package/dist/components/z-myz-card-icon.js +1 -1
  104. package/dist/components/z-myz-card-info.js +1 -1
  105. package/dist/components/z-myz-card-list.js +1 -1
  106. package/dist/components/z-myz-list.js +1 -1
  107. package/dist/components/z-otp.js +1 -1
  108. package/dist/components/z-select.js +1 -1
  109. package/dist/components/z-skip-to-content.js +1 -1
  110. package/dist/components/z-slideshow.js +1 -1
  111. package/dist/components/z-stepper-item.js +1 -1
  112. package/dist/components/z-stepper.js +1 -1
  113. package/dist/components/z-td.js +1 -1
  114. package/dist/components/z-th.js +1 -1
  115. package/dist/components/z-toast-notification-list.js +1 -1
  116. package/dist/components/z-toast-notification.js +1 -1
  117. package/dist/components/z-toggle-button.js +1 -1
  118. package/dist/components/z-toggle-switch.js +1 -1
  119. package/dist/components/z-tool.js +1 -1
  120. package/dist/components/z-toolbar.js +1 -1
  121. package/dist/esm/index-DPdXlnVe.js +4 -4
  122. package/dist/esm/index.js +1 -1
  123. package/dist/esm/loader.js +1 -1
  124. package/dist/esm/{utils-0PByxJyN.js → utils-BEzZQwOB.js} +7 -2
  125. package/dist/esm/web-components-library.js +1 -1
  126. package/dist/esm/z-alert.entry.js +1 -1
  127. package/dist/esm/z-app-header_12.entry.js +142 -212
  128. package/dist/esm/z-book-card-deprecated.entry.js +1 -1
  129. package/dist/esm/z-breadcrumb.entry.js +1 -1
  130. package/dist/esm/z-color-picker.entry.js +1 -1
  131. package/dist/esm/z-combobox.entry.js +7 -5
  132. package/dist/esm/z-menu.entry.js +1 -1
  133. package/dist/esm/z-myz-card-alert.entry.js +1 -1
  134. package/dist/esm/z-myz-card-dictionary.entry.js +1 -1
  135. package/dist/esm/z-myz-card-footer-sections.entry.js +1 -1
  136. package/dist/esm/z-myz-card-footer.entry.js +1 -1
  137. package/dist/esm/z-myz-card-icon.entry.js +1 -1
  138. package/dist/esm/z-myz-card-info.entry.js +2 -2
  139. package/dist/esm/z-myz-card-list.entry.js +1 -1
  140. package/dist/esm/z-myz-card_4.entry.js +4 -4
  141. package/dist/esm/z-myz-list-item.entry.js +2 -2
  142. package/dist/esm/z-myz-list.entry.js +1 -1
  143. package/dist/esm/z-otp.entry.js +2 -2
  144. package/dist/esm/z-popover.entry.js +1 -1
  145. package/dist/esm/z-select.entry.js +4 -8
  146. package/dist/esm/z-skip-to-content.entry.js +2 -2
  147. package/dist/esm/z-slideshow.entry.js +1 -1
  148. package/dist/esm/z-stepper-item.entry.js +1 -1
  149. package/dist/esm/z-stepper.entry.js +1 -1
  150. package/dist/esm/z-table.entry.js +1 -1
  151. package/dist/esm/z-td.entry.js +3 -3
  152. package/dist/esm/z-th.entry.js +5 -3
  153. package/dist/esm/z-toast-notification-list.entry.js +1 -1
  154. package/dist/esm/z-toast-notification.entry.js +95 -34
  155. package/dist/esm/z-toggle-button.entry.js +2 -2
  156. package/dist/esm/z-toggle-switch.entry.js +4 -4
  157. package/dist/esm/z-tool.entry.js +3 -3
  158. package/dist/esm/z-toolbar.entry.js +1 -1
  159. package/dist/esm/z-tooltip.entry.js +1 -1
  160. package/dist/esm/z-tr.entry.js +1 -1
  161. package/dist/types/components/z-app-header/index.d.ts +4 -0
  162. package/dist/types/components/z-app-header/index.stories.d.ts +7 -0
  163. package/dist/types/components/z-input/index.d.ts +6 -4
  164. package/dist/types/components/z-searchbar/index.d.ts +26 -28
  165. package/dist/types/components/z-searchbar/index.stories.d.ts +4 -0
  166. package/dist/types/components/z-select/index.d.ts +0 -1
  167. package/dist/types/components.d.ts +46 -17
  168. package/dist/types/utils/utils.d.ts +2 -0
  169. package/dist/web-components-library/index.esm.js +1 -1
  170. package/dist/web-components-library/{p-19d3a16b.entry.js → p-0105149a.entry.js} +1 -1
  171. package/dist/web-components-library/p-0da8eae7.entry.js +1 -0
  172. package/dist/web-components-library/{p-5fa910e4.entry.js → p-13e7f751.entry.js} +1 -1
  173. package/dist/web-components-library/{p-45866f64.entry.js → p-1580db58.entry.js} +1 -1
  174. package/dist/web-components-library/{p-eed4e897.entry.js → p-20d94cce.entry.js} +1 -1
  175. package/dist/web-components-library/{p-2ce3ac48.entry.js → p-271dfd9c.entry.js} +1 -1
  176. package/dist/web-components-library/{p-e2d94c86.entry.js → p-2abf765d.entry.js} +1 -1
  177. package/dist/web-components-library/{p-5b9cacd7.entry.js → p-2df6d169.entry.js} +1 -1
  178. package/dist/web-components-library/{p-de0b7109.entry.js → p-313fc91d.entry.js} +1 -1
  179. package/dist/web-components-library/p-41584e90.entry.js +1 -0
  180. package/dist/web-components-library/p-4a434f6e.entry.js +1 -0
  181. package/dist/web-components-library/{p-7a9d19b8.entry.js → p-4d1b3d16.entry.js} +1 -1
  182. package/dist/web-components-library/p-53670be4.entry.js +1 -0
  183. package/dist/web-components-library/{p-538a1bd2.entry.js → p-5d20fc3d.entry.js} +1 -1
  184. package/dist/web-components-library/p-61992f12.entry.js +1 -0
  185. package/dist/web-components-library/{p-d11d39f5.entry.js → p-62d2247e.entry.js} +1 -1
  186. package/dist/web-components-library/{p-7d9477ed.entry.js → p-64c025f6.entry.js} +1 -1
  187. package/dist/web-components-library/{p-364b0ca4.entry.js → p-658f022d.entry.js} +1 -1
  188. package/dist/web-components-library/{p-6fb8a984.entry.js → p-660737b0.entry.js} +1 -1
  189. package/dist/web-components-library/p-7371a543.entry.js +2 -0
  190. package/dist/web-components-library/{p-f94c360f.entry.js → p-788eaac7.entry.js} +1 -1
  191. package/dist/web-components-library/{p-c6ae9241.entry.js → p-88a3ba7c.entry.js} +1 -1
  192. package/{www/build/p-c6920758.entry.js → dist/web-components-library/p-89daaeb5.entry.js} +1 -1
  193. package/dist/web-components-library/p-B0bOjMSb.js +1 -0
  194. package/dist/web-components-library/{p-f5bbcaa6.entry.js → p-a4f673f8.entry.js} +1 -1
  195. package/{www/build/p-4ae7df7f.entry.js → dist/web-components-library/p-b01ff8e6.entry.js} +1 -1
  196. package/dist/web-components-library/{p-2d6a4515.entry.js → p-b6223d7e.entry.js} +1 -1
  197. package/dist/web-components-library/{p-7835fdda.entry.js → p-b9343431.entry.js} +1 -1
  198. package/dist/web-components-library/{p-c539ae57.entry.js → p-c42ddd93.entry.js} +1 -1
  199. package/{www/build/p-eadf2552.entry.js → dist/web-components-library/p-c4e7bd16.entry.js} +1 -1
  200. package/dist/web-components-library/{p-3f996a63.entry.js → p-c944a943.entry.js} +1 -1
  201. package/dist/web-components-library/{p-19f5fdd3.entry.js → p-cd33f4b1.entry.js} +1 -1
  202. package/dist/web-components-library/{p-a40ae683.entry.js → p-ce3bbaf2.entry.js} +1 -1
  203. package/dist/web-components-library/p-d121122f.entry.js +1 -0
  204. package/dist/web-components-library/p-dc5ab2cc.entry.js +1 -0
  205. package/dist/web-components-library/{p-91503030.entry.js → p-ef5018bb.entry.js} +1 -1
  206. package/dist/web-components-library/web-components-library.esm.js +1 -1
  207. package/package.json +5 -4
  208. package/www/build/index.esm.js +1 -1
  209. package/www/build/{p-19d3a16b.entry.js → p-0105149a.entry.js} +1 -1
  210. package/www/build/p-0da8eae7.entry.js +1 -0
  211. package/www/build/{p-5fa910e4.entry.js → p-13e7f751.entry.js} +1 -1
  212. package/www/build/{p-45866f64.entry.js → p-1580db58.entry.js} +1 -1
  213. package/www/build/{p-eed4e897.entry.js → p-20d94cce.entry.js} +1 -1
  214. package/www/build/{p-2ce3ac48.entry.js → p-271dfd9c.entry.js} +1 -1
  215. package/www/build/{p-e2d94c86.entry.js → p-2abf765d.entry.js} +1 -1
  216. package/www/build/{p-5b9cacd7.entry.js → p-2df6d169.entry.js} +1 -1
  217. package/www/build/{p-de0b7109.entry.js → p-313fc91d.entry.js} +1 -1
  218. package/www/build/p-41584e90.entry.js +1 -0
  219. package/www/build/p-4a434f6e.entry.js +1 -0
  220. package/www/build/{p-7a9d19b8.entry.js → p-4d1b3d16.entry.js} +1 -1
  221. package/www/build/p-53670be4.entry.js +1 -0
  222. package/www/build/{p-538a1bd2.entry.js → p-5d20fc3d.entry.js} +1 -1
  223. package/www/build/p-61992f12.entry.js +1 -0
  224. package/www/build/{p-d11d39f5.entry.js → p-62d2247e.entry.js} +1 -1
  225. package/www/build/{p-7d9477ed.entry.js → p-64c025f6.entry.js} +1 -1
  226. package/www/build/{p-364b0ca4.entry.js → p-658f022d.entry.js} +1 -1
  227. package/www/build/{p-6fb8a984.entry.js → p-660737b0.entry.js} +1 -1
  228. package/www/build/p-7371a543.entry.js +2 -0
  229. package/www/build/{p-f94c360f.entry.js → p-788eaac7.entry.js} +1 -1
  230. package/www/build/{p-c6ae9241.entry.js → p-88a3ba7c.entry.js} +1 -1
  231. package/{dist/web-components-library/p-c6920758.entry.js → www/build/p-89daaeb5.entry.js} +1 -1
  232. package/www/build/p-B0bOjMSb.js +1 -0
  233. package/www/build/{p-f5bbcaa6.entry.js → p-a4f673f8.entry.js} +1 -1
  234. package/{dist/web-components-library/p-4ae7df7f.entry.js → www/build/p-b01ff8e6.entry.js} +1 -1
  235. package/www/build/{p-2d6a4515.entry.js → p-b6223d7e.entry.js} +1 -1
  236. package/www/build/{p-804ab9a4.js → p-b82f3aad.js} +1 -1
  237. package/www/build/{p-7835fdda.entry.js → p-b9343431.entry.js} +1 -1
  238. package/www/build/{p-c539ae57.entry.js → p-c42ddd93.entry.js} +1 -1
  239. package/{dist/web-components-library/p-eadf2552.entry.js → www/build/p-c4e7bd16.entry.js} +1 -1
  240. package/www/build/{p-3f996a63.entry.js → p-c944a943.entry.js} +1 -1
  241. package/www/build/{p-19f5fdd3.entry.js → p-cd33f4b1.entry.js} +1 -1
  242. package/www/build/{p-a40ae683.entry.js → p-ce3bbaf2.entry.js} +1 -1
  243. package/www/build/p-d121122f.entry.js +1 -0
  244. package/www/build/p-dc5ab2cc.entry.js +1 -0
  245. package/www/build/{p-91503030.entry.js → p-ef5018bb.entry.js} +1 -1
  246. package/www/build/web-components-library.esm.js +1 -1
  247. package/www/index.html +1 -1
  248. package/dist/collection/components/z-input/styles.css +0 -406
  249. package/dist/web-components-library/p-32440f4c.entry.js +0 -1
  250. package/dist/web-components-library/p-550ee6c3.entry.js +0 -1
  251. package/dist/web-components-library/p-8fd25c59.entry.js +0 -2
  252. package/dist/web-components-library/p-D4yqZKyM.js +0 -1
  253. package/dist/web-components-library/p-a9f848ef.entry.js +0 -1
  254. package/dist/web-components-library/p-ab50e989.entry.js +0 -1
  255. package/dist/web-components-library/p-ae69bb7d.entry.js +0 -1
  256. package/dist/web-components-library/p-f3436721.entry.js +0 -1
  257. package/dist/web-components-library/p-fc15a666.entry.js +0 -1
  258. package/www/build/p-32440f4c.entry.js +0 -1
  259. package/www/build/p-550ee6c3.entry.js +0 -1
  260. package/www/build/p-8fd25c59.entry.js +0 -2
  261. package/www/build/p-D4yqZKyM.js +0 -1
  262. package/www/build/p-a9f848ef.entry.js +0 -1
  263. package/www/build/p-ab50e989.entry.js +0 -1
  264. package/www/build/p-ae69bb7d.entry.js +0 -1
  265. package/www/build/p-f3436721.entry.js +0 -1
  266. package/www/build/p-fc15a666.entry.js +0 -1
@@ -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) {
@@ -4139,19 +4200,19 @@ const ZToastNotification = class {
4139
4200
  }
4140
4201
  }
4141
4202
  render() {
4142
- return (index.h(index.Host, { key: 'e0a58f45156d16fb3ec1cac2e4a13e6bdaf719b7', style: { "--percentuale": `${this.percentage}%` }, class: { [this.transition]: !!this.transition, [this.type]: !!this.type }, onAnimationEnd: (e) => {
4203
+ return (index.h(index.Host, { key: '6d582aa79426417081842e17e0ccb61fffec81a0', style: { "--percentuale": `${this.percentage}%` }, class: { [this.transition]: !!this.transition, [this.type]: !!this.type }, onAnimationEnd: (e) => {
4143
4204
  if (this.autoclose && e.animationName.includes("slidein")) {
4144
4205
  this.startClosingTimeout(this.autoclose);
4145
4206
  }
4146
4207
  if (e.animationName.includes("slideout")) {
4147
4208
  this.hostElement.parentNode.removeChild(this.hostElement);
4148
4209
  }
4149
- } }, index.h("div", { key: 'dc37f25eddcc763014c01766f43fba82ed54eb64', class: "toast-notification-container" }, index.h("div", { key: '3b832ddf285d2f203a5172ea20c221d7c5fecf8b', class: "toast-notification-content" }, index.h("div", { key: 'b701ba1ea667e98092b858cd31275f8beb1cf89a', class: "toast-notification-text" }, this.heading && index.h("span", { key: '643748547bf51bbb5ffeae968e9a6f5fb1f8db1e', class: "title" }, this.heading), index.h("span", { key: '2c1d2f616dc9c34b847732af066a0750e1ea49a2', class: "message" }, index.h("slot", { key: 'fea0d0b716ff11a64eeb98d2013da6887eeb5c99', name: "message" }, this.message && index.h("span", { key: '5867861be21564191c97f7cabace3c33645b4cd2', innerHTML: purify.sanitize(this.message) })))), index.h("div", { key: '3405e83126816b47017f59da2bd95a8195c30a25', class: "button-container", hidden: !this.hasSlottedButton }, index.h("slot", { key: '821f8f8ce998969cf16323c72c151c5dc0a72d62', name: "button", onSlotchange: () => this.checkSlottedButton() }))), this.closebutton && (index.h("button", { key: 'c3e84a06feaf5632d0733971786dc824b2fa3ab6', class: "close-button", "aria-label": "Chiudi notifica", onClick: () => this.close(SLIDE_OUT_TRANSITION_MAP[this.transition], true), onKeyDown: (e) => {
4210
+ } }, index.h("div", { key: '3b509ad43470b3bd5ceec401d28ce887a7f1de10', class: "toast-notification-container" }, index.h("div", { key: '7caaa8f330f15214c827eb89666ea2fdbbde3920', class: "toast-notification-content" }, index.h("div", { key: '49ad47ccf665b0bbcdbf94430cc2dab1e05219ab', class: "toast-notification-text" }, this.heading && index.h("span", { key: 'c2ea1e161d8c6bbefc9cff2ff27eadc713f5c133', class: "title" }, this.heading), index.h("span", { key: 'f93072a79ae141440445746ad654de84b50d2441', class: "message" }, index.h("slot", { key: '09d8108c415599d93b67925496fd52416fac4907', name: "message" }, this.message && index.h("span", { key: '011e00ae54cee5a33059cef9760576781c63f737', innerHTML: purify.sanitize(this.message) })))), index.h("div", { key: '67bde6f049f31a6b4e7d84c720b036f974bedba7', class: "button-container", hidden: !this.hasSlottedButton }, index.h("slot", { key: 'c92a7087e89012ee690c8e41577ccee412be112f', name: "button", onSlotchange: () => this.checkSlottedButton() }))), this.closebutton && (index.h("button", { key: '41198c2a426c339046948b8969d3002aee7607c3', class: "close-button", "aria-label": "Chiudi notifica", onClick: () => this.close(SLIDE_OUT_TRANSITION_MAP[this.transition], true), onKeyDown: (e) => {
4150
4211
  if (e.code == index$1.KeyboardCode.SPACE || e.code == index$1.KeyboardCode.ENTER) {
4151
4212
  e.preventDefault();
4152
4213
  this.close(SLIDE_OUT_TRANSITION_MAP[this.transition], true);
4153
4214
  }
4154
- } }, index.h("z-icon", { key: '67397c893a19e479e6f76e5c1428ce301f12416e', name: "multiply-circled" }))))));
4215
+ } }, index.h("z-icon", { key: '3316d0e9e999039cd99eb96faa37c81219e5617b', name: "multiply-circled" }))))));
4155
4216
  }
4156
4217
  get hostElement() { return index.getElement(this); }
4157
4218
  static get watchers() { return {
@@ -23,10 +23,10 @@ const ZToggleButton = class {
23
23
  this.toggleClick.emit(this.opened);
24
24
  }
25
25
  render() {
26
- return (index.h("button", { key: '246d3cb54f0af334717c38005e7494388420e2fd', tabindex: this.avoidclick ? "-1" : "0", class: {
26
+ return (index.h("button", { key: '3448d665412b78c55f77951e408df8abaa158803', tabindex: this.avoidclick ? "-1" : "0", class: {
27
27
  "isopen": this.opened,
28
28
  "avoid-clicks": this.avoidclick,
29
- }, disabled: this.isdisabled, "aria-expanded": this.opened ? "true" : "false", "aria-label": this.ariaLabel, onClick: () => this.emitToggleClick() }, index.h("z-icon", { key: 'a971c5521659db9d407f39592907e9ad9e755cf5', name: this.opened ? "chevron-down" : "chevron-up", width: 16, height: 16 }), this.label));
29
+ }, disabled: this.isdisabled, "aria-expanded": this.opened ? "true" : "false", "aria-label": this.ariaLabel, onClick: () => this.emitToggleClick() }, index.h("z-icon", { key: '4514f07522fc6ecfced03793a5bc58e7c8f185e8', name: this.opened ? "chevron-down" : "chevron-up", width: 16, height: 16 }), this.label));
30
30
  }
31
31
  };
32
32
  ZToggleButton.style = stylesCss();
@@ -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}`;
@@ -34,14 +34,14 @@ const ZToggleSwitch = class {
34
34
  this.emitToggleClick();
35
35
  }
36
36
  render() {
37
- return (index.h(index.Host, { key: 'a71496b0436b37aaf6b0af879bae53be6a627efa' }, index.h("input", { key: '716eec97479d25139fe00b144a58d26941ded2a3', id: this.htmlid, type: "checkbox", checked: this.checked, disabled: this.disabled, onChange: this.handleClick.bind(this) }), index.h("label", { key: '8907147d34ed7b1c944936e1c3e73519ef77f00b', htmlFor: this.htmlid, class: {
37
+ return (index.h(index.Host, { key: 'd31f156ba646f113f8f2509afdaee3e79fdb33f7' }, index.h("input", { key: '48a3963dd555c00867816af0169ed677dc4ccc68', id: this.htmlid, type: "checkbox", checked: this.checked, disabled: this.disabled, onChange: this.handleClick.bind(this) }), index.h("label", { key: '3872377775f759727b62288794555cd84e60b12c', htmlFor: this.htmlid, class: {
38
38
  [this.labelPosition]: true,
39
39
  disabled: this.disabled,
40
- } }, index.h("span", { key: 'c3a9dc659fee0c089799a011568b2df707f62c34' }, index.h("slot", { key: '68be5cec64b7d973bd40d59be54580170bd7ec5e' })), index.h("span", { key: '206640ff4c480d2923f8c99b80093b8bf08ee68a', class: {
40
+ } }, index.h("span", { key: 'b46cb8e359cdb11e696a116661659c9872d49a1e' }, index.h("slot", { key: '42fc26c0ced09c5fdda062735fe543b8cb57a658' })), index.h("span", { key: 'b55f0fbd2ff23f01c1ac0b845c6af5571d81c13f', class: {
41
41
  container: true,
42
42
  disabled: this.disabled,
43
43
  checked: this.checked,
44
- } }, index.h("span", { key: '31d158040dfc2cb2e605ee5271cd1b992016c1e2', class: "circle" }, this.checked && (index.h("z-icon", { key: '2d45f7c22746d2db091e0ee2096b3f580064e8aa', width: 12, height: 12, name: "checkmark" })))))));
44
+ } }, index.h("span", { key: '87bc69be905d84458fec5384f756348a94e446fe', class: "circle" }, this.checked && (index.h("z-icon", { key: '4464b2bf8aa91a7c0c5c9e2bff26e84ff7c34be2', width: 12, height: 12, name: "checkmark" })))))));
45
45
  }
46
46
  };
47
47
  ZToggleSwitch.style = stylesCss();
@@ -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}}`;
@@ -189,10 +189,10 @@ const ZTool = class {
189
189
  (_a = this.mql) === null || _a === void 0 ? void 0 : _a.removeEventListener("change", this.onMobileViewChange);
190
190
  }
191
191
  render() {
192
- return (index.h(index.Host, { key: '1a87f70e20dca23bc4207f03aa1cd933c5fa668e', class: { "z-tool-tooltip-open": this.tooltipOpen } }, index.h("button", { key: 'df7f4ad8a47dee955b9c4c249354fa114410409d', class: "z-tool", type: "button", ref: (el) => (this.buttonRef = el), "aria-pressed": this.hasSlottedContent ? undefined : this.active ? "true" : "false", "aria-expanded": this.hasSlottedContent ? (this.open ? "true" : "false") : undefined, "aria-haspopup": this.hasSlottedContent ? "true" : undefined, "aria-label": this.htmlAriaLabel || this.tooltip || undefined, disabled: this.disabled, onClick: this.handleClick, onMouseEnter: this.handleTooltipOpen, onMouseLeave: this.handleTooltipClose, onFocus: this.handleTooltipOpen, onBlur: this.handleTooltipClose }, index.h("z-icon", { key: '43bd668b9d58377caa755e7eeaf68e3381b036f0', ref: (el) => (this.iconRef = el), name: this.icon, indicatorColor: this.indicatorColor })), this.tooltip && (index.h("z-tooltip", { key: 'a86766b86ee4cf878f5a48f48e135b8cd3092f3a', class: "z-tool-tooltip", ref: (el) => (this.tooltipRef = el), bindTo: this.iconRef, open: this.tooltipOpen && !this.open, position: this.isNested ? index$1.PopoverPosition.BOTTOM : this.tooltipPosition, dark: true, onMouseLeave: this.handleTooltipClose, onBlur: this.handleTooltipClose, onOpenChange: this.onTooltipOpenChange }, index.h("span", { key: '91ddd32599a6a6a3b4fbf34fb69fdabff0dbbda9', class: "body-4" }, this.tooltip))), this.hasSlottedContent && (index.h("z-popover", { key: 'ec7b937f451db4a1b206b386d6f199b5cf71117d', class: "z-tool-submenu", open: this.open, bindTo: this.isMobile && this.mainToolbar ? this.mainToolbar : this.hostElement, center: true,
192
+ return (index.h(index.Host, { key: 'f5da5cd309607dc94dd12a28596b2ea02d28ba4c', class: { "z-tool-tooltip-open": this.tooltipOpen } }, index.h("button", { key: 'be63d078b5035ba1f08c480c8c08f365b3115191', class: "z-tool", type: "button", ref: (el) => (this.buttonRef = el), "aria-pressed": this.hasSlottedContent ? undefined : this.active ? "true" : "false", "aria-expanded": this.hasSlottedContent ? (this.open ? "true" : "false") : undefined, "aria-haspopup": this.hasSlottedContent ? "true" : undefined, "aria-label": this.htmlAriaLabel || this.tooltip || undefined, disabled: this.disabled, onClick: this.handleClick, onMouseEnter: this.handleTooltipOpen, onMouseLeave: this.handleTooltipClose, onFocus: this.handleTooltipOpen, onBlur: this.handleTooltipClose }, index.h("z-icon", { key: 'a08b5432871a1522374633050a835bb18001a6d6', ref: (el) => (this.iconRef = el), name: this.icon, indicatorColor: this.indicatorColor })), this.tooltip && (index.h("z-tooltip", { key: '9e0fa11a43662f333404543e315b097aa96ab08c', class: "z-tool-tooltip", ref: (el) => (this.tooltipRef = el), bindTo: this.iconRef, open: this.tooltipOpen && !this.open, position: this.isNested ? index$1.PopoverPosition.BOTTOM : this.tooltipPosition, dark: true, onMouseLeave: this.handleTooltipClose, onBlur: this.handleTooltipClose, onOpenChange: this.onTooltipOpenChange }, index.h("span", { key: 'bfc2be83824830ed05b70f423e9f044015624f49', class: "body-4" }, this.tooltip))), this.hasSlottedContent && (index.h("z-popover", { key: '717697756e5333f066f96c96695cd9741b006e93', class: "z-tool-submenu", open: this.open, bindTo: this.isMobile && this.mainToolbar ? this.mainToolbar : this.hostElement, center: true,
193
193
  /* disable auto-close to prevent unwanted close behaviors on mobile,
194
194
  when the bound element is the main toolbar */
195
- closable: false, position: this.isMobile ? index$1.PopoverPosition.TOP : index$1.PopoverPosition.BOTTOM }, index.h("slot", { key: '85e016cb92ce6c7356afa7f93bbdd278ab3ff88e' })))));
195
+ closable: false, position: this.isMobile ? index$1.PopoverPosition.TOP : index$1.PopoverPosition.BOTTOM }, index.h("slot", { key: 'd151d02e38fb7a0941012ec969b6cea647721846' })))));
196
196
  }
197
197
  get hostElement() { return index.getElement(this); }
198
198
  static get watchers() { return {
@@ -131,7 +131,7 @@ const ZToolbar = class {
131
131
  }
132
132
  }
133
133
  render() {
134
- return (index.h(index.Host, { key: 'd766b9377953f92994c693221a9ea7c5104cd1c6', role: "toolbar", "aria-label": this.htmlAriaLabel }, index.h("slot", { key: '37d3079836475575d0267725589798a39025a517', onSlotchange: () => {
134
+ return (index.h(index.Host, { key: '9f77e33a2a5e3566137ca23c4a41526b58b46515', role: "toolbar", "aria-label": this.htmlAriaLabel }, index.h("slot", { key: 'a62af35ef54781baee92f865a969a8642ce58703', onSlotchange: () => {
135
135
  this.collectToolItems();
136
136
  this.updateTabIndexes();
137
137
  } })));
@@ -28,7 +28,7 @@ const ZTooltip = class {
28
28
  this.open = this.popoverEl.open;
29
29
  }
30
30
  render() {
31
- return (index.h("z-popover", { key: '21236ca0162a4ce1c7d1c6adfd052332e8a566b8', ref: (el) => (this.popoverEl = el), bindTo: this.bindTo, open: this.open, position: this.position, closable: this.closable, center: true, showArrow: true, onOpenChange: (event) => this.openChange.emit(event.detail) }, index.h("slot", { key: 'fb78016230d9246043c60bd22e1ed7c6baa4d78d' })));
31
+ return (index.h("z-popover", { key: '0cc1e8ea0e6896f5031309a5984c09df4b095d8b', ref: (el) => (this.popoverEl = el), bindTo: this.bindTo, open: this.open, position: this.position, closable: this.closable, center: true, showArrow: true, onOpenChange: (event) => this.openChange.emit(event.detail) }, index.h("slot", { key: 'a0548343b099fe7986066d821a455f1092428b38' })));
32
32
  }
33
33
  };
34
34
  ZTooltip.style = stylesCss();
@@ -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');
@@ -0,0 +1,40 @@
1
+ /* Webkit Scrollbar */
2
+ .z-scrollbar::-webkit-scrollbar {
3
+ width: 6px;
4
+ background: linear-gradient(to right, transparent 0 1px, var(--gray200) 1px 5px, transparent 5px 6px);
5
+ }
6
+
7
+ .z-scrollbar::-webkit-scrollbar-thumb {
8
+ background-color: var(--color-primary01);
9
+ }
10
+
11
+ .z-scrollbar::-webkit-scrollbar-thumb:hover {
12
+ background-color: var(--color-hover-primary);
13
+ }
14
+
15
+ :host([theme="dark"]) .z-scrollbar,
16
+ .z-scrollbar--dark {
17
+ --z-scrollbar-track-gradient: linear-gradient(
18
+ to right,
19
+ transparent 0 1px,
20
+ var(--gray600) 1px 5px,
21
+ transparent 5px 6px
22
+ );
23
+ --z-scrollbar-track-color: var(--gray600);
24
+ --z-scrollbar-thumb-color: var(--color-primary03);
25
+ --z-scrollbar-thumb-hover-color: var(--color-hover-primary);
26
+ --z-scrollbar-corner-color: transparent;
27
+ }
28
+
29
+ /* Firefox scrollbar */
30
+ @supports not selector(.z-scrollbar::-webkit-scrollbar-track) {
31
+ .z-scrollbar {
32
+ scrollbar-color: var(--color-primary01) transparent;
33
+ }
34
+
35
+ :host([theme="dark"]) .z-scrollbar,
36
+ .z-scrollbar--dark {
37
+ scrollbar-color: var(--z-scrollbar-thumb-color, var(--color-primary03))
38
+ var(--z-scrollbar-track-color, var(--gray600));
39
+ }
40
+ }
@@ -42,18 +42,18 @@ export class ZTd {
42
42
  this.updateColspan();
43
43
  }
44
44
  render() {
45
- return (h(Host, { key: '65102becbf97d8f480c9e9c140965963e1b829a3', role: "cell", "menu-open": this.isMenuOpen }, h("div", { key: 'a91b370f73c8684038a75db6483ec88dd8b3f4d6', class: "cell--content" }, h("slot", { key: '2a9451f11c23f2dae4047b360d8af92606ce3e76' }), this.showMenu && (h("div", { key: '0a4f91d75fce51604253ada3775f06ec9c230ce0', class: "cell--menu-container prevent-expand" }, h("z-button", { key: 'fe6623726d645f2796ff88246bd887b2e5ec9396', variant: ButtonVariant.TERTIARY, icon: "contextual-menu", size: ControlSize.X_SMALL, ref: (el) => (this.menuTrigger = el), onClick: this.onMenuButtonClick.bind(this) }), h("z-popover", { key: '1ce2729d0209e5218515c52f4425c3f02b05c1bd', class: "cell-popover", ref: (el) => (this.popoverEl = el), bindTo: this.menuTrigger, onOpenChange: (event) => (this.isMenuOpen = event.detail.open), position: this.popoverPosition }, h("slot", { key: 'b060d20d5e15380360f8bab9d502f85eb70a7995', name: "contextual-menu" })))))));
45
+ return (h(Host, { key: '3de2b08ae7ba78632945b3c7a18c39cbc91dd03f', role: "cell", "menu-open": this.isMenuOpen }, h("div", { key: '0c281b227221cbd01d76ee8e5909d2ea77071f9a', class: "cell--content" }, h("slot", { key: 'fb6a90291b513310d4f48ea3a26c5dfe197d6434' }), this.showMenu && (h("div", { key: 'dd2c301848ea64effee47f2c5e690eab30259d19', class: "cell--menu-container prevent-expand" }, h("z-button", { key: 'b010e8ef6fcd68289f1e5599216c416dcf866788', variant: ButtonVariant.TERTIARY, icon: "contextual-menu", size: ControlSize.X_SMALL, ref: (el) => (this.menuTrigger = el), onClick: this.onMenuButtonClick.bind(this) }), h("z-popover", { key: '055d4c47c314f74939b4de3ec60ad43d20beaad2', class: "cell-popover", ref: (el) => (this.popoverEl = el), bindTo: this.menuTrigger, onOpenChange: (event) => (this.isMenuOpen = event.detail.open), position: this.popoverPosition }, h("slot", { key: '2d097873fe805093434e9b932c0e36082f5a15a5', name: "contextual-menu" })))))));
46
46
  }
47
47
  static get is() { return "z-td"; }
48
48
  static get encapsulation() { return "shadow"; }
49
49
  static get originalStyleUrls() {
50
50
  return {
51
- "$": ["styles.css"]
51
+ "$": ["../z-table-cells.css"]
52
52
  };
53
53
  }
54
54
  static get styleUrls() {
55
55
  return {
56
- "$": ["styles.css"]
56
+ "$": ["../z-table-cells.css"]
57
57
  };
58
58
  }
59
59
  static get properties() {
@@ -70,18 +70,18 @@ export class ZTh {
70
70
  this.updateColspan();
71
71
  }
72
72
  render() {
73
- return (h(Host, { key: '326c1c5968ebd22021f5bc88d3c98cd558c31783', role: "columnheader", "menu-open": this.isMenuOpen, "aria-sort": this.ariaSortDirection, sortable: this.showSorting }, h("div", { key: '935a692b283f76362fe5e3cc7cc2f8e38424f407', class: "cell--content" }, h("slot", { key: 'cce03a04640d1ee72e2e202f7526203136f4bb50' }), this.showSorting && (h("button", { key: 'c161a473f0b4e6d6b1a478ad0530c6d0938fc1a1', class: "z-th--sort-button", type: "button", onClick: this.handleSort.bind(this) }, h("z-icon", { key: '4b9b3aab3b0ce9f14c2a181860c834098077dee3', name: this.sortDirection === SortDirection.DESC ? "arrow-simple-up" : "arrow-simple-down", width: 14, height: 14 }))), this.showMenu && (h("div", { key: 'cd3b0e8a851c8a414229f4976b8a227d99981ce0', class: "cell--menu-container" }, h("z-button", { key: '3d37441174ff3ea540c0aec582bc91c7c644c818', variant: ButtonVariant.TERTIARY, icon: "contextual-menu", size: ControlSize.X_SMALL, ref: (el) => (this.menuTrigger = el), onClick: () => (this.popoverEl.open = !this.popoverEl.open) }), h("z-popover", { key: '59de83e276e82705588041660e7612080b6636e8', ref: (el) => (this.popoverEl = el), bindTo: this.menuTrigger, onOpenChange: (event) => (this.isMenuOpen = event.detail.open), position: this.popoverPosition }, h("slot", { key: 'c92e8e0a5c617251dc6741ff4d9cbe943f224111', name: "contextual-menu" })))))));
73
+ return (h(Host, { key: 'deec9e49e024f48b68fe8f54ebb141dcc2b19ec1', role: "columnheader", "menu-open": this.isMenuOpen, "aria-sort": this.ariaSortDirection, sortable: this.showSorting }, h("div", { key: '65fefbfef58a64f3287a2f1b5defd301392bba2b', class: "cell--content" }, h("slot", { key: 'a88011856bacb3b2e0875ed46b8b1468660e5b31' }), this.showSorting && (h("button", { key: '46f462137de04bb88eda2e14767660fc4629f087', class: "z-th--sort-button", type: "button", onClick: this.handleSort.bind(this) }, h("z-icon", { key: 'bcfe38f7ff932f2074dad3ab11b5df5867292654', name: this.sortDirection === SortDirection.DESC ? "arrow-simple-up" : "arrow-simple-down", width: 14, height: 14 }))), this.showMenu && (h("div", { key: '90ccc4ecc6f49f8d41a45c9979fabebfd8bcad01', class: "cell--menu-container" }, h("z-button", { key: '58b57db3a7129b6a811eca6f014a7b2c02050a41', variant: ButtonVariant.TERTIARY, icon: "contextual-menu", size: ControlSize.X_SMALL, ref: (el) => (this.menuTrigger = el), onClick: () => (this.popoverEl.open = !this.popoverEl.open) }), h("z-popover", { key: '927004bdbc077e358c00b765d58b64a70f95c83d', ref: (el) => (this.popoverEl = el), bindTo: this.menuTrigger, onOpenChange: (event) => (this.isMenuOpen = event.detail.open), position: this.popoverPosition }, h("slot", { key: '3b5dbcb8631fa4383366ff718c7e9a080b7ca3be', name: "contextual-menu" })))))));
74
74
  }
75
75
  static get is() { return "z-th"; }
76
76
  static get encapsulation() { return "shadow"; }
77
77
  static get originalStyleUrls() {
78
78
  return {
79
- "$": ["styles.css"]
79
+ "$": ["../z-table-cells.css", "styles.css"]
80
80
  };
81
81
  }
82
82
  static get styleUrls() {
83
83
  return {
84
- "$": ["styles.css"]
84
+ "$": ["../z-table-cells.css", "styles.css"]
85
85
  };
86
86
  }
87
87
  static get properties() {