@zanichelli/albe-web-components 17.0.0 → 17.0.2

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 (695) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/dist/cjs/{index-a42ab7c9.js → index-2a9a328d.js} +2 -2
  3. package/dist/cjs/{index-a42ab7c9.js.map → index-2a9a328d.js.map} +1 -1
  4. package/dist/cjs/{index-4b1d6599.js → index-4e2d222e.js} +2 -2
  5. package/dist/cjs/{index-4b1d6599.js.map → index-4e2d222e.js.map} +1 -1
  6. package/dist/cjs/{index-816614ee.js → index-7191c0cc.js} +2 -2
  7. package/dist/cjs/{index-816614ee.js.map → index-7191c0cc.js.map} +1 -1
  8. package/dist/cjs/{index-3b95f98f.js → index-a6593d82.js} +2 -2
  9. package/dist/cjs/{index-3b95f98f.js.map → index-a6593d82.js.map} +1 -1
  10. package/dist/cjs/{index-e2718c94.js → index-aa56c709.js} +4 -4
  11. package/dist/cjs/{index-e2718c94.js.map → index-aa56c709.js.map} +1 -1
  12. package/dist/cjs/{index-141d598e.js → index-b2f35532.js} +2 -2
  13. package/dist/cjs/{index-141d598e.js.map → index-b2f35532.js.map} +1 -1
  14. package/dist/cjs/loader.cjs.js +1 -1
  15. package/dist/cjs/web-components-library.cjs.js +1 -1
  16. package/dist/cjs/z-accordion.cjs.entry.js +2 -2
  17. package/dist/cjs/z-accordion.cjs.entry.js.map +1 -1
  18. package/dist/cjs/z-alert.cjs.entry.js +1 -1
  19. package/dist/cjs/z-anchor-navigation.cjs.entry.js +2 -2
  20. package/dist/cjs/z-anchor-navigation.cjs.entry.js.map +1 -1
  21. package/dist/cjs/z-app-header-deprecated.cjs.entry.js +1 -1
  22. package/dist/cjs/z-app-header_12.cjs.entry.js +13 -13
  23. package/dist/cjs/z-aria-alert.cjs.entry.js +1 -1
  24. package/dist/cjs/z-avatar.cjs.entry.js +2 -2
  25. package/dist/cjs/z-book-card-app.cjs.entry.js +1 -1
  26. package/dist/cjs/z-book-card-deprecated.cjs.entry.js +1 -1
  27. package/dist/cjs/z-book-card.cjs.entry.js +2 -2
  28. package/dist/cjs/z-breadcrumb.cjs.entry.js +2 -2
  29. package/dist/cjs/z-button-sort.cjs.entry.js +1 -1
  30. package/dist/cjs/z-chip.cjs.entry.js +2 -2
  31. package/dist/cjs/z-combobox.cjs.entry.js +1 -1
  32. package/dist/cjs/z-cover-hero.cjs.entry.js +2 -2
  33. package/dist/cjs/z-date-picker.cjs.entry.js +1 -1
  34. package/dist/cjs/z-dragdrop-area_2.cjs.entry.js +16 -20
  35. package/dist/cjs/z-dragdrop-area_2.cjs.entry.js.map +1 -1
  36. package/dist/cjs/z-file-upload.cjs.entry.js +77 -101
  37. package/dist/cjs/z-file-upload.cjs.entry.js.map +1 -1
  38. package/dist/cjs/z-file.cjs.entry.js +1 -1
  39. package/dist/cjs/z-ghost-loading.cjs.entry.js +1 -1
  40. package/dist/cjs/z-info-box.cjs.entry.js +1 -1
  41. package/dist/cjs/z-info-reveal.cjs.entry.js +1 -1
  42. package/dist/cjs/z-logo.cjs.entry.js +1 -1
  43. package/dist/cjs/z-menu-deprecated.cjs.entry.js +2 -2
  44. package/dist/cjs/z-menu-deprecated.cjs.entry.js.map +1 -1
  45. package/dist/cjs/z-menu-section-deprecated.cjs.entry.js +2 -2
  46. package/dist/cjs/z-menu-section-deprecated.cjs.entry.js.map +1 -1
  47. package/dist/cjs/z-menu-section.cjs.entry.js +2 -2
  48. package/dist/cjs/z-menu-section.cjs.entry.js.map +1 -1
  49. package/dist/cjs/z-menu.cjs.entry.js +1 -1
  50. package/dist/cjs/z-menu.cjs.entry.js.map +1 -1
  51. package/dist/cjs/z-myz-card-alert.cjs.entry.js +1 -1
  52. package/dist/cjs/z-myz-card-dictionary.cjs.entry.js +1 -1
  53. package/dist/cjs/z-myz-card-footer-sections.cjs.entry.js +1 -1
  54. package/dist/cjs/z-myz-card-footer.cjs.entry.js +1 -1
  55. package/dist/cjs/z-myz-card-icon.cjs.entry.js +1 -1
  56. package/dist/cjs/z-myz-card-info.cjs.entry.js +2 -2
  57. package/dist/cjs/z-myz-card-info.cjs.entry.js.map +1 -1
  58. package/dist/cjs/z-myz-card-list.cjs.entry.js +1 -1
  59. package/dist/cjs/z-myz-card_4.cjs.entry.js +4 -4
  60. package/dist/cjs/z-myz-list-item.cjs.entry.js +1 -1
  61. package/dist/cjs/z-myz-list.cjs.entry.js +1 -1
  62. package/dist/cjs/z-navigation-tabs.cjs.entry.js +3 -3
  63. package/dist/cjs/z-navigation-tabs.cjs.entry.js.map +1 -1
  64. package/dist/cjs/z-notification.cjs.entry.js +1 -1
  65. package/dist/cjs/z-otp.cjs.entry.js +2 -2
  66. package/dist/cjs/z-panel-elem.cjs.entry.js +2 -2
  67. package/dist/cjs/z-popover.cjs.entry.js +1 -1
  68. package/dist/cjs/z-range-picker.cjs.entry.js +3 -3
  69. package/dist/cjs/z-section-title.cjs.entry.js +1 -1
  70. package/dist/cjs/z-select.cjs.entry.js +1 -1
  71. package/dist/cjs/z-skip-to-content.cjs.entry.js +1 -1
  72. package/dist/cjs/z-stepper-item.cjs.entry.js +1 -1
  73. package/dist/cjs/z-stepper.cjs.entry.js +1 -1
  74. package/dist/cjs/z-table.cjs.entry.js +7 -7
  75. package/dist/cjs/z-tbody.cjs.entry.js +1 -1
  76. package/dist/cjs/z-td.cjs.entry.js +1 -1
  77. package/dist/cjs/z-tfoot.cjs.entry.js +1 -1
  78. package/dist/cjs/z-th.cjs.entry.js +1 -1
  79. package/dist/cjs/z-thead.cjs.entry.js +1 -1
  80. package/dist/cjs/z-toast-notification-list.cjs.entry.js +1 -1
  81. package/dist/cjs/z-toast-notification.cjs.entry.js +1 -1
  82. package/dist/cjs/z-toggle-button.cjs.entry.js +2 -2
  83. package/dist/cjs/z-toggle-switch.cjs.entry.js +3 -3
  84. package/dist/cjs/z-tooltip.cjs.entry.js +1 -1
  85. package/dist/cjs/z-tr.cjs.entry.js +3 -3
  86. package/dist/cjs/z-visually-hidden.cjs.entry.js +1 -1
  87. package/dist/collection/collection-manifest.json +1 -1
  88. package/dist/collection/components/book-card/z-book-card/index.js +2 -2
  89. package/dist/collection/components/book-card/z-book-card-app/index.js +1 -1
  90. package/dist/collection/components/date-picker/z-date-picker/index.js +1 -1
  91. package/dist/collection/components/date-picker/z-range-picker/index.js +3 -3
  92. package/dist/collection/components/deprecated/z-app-header-deprecated/index.js +1 -1
  93. package/dist/collection/components/deprecated/z-book-card-deprecated/index.js +1 -1
  94. package/dist/collection/components/deprecated/z-menu-deprecated/index.js +1 -1
  95. package/dist/collection/components/deprecated/z-menu-deprecated/styles.css +2 -2
  96. package/dist/collection/components/deprecated/z-menu-section-deprecated/index.js +1 -1
  97. package/dist/collection/components/deprecated/z-menu-section-deprecated/styles.css +3 -3
  98. package/dist/collection/components/file-upload/z-dragdrop-area/index.js +17 -16
  99. package/dist/collection/components/file-upload/z-dragdrop-area/index.js.map +1 -1
  100. package/dist/collection/components/file-upload/z-dragdrop-area/styles.css +55 -29
  101. package/dist/collection/components/file-upload/z-file/index.js +1 -1
  102. package/dist/collection/components/file-upload/z-file-upload/index.js +146 -107
  103. package/dist/collection/components/file-upload/z-file-upload/index.js.map +1 -1
  104. package/dist/collection/components/file-upload/z-file-upload/index.stories.js +11 -13
  105. package/dist/collection/components/file-upload/z-file-upload/index.stories.js.map +1 -1
  106. package/dist/collection/components/file-upload/z-file-upload/styles.css +18 -52
  107. package/dist/collection/components/list/z-list/index.js +1 -1
  108. package/dist/collection/components/list/z-list-element/index.js +1 -1
  109. package/dist/collection/components/list/z-list-group/index.js +2 -2
  110. package/dist/collection/components/table/cells/z-td/index.js +1 -1
  111. package/dist/collection/components/table/cells/z-th/index.js +1 -1
  112. package/dist/collection/components/table/z-table/index.js +1 -1
  113. package/dist/collection/components/table/z-tbody/index.js +1 -1
  114. package/dist/collection/components/table/z-tfoot/index.js +1 -1
  115. package/dist/collection/components/table/z-thead/index.js +1 -1
  116. package/dist/collection/components/table/z-tr/index.js +1 -1
  117. package/dist/collection/components/z-accordion/index.js +1 -1
  118. package/dist/collection/components/z-accordion/styles.css +6 -1
  119. package/dist/collection/components/z-anchor-navigation/index.js +1 -1
  120. package/dist/collection/components/z-anchor-navigation/styles.css +4 -2
  121. package/dist/collection/components/z-app-header/index.js +1 -1
  122. package/dist/collection/components/z-aria-alert/index.js +1 -1
  123. package/dist/collection/components/z-avatar/index.js +2 -2
  124. package/dist/collection/components/z-breadcrumb/index.js +2 -2
  125. package/dist/collection/components/z-button-sort/index.js +1 -1
  126. package/dist/collection/components/z-chip/index.js +2 -2
  127. package/dist/collection/components/z-combobox/index.js +1 -1
  128. package/dist/collection/components/z-cover-hero/index.js +2 -2
  129. package/dist/collection/components/z-divider/index.js +1 -1
  130. package/dist/collection/components/z-ghost-loading/index.js +1 -1
  131. package/dist/collection/components/z-icon/index.js +1 -1
  132. package/dist/collection/components/z-info-box/index.js +1 -1
  133. package/dist/collection/components/z-info-reveal/index.js +1 -1
  134. package/dist/collection/components/z-input/index.js +1 -1
  135. package/dist/collection/components/z-input-message/index.js +1 -1
  136. package/dist/collection/components/z-logo/index.js +1 -1
  137. package/dist/collection/components/z-menu/styles.css +3 -3
  138. package/dist/collection/components/z-menu-section/index.js +1 -1
  139. package/dist/collection/components/z-menu-section/styles.css +3 -3
  140. package/dist/collection/components/z-modal/index.js +4 -4
  141. package/dist/collection/components/z-navigation-tabs/index.js +2 -2
  142. package/dist/collection/components/z-navigation-tabs/styles.css +2 -2
  143. package/dist/collection/components/z-notification/index.js +1 -1
  144. package/dist/collection/components/z-offcanvas/index.js +1 -1
  145. package/dist/collection/components/z-panel-elem/index.js +2 -2
  146. package/dist/collection/components/z-popover/index.js +1 -1
  147. package/dist/collection/components/z-searchbar/index.js +1 -1
  148. package/dist/collection/components/z-section-title/index.js +1 -1
  149. package/dist/collection/components/z-select/index.js +1 -1
  150. package/dist/collection/components/z-skip-to-content/index.js +1 -1
  151. package/dist/collection/components/z-stepper/index.js +1 -1
  152. package/dist/collection/components/z-stepper-item/index.js +1 -1
  153. package/dist/collection/components/z-tag/index.js +2 -2
  154. package/dist/collection/components/z-toast-notification/index.js +1 -1
  155. package/dist/collection/components/z-toast-notification-list/index.js +1 -1
  156. package/dist/collection/components/z-toggle-button/index.js +2 -2
  157. package/dist/collection/components/z-toggle-switch/index.js +3 -3
  158. package/dist/collection/components/z-tooltip/index.js +1 -1
  159. package/dist/collection/components/z-visually-hidden/index.js +1 -1
  160. package/dist/collection/snowflakes/myz/card/z-myz-card/index.js +1 -1
  161. package/dist/collection/snowflakes/myz/card/z-myz-card-alert/index.js +1 -1
  162. package/dist/collection/snowflakes/myz/card/z-myz-card-body/index.js +1 -1
  163. package/dist/collection/snowflakes/myz/card/z-myz-card-cover/index.js +1 -1
  164. package/dist/collection/snowflakes/myz/card/z-myz-card-dictionary/index.js +1 -1
  165. package/dist/collection/snowflakes/myz/card/z-myz-card-footer/index.js +1 -1
  166. package/dist/collection/snowflakes/myz/card/z-myz-card-footer-sections/index.js +1 -1
  167. package/dist/collection/snowflakes/myz/card/z-myz-card-header/index.js +1 -1
  168. package/dist/collection/snowflakes/myz/card/z-myz-card-icon/index.js +1 -1
  169. package/dist/collection/snowflakes/myz/card/z-myz-card-info/index.js +1 -1
  170. package/dist/collection/snowflakes/myz/card/z-myz-card-info/styles.css +1 -1
  171. package/dist/collection/snowflakes/myz/card/z-myz-card-list/index.js +1 -1
  172. package/dist/collection/snowflakes/myz/list/z-myz-list/index.js +1 -1
  173. package/dist/collection/snowflakes/myz/list/z-myz-list-item/index.js +1 -1
  174. package/dist/collection/snowflakes/myz/z-alert/index.js +1 -1
  175. package/dist/collection/snowflakes/myz/z-otp/index.js +2 -2
  176. package/dist/components/index10.js +1 -1
  177. package/dist/components/index11.js +1 -1
  178. package/dist/components/index12.js +1 -1
  179. package/dist/components/index13.js +1 -1
  180. package/dist/components/index14.js +1 -1
  181. package/dist/components/index15.js +2 -2
  182. package/dist/components/index16.js +4 -4
  183. package/dist/components/index17.js +1 -1
  184. package/dist/components/index18.js +1 -1
  185. package/dist/components/index19.js +1 -1
  186. package/dist/components/index20.js +1 -1
  187. package/dist/components/index21.js +1 -1
  188. package/dist/components/index22.js +1 -1
  189. package/dist/components/index23.js +1 -1
  190. package/dist/components/index24.js +1 -1
  191. package/dist/components/index25.js +2 -2
  192. package/dist/components/index3.js +1 -1
  193. package/dist/components/index5.js +2 -2
  194. package/dist/components/index6.js +1 -1
  195. package/dist/components/index7.js +28 -19
  196. package/dist/components/index7.js.map +1 -1
  197. package/dist/components/index8.js +1 -1
  198. package/dist/components/index9.js +1 -1
  199. package/dist/components/z-accordion.js +2 -2
  200. package/dist/components/z-accordion.js.map +1 -1
  201. package/dist/components/z-anchor-navigation.js +2 -2
  202. package/dist/components/z-anchor-navigation.js.map +1 -1
  203. package/dist/components/z-app-header-deprecated.js +1 -1
  204. package/dist/components/z-app-header.js +1 -1
  205. package/dist/components/z-aria-alert.js +1 -1
  206. package/dist/components/z-avatar.js +2 -2
  207. package/dist/components/z-book-card-app.js +1 -1
  208. package/dist/components/z-book-card-deprecated.js +1 -1
  209. package/dist/components/z-book-card.js +2 -2
  210. package/dist/components/z-breadcrumb.js +2 -2
  211. package/dist/components/z-button-sort.js +1 -1
  212. package/dist/components/z-combobox.js +1 -1
  213. package/dist/components/z-cover-hero.js +2 -2
  214. package/dist/components/z-date-picker.js +1 -1
  215. package/dist/components/z-file-upload.js +85 -112
  216. package/dist/components/z-file-upload.js.map +1 -1
  217. package/dist/components/z-file.js +1 -1
  218. package/dist/components/z-info-box.js +1 -1
  219. package/dist/components/z-logo.js +1 -1
  220. package/dist/components/z-menu-deprecated.js +2 -2
  221. package/dist/components/z-menu-deprecated.js.map +1 -1
  222. package/dist/components/z-menu-section-deprecated.js +2 -2
  223. package/dist/components/z-menu-section-deprecated.js.map +1 -1
  224. package/dist/components/z-menu-section.js +2 -2
  225. package/dist/components/z-menu-section.js.map +1 -1
  226. package/dist/components/z-menu.js +1 -1
  227. package/dist/components/z-menu.js.map +1 -1
  228. package/dist/components/z-myz-card-alert.js +1 -1
  229. package/dist/components/z-myz-card-dictionary.js +1 -1
  230. package/dist/components/z-myz-card-footer-sections.js +1 -1
  231. package/dist/components/z-myz-card-footer.js +1 -1
  232. package/dist/components/z-myz-card-icon.js +1 -1
  233. package/dist/components/z-myz-card-info.js +2 -2
  234. package/dist/components/z-myz-card-info.js.map +1 -1
  235. package/dist/components/z-myz-card-list.js +1 -1
  236. package/dist/components/z-myz-list.js +1 -1
  237. package/dist/components/z-navigation-tabs.js +3 -3
  238. package/dist/components/z-navigation-tabs.js.map +1 -1
  239. package/dist/components/z-notification.js +1 -1
  240. package/dist/components/z-otp.js +2 -2
  241. package/dist/components/z-panel-elem.js +2 -2
  242. package/dist/components/z-range-picker.js +3 -3
  243. package/dist/components/z-section-title.js +1 -1
  244. package/dist/components/z-select.js +1 -1
  245. package/dist/components/z-skip-to-content.js +1 -1
  246. package/dist/components/z-stepper-item.js +1 -1
  247. package/dist/components/z-stepper.js +1 -1
  248. package/dist/components/z-table.js +1 -1
  249. package/dist/components/z-tbody.js +1 -1
  250. package/dist/components/z-td.js +1 -1
  251. package/dist/components/z-tfoot.js +1 -1
  252. package/dist/components/z-th.js +1 -1
  253. package/dist/components/z-thead.js +1 -1
  254. package/dist/components/z-toast-notification-list.js +1 -1
  255. package/dist/components/z-toast-notification.js +1 -1
  256. package/dist/components/z-toggle-button.js +2 -2
  257. package/dist/components/z-toggle-switch.js +3 -3
  258. package/dist/components/z-tooltip.js +1 -1
  259. package/dist/components/z-tr.js +1 -1
  260. package/dist/components/z-visually-hidden.js +1 -1
  261. package/dist/esm/{index-daf6dc52.js → index-04335eea.js} +2 -2
  262. package/dist/esm/{index-daf6dc52.js.map → index-04335eea.js.map} +1 -1
  263. package/dist/esm/{index-bcd128c9.js → index-5dff449e.js} +2 -2
  264. package/dist/esm/{index-bcd128c9.js.map → index-5dff449e.js.map} +1 -1
  265. package/dist/esm/{index-bf3d3447.js → index-735d4f23.js} +2 -2
  266. package/dist/esm/{index-bf3d3447.js.map → index-735d4f23.js.map} +1 -1
  267. package/dist/esm/{index-03fd6621.js → index-8df19678.js} +4 -4
  268. package/dist/esm/{index-03fd6621.js.map → index-8df19678.js.map} +1 -1
  269. package/dist/esm/{index-2e00cecb.js → index-90f624c1.js} +2 -2
  270. package/dist/esm/{index-2e00cecb.js.map → index-90f624c1.js.map} +1 -1
  271. package/dist/esm/{index-358dea59.js → index-9adfcd0d.js} +2 -2
  272. package/dist/esm/{index-358dea59.js.map → index-9adfcd0d.js.map} +1 -1
  273. package/dist/esm/loader.js +1 -1
  274. package/dist/esm/web-components-library.js +1 -1
  275. package/dist/esm/z-accordion.entry.js +2 -2
  276. package/dist/esm/z-accordion.entry.js.map +1 -1
  277. package/dist/esm/z-alert.entry.js +1 -1
  278. package/dist/esm/z-anchor-navigation.entry.js +2 -2
  279. package/dist/esm/z-anchor-navigation.entry.js.map +1 -1
  280. package/dist/esm/z-app-header-deprecated.entry.js +1 -1
  281. package/dist/esm/z-app-header_12.entry.js +13 -13
  282. package/dist/esm/z-aria-alert.entry.js +1 -1
  283. package/dist/esm/z-avatar.entry.js +2 -2
  284. package/dist/esm/z-book-card-app.entry.js +1 -1
  285. package/dist/esm/z-book-card-deprecated.entry.js +1 -1
  286. package/dist/esm/z-book-card.entry.js +2 -2
  287. package/dist/esm/z-breadcrumb.entry.js +2 -2
  288. package/dist/esm/z-button-sort.entry.js +1 -1
  289. package/dist/esm/z-chip.entry.js +2 -2
  290. package/dist/esm/z-combobox.entry.js +1 -1
  291. package/dist/esm/z-cover-hero.entry.js +2 -2
  292. package/dist/esm/z-date-picker.entry.js +1 -1
  293. package/dist/esm/z-dragdrop-area_2.entry.js +17 -21
  294. package/dist/esm/z-dragdrop-area_2.entry.js.map +1 -1
  295. package/dist/esm/z-file-upload.entry.js +78 -102
  296. package/dist/esm/z-file-upload.entry.js.map +1 -1
  297. package/dist/esm/z-file.entry.js +1 -1
  298. package/dist/esm/z-ghost-loading.entry.js +1 -1
  299. package/dist/esm/z-info-box.entry.js +1 -1
  300. package/dist/esm/z-info-reveal.entry.js +1 -1
  301. package/dist/esm/z-logo.entry.js +1 -1
  302. package/dist/esm/z-menu-deprecated.entry.js +2 -2
  303. package/dist/esm/z-menu-deprecated.entry.js.map +1 -1
  304. package/dist/esm/z-menu-section-deprecated.entry.js +2 -2
  305. package/dist/esm/z-menu-section-deprecated.entry.js.map +1 -1
  306. package/dist/esm/z-menu-section.entry.js +2 -2
  307. package/dist/esm/z-menu-section.entry.js.map +1 -1
  308. package/dist/esm/z-menu.entry.js +1 -1
  309. package/dist/esm/z-menu.entry.js.map +1 -1
  310. package/dist/esm/z-myz-card-alert.entry.js +1 -1
  311. package/dist/esm/z-myz-card-dictionary.entry.js +1 -1
  312. package/dist/esm/z-myz-card-footer-sections.entry.js +1 -1
  313. package/dist/esm/z-myz-card-footer.entry.js +1 -1
  314. package/dist/esm/z-myz-card-icon.entry.js +1 -1
  315. package/dist/esm/z-myz-card-info.entry.js +2 -2
  316. package/dist/esm/z-myz-card-info.entry.js.map +1 -1
  317. package/dist/esm/z-myz-card-list.entry.js +1 -1
  318. package/dist/esm/z-myz-card_4.entry.js +4 -4
  319. package/dist/esm/z-myz-list-item.entry.js +1 -1
  320. package/dist/esm/z-myz-list.entry.js +1 -1
  321. package/dist/esm/z-navigation-tabs.entry.js +3 -3
  322. package/dist/esm/z-navigation-tabs.entry.js.map +1 -1
  323. package/dist/esm/z-notification.entry.js +1 -1
  324. package/dist/esm/z-otp.entry.js +2 -2
  325. package/dist/esm/z-panel-elem.entry.js +2 -2
  326. package/dist/esm/z-popover.entry.js +1 -1
  327. package/dist/esm/z-range-picker.entry.js +3 -3
  328. package/dist/esm/z-section-title.entry.js +1 -1
  329. package/dist/esm/z-select.entry.js +1 -1
  330. package/dist/esm/z-skip-to-content.entry.js +1 -1
  331. package/dist/esm/z-stepper-item.entry.js +1 -1
  332. package/dist/esm/z-stepper.entry.js +1 -1
  333. package/dist/esm/z-table.entry.js +7 -7
  334. package/dist/esm/z-tbody.entry.js +1 -1
  335. package/dist/esm/z-td.entry.js +1 -1
  336. package/dist/esm/z-tfoot.entry.js +1 -1
  337. package/dist/esm/z-th.entry.js +1 -1
  338. package/dist/esm/z-thead.entry.js +1 -1
  339. package/dist/esm/z-toast-notification-list.entry.js +1 -1
  340. package/dist/esm/z-toast-notification.entry.js +1 -1
  341. package/dist/esm/z-toggle-button.entry.js +2 -2
  342. package/dist/esm/z-toggle-switch.entry.js +3 -3
  343. package/dist/esm/z-tooltip.entry.js +1 -1
  344. package/dist/esm/z-tr.entry.js +3 -3
  345. package/dist/esm/z-visually-hidden.entry.js +1 -1
  346. package/dist/types/components/file-upload/z-dragdrop-area/index.d.ts +4 -4
  347. package/dist/types/components/file-upload/z-file-upload/index.d.ts +39 -25
  348. package/dist/types/components/file-upload/z-file-upload/index.stories.d.ts +1 -0
  349. package/dist/types/components.d.ts +27 -4
  350. package/{www/build/p-a707640a.entry.js → dist/web-components-library/p-015621c8.entry.js} +2 -2
  351. package/dist/web-components-library/p-035807e3.entry.js +2 -0
  352. package/{www/build/p-cd55204b.js → dist/web-components-library/p-037c59b3.js} +2 -2
  353. package/dist/web-components-library/{p-479b13ae.entry.js → p-0565f1b2.entry.js} +2 -2
  354. package/dist/web-components-library/p-08d8f935.entry.js +2 -0
  355. package/{www/build/p-95795174.entry.js → dist/web-components-library/p-0df6b405.entry.js} +2 -2
  356. package/dist/web-components-library/p-11216ee8.entry.js +2 -0
  357. package/{www/build/p-5ccbdfbe.entry.js.map → dist/web-components-library/p-11216ee8.entry.js.map} +1 -1
  358. package/dist/web-components-library/p-115fab3e.entry.js +2 -0
  359. package/dist/web-components-library/p-115fab3e.entry.js.map +1 -0
  360. package/dist/web-components-library/{p-914e20e9.entry.js → p-11629dd3.entry.js} +2 -2
  361. package/dist/web-components-library/{p-90d54c40.js → p-123739cb.js} +2 -2
  362. package/{www/build/p-7c6dad4b.js → dist/web-components-library/p-14e61df6.js} +2 -2
  363. package/dist/web-components-library/{p-2e48ff6b.entry.js → p-18d63f0c.entry.js} +2 -2
  364. package/{www/build/p-8b627bff.entry.js → dist/web-components-library/p-20b628e7.entry.js} +2 -2
  365. package/dist/web-components-library/{p-cc87d814.entry.js → p-22d56699.entry.js} +2 -2
  366. package/dist/web-components-library/p-2798c0b2.entry.js +2 -0
  367. package/dist/web-components-library/{p-83cd8d7c.entry.js → p-2a0d8ebe.entry.js} +2 -2
  368. package/dist/web-components-library/p-2aeb2a94.entry.js +2 -0
  369. package/dist/web-components-library/{p-34d82be5.entry.js → p-2c450113.entry.js} +2 -2
  370. package/dist/web-components-library/{p-c57bb632.entry.js → p-2dcf53b3.entry.js} +2 -2
  371. package/dist/web-components-library/p-30170218.entry.js +2 -0
  372. package/dist/web-components-library/{p-e9149664.entry.js → p-34f4f441.entry.js} +2 -2
  373. package/dist/web-components-library/{p-73d089fe.entry.js → p-384baa02.entry.js} +2 -2
  374. package/dist/web-components-library/{p-46ce378d.entry.js → p-395b261e.entry.js} +2 -2
  375. package/dist/web-components-library/p-3bf02cab.entry.js +2 -0
  376. package/dist/web-components-library/p-3bf02cab.entry.js.map +1 -0
  377. package/dist/web-components-library/{p-4a058a26.entry.js → p-42559870.entry.js} +2 -2
  378. package/dist/web-components-library/{p-92da97fb.entry.js → p-4374d3f3.entry.js} +2 -2
  379. package/dist/web-components-library/{p-ec4d7f60.js → p-4c462e7f.js} +2 -2
  380. package/dist/web-components-library/{p-c0588dbe.entry.js → p-4fedcbc2.entry.js} +2 -2
  381. package/{www/build/p-7db32c12.entry.js → dist/web-components-library/p-50bf57b4.entry.js} +2 -2
  382. package/{www/build/p-8f47b574.entry.js → dist/web-components-library/p-52be7378.entry.js} +2 -2
  383. package/{www/build/p-9e183204.entry.js → dist/web-components-library/p-54a70792.entry.js} +2 -2
  384. package/{www/build/p-c9913f1e.entry.js → dist/web-components-library/p-5f04d9eb.entry.js} +2 -2
  385. package/dist/web-components-library/p-605f6780.entry.js +2 -0
  386. package/dist/web-components-library/p-605f6780.entry.js.map +1 -0
  387. package/dist/web-components-library/{p-7d844bac.entry.js → p-60a9cb8b.entry.js} +2 -2
  388. package/{www/build/p-ddae9016.entry.js → dist/web-components-library/p-6230c432.entry.js} +2 -2
  389. package/dist/web-components-library/p-6e1ba2f0.entry.js +2 -0
  390. package/dist/web-components-library/{p-3ce0d28c.entry.js → p-7095262b.entry.js} +2 -2
  391. package/dist/web-components-library/{p-af4b759a.entry.js → p-72dae90b.entry.js} +2 -2
  392. package/dist/web-components-library/p-73d686e0.entry.js +2 -0
  393. package/dist/web-components-library/p-73d686e0.entry.js.map +1 -0
  394. package/dist/web-components-library/p-75808b47.entry.js +2 -0
  395. package/dist/web-components-library/p-75808b47.entry.js.map +1 -0
  396. package/dist/web-components-library/{p-0d1dbe04.entry.js → p-8c952964.entry.js} +2 -2
  397. package/dist/web-components-library/{p-18fbbf63.entry.js → p-9187ce36.entry.js} +2 -2
  398. package/dist/web-components-library/{p-08691c77.entry.js → p-9218da42.entry.js} +2 -2
  399. package/dist/web-components-library/{p-2cc8c5a5.entry.js → p-972098a5.entry.js} +2 -2
  400. package/dist/web-components-library/{p-ecaca2df.entry.js → p-9f0a3d88.entry.js} +2 -2
  401. package/dist/web-components-library/p-a90027c2.entry.js +2 -0
  402. package/dist/web-components-library/p-a90027c2.entry.js.map +1 -0
  403. package/dist/web-components-library/p-aa0b3e7a.entry.js +2 -0
  404. package/dist/web-components-library/p-aa0b3e7a.entry.js.map +1 -0
  405. package/{www/build/p-65c59027.entry.js → dist/web-components-library/p-aa42f01d.entry.js} +2 -2
  406. package/dist/web-components-library/p-ad825740.entry.js +2 -0
  407. package/dist/web-components-library/{p-76d8d404.entry.js → p-b309bd71.entry.js} +2 -2
  408. package/dist/web-components-library/p-b38be247.entry.js +2 -0
  409. package/{www/build/p-ac03a6cc.entry.js → dist/web-components-library/p-bbd492d3.entry.js} +2 -2
  410. package/dist/web-components-library/p-c13ef624.js +2 -0
  411. package/dist/web-components-library/p-c2af9a71.entry.js +2 -0
  412. package/dist/web-components-library/p-c2af9a71.entry.js.map +1 -0
  413. package/dist/web-components-library/p-c7df6a63.entry.js +2 -0
  414. package/dist/web-components-library/p-c7df6a63.entry.js.map +1 -0
  415. package/dist/web-components-library/{p-0eab0213.entry.js → p-caccf490.entry.js} +2 -2
  416. package/dist/web-components-library/p-cb8aec27.entry.js +2 -0
  417. package/dist/web-components-library/p-cc8186a9.entry.js +2 -0
  418. package/{www/build/p-d972d6aa.entry.js.map → dist/web-components-library/p-cc8186a9.entry.js.map} +1 -1
  419. package/dist/web-components-library/p-d65aba93.entry.js +2 -0
  420. package/dist/web-components-library/{p-386e385c.entry.js.map → p-d65aba93.entry.js.map} +1 -1
  421. package/dist/web-components-library/p-db0a5f51.entry.js +2 -0
  422. package/dist/web-components-library/p-db0a5f51.entry.js.map +1 -0
  423. package/dist/web-components-library/p-deb86b5c.entry.js +2 -0
  424. package/dist/web-components-library/{p-efe1de34.entry.js → p-ea36d666.entry.js} +2 -2
  425. package/dist/web-components-library/{p-9078dfd7.entry.js → p-f06bd257.entry.js} +2 -2
  426. package/dist/web-components-library/{p-2f486acc.entry.js → p-f075ec62.entry.js} +2 -2
  427. package/dist/web-components-library/{p-27a59513.entry.js → p-f8915e2e.entry.js} +2 -2
  428. package/dist/web-components-library/{p-068b15fc.entry.js → p-fb06a5d8.entry.js} +2 -2
  429. package/dist/web-components-library/p-feb84d36.js +2 -0
  430. package/dist/web-components-library/web-components-library.esm.js +1 -1
  431. package/dist/web-components-library/web-components-library.esm.js.map +1 -1
  432. package/package.json +1 -1
  433. package/{dist/web-components-library/p-a707640a.entry.js → www/build/p-015621c8.entry.js} +2 -2
  434. package/www/build/p-035807e3.entry.js +2 -0
  435. package/{dist/web-components-library/p-cd55204b.js → www/build/p-037c59b3.js} +2 -2
  436. package/www/build/{p-479b13ae.entry.js → p-0565f1b2.entry.js} +2 -2
  437. package/www/build/p-08d8f935.entry.js +2 -0
  438. package/{dist/web-components-library/p-95795174.entry.js → www/build/p-0df6b405.entry.js} +2 -2
  439. package/www/build/p-11216ee8.entry.js +2 -0
  440. package/{dist/web-components-library/p-5ccbdfbe.entry.js.map → www/build/p-11216ee8.entry.js.map} +1 -1
  441. package/www/build/p-115fab3e.entry.js +2 -0
  442. package/www/build/p-115fab3e.entry.js.map +1 -0
  443. package/www/build/{p-914e20e9.entry.js → p-11629dd3.entry.js} +2 -2
  444. package/www/build/{p-90d54c40.js → p-123739cb.js} +2 -2
  445. package/{dist/web-components-library/p-7c6dad4b.js → www/build/p-14e61df6.js} +2 -2
  446. package/www/build/{p-2e48ff6b.entry.js → p-18d63f0c.entry.js} +2 -2
  447. package/{dist/web-components-library/p-8b627bff.entry.js → www/build/p-20b628e7.entry.js} +2 -2
  448. package/www/build/{p-cc87d814.entry.js → p-22d56699.entry.js} +2 -2
  449. package/www/build/p-2798c0b2.entry.js +2 -0
  450. package/www/build/{p-83cd8d7c.entry.js → p-2a0d8ebe.entry.js} +2 -2
  451. package/www/build/p-2aeb2a94.entry.js +2 -0
  452. package/www/build/{p-34d82be5.entry.js → p-2c450113.entry.js} +2 -2
  453. package/www/build/{p-c57bb632.entry.js → p-2dcf53b3.entry.js} +2 -2
  454. package/www/build/p-30170218.entry.js +2 -0
  455. package/www/build/{p-e9149664.entry.js → p-34f4f441.entry.js} +2 -2
  456. package/www/build/{p-73d089fe.entry.js → p-384baa02.entry.js} +2 -2
  457. package/www/build/{p-46ce378d.entry.js → p-395b261e.entry.js} +2 -2
  458. package/www/build/p-3bf02cab.entry.js +2 -0
  459. package/www/build/p-3bf02cab.entry.js.map +1 -0
  460. package/www/build/{p-4a058a26.entry.js → p-42559870.entry.js} +2 -2
  461. package/www/build/{p-92da97fb.entry.js → p-4374d3f3.entry.js} +2 -2
  462. package/www/build/p-45f04bb4.js +2 -0
  463. package/www/build/{p-ec4d7f60.js → p-4c462e7f.js} +2 -2
  464. package/www/build/{p-c0588dbe.entry.js → p-4fedcbc2.entry.js} +2 -2
  465. package/{dist/web-components-library/p-7db32c12.entry.js → www/build/p-50bf57b4.entry.js} +2 -2
  466. package/{dist/web-components-library/p-8f47b574.entry.js → www/build/p-52be7378.entry.js} +2 -2
  467. package/{dist/web-components-library/p-9e183204.entry.js → www/build/p-54a70792.entry.js} +2 -2
  468. package/{dist/web-components-library/p-c9913f1e.entry.js → www/build/p-5f04d9eb.entry.js} +2 -2
  469. package/www/build/p-605f6780.entry.js +2 -0
  470. package/www/build/p-605f6780.entry.js.map +1 -0
  471. package/www/build/{p-7d844bac.entry.js → p-60a9cb8b.entry.js} +2 -2
  472. package/{dist/web-components-library/p-ddae9016.entry.js → www/build/p-6230c432.entry.js} +2 -2
  473. package/www/build/p-6e1ba2f0.entry.js +2 -0
  474. package/www/build/{p-3ce0d28c.entry.js → p-7095262b.entry.js} +2 -2
  475. package/www/build/{p-af4b759a.entry.js → p-72dae90b.entry.js} +2 -2
  476. package/www/build/p-73d686e0.entry.js +2 -0
  477. package/www/build/p-73d686e0.entry.js.map +1 -0
  478. package/www/build/p-75808b47.entry.js +2 -0
  479. package/www/build/p-75808b47.entry.js.map +1 -0
  480. package/www/build/{p-0d1dbe04.entry.js → p-8c952964.entry.js} +2 -2
  481. package/www/build/{p-18fbbf63.entry.js → p-9187ce36.entry.js} +2 -2
  482. package/www/build/{p-08691c77.entry.js → p-9218da42.entry.js} +2 -2
  483. package/www/build/{p-2cc8c5a5.entry.js → p-972098a5.entry.js} +2 -2
  484. package/www/build/{p-ecaca2df.entry.js → p-9f0a3d88.entry.js} +2 -2
  485. package/www/build/p-a90027c2.entry.js +2 -0
  486. package/www/build/p-a90027c2.entry.js.map +1 -0
  487. package/www/build/p-aa0b3e7a.entry.js +2 -0
  488. package/www/build/p-aa0b3e7a.entry.js.map +1 -0
  489. package/{dist/web-components-library/p-65c59027.entry.js → www/build/p-aa42f01d.entry.js} +2 -2
  490. package/www/build/p-ad825740.entry.js +2 -0
  491. package/www/build/{p-76d8d404.entry.js → p-b309bd71.entry.js} +2 -2
  492. package/www/build/p-b38be247.entry.js +2 -0
  493. package/{dist/web-components-library/p-ac03a6cc.entry.js → www/build/p-bbd492d3.entry.js} +2 -2
  494. package/www/build/p-c13ef624.js +2 -0
  495. package/www/build/p-c2af9a71.entry.js +2 -0
  496. package/www/build/p-c2af9a71.entry.js.map +1 -0
  497. package/www/build/p-c7df6a63.entry.js +2 -0
  498. package/www/build/p-c7df6a63.entry.js.map +1 -0
  499. package/www/build/{p-0eab0213.entry.js → p-caccf490.entry.js} +2 -2
  500. package/www/build/p-cb8aec27.entry.js +2 -0
  501. package/www/build/p-cc8186a9.entry.js +2 -0
  502. package/{dist/web-components-library/p-d972d6aa.entry.js.map → www/build/p-cc8186a9.entry.js.map} +1 -1
  503. package/www/build/p-d65aba93.entry.js +2 -0
  504. package/www/build/{p-386e385c.entry.js.map → p-d65aba93.entry.js.map} +1 -1
  505. package/www/build/p-db0a5f51.entry.js +2 -0
  506. package/www/build/p-db0a5f51.entry.js.map +1 -0
  507. package/www/build/p-deb86b5c.entry.js +2 -0
  508. package/www/build/{p-efe1de34.entry.js → p-ea36d666.entry.js} +2 -2
  509. package/www/build/{p-9078dfd7.entry.js → p-f06bd257.entry.js} +2 -2
  510. package/www/build/{p-2f486acc.entry.js → p-f075ec62.entry.js} +2 -2
  511. package/www/build/{p-27a59513.entry.js → p-f8915e2e.entry.js} +2 -2
  512. package/www/build/{p-068b15fc.entry.js → p-fb06a5d8.entry.js} +2 -2
  513. package/www/build/p-feb84d36.js +2 -0
  514. package/www/build/web-components-library.esm.js +1 -1
  515. package/www/build/web-components-library.esm.js.map +1 -1
  516. package/www/index.html +1 -1
  517. package/dist/web-components-library/p-2c6519dc.entry.js +0 -2
  518. package/dist/web-components-library/p-2dbbc58f.entry.js +0 -2
  519. package/dist/web-components-library/p-2dbbc58f.entry.js.map +0 -1
  520. package/dist/web-components-library/p-2f3732d9.entry.js +0 -2
  521. package/dist/web-components-library/p-382e2939.entry.js +0 -2
  522. package/dist/web-components-library/p-386e385c.entry.js +0 -2
  523. package/dist/web-components-library/p-3f8725c1.entry.js +0 -2
  524. package/dist/web-components-library/p-40280990.entry.js +0 -2
  525. package/dist/web-components-library/p-4629a66a.entry.js +0 -2
  526. package/dist/web-components-library/p-4629a66a.entry.js.map +0 -1
  527. package/dist/web-components-library/p-563e86c0.entry.js +0 -2
  528. package/dist/web-components-library/p-563e86c0.entry.js.map +0 -1
  529. package/dist/web-components-library/p-5ccbdfbe.entry.js +0 -2
  530. package/dist/web-components-library/p-612da2d0.entry.js +0 -2
  531. package/dist/web-components-library/p-612da2d0.entry.js.map +0 -1
  532. package/dist/web-components-library/p-65f993a4.entry.js +0 -2
  533. package/dist/web-components-library/p-6f69c2b6.js +0 -2
  534. package/dist/web-components-library/p-72618fde.entry.js +0 -2
  535. package/dist/web-components-library/p-72618fde.entry.js.map +0 -1
  536. package/dist/web-components-library/p-8d79971b.entry.js +0 -2
  537. package/dist/web-components-library/p-8d79971b.entry.js.map +0 -1
  538. package/dist/web-components-library/p-93069a90.entry.js +0 -2
  539. package/dist/web-components-library/p-a7bcb93d.entry.js +0 -2
  540. package/dist/web-components-library/p-a7bcb93d.entry.js.map +0 -1
  541. package/dist/web-components-library/p-add2b5e8.entry.js +0 -2
  542. package/dist/web-components-library/p-b896dcf7.entry.js +0 -2
  543. package/dist/web-components-library/p-cc6406ab.entry.js +0 -2
  544. package/dist/web-components-library/p-d34a177a.entry.js +0 -2
  545. package/dist/web-components-library/p-d34a177a.entry.js.map +0 -1
  546. package/dist/web-components-library/p-d972d6aa.entry.js +0 -2
  547. package/dist/web-components-library/p-e4e0d271.entry.js +0 -2
  548. package/dist/web-components-library/p-e4e0d271.entry.js.map +0 -1
  549. package/dist/web-components-library/p-f400cf1b.js +0 -2
  550. package/dist/web-components-library/p-f413c03c.entry.js +0 -2
  551. package/dist/web-components-library/p-f413c03c.entry.js.map +0 -1
  552. package/www/build/p-2c6519dc.entry.js +0 -2
  553. package/www/build/p-2dbbc58f.entry.js +0 -2
  554. package/www/build/p-2dbbc58f.entry.js.map +0 -1
  555. package/www/build/p-2f3732d9.entry.js +0 -2
  556. package/www/build/p-382e2939.entry.js +0 -2
  557. package/www/build/p-386e385c.entry.js +0 -2
  558. package/www/build/p-3f8725c1.entry.js +0 -2
  559. package/www/build/p-40280990.entry.js +0 -2
  560. package/www/build/p-4629a66a.entry.js +0 -2
  561. package/www/build/p-4629a66a.entry.js.map +0 -1
  562. package/www/build/p-563e86c0.entry.js +0 -2
  563. package/www/build/p-563e86c0.entry.js.map +0 -1
  564. package/www/build/p-5ccbdfbe.entry.js +0 -2
  565. package/www/build/p-612da2d0.entry.js +0 -2
  566. package/www/build/p-612da2d0.entry.js.map +0 -1
  567. package/www/build/p-65f993a4.entry.js +0 -2
  568. package/www/build/p-6f69c2b6.js +0 -2
  569. package/www/build/p-72618fde.entry.js +0 -2
  570. package/www/build/p-72618fde.entry.js.map +0 -1
  571. package/www/build/p-8d79971b.entry.js +0 -2
  572. package/www/build/p-8d79971b.entry.js.map +0 -1
  573. package/www/build/p-93069a90.entry.js +0 -2
  574. package/www/build/p-a7bcb93d.entry.js +0 -2
  575. package/www/build/p-a7bcb93d.entry.js.map +0 -1
  576. package/www/build/p-add2b5e8.entry.js +0 -2
  577. package/www/build/p-b896dcf7.entry.js +0 -2
  578. package/www/build/p-c9e50d51.js +0 -2
  579. package/www/build/p-cc6406ab.entry.js +0 -2
  580. package/www/build/p-d34a177a.entry.js +0 -2
  581. package/www/build/p-d34a177a.entry.js.map +0 -1
  582. package/www/build/p-d972d6aa.entry.js +0 -2
  583. package/www/build/p-e4e0d271.entry.js +0 -2
  584. package/www/build/p-e4e0d271.entry.js.map +0 -1
  585. package/www/build/p-f400cf1b.js +0 -2
  586. package/www/build/p-f413c03c.entry.js +0 -2
  587. package/www/build/p-f413c03c.entry.js.map +0 -1
  588. /package/dist/web-components-library/{p-a707640a.entry.js.map → p-015621c8.entry.js.map} +0 -0
  589. /package/dist/web-components-library/{p-93069a90.entry.js.map → p-035807e3.entry.js.map} +0 -0
  590. /package/dist/web-components-library/{p-cd55204b.js.map → p-037c59b3.js.map} +0 -0
  591. /package/dist/web-components-library/{p-479b13ae.entry.js.map → p-0565f1b2.entry.js.map} +0 -0
  592. /package/dist/web-components-library/{p-65f993a4.entry.js.map → p-08d8f935.entry.js.map} +0 -0
  593. /package/dist/web-components-library/{p-95795174.entry.js.map → p-0df6b405.entry.js.map} +0 -0
  594. /package/dist/web-components-library/{p-914e20e9.entry.js.map → p-11629dd3.entry.js.map} +0 -0
  595. /package/dist/web-components-library/{p-90d54c40.js.map → p-123739cb.js.map} +0 -0
  596. /package/dist/web-components-library/{p-7c6dad4b.js.map → p-14e61df6.js.map} +0 -0
  597. /package/dist/web-components-library/{p-2e48ff6b.entry.js.map → p-18d63f0c.entry.js.map} +0 -0
  598. /package/dist/web-components-library/{p-8b627bff.entry.js.map → p-20b628e7.entry.js.map} +0 -0
  599. /package/dist/web-components-library/{p-cc87d814.entry.js.map → p-22d56699.entry.js.map} +0 -0
  600. /package/dist/web-components-library/{p-2c6519dc.entry.js.map → p-2798c0b2.entry.js.map} +0 -0
  601. /package/dist/web-components-library/{p-83cd8d7c.entry.js.map → p-2a0d8ebe.entry.js.map} +0 -0
  602. /package/dist/web-components-library/{p-2f3732d9.entry.js.map → p-2aeb2a94.entry.js.map} +0 -0
  603. /package/dist/web-components-library/{p-34d82be5.entry.js.map → p-2c450113.entry.js.map} +0 -0
  604. /package/dist/web-components-library/{p-c57bb632.entry.js.map → p-2dcf53b3.entry.js.map} +0 -0
  605. /package/dist/web-components-library/{p-40280990.entry.js.map → p-30170218.entry.js.map} +0 -0
  606. /package/dist/web-components-library/{p-e9149664.entry.js.map → p-34f4f441.entry.js.map} +0 -0
  607. /package/dist/web-components-library/{p-73d089fe.entry.js.map → p-384baa02.entry.js.map} +0 -0
  608. /package/dist/web-components-library/{p-46ce378d.entry.js.map → p-395b261e.entry.js.map} +0 -0
  609. /package/dist/web-components-library/{p-4a058a26.entry.js.map → p-42559870.entry.js.map} +0 -0
  610. /package/dist/web-components-library/{p-92da97fb.entry.js.map → p-4374d3f3.entry.js.map} +0 -0
  611. /package/dist/web-components-library/{p-ec4d7f60.js.map → p-4c462e7f.js.map} +0 -0
  612. /package/dist/web-components-library/{p-c0588dbe.entry.js.map → p-4fedcbc2.entry.js.map} +0 -0
  613. /package/dist/web-components-library/{p-7db32c12.entry.js.map → p-50bf57b4.entry.js.map} +0 -0
  614. /package/dist/web-components-library/{p-8f47b574.entry.js.map → p-52be7378.entry.js.map} +0 -0
  615. /package/dist/web-components-library/{p-9e183204.entry.js.map → p-54a70792.entry.js.map} +0 -0
  616. /package/dist/web-components-library/{p-c9913f1e.entry.js.map → p-5f04d9eb.entry.js.map} +0 -0
  617. /package/dist/web-components-library/{p-7d844bac.entry.js.map → p-60a9cb8b.entry.js.map} +0 -0
  618. /package/dist/web-components-library/{p-ddae9016.entry.js.map → p-6230c432.entry.js.map} +0 -0
  619. /package/dist/web-components-library/{p-382e2939.entry.js.map → p-6e1ba2f0.entry.js.map} +0 -0
  620. /package/dist/web-components-library/{p-3ce0d28c.entry.js.map → p-7095262b.entry.js.map} +0 -0
  621. /package/dist/web-components-library/{p-af4b759a.entry.js.map → p-72dae90b.entry.js.map} +0 -0
  622. /package/dist/web-components-library/{p-0d1dbe04.entry.js.map → p-8c952964.entry.js.map} +0 -0
  623. /package/dist/web-components-library/{p-18fbbf63.entry.js.map → p-9187ce36.entry.js.map} +0 -0
  624. /package/dist/web-components-library/{p-08691c77.entry.js.map → p-9218da42.entry.js.map} +0 -0
  625. /package/dist/web-components-library/{p-2cc8c5a5.entry.js.map → p-972098a5.entry.js.map} +0 -0
  626. /package/dist/web-components-library/{p-ecaca2df.entry.js.map → p-9f0a3d88.entry.js.map} +0 -0
  627. /package/dist/web-components-library/{p-65c59027.entry.js.map → p-aa42f01d.entry.js.map} +0 -0
  628. /package/dist/web-components-library/{p-add2b5e8.entry.js.map → p-ad825740.entry.js.map} +0 -0
  629. /package/dist/web-components-library/{p-76d8d404.entry.js.map → p-b309bd71.entry.js.map} +0 -0
  630. /package/dist/web-components-library/{p-b896dcf7.entry.js.map → p-b38be247.entry.js.map} +0 -0
  631. /package/dist/web-components-library/{p-ac03a6cc.entry.js.map → p-bbd492d3.entry.js.map} +0 -0
  632. /package/dist/web-components-library/{p-6f69c2b6.js.map → p-c13ef624.js.map} +0 -0
  633. /package/dist/web-components-library/{p-0eab0213.entry.js.map → p-caccf490.entry.js.map} +0 -0
  634. /package/dist/web-components-library/{p-3f8725c1.entry.js.map → p-cb8aec27.entry.js.map} +0 -0
  635. /package/dist/web-components-library/{p-cc6406ab.entry.js.map → p-deb86b5c.entry.js.map} +0 -0
  636. /package/dist/web-components-library/{p-efe1de34.entry.js.map → p-ea36d666.entry.js.map} +0 -0
  637. /package/dist/web-components-library/{p-9078dfd7.entry.js.map → p-f06bd257.entry.js.map} +0 -0
  638. /package/dist/web-components-library/{p-2f486acc.entry.js.map → p-f075ec62.entry.js.map} +0 -0
  639. /package/dist/web-components-library/{p-27a59513.entry.js.map → p-f8915e2e.entry.js.map} +0 -0
  640. /package/dist/web-components-library/{p-068b15fc.entry.js.map → p-fb06a5d8.entry.js.map} +0 -0
  641. /package/dist/web-components-library/{p-f400cf1b.js.map → p-feb84d36.js.map} +0 -0
  642. /package/www/build/{p-a707640a.entry.js.map → p-015621c8.entry.js.map} +0 -0
  643. /package/www/build/{p-93069a90.entry.js.map → p-035807e3.entry.js.map} +0 -0
  644. /package/www/build/{p-cd55204b.js.map → p-037c59b3.js.map} +0 -0
  645. /package/www/build/{p-479b13ae.entry.js.map → p-0565f1b2.entry.js.map} +0 -0
  646. /package/www/build/{p-65f993a4.entry.js.map → p-08d8f935.entry.js.map} +0 -0
  647. /package/www/build/{p-95795174.entry.js.map → p-0df6b405.entry.js.map} +0 -0
  648. /package/www/build/{p-914e20e9.entry.js.map → p-11629dd3.entry.js.map} +0 -0
  649. /package/www/build/{p-90d54c40.js.map → p-123739cb.js.map} +0 -0
  650. /package/www/build/{p-7c6dad4b.js.map → p-14e61df6.js.map} +0 -0
  651. /package/www/build/{p-2e48ff6b.entry.js.map → p-18d63f0c.entry.js.map} +0 -0
  652. /package/www/build/{p-8b627bff.entry.js.map → p-20b628e7.entry.js.map} +0 -0
  653. /package/www/build/{p-cc87d814.entry.js.map → p-22d56699.entry.js.map} +0 -0
  654. /package/www/build/{p-2c6519dc.entry.js.map → p-2798c0b2.entry.js.map} +0 -0
  655. /package/www/build/{p-83cd8d7c.entry.js.map → p-2a0d8ebe.entry.js.map} +0 -0
  656. /package/www/build/{p-2f3732d9.entry.js.map → p-2aeb2a94.entry.js.map} +0 -0
  657. /package/www/build/{p-34d82be5.entry.js.map → p-2c450113.entry.js.map} +0 -0
  658. /package/www/build/{p-c57bb632.entry.js.map → p-2dcf53b3.entry.js.map} +0 -0
  659. /package/www/build/{p-40280990.entry.js.map → p-30170218.entry.js.map} +0 -0
  660. /package/www/build/{p-e9149664.entry.js.map → p-34f4f441.entry.js.map} +0 -0
  661. /package/www/build/{p-73d089fe.entry.js.map → p-384baa02.entry.js.map} +0 -0
  662. /package/www/build/{p-46ce378d.entry.js.map → p-395b261e.entry.js.map} +0 -0
  663. /package/www/build/{p-4a058a26.entry.js.map → p-42559870.entry.js.map} +0 -0
  664. /package/www/build/{p-92da97fb.entry.js.map → p-4374d3f3.entry.js.map} +0 -0
  665. /package/www/build/{p-ec4d7f60.js.map → p-4c462e7f.js.map} +0 -0
  666. /package/www/build/{p-c0588dbe.entry.js.map → p-4fedcbc2.entry.js.map} +0 -0
  667. /package/www/build/{p-7db32c12.entry.js.map → p-50bf57b4.entry.js.map} +0 -0
  668. /package/www/build/{p-8f47b574.entry.js.map → p-52be7378.entry.js.map} +0 -0
  669. /package/www/build/{p-9e183204.entry.js.map → p-54a70792.entry.js.map} +0 -0
  670. /package/www/build/{p-c9913f1e.entry.js.map → p-5f04d9eb.entry.js.map} +0 -0
  671. /package/www/build/{p-7d844bac.entry.js.map → p-60a9cb8b.entry.js.map} +0 -0
  672. /package/www/build/{p-ddae9016.entry.js.map → p-6230c432.entry.js.map} +0 -0
  673. /package/www/build/{p-382e2939.entry.js.map → p-6e1ba2f0.entry.js.map} +0 -0
  674. /package/www/build/{p-3ce0d28c.entry.js.map → p-7095262b.entry.js.map} +0 -0
  675. /package/www/build/{p-af4b759a.entry.js.map → p-72dae90b.entry.js.map} +0 -0
  676. /package/www/build/{p-0d1dbe04.entry.js.map → p-8c952964.entry.js.map} +0 -0
  677. /package/www/build/{p-18fbbf63.entry.js.map → p-9187ce36.entry.js.map} +0 -0
  678. /package/www/build/{p-08691c77.entry.js.map → p-9218da42.entry.js.map} +0 -0
  679. /package/www/build/{p-2cc8c5a5.entry.js.map → p-972098a5.entry.js.map} +0 -0
  680. /package/www/build/{p-ecaca2df.entry.js.map → p-9f0a3d88.entry.js.map} +0 -0
  681. /package/www/build/{p-65c59027.entry.js.map → p-aa42f01d.entry.js.map} +0 -0
  682. /package/www/build/{p-add2b5e8.entry.js.map → p-ad825740.entry.js.map} +0 -0
  683. /package/www/build/{p-76d8d404.entry.js.map → p-b309bd71.entry.js.map} +0 -0
  684. /package/www/build/{p-b896dcf7.entry.js.map → p-b38be247.entry.js.map} +0 -0
  685. /package/www/build/{p-ac03a6cc.entry.js.map → p-bbd492d3.entry.js.map} +0 -0
  686. /package/www/build/{p-6f69c2b6.js.map → p-c13ef624.js.map} +0 -0
  687. /package/www/build/{p-0eab0213.entry.js.map → p-caccf490.entry.js.map} +0 -0
  688. /package/www/build/{p-3f8725c1.entry.js.map → p-cb8aec27.entry.js.map} +0 -0
  689. /package/www/build/{p-cc6406ab.entry.js.map → p-deb86b5c.entry.js.map} +0 -0
  690. /package/www/build/{p-efe1de34.entry.js.map → p-ea36d666.entry.js.map} +0 -0
  691. /package/www/build/{p-9078dfd7.entry.js.map → p-f06bd257.entry.js.map} +0 -0
  692. /package/www/build/{p-2f486acc.entry.js.map → p-f075ec62.entry.js.map} +0 -0
  693. /package/www/build/{p-27a59513.entry.js.map → p-f8915e2e.entry.js.map} +0 -0
  694. /package/www/build/{p-068b15fc.entry.js.map → p-fb06a5d8.entry.js.map} +0 -0
  695. /package/www/build/{p-f400cf1b.js.map → p-feb84d36.js.map} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"names":["stylesCss","ZMenuStyle0","isZMenuSection","el","tagName","ZMenu","focusableItem","this","items","find","item","htmlTabindex","tabIndex","toggle","hasContent","open","onLabelSlotChange","ev","labelElement","target","assignedElements","dataset","text","textContent","setLabelA11yAttrs","reflow","live","floating","content","style","left","host","getBoundingClientRect","widthPx","getComputedStyle","width","parseFloat","replace","safeScrollbarSpace","Math","min","window","innerWidth","raf","requestAnimationFrame","bind","checkContent","hasHeader","querySelectorAll","length","setItemTabindex","setItemsA11yAttrs","forEach","index","tabindex","setAttribute","onItemsChange","Array","from","children","filter","slot","moveFocus","receiver","current","setFocus","setTimeout","focus","onLabelClick","onLabelKeydown","key","KeyboardCode","ENTER","SPACE","preventDefault","stopPropagation","verticalContext","ARROW_RIGHT","label","labelButton","firstElementChild","focusLastItem","lastItem","onOpenChanged","cancelAnimationFrame","closed","emit","opened","slottedLabel","role","onItemClick","clickedItem","containsElement","onKeyDown","ESC","ARROW_DOWN","document","activeElement","currentIndex","indexOf","ARROW_UP","_a","ARROW_LEFT","constructor","hostRef","componentWillLoad","render","h","class","onSlotchange","Host","ref","onClick","name"],"sources":["src/components/z-menu/styles.css?tag=z-menu&encapsulation=shadow","src/components/z-menu/index.tsx"],"sourcesContent":[":host,\n::slotted(*),\n* {\n box-sizing: border-box;\n outline: none;\n}\n\n:host {\n --z-menu-label-color: ;\n\n position: relative;\n display: inline-flex;\n height: fit-content;\n flex-direction: column;\n}\n\n::slotted(a) {\n text-decoration: none;\n}\n\n::slotted(*) {\n color: var(--color-default-text);\n font-family: var(--font-family-sans);\n font-weight: var(--font-rg);\n}\n\n.menu-label {\n position: relative;\n display: flex;\n width: 100%;\n align-items: center;\n padding: 0;\n border: 0;\n border-bottom: var(--border-size-large) solid transparent;\n margin: 0;\n background: transparent;\n border-radius: 0;\n color: inherit;\n text-align: left;\n}\n\nbutton.menu-label {\n cursor: pointer;\n}\n\n.menu-label:focus-visible,\ndiv.menu-label:focus-within {\n box-shadow: var(--shadow-focus-primary);\n}\n\n:host(:is([active], [open])) .menu-label ::slotted(*),\n.menu-label:focus-visible ::slotted(*),\ndiv.menu-label:focus-within ::slotted(*) {\n color: var(--color-primary01);\n font-weight: var(--font-bd);\n}\n\n:host([vertical-context]) .menu-label {\n padding: var(--space-unit) 0;\n border-width: var(--border-size-small);\n border-color: var(--color-surface03);\n}\n\n:host(:is([active], [open])) .menu-label,\n.menu-label:hover,\n.menu-label:focus-visible,\ndiv.menu-label:focus-within {\n border-color: var(--color-secondary01);\n}\n\n:host([vertical-context]:is([active], [open])) .menu-label::after,\n:host([vertical-context]) .menu-label:hover::after,\n:host([vertical-context]) .menu-label:focus-visible::after,\n:host([vertical-context]) div.menu-label:focus-within::after {\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n height: var(--border-size-large);\n background-color: var(--color-secondary01);\n content: \"\";\n}\n\n:host([vertical-context]) .menu-label ::slotted(*) {\n padding: 0;\n}\n\n.menu-label ::slotted(*) {\n display: inline-flex;\n width: 100%;\n min-width: fit-content;\n padding-bottom: 2px;\n margin: 0;\n appearance: none;\n color: var(--z-menu-label-color, var(--color-default-text));\n font-family: var(--font-family-sans);\n font-size: var(--font-size-3);\n font-weight: inherit;\n line-height: 1.5;\n white-space: nowrap;\n}\n\n.menu-label z-icon {\n margin-left: calc(var(--space-unit) * 1.5);\n fill: var(--color-default-icon);\n}\n\n/* Prevents layout shifts on font-weight changes.\nThe trick is to put an hidden copy of the text already set to bold,\nso the needed space is correctly calculated before any hover/active state changes the\nfont-weight of the real text.\nThe hidden text has an height of 0px so it can expand the width without changing the height\nwhen placed below the real text using `flex-direction: column`. */\n::slotted([data-text]:not([slot]))::after {\n height: 0;\n content: attr(data-text);\n content: attr(data-text) / \"\";\n font-weight: var(--font-bd);\n letter-spacing: normal;\n pointer-events: none;\n user-select: none;\n visibility: hidden;\n}\n\n@media speech {\n ::slotted([data-text]:not([slot]))::after {\n display: none;\n }\n}\n\n::slotted([data-text]:not([slot])) {\n display: inline-flex;\n flex-direction: column;\n}\n\n.content {\n background: var(--color-surface01);\n}\n\n:host(:not([open])) .content {\n display: none;\n}\n\n:host([floating]:not([vertical-context])) .content {\n position: absolute;\n top: 100%;\n left: 0;\n width: 375px;\n min-width: 100%;\n max-width: 100vw;\n padding: 0 calc(var(--space-unit) * 2);\n box-shadow: var(--shadow-2);\n}\n\n:host(:not([floating])) .content {\n width: 100%;\n}\n\n.header {\n display: flex;\n align-items: center;\n padding: var(--space-unit) 0 calc(var(--space-unit) * 2);\n}\n\n.header ::slotted(img[slot=\"header\"]) {\n width: calc(var(--space-unit) * 11.25);\n height: auto;\n object-fit: contain;\n}\n\n.header ::slotted([slot=\"header\"]:not(:first-child)) {\n margin: auto 0;\n margin-left: calc(var(--space-unit) * 2.5);\n font-size: var(--font-size-3);\n font-weight: var(--font-sb);\n line-height: 1.5;\n}\n\n.items {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n background: inherit;\n}\n\n.items > ::slotted([slot=\"item\"]) {\n width: 100%;\n margin: 0;\n font-size: var(--font-size-3);\n line-height: 1.5;\n}\n\n.items > ::slotted([slot=\"item\"]:focus:focus-visible) {\n box-shadow: var(--shadow-focus-primary);\n}\n\n.items > ::slotted([slot=\"item\"]:not(z-menu-section)) {\n padding: var(--space-unit) 0;\n border-bottom: var(--border-size-small) solid var(--color-surface03);\n}\n\n:host(:not([vertical-context])) .items > ::slotted([slot=\"item\"]:last-child) {\n border-bottom: 0;\n}\n\n.items > ::slotted([slot=\"item\"]:hover),\n.items > ::slotted([slot=\"item\"]:focus:focus-visible),\n.items > ::slotted([slot=\"item\"]:active) {\n border-color: var(--color-secondary01);\n font-weight: var(--font-bd);\n}\n","import {Component, Element, Event, EventEmitter, Host, Listen, Method, Prop, State, Watch, h} from \"@stencil/core\";\nimport {KeyboardCode} from \"../../beans\";\nimport {containsElement} from \"../../utils/utils\";\n\nconst isZMenuSection = (el: HTMLElement | HTMLZMenuSectionElement): el is HTMLZMenuSectionElement =>\n el?.tagName === \"Z-MENU-SECTION\";\n\n/**\n * @slot - Menu label\n * @slot header - Header to display as the first entry of the open menu.\n * @slot item - Single entry of the section. Can be slotted multiple times to insert items onto the menu. Set the `active` HTML attribute on the element to highlight it. Use `z-menu-section` for submenus.\n * @cssprop --z-menu-label-color - Color of the label's text.\n */\n@Component({\n tag: \"z-menu\",\n styleUrl: \"styles.css\",\n shadow: true,\n})\nexport class ZMenu {\n @Element() host: HTMLZMenuElement;\n\n /** Flag to set the active status of the menu. */\n @Prop({reflect: true})\n active?: boolean;\n\n /**\n * Flag to set the display mode of the list.\n * If true, the list will be absolutely positioned under the menu label,\n * stacked beneath it otherwise.\n */\n @Prop({reflect: true})\n floating? = true;\n\n /** The opening state of the menu. */\n @Prop({mutable: true, reflect: true})\n open = false;\n\n /**\n * Tells the component that it's placed in a vertical context with other `ZMenu`s (usually in the ZAppHeader's offcanvas).\n * A small border is placed under it as a separator from other elements.\n */\n @Prop({reflect: true})\n verticalContext = false;\n\n /**\n * Tabindex value to set on the menu label.\n * Useful to manage keyboard navigation focus with roving tabindex handled by this component's parent (usually ZAppHeader).\n */\n @Prop()\n htmlTabindex = -1;\n\n @State()\n hasHeader: boolean;\n\n @State()\n hasContent: boolean;\n\n /** The menu has been opened. */\n @Event()\n opened: EventEmitter;\n\n /** The menu has been closed. */\n @Event()\n closed: EventEmitter;\n\n private labelButton: HTMLButtonElement;\n\n private content: HTMLElement;\n\n private items: (HTMLElement | HTMLZMenuSectionElement)[] = [];\n\n /** Animation frame request id. */\n private raf: number;\n\n private get focusableItem(): HTMLZMenuSectionElement | HTMLElement | null {\n return this.items.find((item) => (isZMenuSection(item) ? item.htmlTabindex === 0 : item.tabIndex === 0));\n }\n\n private toggle(): void {\n if (!this.hasContent) {\n return;\n }\n\n this.open = !this.open;\n }\n\n /**\n * Sets slotted item text as `data-text` attribute value, to let CSS use it through `attr()`.\n * @param ev Slotchange event\n */\n private onLabelSlotChange(ev: Event): void {\n const labelElement = (ev.target as HTMLSlotElement).assignedElements()[0] as HTMLElement;\n labelElement.dataset.text = labelElement?.textContent;\n this.setLabelA11yAttrs();\n }\n\n /**\n * Correctly set position of the floating menu in order to prevent overflow.\n * @param live Should run the method on every refresh frame.\n */\n private reflow(live = false): void {\n if (!this.floating) {\n return;\n }\n\n if (this.content && this.hasContent) {\n const {style} = this.content;\n const {left} = this.host.getBoundingClientRect();\n const widthPx = getComputedStyle(this.content).width;\n const width = widthPx ? parseFloat(widthPx.replace(\"px\", \"\")) : 375;\n const safeScrollbarSpace = 30;\n style.left = `${Math.min(window.innerWidth - left - width - safeScrollbarSpace, 0)}px`;\n }\n if (live) {\n this.raf = requestAnimationFrame(this.reflow.bind(this, live));\n }\n }\n\n /**\n * Check if some content slot is set.\n */\n private checkContent(): void {\n this.hasHeader = !!this.host.querySelectorAll(\"[slot=header]\").length;\n this.hasContent = !!this.host.querySelectorAll(\"[slot=item]\").length || this.hasHeader;\n }\n\n private setItemTabindex(item: HTMLElement | HTMLZMenuSectionElement, tabIndex: number): void {\n if (isZMenuSection(item)) {\n item.htmlTabindex = tabIndex;\n } else {\n item.tabIndex = tabIndex;\n }\n }\n\n /**\n * Set `menuitem` role to all menu items (ZMenuSection items already have it).\n * Set -1 to the tabindex of the items and 0 to the first one.\n */\n private setItemsA11yAttrs(): void {\n this.items.forEach((item, index) => {\n const tabindex = index === 0 ? 0 : -1;\n this.setItemTabindex(item, tabindex);\n if (!isZMenuSection(item)) {\n item.setAttribute(\"role\", \"menuitem\");\n }\n });\n }\n\n private onItemsChange(): void {\n this.checkContent();\n this.items = Array.from(this.host.children).filter(({slot}) => slot === \"item\") as HTMLElement[];\n this.setItemsA11yAttrs();\n this.items.forEach((item) => {\n if (!isZMenuSection(item)) {\n item.dataset.text = item.textContent;\n }\n });\n }\n\n /**\n * Move focus and adjust the tabindex value of `receiver` and `current` elements,\n * setting -1 to the `current` and 0 to the `receiver`, then focus the `receiver` element.\n * If the receiver is a ZMenuSection and it's open, focus its first focusable item.\n */\n private moveFocus(\n receiver: HTMLElement | HTMLZMenuSectionElement,\n current?: HTMLElement | HTMLZMenuSectionElement\n ): void {\n if (isZMenuSection(receiver)) {\n receiver.setFocus();\n } else {\n receiver.tabIndex = 0;\n setTimeout(() => {\n receiver.focus();\n }, 100);\n }\n if (!current) {\n return;\n }\n\n this.setItemTabindex(current, -1);\n }\n\n private onLabelClick(): void {\n this.toggle();\n this.setFocus();\n }\n\n private onLabelKeydown(ev: KeyboardEvent): void {\n if (ev.key === KeyboardCode.ENTER || ev.key === KeyboardCode.SPACE) {\n ev.preventDefault();\n ev.stopPropagation();\n this.toggle();\n if (this.open) {\n this.moveFocus(this.items[0]);\n }\n\n return;\n }\n\n if (!this.verticalContext) {\n return;\n }\n\n if (ev.key === KeyboardCode.ARROW_RIGHT && !this.open) {\n ev.preventDefault();\n ev.stopPropagation();\n this.open = true;\n this.moveFocus(this.items[0]);\n }\n }\n\n /** Set tabindex of the label to 0, then focus it. */\n @Method()\n async setFocus(): Promise<void> {\n this.htmlTabindex = 0;\n const label = this.hasContent ? this.labelButton : (this.host.firstElementChild as HTMLElement);\n label.focus();\n }\n\n /**\n * Focus the last item.\n */\n @Method()\n async focusLastItem(): Promise<void> {\n const lastItem = this.items[this.items.length - 1];\n if (isZMenuSection(lastItem) && lastItem.open) {\n lastItem.focusLastItem();\n\n return;\n }\n\n this.moveFocus(lastItem);\n }\n\n @Watch(\"open\")\n onOpenChanged(): void {\n if (!this.open) {\n cancelAnimationFrame(this.raf);\n this.closed.emit();\n this.items.forEach((item) => {\n if (isZMenuSection(item) && item.open) {\n item.open = false;\n }\n });\n\n return;\n }\n\n this.setItemsA11yAttrs();\n this.opened.emit();\n if (this.floating) {\n this.reflow(true);\n }\n }\n\n @Watch(\"htmlTabindex\")\n setLabelA11yAttrs(): void {\n if (this.hasContent && this.labelButton) {\n this.labelButton.tabIndex = this.htmlTabindex;\n\n return;\n }\n\n const slottedLabel = this.host.firstElementChild as HTMLElement;\n slottedLabel.role = \"menuitem\";\n slottedLabel.tabIndex = this.htmlTabindex;\n }\n\n /**\n * Set tabindex to -1 to all siblings of the clicked item.\n */\n @Listen(\"click\", {target: \"document\"})\n onItemClick(ev: MouseEvent): void {\n const clickedItem = this.items.find((item) => containsElement(item, ev.target as HTMLElement));\n if (clickedItem) {\n this.items.forEach((item) => {\n if (item === clickedItem) {\n return;\n }\n\n if (isZMenuSection(item)) {\n item.htmlTabindex = -1;\n } else {\n item.tabIndex = -1;\n }\n });\n }\n }\n\n @Listen(\"keydown\")\n onKeyDown(ev: KeyboardEvent): void {\n if (!this.hasContent) {\n return;\n }\n\n switch (ev.key) {\n case KeyboardCode.ESC:\n if (!this.open) {\n break;\n }\n ev.stopPropagation();\n ev.preventDefault();\n this.open = false;\n this.setFocus();\n break;\n case KeyboardCode.ARROW_DOWN: {\n if (document.activeElement === this.host) {\n if (this.verticalContext && !this.open) {\n break;\n }\n\n ev.stopPropagation();\n ev.preventDefault();\n if (!this.open) {\n this.open = true;\n }\n this.moveFocus(this.items[0]);\n break;\n }\n\n const currentIndex = this.items.indexOf(this.focusableItem);\n if (this.verticalContext && currentIndex === this.items.length - 1) {\n // navigation is going to leave this menu. restore tabindex to the label and let the parent handle it\n this.setItemTabindex(this.items[currentIndex], -1);\n this.htmlTabindex = 0;\n break;\n }\n\n ev.stopPropagation();\n ev.preventDefault();\n const receiver = this.items[currentIndex + 1];\n // if the last item is already focused, navigate to the first one\n this.moveFocus(receiver ?? this.items[0], this.focusableItem);\n break;\n }\n case KeyboardCode.ARROW_UP: {\n if (document.activeElement === this.host) {\n if (this.verticalContext) {\n break;\n }\n\n ev.stopPropagation();\n ev.preventDefault();\n // open the menu and focus the last item\n if (!this.open) {\n this.open = true;\n }\n this.moveFocus(this.items[this.items.length - 1], this.focusableItem);\n break;\n }\n\n ev.stopPropagation();\n ev.preventDefault();\n const currentIndex = this.items.indexOf(this.focusableItem);\n if (currentIndex === 0 && this.verticalContext) {\n this.setItemTabindex(this.focusableItem, -1);\n this.setFocus();\n break;\n }\n\n const receiver = this.items[currentIndex - 1] ?? this.items[this.items.length - 1];\n // if the receiver is a ZMenuSection and it's open, focus its last item\n if (isZMenuSection(receiver) && receiver.open) {\n this.setItemTabindex(this.focusableItem, -1);\n receiver.focusLastItem();\n break;\n }\n\n this.moveFocus(receiver, this.focusableItem);\n break;\n }\n case KeyboardCode.ARROW_LEFT:\n if (!this.open || !this.verticalContext) {\n break;\n }\n\n // close the menu and focus the label\n ev.preventDefault();\n ev.stopPropagation();\n this.open = false;\n this.setFocus();\n }\n }\n\n constructor() {\n this.toggle = this.toggle.bind(this);\n this.checkContent = this.checkContent.bind(this);\n this.onLabelSlotChange = this.onLabelSlotChange.bind(this);\n this.onLabelClick = this.onLabelClick.bind(this);\n this.onItemsChange = this.onItemsChange.bind(this);\n this.onLabelKeydown = this.onLabelKeydown.bind(this);\n }\n\n componentWillLoad(): void {\n this.setLabelA11yAttrs();\n this.onItemsChange();\n }\n\n render(): HTMLDivElement | HTMLZMenuElement {\n if (!this.hasContent) {\n return (\n <div class=\"menu-label\">\n <slot onSlotchange={this.onLabelSlotChange} />\n </div>\n );\n }\n\n return (\n <Host>\n <button\n ref={(el) => (this.labelButton = el)}\n class=\"menu-label\"\n aria-expanded={`${!!this.open}`}\n aria-haspopup={`${this.hasContent}`}\n aria-label={this.open ? \"Chiudi menù\" : \"Apri menù\"}\n role=\"menuitem\"\n tabIndex={this.htmlTabindex}\n onClick={this.onLabelClick}\n onKeyDown={this.onLabelKeydown}\n >\n <slot onSlotchange={this.onLabelSlotChange} />\n <z-icon name={this.open ? \"chevron-up\" : \"chevron-down\"} />\n </button>\n\n <div\n class=\"content\"\n ref={(el) => (this.content = el)}\n >\n {this.hasHeader && (\n <header class=\"header\">\n <slot\n name=\"header\"\n onSlotchange={this.checkContent}\n />\n </header>\n )}\n\n <div\n class=\"items\"\n role=\"menu\"\n >\n <slot\n name=\"item\"\n onSlotchange={this.onItemsChange}\n />\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{r as t,h as e,a as s}from"./p-75c4a726.js";import{A as i}from"./p-b34993de.js";const a=":host{display:inline-flex;overflow:hidden;align-items:center;justify-content:center;background-color:var(--gray700);border-radius:50%;font-family:var(--font-family-sans);text-transform:uppercase}:host(.small),:host(.small)>img{width:calc(var(--space-unit) * 3);height:calc(var(--space-unit) * 3)}:host(.medium),:host(.medium)>img{width:calc(var(--space-unit) * 4);height:calc(var(--space-unit) * 4)}:host(.large),:host(.large)>img{width:calc(var(--space-unit) * 5);height:calc(var(--space-unit) * 5)}:host>img{object-fit:cover}";const r=a;const o=class{constructor(e){t(this,e);var s,a;this.size=i.MEDIUM;this.text=undefined;this.textColor="color-white";this.backgroundColor="gray700";this.image=undefined;if(((s=this.text)===null||s===void 0?void 0:s.length)===0&&((a=this.image)===null||a===void 0?void 0:a.length)===0){console.warn("z-avatar must contain at least one prop between text and image")}}getTextSize(){if(this.size===i.SMALL){return"5"}else if(this.size===i.MEDIUM){return"4"}else if(this.size===i.LARGE){return"2"}}render(){return e(s,{key:"8e88834e461e837323d45fa67043d8c34426cd83",class:{[this.size]:true,[`body-${this.getTextSize()}-sb`]:true},style:{color:`var(--${this.textColor})`,backgroundColor:`var(--${this.backgroundColor})`}},this.text&&!this.image&&e("span",{key:"72e6843ab2f556bf7df177581155f447dae5d8db"},this.text.substring(0,2)),this.image&&e("img",{key:"7f8db000d814873364f4df585e1f6813e4373747",src:this.image,onError:()=>this.image=""}))}};o.style=r;export{o as z_avatar};
2
- //# sourceMappingURL=p-5ccbdfbe.entry.js.map
@@ -1,2 +0,0 @@
1
- import{r as t,c as e,h as i,g as o}from"./p-75c4a726.js";import{g as n}from"./p-b34993de.js";const a=":host{font-family:var(--font-family-sans);font-weight:var(--font-rg)}:host>.dragdrop{position:relative;display:flex;height:228px;flex-direction:column;padding:calc(var(--space-unit) * 2);border-color:var(--color-surface04);background-color:var(--color-background);background-image:url(\"data:image/svg+xml,%3csvg width='100%25' height='100%25' xmlns='http://www.w3.org/2000/svg'%3e%3crect width='100%25' height='100%25' fill='none' rx='2' ry='2' stroke='%23CACCCEFF' stroke-width='2' stroke-dasharray='15%2c 10%2c 14%2c 11' stroke-dashoffset='3' stroke-linecap='square'/%3e%3c/svg%3e\");border-radius:2px;color:var(--color-default-text)}:host>.dragdrop:focus-visible{box-shadow:var(--shadow-focus-primary);outline:none !important}:host>.dragdrop.dragover *{pointer-events:none}:host>.dragdrop .dragover-container{position:absolute;z-index:10;top:0;left:0;display:none;width:100%;height:100%;background-color:var(--color-primary03);box-shadow:var(--shadow-focus-primary)}:host>.dragdrop .dragover-container .dragover-message{padding:10px 28px;background-color:var(--color-primary01);color:var(--color-text-inverse)}:host>.dragdrop.dragover .dragover-container{display:flex;align-items:center;justify-content:center}";const r=a;const s=class{constructor(i){t(this,i);this.fileDropped=e(this,"fileDropped",7);this.dragAndDropLabel=undefined}fileDroppedHandler(t){this.fileDropped.emit(t)}renderOnDragOverMessage(){return i("div",{class:"dragover-container"},i("div",{class:"dragover-message"},i("span",{class:"body-2-sb"},this.dragAndDropLabel)))}render(){return i("div",{key:"fcf1a3aa4e0a0b019f1d3f4ee5c7c353b58eb37d",tabIndex:0,ref:t=>this.dragDropContainer=t,class:"dragdrop",onDragOver:t=>{t.preventDefault();this.dragDropContainer.classList.add("dragover")},onDragLeave:()=>{this.dragDropContainer.classList.remove("dragover")},onDrop:t=>{t.preventDefault();if(t.dataTransfer.files.length){this.dragDropContainer.classList.remove("dragover");this.fileDroppedHandler(t.dataTransfer.files)}}},this.renderOnDragOverMessage(),i("slot",{key:"6fed0f0841a77882e225c16ded895758c5c95998"}))}};s.style=r;var d=window.CustomEvent;if(!d||typeof d==="object"){d=function t(e,i){i=i||{};var o=document.createEvent("CustomEvent");o.initCustomEvent(e,!!i.bubbles,!!i.cancelable,i.detail||null);return o};d.prototype=window.Event.prototype}function l(t,e){var i="on"+e.type.toLowerCase();if(typeof t[i]==="function"){t[i](e)}return t.dispatchEvent(e)}function c(t){while(t&&t!==document.body){var e=window.getComputedStyle(t);var i=function(t,i){return!(e[t]===undefined||e[t]===i)};if(e.opacity<1||i("zIndex","auto")||i("transform","none")||i("mixBlendMode","normal")||i("filter","none")||i("perspective","none")||e["isolation"]==="isolate"||e.position==="fixed"||e.webkitOverflowScrolling==="touch"){return true}t=t.parentElement}return false}function h(t){while(t){if(t.localName==="dialog"){return t}if(t.parentElement){t=t.parentElement}else if(t.parentNode){t=t.parentNode.host}else{t=null}}return null}function u(t){while(t&&t.shadowRoot&&t.shadowRoot.activeElement){t=t.shadowRoot.activeElement}if(t&&t.blur&&t!==document.body){t.blur()}}function f(t,e){for(var i=0;i<t.length;++i){if(t[i]===e){return true}}return false}function m(t){if(!t||!t.hasAttribute("method")){return false}return t.getAttribute("method").toLowerCase()==="dialog"}function v(t){var e=["button","input","keygen","select","textarea"];var i=e.map((function(t){return t+":not([disabled])"}));i.push('[tabindex]:not([disabled]):not([tabindex=""])');var o=t.querySelector(i.join(", "));if(!o&&"attachShadow"in Element.prototype){var n=t.querySelectorAll("*");for(var a=0;a<n.length;a++){if(n[a].tagName&&n[a].shadowRoot){o=v(n[a].shadowRoot);if(o){break}}}}return o}function p(t){return t.isConnected||document.body.contains(t)}function g(t){if(t.submitter){return t.submitter}var e=t.target;if(!(e instanceof HTMLFormElement)){return null}var i=y.formSubmitter;if(!i){var o=t.target;var n="getRootNode"in o&&o.getRootNode()||document;i=n.activeElement}if(!i||i.form!==e){return null}return i}function b(t){if(t.defaultPrevented){return}var e=t.target;var i=y.imagemapUseValue;var o=g(t);if(i===null&&o){i=o.value}var n=h(e);if(!n){return}var a=o&&o.getAttribute("formmethod")||e.getAttribute("method");if(a!=="dialog"){return}t.preventDefault();if(i!=null){n.close(i)}else{n.close()}}function w(t){this.dialog_=t;this.replacedStyleTop_=false;this.openAsModal_=false;if(!t.hasAttribute("role")){t.setAttribute("role","dialog")}t.show=this.show.bind(this);t.showModal=this.showModal.bind(this);t.close=this.close.bind(this);t.addEventListener("submit",b,false);if(!("returnValue"in t)){t.returnValue=""}if("MutationObserver"in window){var e=new MutationObserver(this.maybeHideModal.bind(this));e.observe(t,{attributes:true,attributeFilter:["open"]})}else{var i=false;var o=function(){i?this.downgradeModal():this.maybeHideModal();i=false}.bind(this);var n;var a=function(e){if(e.target!==t){return}var a="DOMNodeRemoved";i|=e.type.substr(0,a.length)===a;window.clearTimeout(n);n=window.setTimeout(o,0)};["DOMAttrModified","DOMNodeRemoved","DOMNodeRemovedFromDocument"].forEach((function(e){t.addEventListener(e,a)}))}Object.defineProperty(t,"open",{set:this.setOpen.bind(this),get:t.hasAttribute.bind(t,"open")});this.backdrop_=document.createElement("div");this.backdrop_.className="backdrop";this.backdrop_.addEventListener("mouseup",this.backdropMouseEvent_.bind(this));this.backdrop_.addEventListener("mousedown",this.backdropMouseEvent_.bind(this));this.backdrop_.addEventListener("click",this.backdropMouseEvent_.bind(this))}w.prototype={get dialog(){return this.dialog_},maybeHideModal:function(){if(this.dialog_.hasAttribute("open")&&p(this.dialog_)){return}this.downgradeModal()},downgradeModal:function(){if(!this.openAsModal_){return}this.openAsModal_=false;this.dialog_.style.zIndex="";if(this.replacedStyleTop_){this.dialog_.style.top="";this.replacedStyleTop_=false}this.backdrop_.parentNode&&this.backdrop_.parentNode.removeChild(this.backdrop_);y.dm.removeDialog(this)},setOpen:function(t){if(t){this.dialog_.hasAttribute("open")||this.dialog_.setAttribute("open","")}else{this.dialog_.removeAttribute("open");this.maybeHideModal()}},backdropMouseEvent_:function(t){if(!this.dialog_.hasAttribute("tabindex")){var e=document.createElement("div");this.dialog_.insertBefore(e,this.dialog_.firstChild);e.tabIndex=-1;e.focus();this.dialog_.removeChild(e)}else{this.dialog_.focus()}var i=document.createEvent("MouseEvents");i.initMouseEvent(t.type,t.bubbles,t.cancelable,window,t.detail,t.screenX,t.screenY,t.clientX,t.clientY,t.ctrlKey,t.altKey,t.shiftKey,t.metaKey,t.button,t.relatedTarget);this.dialog_.dispatchEvent(i);t.stopPropagation()},focus_:function(){var t=this.dialog_.querySelector("[autofocus]:not([disabled])");if(!t&&this.dialog_.tabIndex>=0){t=this.dialog_}if(!t){t=v(this.dialog_)}u(document.activeElement);t&&t.focus()},updateZIndex:function(t,e){if(t<e){throw new Error("dialogZ should never be < backdropZ")}this.dialog_.style.zIndex=t;this.backdrop_.style.zIndex=e},show:function(){if(!this.dialog_.open){this.setOpen(true);this.focus_()}},showModal:function(){if(this.dialog_.hasAttribute("open")){throw new Error("Failed to execute 'showModal' on dialog: The element is already open, and therefore cannot be opened modally.")}if(!p(this.dialog_)){throw new Error("Failed to execute 'showModal' on dialog: The element is not in a Document.")}if(!y.dm.pushDialog(this)){throw new Error("Failed to execute 'showModal' on dialog: There are too many open modal dialogs.")}if(c(this.dialog_.parentElement)){console.warn("A dialog is being shown inside a stacking context. "+"This may cause it to be unusable. For more information, see this link: "+"https://github.com/GoogleChrome/dialog-polyfill/#stacking-context")}this.setOpen(true);this.openAsModal_=true;if(y.needsCentering(this.dialog_)){y.reposition(this.dialog_);this.replacedStyleTop_=true}else{this.replacedStyleTop_=false}this.dialog_.parentNode.insertBefore(this.backdrop_,this.dialog_.nextSibling);this.focus_()},close:function(t){if(!this.dialog_.hasAttribute("open")){throw new Error("Failed to execute 'close' on dialog: The element does not have an 'open' attribute, and therefore cannot be closed.")}this.setOpen(false);if(t!==undefined){this.dialog_.returnValue=t}var e=new d("close",{bubbles:false,cancelable:false});l(this.dialog_,e)}};var y={};y.reposition=function(t){var e=document.body.scrollTop||document.documentElement.scrollTop;var i=e+(window.innerHeight-t.offsetHeight)/2;t.style.top=Math.max(e,i)+"px"};y.isInlinePositionSetByStylesheet=function(t){for(var e=0;e<document.styleSheets.length;++e){var i=document.styleSheets[e];var o=null;try{o=i.cssRules}catch(t){}if(!o){continue}for(var n=0;n<o.length;++n){var a=o[n];var r=null;try{r=document.querySelectorAll(a.selectorText)}catch(t){}if(!r||!f(r,t)){continue}var s=a.style.getPropertyValue("top");var d=a.style.getPropertyValue("bottom");if(s&&s!=="auto"||d&&d!=="auto"){return true}}}return false};y.needsCentering=function(t){var e=window.getComputedStyle(t);if(e.position!=="absolute"){return false}if(t.style.top!=="auto"&&t.style.top!==""||t.style.bottom!=="auto"&&t.style.bottom!==""){return false}return!y.isInlinePositionSetByStylesheet(t)};y.forceRegisterDialog=function(t){if(window.HTMLDialogElement||t.showModal){console.warn("This browser already supports <dialog>, the polyfill "+"may not work correctly",t)}if(t.localName!=="dialog"){throw new Error("Failed to register dialog: The element is not a dialog.")}new w(t)};y.registerDialog=function(t){if(!t.showModal){y.forceRegisterDialog(t)}};y.DialogManager=function(){this.pendingDialogStack=[];var t=this.checkDOM_.bind(this);this.overlay=document.createElement("div");this.overlay.className="_dialog_overlay";this.overlay.addEventListener("click",function(e){this.forwardTab_=undefined;e.stopPropagation();t([])}.bind(this));this.handleKey_=this.handleKey_.bind(this);this.handleFocus_=this.handleFocus_.bind(this);this.zIndexLow_=1e5;this.zIndexHigh_=1e5+150;this.forwardTab_=undefined;if("MutationObserver"in window){this.mo_=new MutationObserver((function(e){var i=[];e.forEach((function(t){for(var e=0,o;o=t.removedNodes[e];++e){if(!(o instanceof Element)){continue}else if(o.localName==="dialog"){i.push(o)}i=i.concat(o.querySelectorAll("dialog"))}}));i.length&&t(i)}))}};y.DialogManager.prototype.blockDocument=function(){document.documentElement.addEventListener("focus",this.handleFocus_,true);document.addEventListener("keydown",this.handleKey_);this.mo_&&this.mo_.observe(document,{childList:true,subtree:true})};y.DialogManager.prototype.unblockDocument=function(){document.documentElement.removeEventListener("focus",this.handleFocus_,true);document.removeEventListener("keydown",this.handleKey_);this.mo_&&this.mo_.disconnect()};y.DialogManager.prototype.updateStacking=function(){var t=this.zIndexHigh_;for(var e=0,i;i=this.pendingDialogStack[e];++e){i.updateZIndex(--t,--t);if(e===0){this.overlay.style.zIndex=--t}}var o=this.pendingDialogStack[0];if(o){var n=o.dialog.parentNode||document.body;n.appendChild(this.overlay)}else if(this.overlay.parentNode){this.overlay.parentNode.removeChild(this.overlay)}};y.DialogManager.prototype.containedByTopDialog_=function(t){while(t=h(t)){for(var e=0,i;i=this.pendingDialogStack[e];++e){if(i.dialog===t){return e===0}}t=t.parentElement}return false};y.DialogManager.prototype.handleFocus_=function(t){var e=t.composedPath?t.composedPath()[0]:t.target;if(this.containedByTopDialog_(e)){return}if(document.activeElement===document.documentElement){return}t.preventDefault();t.stopPropagation();u(e);if(this.forwardTab_===undefined){return}var i=this.pendingDialogStack[0];var o=i.dialog;var n=o.compareDocumentPosition(e);if(n&Node.DOCUMENT_POSITION_PRECEDING){if(this.forwardTab_){i.focus_()}else if(e!==document.documentElement){document.documentElement.focus()}}return false};y.DialogManager.prototype.handleKey_=function(t){this.forwardTab_=undefined;if(t.keyCode===27){t.preventDefault();t.stopPropagation();var e=new d("cancel",{bubbles:false,cancelable:true});var i=this.pendingDialogStack[0];if(i&&l(i.dialog,e)){i.dialog.close()}}else if(t.keyCode===9){this.forwardTab_=!t.shiftKey}};y.DialogManager.prototype.checkDOM_=function(t){var e=this.pendingDialogStack.slice();e.forEach((function(e){if(t.indexOf(e.dialog)!==-1){e.downgradeModal()}else{e.maybeHideModal()}}))};y.DialogManager.prototype.pushDialog=function(t){var e=(this.zIndexHigh_-this.zIndexLow_)/2-1;if(this.pendingDialogStack.length>=e){return false}if(this.pendingDialogStack.unshift(t)===1){this.blockDocument()}this.updateStacking();return true};y.DialogManager.prototype.removeDialog=function(t){var e=this.pendingDialogStack.indexOf(t);if(e===-1){return}this.pendingDialogStack.splice(e,1);if(this.pendingDialogStack.length===0){this.unblockDocument()}this.updateStacking()};y.dm=new y.DialogManager;y.formSubmitter=null;y.imagemapUseValue=null;if(window.HTMLDialogElement===undefined){var k=document.createElement("form");k.setAttribute("method","dialog");if(k.method!=="dialog"){var x=Object.getOwnPropertyDescriptor(HTMLFormElement.prototype,"method");if(x){var M=x.get;x.get=function(){if(m(this)){return"dialog"}return M.call(this)};var z=x.set;x.set=function(t){if(typeof t==="string"&&t.toLowerCase()==="dialog"){return this.setAttribute("method",t)}return z.call(this,t)};Object.defineProperty(HTMLFormElement.prototype,"method",x)}}document.addEventListener("click",(function(t){y.formSubmitter=null;y.imagemapUseValue=null;if(t.defaultPrevented){return}var e=t.target;if("composedPath"in t){var i=t.composedPath();e=i.shift()||e}if(!e||!m(e.form)){return}var o=e.type==="submit"&&["button","input"].indexOf(e.localName)>-1;if(!o){if(!(e.localName==="input"&&e.type==="image")){return}y.imagemapUseValue=t.offsetX+","+t.offsetY}var n=h(e);if(!n){return}y.formSubmitter=e}),false);document.addEventListener("submit",(function(t){var e=t.target;var i=h(e);if(i){return}var o=g(t);var n=o&&o.getAttribute("formmethod")||e.getAttribute("method");if(n==="dialog"){t.preventDefault()}}));var C=HTMLFormElement.prototype.submit;var E=function(){if(!m(this)){return C.call(this)}var t=h(this);t&&t.close()};HTMLFormElement.prototype.submit=E}const O=':host{font-family:var(--font-family-sans);font-weight:var(--font-rg);--z-modal-content-padding:calc(var(--space-unit) * 2)}:host>dialog{padding:0;border:none;margin:0;background-color:transparent}:host>dialog:modal{width:100%;max-width:100%;max-height:100%}:host>dialog::backdrop{display:none}:host>dialog+.backdrop{display:none}:host>dialog:not([open]){display:none}:host>dialog[open]{display:block}::slotted([slot="modalContent"]){padding:var(--z-modal-content-padding)}.modal-container{z-index:1010;display:flex;overflow:-moz-scrollbars-none;width:100%;height:100vh;flex-direction:column}.modal-container>.modal-content-scroll-outside{overflow:auto;background:var(--color-surface01)}.modal-container>header{padding:calc(var(--space-unit) * 1.75) calc(var(--space-unit) * 2) calc(var(--space-unit) * 1.75)\n calc(var(--space-unit) * 2);background:var(--color-background)}.modal-container>header button{padding:0;border:none;margin:0;margin-left:auto;background:transparent;cursor:pointer}.modal-container>header button:focus-visible{border-radius:50%;box-shadow:var(--shadow-focus-primary);outline:none !important}.modal-container>header button::after{position:absolute;top:6px;right:4px;display:block;width:40px;height:40px;background-color:transparent;content:""}.modal-container>header z-icon{--z-icon-width:calc(var(--space-unit) * 2.25);--z-icon-height:calc(var(--space-unit) * 2.25);display:flex;fill:var(--color-primary01-icon)}.modal-container>header>div{display:flex;width:100%;align-items:baseline;margin-right:calc(var(--space-unit) * 2)}.modal-container>header h1,.modal-container>header .subtitle{padding:0;margin:0;color:var(--color-default-text);font-weight:var(--font-sb)}.modal-container>header h1{font-size:var(--font-size-5);letter-spacing:0;line-height:1.4}.modal-container>header .subtitle{font-size:var(--font-size-3);font-weight:var(--font-rg);letter-spacing:0;line-height:1.5}.modal-container>header>div>h1 *:empty{display:none}.modal-container>header h1+.subtitle{margin-top:calc(var(--space-unit) * 0.5)}.modal-container-scroll-inside>.modal-content-scroll-inside{overflow:hidden auto;flex:1 auto;background:var(--color-surface01)}.modal-container-scroll-inside>.modal-content-scroll-inside::-webkit-scrollbar,.modal-container-scroll-outside>.modal-content-scroll-outside::-webkit-scrollbar{width:10px;background:linear-gradient(to right, transparent 0 3px, var(--gray200) 3px 7px, transparent 7px 10px);border-radius:var(--border-radius)}.modal-container-scroll-inside>.modal-content-scroll-inside::-webkit-scrollbar-thumb,.modal-container-scroll-outside>.modal-content-scroll-outside::-webkit-scrollbar-thumb{width:10px;background-color:var(--color-primary01)}.modal-container-scroll-inside>.modal-content-scroll-inside::-webkit-scrollbar-thumb:hover,.modal-container-scroll-outside>.modal-content-scroll-outside::-webkit-scrollbar-thumb:hover{background-color:var(--color-hover-primary)}.modal-container-scroll-inside .modal-content-scroll-inside,.modal-container-scroll-outside .modal-content-scroll-outside{scrollbar-color:var(--color-primary01) transparent}@media only screen and (min-width: 768px){.modal-background{position:fixed;top:0;left:0;overflow:hidden;width:100vw;height:100vh;background-color:var(--gray900);opacity:0.7}.modal-background.modal-background-scroll-outside{position:sticky}.modal-container-scroll-inside{position:fixed;top:calc(var(--space-unit) * 6);left:50%;overflow:hidden;width:auto;min-width:calc(var(--space-unit) * 40);height:auto;min-height:calc(var(--space-unit) * 40);max-height:calc(100vh - calc(var(--space-unit) * 6 * 2));border-radius:var(--border-radius);transform:translateX(-50%)}.modal-container-scroll-outside{position:absolute;top:calc(var(--space-unit) * 6);left:50%;display:block;overflow:initial;width:auto;min-width:calc(var(--space-unit) * 40);height:auto;min-height:calc(var(--space-unit) * 40);max-height:calc(100vh - calc(var(--space-unit) * 6 * 2));transform:translateX(-50%)}.modal-container>.modal-content-scroll-outside{overflow:initial}.modal-container-scroll-outside>header,.modal-container-scroll-inside>header{border-top-left-radius:var(--border-radius);border-top-right-radius:var(--border-radius)}.modal-container-scroll-outside::after{display:block;height:calc(var(--space-unit) * 6);content:" "}.modal-dialog{position:fixed;top:0;left:0;height:auto;overflow-x:hidden;overflow-y:auto}.modal-content-scroll-outside{border-bottom-left-radius:var(--border-radius);border-bottom-right-radius:var(--border-radius)}.modal-dialog::-webkit-scrollbar{display:none}}@media only screen and (min-width: 1152px){.modal-container>header{padding-top:calc(var(--space-unit) * 1.5);padding-bottom:calc(var(--space-unit) * 1.5)}.modal-container>header h1{font-size:var(--font-size-6);font-weight:var(--font-sb);letter-spacing:0;line-height:1.333}.modal-container>header .subtitle{font-size:var(--font-size-4);font-weight:var(--font-rg);letter-spacing:0;line-height:1.5}.modal-container>header h1+.subtitle{margin-top:0}}';const F=O;const D=':is(button, input, select, textarea, [contenteditable=""], [contenteditable="true"], a[href], [tabindex], summary):not([disabled], [disabled=""], [tabindex="-1"], [aria-hidden="true"], [hidden])';const T=class{constructor(i){t(this,i);this.modalClose=e(this,"modalClose",7);this.modalHeaderActive=e(this,"modalHeaderActive",7);this.modalBackgroundClick=e(this,"modalBackgroundClick",7);this.modalid=undefined;this.modaltitle=undefined;this.modalsubtitle=undefined;this.closeButtonLabel="chiudi modale";this.alertdialog=false;this.closable=true;this.scrollInside=true}emitModalClose(){if(this.closable){this.modalClose.emit({modalid:this.modalid})}}emitModalHeaderActive(){this.modalHeaderActive.emit({modalid:this.modalid})}emitBackgroundClick(){if(this.closable){this.modalBackgroundClick.emit({modalid:this.modalid})}}componentDidLoad(){if(typeof window.HTMLDialogElement!=="function"){if(!this.dialog.localName){Object.defineProperty(this.dialog,"localName",{value:"dialog"})}y.registerDialog(this.dialog);this.dialog.setAttribute("open","true")}else{this.open()}}async open(){var t;(t=this.dialog)===null||t===void 0?void 0:t.showModal()}async close(){var t;if(this.closable){(t=this.dialog)===null||t===void 0?void 0:t.close()}}get focusableElements(){return[...Array.from(this.host.shadowRoot.querySelectorAll(D)),...Array.from(this.host.querySelectorAll(D))].filter((t=>getComputedStyle(t).display!=="none"))}handleKeyDown(t){if(t.code===n.ESC&&!this.closable){t.preventDefault()}if(t.code!==n.TAB){return}const e=this.focusableElements;const i=this.host.shadowRoot.activeElement;const o=this.host.ownerDocument.activeElement;const a=e[0];const r=e[e.length-1];if(t.shiftKey&&(i==a||o==a)){t.preventDefault();r.focus()}else if(!t.shiftKey&&(i==r||o==r)){t.preventDefault();a.focus()}}closeButtonSlot(){if(this.closable){return i("slot",{name:"modalCloseButton"},i("button",{"aria-label":this.closeButtonLabel,onClick:()=>this.close()},i("z-icon",{name:"multiply-circle-filled"})))}}handleEscape(t){if(this.closable){return}t.preventDefault()}render(){return i("dialog",{key:"c146e43060818ca44928a82530f85567f721992c",class:{"modal-dialog":!this.scrollInside},"aria-labelledby":"modal-title","aria-describedby":"modal-content",role:this.alertdialog?"alertdialog":undefined,ref:t=>this.dialog=t,onClose:()=>this.emitModalClose(),onCancel:t=>this.handleEscape(t)},i("div",{key:"a7b25fe975f344989bbb1ee89bed3aa079f3dda4",class:{"modal-container":true,"modal-container-scroll-inside":this.scrollInside,"modal-container-scroll-outside":!this.scrollInside},id:this.modalid},i("header",{key:"8318dcaa9a0e9daa0deb58a50b522b501e9f0a7f",onClick:this.emitModalHeaderActive.bind(this)},i("div",{key:"0a476e05f9affc69d1aa7556572680ce99e34014"},this.modaltitle&&i("h1",{key:"c8358dd101dfa6d5d91c51b470d40160b585bcba",id:"modal-title"},this.modaltitle),this.closeButtonSlot()),this.modalsubtitle&&i("div",{key:"419da7bd2a57660f0d26afcf5121adc8e491c3c1",class:"subtitle",id:"modal-subtitle"},this.modalsubtitle)),i("div",{key:"67e4c55a8cc3c93202fc3a4a5155c87fd1fc4440",class:{"modal-content-scroll-inside":this.scrollInside,"modal-content-scroll-outside":!this.scrollInside},id:"modal-content"},i("slot",{key:"29b059f5d2b17305c04d25effe27f9dc95d91afd",name:"modalContent"}))),i("div",{key:"c4ed3fc68e1cd0eb07ccda5fd6c68fa94943a44e",class:{"modal-background":true,"modal-background-scroll-outside":!this.scrollInside},"data-action":"modalBackground","data-modal":this.modalid,onClick:()=>{this.emitBackgroundClick();this.close()}}))}get host(){return o(this)}};T.style=F;export{s as z_dragdrop_area,T as z_modal};
2
- //# sourceMappingURL=p-612da2d0.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["stylesCss","ZDragdropAreaStyle0","ZDragdropArea","fileDroppedHandler","files","this","fileDropped","emit","renderOnDragOverMessage","h","class","dragAndDropLabel","render","key","tabIndex","ref","val","dragDropContainer","onDragOver","e","preventDefault","classList","add","onDragLeave","remove","onDrop","dataTransfer","length","supportCustomEvent","window","CustomEvent","event","x","ev","document","createEvent","initCustomEvent","bubbles","cancelable","detail","prototype","Event","safeDispatchEvent","target","check","type","toLowerCase","dispatchEvent","createsStackingContext","el","body","s","getComputedStyle","invalid","k","ok","undefined","opacity","position","webkitOverflowScrolling","parentElement","findNearestDialog","localName","parentNode","host","safeBlur","shadowRoot","activeElement","blur","inNodeList","nodeList","node","i","isFormMethodDialog","hasAttribute","getAttribute","findFocusableElementWithin","hostElement","opts","query","map","push","querySelector","join","Element","elems","querySelectorAll","tagName","isConnected","element","contains","findFormSubmitter","submitter","form","HTMLFormElement","dialogPolyfill","formSubmitter","root","getRootNode","maybeHandleSubmit","defaultPrevented","value","imagemapUseValue","dialog","formmethod","close","dialogPolyfillInfo","dialog_","replacedStyleTop_","openAsModal_","setAttribute","show","bind","showModal","addEventListener","returnValue","mo","MutationObserver","maybeHideModal","observe","attributes","attributeFilter","removed","cb","downgradeModal","timeout","delayModel","cand","substr","clearTimeout","setTimeout","forEach","name","Object","defineProperty","set","setOpen","get","backdrop_","createElement","className","backdropMouseEvent_","style","zIndex","top","removeChild","dm","removeDialog","removeAttribute","fake","insertBefore","firstChild","focus","redirectedEvent","initMouseEvent","screenX","screenY","clientX","clientY","ctrlKey","altKey","shiftKey","metaKey","button","relatedTarget","stopPropagation","focus_","updateZIndex","dialogZ","backdropZ","Error","open","pushDialog","console","warn","needsCentering","reposition","nextSibling","opt_returnValue","closeEvent","scrollTop","documentElement","topValue","innerHeight","offsetHeight","Math","max","isInlinePositionSetByStylesheet","styleSheets","styleSheet","cssRules","j","rule","selectedNodes","selectorText","cssTop","getPropertyValue","cssBottom","computedStyle","bottom","forceRegisterDialog","HTMLDialogElement","registerDialog","DialogManager","pendingDialogStack","checkDOM","checkDOM_","overlay","forwardTab_","handleKey_","handleFocus_","zIndexLow_","zIndexHigh_","mo_","records","rec","c","removedNodes","concat","blockDocument","childList","subtree","unblockDocument","removeEventListener","disconnect","updateStacking","dpi","last","p","appendChild","containedByTopDialog_","candidate","composedPath","compareDocumentPosition","Node","DOCUMENT_POSITION_PRECEDING","keyCode","cancelEvent","clone","slice","indexOf","allowed","unshift","index","splice","testForm","method","methodDescriptor","getOwnPropertyDescriptor","realGet","call","realSet","v","path","shift","valid","offsetX","offsetY","nativeFormSubmit","submit","replacementFormSubmit","ZModalStyle0","FOCUSABLE_ELEMENTS_SELECTOR","ZModal","emitModalClose","closable","modalClose","modalid","emitModalHeaderActive","modalHeaderActive","emitBackgroundClick","modalBackgroundClick","componentDidLoad","_a","focusableElements","Array","from","filter","display","handleKeyDown","code","KeyboardCode","ESC","TAB","shadowActiveElement","ownerDocument","firstFocusableElement","lastFocusableElement","closeButtonSlot","closeButtonLabel","onClick","handleEscape","scrollInside","role","alertdialog","onClose","onCancel","id","modaltitle","modalsubtitle"],"sources":["src/components/file-upload/z-dragdrop-area/styles.css?tag=z-dragdrop-area&encapsulation=shadow","src/components/file-upload/z-dragdrop-area/index.tsx","node_modules/dialog-polyfill/dist/dialog-polyfill.esm.js","src/components/z-modal/styles.css?tag=z-modal&encapsulation=shadow","src/components/z-modal/index.tsx"],"sourcesContent":[":host {\n font-family: var(--font-family-sans);\n font-weight: var(--font-rg);\n}\n\n:host > .dragdrop {\n position: relative;\n display: flex;\n height: 228px;\n flex-direction: column;\n padding: calc(var(--space-unit) * 2);\n border-color: var(--color-surface04);\n background-color: var(--color-background);\n\n /* Native CSS properties don't support the customization of border-style.\n Therefore, we use a trick with an SVG image inside background-image property.\n The SVG features give us the ability to change the distance between dashed lines, set custom pattern, add dash offset or even change a line cap.\n Generated SVG image is vector and it fills width and height of elements by 100%, so it doesn't matter what size elements have. */\n background-image: url(\"data:image/svg+xml,%3csvg width='100%25' height='100%25' xmlns='http://www.w3.org/2000/svg'%3e%3crect width='100%25' height='100%25' fill='none' rx='2' ry='2' stroke='%23CACCCEFF' stroke-width='2' stroke-dasharray='15%2c 10%2c 14%2c 11' stroke-dashoffset='3' stroke-linecap='square'/%3e%3c/svg%3e\");\n border-radius: 2px;\n color: var(--color-default-text);\n}\n\n:host > .dragdrop:focus-visible {\n box-shadow: var(--shadow-focus-primary);\n outline: none !important;\n}\n\n/* https://stackoverflow.com/questions/7110353/html5-dragleave-fired-when-hovering-a-child-element */\n:host > .dragdrop.dragover * {\n pointer-events: none;\n}\n\n:host > .dragdrop .dragover-container {\n position: absolute;\n z-index: 10;\n top: 0;\n left: 0;\n display: none;\n width: 100%;\n height: 100%;\n background-color: var(--color-primary03);\n box-shadow: var(--shadow-focus-primary);\n}\n\n:host > .dragdrop .dragover-container .dragover-message {\n padding: 10px 28px;\n background-color: var(--color-primary01);\n color: var(--color-text-inverse);\n}\n\n:host > .dragdrop.dragover .dragover-container {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n","import {Component, Event, EventEmitter, Prop, h} from \"@stencil/core\";\n\n@Component({\n tag: \"z-dragdrop-area\",\n styleUrl: \"styles.css\",\n shadow: true,\n})\nexport class ZDragdropArea {\n /** drag & drop button label */\n @Prop()\n dragAndDropLabel: string;\n\n /** Emitted when user drop one or more files */\n @Event()\n fileDropped: EventEmitter;\n\n private fileDroppedHandler(files: FileList): void {\n this.fileDropped.emit(files);\n }\n\n private dragDropContainer: HTMLDivElement;\n\n private renderOnDragOverMessage(): HTMLDivElement {\n return (\n <div class=\"dragover-container\">\n <div class=\"dragover-message\">\n <span class=\"body-2-sb\">{this.dragAndDropLabel}</span>\n </div>\n </div>\n );\n }\n\n render(): HTMLDivElement {\n return (\n <div\n tabIndex={0}\n ref={(val) => (this.dragDropContainer = val)}\n class=\"dragdrop\"\n onDragOver={(e) => {\n e.preventDefault();\n this.dragDropContainer.classList.add(\"dragover\");\n }}\n onDragLeave={() => {\n this.dragDropContainer.classList.remove(\"dragover\");\n }}\n onDrop={(e) => {\n e.preventDefault();\n if (e.dataTransfer.files.length) {\n this.dragDropContainer.classList.remove(\"dragover\");\n this.fileDroppedHandler(e.dataTransfer.files);\n }\n }}\n >\n {this.renderOnDragOverMessage()}\n <slot />\n </div>\n );\n }\n}\n","// nb. This is for IE10 and lower _only_.\nvar supportCustomEvent = window.CustomEvent;\nif (!supportCustomEvent || typeof supportCustomEvent === 'object') {\n supportCustomEvent = function CustomEvent(event, x) {\n x = x || {};\n var ev = document.createEvent('CustomEvent');\n ev.initCustomEvent(event, !!x.bubbles, !!x.cancelable, x.detail || null);\n return ev;\n };\n supportCustomEvent.prototype = window.Event.prototype;\n}\n\n/**\n * Dispatches the passed event to both an \"on<type>\" handler as well as via the\n * normal dispatch operation. Does not bubble.\n *\n * @param {!EventTarget} target\n * @param {!Event} event\n * @return {boolean}\n */\nfunction safeDispatchEvent(target, event) {\n var check = 'on' + event.type.toLowerCase();\n if (typeof target[check] === 'function') {\n target[check](event);\n }\n return target.dispatchEvent(event);\n}\n\n/**\n * @param {Element} el to check for stacking context\n * @return {boolean} whether this el or its parents creates a stacking context\n */\nfunction createsStackingContext(el) {\n while (el && el !== document.body) {\n var s = window.getComputedStyle(el);\n var invalid = function(k, ok) {\n return !(s[k] === undefined || s[k] === ok);\n };\n\n if (s.opacity < 1 ||\n invalid('zIndex', 'auto') ||\n invalid('transform', 'none') ||\n invalid('mixBlendMode', 'normal') ||\n invalid('filter', 'none') ||\n invalid('perspective', 'none') ||\n s['isolation'] === 'isolate' ||\n s.position === 'fixed' ||\n s.webkitOverflowScrolling === 'touch') {\n return true;\n }\n el = el.parentElement;\n }\n return false;\n}\n\n/**\n * Finds the nearest <dialog> from the passed element.\n *\n * @param {Element} el to search from\n * @return {HTMLDialogElement} dialog found\n */\nfunction findNearestDialog(el) {\n while (el) {\n if (el.localName === 'dialog') {\n return /** @type {HTMLDialogElement} */ (el);\n }\n if (el.parentElement) {\n el = el.parentElement;\n } else if (el.parentNode) {\n el = el.parentNode.host;\n } else {\n el = null;\n }\n }\n return null;\n}\n\n/**\n * Blur the specified element, as long as it's not the HTML body element.\n * This works around an IE9/10 bug - blurring the body causes Windows to\n * blur the whole application.\n *\n * @param {Element} el to blur\n */\nfunction safeBlur(el) {\n // Find the actual focused element when the active element is inside a shadow root\n while (el && el.shadowRoot && el.shadowRoot.activeElement) {\n el = el.shadowRoot.activeElement;\n }\n\n if (el && el.blur && el !== document.body) {\n el.blur();\n }\n}\n\n/**\n * @param {!NodeList} nodeList to search\n * @param {Node} node to find\n * @return {boolean} whether node is inside nodeList\n */\nfunction inNodeList(nodeList, node) {\n for (var i = 0; i < nodeList.length; ++i) {\n if (nodeList[i] === node) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * @param {HTMLFormElement} el to check\n * @return {boolean} whether this form has method=\"dialog\"\n */\nfunction isFormMethodDialog(el) {\n if (!el || !el.hasAttribute('method')) {\n return false;\n }\n return el.getAttribute('method').toLowerCase() === 'dialog';\n}\n\n/**\n * @param {!DocumentFragment|!Element} hostElement\n * @return {?Element}\n */\nfunction findFocusableElementWithin(hostElement) {\n // Note that this is 'any focusable area'. This list is probably not exhaustive, but the\n // alternative involves stepping through and trying to focus everything.\n var opts = ['button', 'input', 'keygen', 'select', 'textarea'];\n var query = opts.map(function(el) {\n return el + ':not([disabled])';\n });\n // TODO(samthor): tabindex values that are not numeric are not focusable.\n query.push('[tabindex]:not([disabled]):not([tabindex=\"\"])'); // tabindex != \"\", not disabled\n var target = hostElement.querySelector(query.join(', '));\n\n if (!target && 'attachShadow' in Element.prototype) {\n // If we haven't found a focusable target, see if the host element contains an element\n // which has a shadowRoot.\n // Recursively search for the first focusable item in shadow roots.\n var elems = hostElement.querySelectorAll('*');\n for (var i = 0; i < elems.length; i++) {\n if (elems[i].tagName && elems[i].shadowRoot) {\n target = findFocusableElementWithin(elems[i].shadowRoot);\n if (target) {\n break;\n }\n }\n }\n }\n return target;\n}\n\n/**\n * Determines if an element is attached to the DOM.\n * @param {Element} element to check\n * @return {boolean} whether the element is in DOM\n */\nfunction isConnected(element) {\n return element.isConnected || document.body.contains(element);\n}\n\n/**\n * @param {!Event} event\n * @return {?Element}\n */\nfunction findFormSubmitter(event) {\n if (event.submitter) {\n return event.submitter;\n }\n\n var form = event.target;\n if (!(form instanceof HTMLFormElement)) {\n return null;\n }\n\n var submitter = dialogPolyfill.formSubmitter;\n if (!submitter) {\n var target = event.target;\n var root = ('getRootNode' in target && target.getRootNode() || document);\n submitter = root.activeElement;\n }\n\n if (!submitter || submitter.form !== form) {\n return null;\n }\n return submitter;\n}\n\n/**\n * @param {!Event} event\n */\nfunction maybeHandleSubmit(event) {\n if (event.defaultPrevented) {\n return;\n }\n var form = /** @type {!HTMLFormElement} */ (event.target);\n\n // We'd have a value if we clicked on an imagemap.\n var value = dialogPolyfill.imagemapUseValue;\n var submitter = findFormSubmitter(event);\n if (value === null && submitter) {\n value = submitter.value;\n }\n\n // There should always be a dialog as this handler is added specifically on them, but check just\n // in case.\n var dialog = findNearestDialog(form);\n if (!dialog) {\n return;\n }\n\n // Prefer formmethod on the button.\n var formmethod = submitter && submitter.getAttribute('formmethod') || form.getAttribute('method');\n if (formmethod !== 'dialog') {\n return;\n }\n event.preventDefault();\n\n if (value != null) {\n // nb. we explicitly check against null/undefined\n dialog.close(value);\n } else {\n dialog.close();\n }\n}\n\n/**\n * @param {!HTMLDialogElement} dialog to upgrade\n * @constructor\n */\nfunction dialogPolyfillInfo(dialog) {\n this.dialog_ = dialog;\n this.replacedStyleTop_ = false;\n this.openAsModal_ = false;\n\n // Set a11y role. Browsers that support dialog implicitly know this already.\n if (!dialog.hasAttribute('role')) {\n dialog.setAttribute('role', 'dialog');\n }\n\n dialog.show = this.show.bind(this);\n dialog.showModal = this.showModal.bind(this);\n dialog.close = this.close.bind(this);\n\n dialog.addEventListener('submit', maybeHandleSubmit, false);\n\n if (!('returnValue' in dialog)) {\n dialog.returnValue = '';\n }\n\n if ('MutationObserver' in window) {\n var mo = new MutationObserver(this.maybeHideModal.bind(this));\n mo.observe(dialog, {attributes: true, attributeFilter: ['open']});\n } else {\n // IE10 and below support. Note that DOMNodeRemoved etc fire _before_ removal. They also\n // seem to fire even if the element was removed as part of a parent removal. Use the removed\n // events to force downgrade (useful if removed/immediately added).\n var removed = false;\n var cb = function() {\n removed ? this.downgradeModal() : this.maybeHideModal();\n removed = false;\n }.bind(this);\n var timeout;\n var delayModel = function(ev) {\n if (ev.target !== dialog) { return; } // not for a child element\n var cand = 'DOMNodeRemoved';\n removed |= (ev.type.substr(0, cand.length) === cand);\n window.clearTimeout(timeout);\n timeout = window.setTimeout(cb, 0);\n };\n ['DOMAttrModified', 'DOMNodeRemoved', 'DOMNodeRemovedFromDocument'].forEach(function(name) {\n dialog.addEventListener(name, delayModel);\n });\n }\n // Note that the DOM is observed inside DialogManager while any dialog\n // is being displayed as a modal, to catch modal removal from the DOM.\n\n Object.defineProperty(dialog, 'open', {\n set: this.setOpen.bind(this),\n get: dialog.hasAttribute.bind(dialog, 'open')\n });\n\n this.backdrop_ = document.createElement('div');\n this.backdrop_.className = 'backdrop';\n this.backdrop_.addEventListener('mouseup' , this.backdropMouseEvent_.bind(this));\n this.backdrop_.addEventListener('mousedown', this.backdropMouseEvent_.bind(this));\n this.backdrop_.addEventListener('click' , this.backdropMouseEvent_.bind(this));\n}\n\ndialogPolyfillInfo.prototype = /** @type {HTMLDialogElement.prototype} */ ({\n\n get dialog() {\n return this.dialog_;\n },\n\n /**\n * Maybe remove this dialog from the modal top layer. This is called when\n * a modal dialog may no longer be tenable, e.g., when the dialog is no\n * longer open or is no longer part of the DOM.\n */\n maybeHideModal: function() {\n if (this.dialog_.hasAttribute('open') && isConnected(this.dialog_)) { return; }\n this.downgradeModal();\n },\n\n /**\n * Remove this dialog from the modal top layer, leaving it as a non-modal.\n */\n downgradeModal: function() {\n if (!this.openAsModal_) { return; }\n this.openAsModal_ = false;\n this.dialog_.style.zIndex = '';\n\n // This won't match the native <dialog> exactly because if the user set top on a centered\n // polyfill dialog, that top gets thrown away when the dialog is closed. Not sure it's\n // possible to polyfill this perfectly.\n if (this.replacedStyleTop_) {\n this.dialog_.style.top = '';\n this.replacedStyleTop_ = false;\n }\n\n // Clear the backdrop and remove from the manager.\n this.backdrop_.parentNode && this.backdrop_.parentNode.removeChild(this.backdrop_);\n dialogPolyfill.dm.removeDialog(this);\n },\n\n /**\n * @param {boolean} value whether to open or close this dialog\n */\n setOpen: function(value) {\n if (value) {\n this.dialog_.hasAttribute('open') || this.dialog_.setAttribute('open', '');\n } else {\n this.dialog_.removeAttribute('open');\n this.maybeHideModal(); // nb. redundant with MutationObserver\n }\n },\n\n /**\n * Handles mouse events ('mouseup', 'mousedown', 'click') on the fake .backdrop element, redirecting them as if\n * they were on the dialog itself.\n *\n * @param {!Event} e to redirect\n */\n backdropMouseEvent_: function(e) {\n if (!this.dialog_.hasAttribute('tabindex')) {\n // Clicking on the backdrop should move the implicit cursor, even if dialog cannot be\n // focused. Create a fake thing to focus on. If the backdrop was _before_ the dialog, this\n // would not be needed - clicks would move the implicit cursor there.\n var fake = document.createElement('div');\n this.dialog_.insertBefore(fake, this.dialog_.firstChild);\n fake.tabIndex = -1;\n fake.focus();\n this.dialog_.removeChild(fake);\n } else {\n this.dialog_.focus();\n }\n\n var redirectedEvent = document.createEvent('MouseEvents');\n redirectedEvent.initMouseEvent(e.type, e.bubbles, e.cancelable, window,\n e.detail, e.screenX, e.screenY, e.clientX, e.clientY, e.ctrlKey,\n e.altKey, e.shiftKey, e.metaKey, e.button, e.relatedTarget);\n this.dialog_.dispatchEvent(redirectedEvent);\n e.stopPropagation();\n },\n\n /**\n * Focuses on the first focusable element within the dialog. This will always blur the current\n * focus, even if nothing within the dialog is found.\n */\n focus_: function() {\n // Find element with `autofocus` attribute, or fall back to the first form/tabindex control.\n var target = this.dialog_.querySelector('[autofocus]:not([disabled])');\n if (!target && this.dialog_.tabIndex >= 0) {\n target = this.dialog_;\n }\n if (!target) {\n target = findFocusableElementWithin(this.dialog_);\n }\n safeBlur(document.activeElement);\n target && target.focus();\n },\n\n /**\n * Sets the zIndex for the backdrop and dialog.\n *\n * @param {number} dialogZ\n * @param {number} backdropZ\n */\n updateZIndex: function(dialogZ, backdropZ) {\n if (dialogZ < backdropZ) {\n throw new Error('dialogZ should never be < backdropZ');\n }\n this.dialog_.style.zIndex = dialogZ;\n this.backdrop_.style.zIndex = backdropZ;\n },\n\n /**\n * Shows the dialog. If the dialog is already open, this does nothing.\n */\n show: function() {\n if (!this.dialog_.open) {\n this.setOpen(true);\n this.focus_();\n }\n },\n\n /**\n * Show this dialog modally.\n */\n showModal: function() {\n if (this.dialog_.hasAttribute('open')) {\n throw new Error('Failed to execute \\'showModal\\' on dialog: The element is already open, and therefore cannot be opened modally.');\n }\n if (!isConnected(this.dialog_)) {\n throw new Error('Failed to execute \\'showModal\\' on dialog: The element is not in a Document.');\n }\n if (!dialogPolyfill.dm.pushDialog(this)) {\n throw new Error('Failed to execute \\'showModal\\' on dialog: There are too many open modal dialogs.');\n }\n\n if (createsStackingContext(this.dialog_.parentElement)) {\n console.warn('A dialog is being shown inside a stacking context. ' +\n 'This may cause it to be unusable. For more information, see this link: ' +\n 'https://github.com/GoogleChrome/dialog-polyfill/#stacking-context');\n }\n\n this.setOpen(true);\n this.openAsModal_ = true;\n\n // Optionally center vertically, relative to the current viewport.\n if (dialogPolyfill.needsCentering(this.dialog_)) {\n dialogPolyfill.reposition(this.dialog_);\n this.replacedStyleTop_ = true;\n } else {\n this.replacedStyleTop_ = false;\n }\n\n // Insert backdrop.\n this.dialog_.parentNode.insertBefore(this.backdrop_, this.dialog_.nextSibling);\n\n // Focus on whatever inside the dialog.\n this.focus_();\n },\n\n /**\n * Closes this HTMLDialogElement. This is optional vs clearing the open\n * attribute, however this fires a 'close' event.\n *\n * @param {string=} opt_returnValue to use as the returnValue\n */\n close: function(opt_returnValue) {\n if (!this.dialog_.hasAttribute('open')) {\n throw new Error('Failed to execute \\'close\\' on dialog: The element does not have an \\'open\\' attribute, and therefore cannot be closed.');\n }\n this.setOpen(false);\n\n // Leave returnValue untouched in case it was set directly on the element\n if (opt_returnValue !== undefined) {\n this.dialog_.returnValue = opt_returnValue;\n }\n\n // Triggering \"close\" event for any attached listeners on the <dialog>.\n var closeEvent = new supportCustomEvent('close', {\n bubbles: false,\n cancelable: false\n });\n safeDispatchEvent(this.dialog_, closeEvent);\n }\n\n});\n\nvar dialogPolyfill = {};\n\ndialogPolyfill.reposition = function(element) {\n var scrollTop = document.body.scrollTop || document.documentElement.scrollTop;\n var topValue = scrollTop + (window.innerHeight - element.offsetHeight) / 2;\n element.style.top = Math.max(scrollTop, topValue) + 'px';\n};\n\ndialogPolyfill.isInlinePositionSetByStylesheet = function(element) {\n for (var i = 0; i < document.styleSheets.length; ++i) {\n var styleSheet = document.styleSheets[i];\n var cssRules = null;\n // Some browsers throw on cssRules.\n try {\n cssRules = styleSheet.cssRules;\n } catch (e) {}\n if (!cssRules) { continue; }\n for (var j = 0; j < cssRules.length; ++j) {\n var rule = cssRules[j];\n var selectedNodes = null;\n // Ignore errors on invalid selector texts.\n try {\n selectedNodes = document.querySelectorAll(rule.selectorText);\n } catch(e) {}\n if (!selectedNodes || !inNodeList(selectedNodes, element)) {\n continue;\n }\n var cssTop = rule.style.getPropertyValue('top');\n var cssBottom = rule.style.getPropertyValue('bottom');\n if ((cssTop && cssTop !== 'auto') || (cssBottom && cssBottom !== 'auto')) {\n return true;\n }\n }\n }\n return false;\n};\n\ndialogPolyfill.needsCentering = function(dialog) {\n var computedStyle = window.getComputedStyle(dialog);\n if (computedStyle.position !== 'absolute') {\n return false;\n }\n\n // We must determine whether the top/bottom specified value is non-auto. In\n // WebKit/Blink, checking computedStyle.top == 'auto' is sufficient, but\n // Firefox returns the used value. So we do this crazy thing instead: check\n // the inline style and then go through CSS rules.\n if ((dialog.style.top !== 'auto' && dialog.style.top !== '') ||\n (dialog.style.bottom !== 'auto' && dialog.style.bottom !== '')) {\n return false;\n }\n return !dialogPolyfill.isInlinePositionSetByStylesheet(dialog);\n};\n\n/**\n * @param {!Element} element to force upgrade\n */\ndialogPolyfill.forceRegisterDialog = function(element) {\n if (window.HTMLDialogElement || element.showModal) {\n console.warn('This browser already supports <dialog>, the polyfill ' +\n 'may not work correctly', element);\n }\n if (element.localName !== 'dialog') {\n throw new Error('Failed to register dialog: The element is not a dialog.');\n }\n new dialogPolyfillInfo(/** @type {!HTMLDialogElement} */ (element));\n};\n\n/**\n * @param {!Element} element to upgrade, if necessary\n */\ndialogPolyfill.registerDialog = function(element) {\n if (!element.showModal) {\n dialogPolyfill.forceRegisterDialog(element);\n }\n};\n\n/**\n * @constructor\n */\ndialogPolyfill.DialogManager = function() {\n /** @type {!Array<!dialogPolyfillInfo>} */\n this.pendingDialogStack = [];\n\n var checkDOM = this.checkDOM_.bind(this);\n\n // The overlay is used to simulate how a modal dialog blocks the document.\n // The blocking dialog is positioned on top of the overlay, and the rest of\n // the dialogs on the pending dialog stack are positioned below it. In the\n // actual implementation, the modal dialog stacking is controlled by the\n // top layer, where z-index has no effect.\n this.overlay = document.createElement('div');\n this.overlay.className = '_dialog_overlay';\n this.overlay.addEventListener('click', function(e) {\n this.forwardTab_ = undefined;\n e.stopPropagation();\n checkDOM([]); // sanity-check DOM\n }.bind(this));\n\n this.handleKey_ = this.handleKey_.bind(this);\n this.handleFocus_ = this.handleFocus_.bind(this);\n\n this.zIndexLow_ = 100000;\n this.zIndexHigh_ = 100000 + 150;\n\n this.forwardTab_ = undefined;\n\n if ('MutationObserver' in window) {\n this.mo_ = new MutationObserver(function(records) {\n var removed = [];\n records.forEach(function(rec) {\n for (var i = 0, c; c = rec.removedNodes[i]; ++i) {\n if (!(c instanceof Element)) {\n continue;\n } else if (c.localName === 'dialog') {\n removed.push(c);\n }\n removed = removed.concat(c.querySelectorAll('dialog'));\n }\n });\n removed.length && checkDOM(removed);\n });\n }\n};\n\n/**\n * Called on the first modal dialog being shown. Adds the overlay and related\n * handlers.\n */\ndialogPolyfill.DialogManager.prototype.blockDocument = function() {\n document.documentElement.addEventListener('focus', this.handleFocus_, true);\n document.addEventListener('keydown', this.handleKey_);\n this.mo_ && this.mo_.observe(document, {childList: true, subtree: true});\n};\n\n/**\n * Called on the first modal dialog being removed, i.e., when no more modal\n * dialogs are visible.\n */\ndialogPolyfill.DialogManager.prototype.unblockDocument = function() {\n document.documentElement.removeEventListener('focus', this.handleFocus_, true);\n document.removeEventListener('keydown', this.handleKey_);\n this.mo_ && this.mo_.disconnect();\n};\n\n/**\n * Updates the stacking of all known dialogs.\n */\ndialogPolyfill.DialogManager.prototype.updateStacking = function() {\n var zIndex = this.zIndexHigh_;\n\n for (var i = 0, dpi; dpi = this.pendingDialogStack[i]; ++i) {\n dpi.updateZIndex(--zIndex, --zIndex);\n if (i === 0) {\n this.overlay.style.zIndex = --zIndex;\n }\n }\n\n // Make the overlay a sibling of the dialog itself.\n var last = this.pendingDialogStack[0];\n if (last) {\n var p = last.dialog.parentNode || document.body;\n p.appendChild(this.overlay);\n } else if (this.overlay.parentNode) {\n this.overlay.parentNode.removeChild(this.overlay);\n }\n};\n\n/**\n * @param {Element} candidate to check if contained or is the top-most modal dialog\n * @return {boolean} whether candidate is contained in top dialog\n */\ndialogPolyfill.DialogManager.prototype.containedByTopDialog_ = function(candidate) {\n while (candidate = findNearestDialog(candidate)) {\n for (var i = 0, dpi; dpi = this.pendingDialogStack[i]; ++i) {\n if (dpi.dialog === candidate) {\n return i === 0; // only valid if top-most\n }\n }\n candidate = candidate.parentElement;\n }\n return false;\n};\n\ndialogPolyfill.DialogManager.prototype.handleFocus_ = function(event) {\n var target = event.composedPath ? event.composedPath()[0] : event.target;\n\n if (this.containedByTopDialog_(target)) { return; }\n\n if (document.activeElement === document.documentElement) { return; }\n\n event.preventDefault();\n event.stopPropagation();\n safeBlur(/** @type {Element} */ (target));\n\n if (this.forwardTab_ === undefined) { return; } // move focus only from a tab key\n\n var dpi = this.pendingDialogStack[0];\n var dialog = dpi.dialog;\n var position = dialog.compareDocumentPosition(target);\n if (position & Node.DOCUMENT_POSITION_PRECEDING) {\n if (this.forwardTab_) {\n // forward\n dpi.focus_();\n } else if (target !== document.documentElement) {\n // backwards if we're not already focused on <html>\n document.documentElement.focus();\n }\n }\n\n return false;\n};\n\ndialogPolyfill.DialogManager.prototype.handleKey_ = function(event) {\n this.forwardTab_ = undefined;\n if (event.keyCode === 27) {\n event.preventDefault();\n event.stopPropagation();\n var cancelEvent = new supportCustomEvent('cancel', {\n bubbles: false,\n cancelable: true\n });\n var dpi = this.pendingDialogStack[0];\n if (dpi && safeDispatchEvent(dpi.dialog, cancelEvent)) {\n dpi.dialog.close();\n }\n } else if (event.keyCode === 9) {\n this.forwardTab_ = !event.shiftKey;\n }\n};\n\n/**\n * Finds and downgrades any known modal dialogs that are no longer displayed. Dialogs that are\n * removed and immediately readded don't stay modal, they become normal.\n *\n * @param {!Array<!HTMLDialogElement>} removed that have definitely been removed\n */\ndialogPolyfill.DialogManager.prototype.checkDOM_ = function(removed) {\n // This operates on a clone because it may cause it to change. Each change also calls\n // updateStacking, which only actually needs to happen once. But who removes many modal dialogs\n // at a time?!\n var clone = this.pendingDialogStack.slice();\n clone.forEach(function(dpi) {\n if (removed.indexOf(dpi.dialog) !== -1) {\n dpi.downgradeModal();\n } else {\n dpi.maybeHideModal();\n }\n });\n};\n\n/**\n * @param {!dialogPolyfillInfo} dpi\n * @return {boolean} whether the dialog was allowed\n */\ndialogPolyfill.DialogManager.prototype.pushDialog = function(dpi) {\n var allowed = (this.zIndexHigh_ - this.zIndexLow_) / 2 - 1;\n if (this.pendingDialogStack.length >= allowed) {\n return false;\n }\n if (this.pendingDialogStack.unshift(dpi) === 1) {\n this.blockDocument();\n }\n this.updateStacking();\n return true;\n};\n\n/**\n * @param {!dialogPolyfillInfo} dpi\n */\ndialogPolyfill.DialogManager.prototype.removeDialog = function(dpi) {\n var index = this.pendingDialogStack.indexOf(dpi);\n if (index === -1) { return; }\n\n this.pendingDialogStack.splice(index, 1);\n if (this.pendingDialogStack.length === 0) {\n this.unblockDocument();\n }\n this.updateStacking();\n};\n\ndialogPolyfill.dm = new dialogPolyfill.DialogManager();\ndialogPolyfill.formSubmitter = null;\ndialogPolyfill.imagemapUseValue = null;\n\n/**\n * Installs global handlers, such as click listers and native method overrides. These are needed\n * even if a no dialog is registered, as they deal with <form method=\"dialog\">.\n */\nif (window.HTMLDialogElement === undefined) {\n\n /**\n * If HTMLFormElement translates method=\"DIALOG\" into 'get', then replace the descriptor with\n * one that returns the correct value.\n */\n var testForm = document.createElement('form');\n testForm.setAttribute('method', 'dialog');\n if (testForm.method !== 'dialog') {\n var methodDescriptor = Object.getOwnPropertyDescriptor(HTMLFormElement.prototype, 'method');\n if (methodDescriptor) {\n // nb. Some older iOS and older PhantomJS fail to return the descriptor. Don't do anything\n // and don't bother to update the element.\n var realGet = methodDescriptor.get;\n methodDescriptor.get = function() {\n if (isFormMethodDialog(this)) {\n return 'dialog';\n }\n return realGet.call(this);\n };\n var realSet = methodDescriptor.set;\n /** @this {HTMLElement} */\n methodDescriptor.set = function(v) {\n if (typeof v === 'string' && v.toLowerCase() === 'dialog') {\n return this.setAttribute('method', v);\n }\n return realSet.call(this, v);\n };\n Object.defineProperty(HTMLFormElement.prototype, 'method', methodDescriptor);\n }\n }\n\n /**\n * Global 'click' handler, to capture the <input type=\"submit\"> or <button> element which has\n * submitted a <form method=\"dialog\">. Needed as Safari and others don't report this inside\n * document.activeElement.\n */\n document.addEventListener('click', function(ev) {\n dialogPolyfill.formSubmitter = null;\n dialogPolyfill.imagemapUseValue = null;\n if (ev.defaultPrevented) { return; } // e.g. a submit which prevents default submission\n\n var target = /** @type {Element} */ (ev.target);\n if ('composedPath' in ev) {\n var path = ev.composedPath();\n target = path.shift() || target;\n }\n if (!target || !isFormMethodDialog(target.form)) { return; }\n\n var valid = (target.type === 'submit' && ['button', 'input'].indexOf(target.localName) > -1);\n if (!valid) {\n if (!(target.localName === 'input' && target.type === 'image')) { return; }\n // this is a <input type=\"image\">, which can submit forms\n dialogPolyfill.imagemapUseValue = ev.offsetX + ',' + ev.offsetY;\n }\n\n var dialog = findNearestDialog(target);\n if (!dialog) { return; }\n\n dialogPolyfill.formSubmitter = target;\n\n }, false);\n\n /**\n * Global 'submit' handler. This handles submits of `method=\"dialog\"` which are invalid, i.e.,\n * outside a dialog. They get prevented.\n */\n document.addEventListener('submit', function(ev) {\n var form = ev.target;\n var dialog = findNearestDialog(form);\n if (dialog) {\n return; // ignore, handle there\n }\n\n var submitter = findFormSubmitter(ev);\n var formmethod = submitter && submitter.getAttribute('formmethod') || form.getAttribute('method');\n if (formmethod === 'dialog') {\n ev.preventDefault();\n }\n });\n\n /**\n * Replace the native HTMLFormElement.submit() method, as it won't fire the\n * submit event and give us a chance to respond.\n */\n var nativeFormSubmit = HTMLFormElement.prototype.submit;\n var replacementFormSubmit = function () {\n if (!isFormMethodDialog(this)) {\n return nativeFormSubmit.call(this);\n }\n var dialog = findNearestDialog(this);\n dialog && dialog.close();\n };\n HTMLFormElement.prototype.submit = replacementFormSubmit;\n}\n\nexport default dialogPolyfill;\n",":host {\n font-family: var(--font-family-sans);\n font-weight: var(--font-rg);\n\n --z-modal-content-padding: calc(var(--space-unit) * 2);\n}\n\n:host > dialog {\n padding: 0;\n border: none;\n margin: 0;\n background-color: transparent;\n}\n\n/* stylelint-disable selector-pseudo-class-no-unknown */\n:host > dialog:modal {\n width: 100%;\n max-width: 100%;\n max-height: 100%;\n}\n\n:host > dialog::backdrop {\n display: none;\n}\n\n/* polyfill style */\n:host > dialog + .backdrop {\n display: none;\n}\n\n:host > dialog:not([open]) {\n display: none;\n}\n\n:host > dialog[open] {\n display: block;\n}\n\n::slotted([slot=\"modalContent\"]) {\n padding: var(--z-modal-content-padding);\n}\n\n.modal-container {\n z-index: 1010;\n display: flex;\n overflow: -moz-scrollbars-none;\n width: 100%;\n height: 100vh;\n flex-direction: column;\n}\n\n.modal-container > .modal-content-scroll-outside {\n overflow: auto;\n background: var(--color-surface01);\n}\n\n.modal-container > header {\n padding: calc(var(--space-unit) * 1.75) calc(var(--space-unit) * 2) calc(var(--space-unit) * 1.75)\n calc(var(--space-unit) * 2);\n background: var(--color-background);\n}\n\n.modal-container > header button {\n padding: 0;\n border: none;\n margin: 0;\n margin-left: auto;\n background: transparent;\n cursor: pointer;\n}\n\n.modal-container > header button:focus-visible {\n border-radius: 50%;\n box-shadow: var(--shadow-focus-primary);\n outline: none !important;\n}\n\n.modal-container > header button::after {\n position: absolute;\n top: 6px;\n right: 4px;\n display: block;\n width: 40px;\n height: 40px;\n background-color: transparent;\n content: \"\";\n}\n\n.modal-container > header z-icon {\n --z-icon-width: calc(var(--space-unit) * 2.25);\n --z-icon-height: calc(var(--space-unit) * 2.25);\n\n display: flex;\n fill: var(--color-primary01-icon);\n}\n\n.modal-container > header > div {\n display: flex;\n width: 100%;\n align-items: baseline;\n margin-right: calc(var(--space-unit) * 2);\n}\n\n.modal-container > header h1,\n.modal-container > header .subtitle {\n padding: 0;\n margin: 0;\n color: var(--color-default-text);\n font-weight: var(--font-sb);\n}\n\n.modal-container > header h1 {\n font-size: var(--font-size-5);\n letter-spacing: 0;\n line-height: 1.4;\n}\n\n.modal-container > header .subtitle {\n font-size: var(--font-size-3);\n font-weight: var(--font-rg);\n letter-spacing: 0;\n line-height: 1.5;\n}\n\n.modal-container > header > div > h1 *:empty {\n display: none;\n}\n\n.modal-container > header h1 + .subtitle {\n margin-top: calc(var(--space-unit) * 0.5);\n}\n\n.modal-container-scroll-inside > .modal-content-scroll-inside {\n overflow: hidden auto;\n flex: 1 auto;\n background: var(--color-surface01);\n}\n\n.modal-container-scroll-inside > .modal-content-scroll-inside::-webkit-scrollbar,\n.modal-container-scroll-outside > .modal-content-scroll-outside::-webkit-scrollbar {\n width: 10px;\n background: linear-gradient(to right, transparent 0 3px, var(--gray200) 3px 7px, transparent 7px 10px);\n border-radius: var(--border-radius);\n}\n\n.modal-container-scroll-inside > .modal-content-scroll-inside::-webkit-scrollbar-thumb,\n.modal-container-scroll-outside > .modal-content-scroll-outside::-webkit-scrollbar-thumb {\n width: 10px;\n background-color: var(--color-primary01);\n}\n\n.modal-container-scroll-inside > .modal-content-scroll-inside::-webkit-scrollbar-thumb:hover,\n.modal-container-scroll-outside > .modal-content-scroll-outside::-webkit-scrollbar-thumb:hover {\n background-color: var(--color-hover-primary);\n}\n\n/* Firefox */\n.modal-container-scroll-inside .modal-content-scroll-inside,\n.modal-container-scroll-outside .modal-content-scroll-outside {\n scrollbar-color: var(--color-primary01) transparent;\n}\n\n/* Tablet / Desktop */\n@media only screen and (min-width: 768px) {\n .modal-background {\n position: fixed;\n top: 0;\n left: 0;\n overflow: hidden;\n width: 100vw;\n height: 100vh;\n background-color: var(--gray900);\n opacity: 0.7;\n }\n\n .modal-background.modal-background-scroll-outside {\n position: sticky;\n }\n\n .modal-container-scroll-inside {\n position: fixed;\n top: calc(var(--space-unit) * 6);\n left: 50%;\n overflow: hidden;\n width: auto;\n min-width: calc(var(--space-unit) * 40);\n height: auto;\n min-height: calc(var(--space-unit) * 40);\n max-height: calc(100vh - calc(var(--space-unit) * 6 * 2));\n border-radius: var(--border-radius);\n transform: translateX(-50%);\n }\n\n .modal-container-scroll-outside {\n position: absolute;\n top: calc(var(--space-unit) * 6);\n left: 50%;\n display: block;\n overflow: initial;\n width: auto;\n min-width: calc(var(--space-unit) * 40);\n height: auto;\n min-height: calc(var(--space-unit) * 40);\n max-height: calc(100vh - calc(var(--space-unit) * 6 * 2));\n transform: translateX(-50%);\n }\n\n .modal-container > .modal-content-scroll-outside {\n overflow: initial;\n }\n\n .modal-container-scroll-outside > header,\n .modal-container-scroll-inside > header {\n border-top-left-radius: var(--border-radius);\n border-top-right-radius: var(--border-radius);\n }\n\n .modal-container-scroll-outside::after {\n display: block;\n height: calc(var(--space-unit) * 6);\n content: \" \";\n }\n\n .modal-dialog {\n position: fixed;\n top: 0;\n left: 0;\n height: auto;\n overflow-x: hidden;\n overflow-y: auto;\n }\n\n .modal-content-scroll-outside {\n border-bottom-left-radius: var(--border-radius);\n border-bottom-right-radius: var(--border-radius);\n }\n\n .modal-dialog::-webkit-scrollbar {\n display: none;\n }\n}\n\n/* Desktop */\n@media only screen and (min-width: 1152px) {\n .modal-container > header {\n padding-top: calc(var(--space-unit) * 1.5);\n padding-bottom: calc(var(--space-unit) * 1.5);\n }\n\n .modal-container > header h1 {\n font-size: var(--font-size-6);\n font-weight: var(--font-sb);\n letter-spacing: 0;\n line-height: 1.333;\n }\n\n .modal-container > header .subtitle {\n font-size: var(--font-size-4);\n font-weight: var(--font-rg);\n letter-spacing: 0;\n line-height: 1.5;\n }\n\n .modal-container > header h1 + .subtitle {\n margin-top: 0;\n }\n}\n","import {Component, Element, Event, EventEmitter, Listen, Method, Prop, h} from \"@stencil/core\";\nimport dialogPolyfill from \"dialog-polyfill\";\nimport {KeyboardCode} from \"../../beans\";\n\nconst FOCUSABLE_ELEMENTS_SELECTOR =\n ':is(button, input, select, textarea, [contenteditable=\"\"], [contenteditable=\"true\"], a[href], [tabindex], summary):not([disabled], [disabled=\"\"], [tabindex=\"-1\"], [aria-hidden=\"true\"], [hidden])';\n\n/**\n * @slot modalCloseButton - accept custom close button\n * @slot modalContent - set the content of the modal\n * @cssprop --z-modal-content-padding - set a default padding for the modal content slot to 16px\n */\n@Component({\n tag: \"z-modal\",\n styleUrl: \"styles.css\",\n shadow: true,\n})\nexport class ZModal {\n /** unique id */\n @Prop()\n modalid: string;\n\n /** title text (optional) */\n @Prop()\n modaltitle?: string;\n\n /** subtitle (optional) */\n @Prop()\n modalsubtitle?: string;\n\n /** aria-label for close button (optional) */\n @Prop()\n closeButtonLabel = \"chiudi modale\";\n\n /** add role \"alertdialog\" to dialog (optional, default is false) */\n @Prop()\n alertdialog?: boolean = false;\n\n /** if true, the modal is closable (optional, default is true) */\n @Prop()\n closable?: boolean = true;\n\n /** if true, the modal can scroll inside, if false the viewport can scroll */\n @Prop()\n scrollInside?: boolean = true;\n\n private dialog: HTMLDialogElement;\n\n @Element() host: HTMLZModalElement;\n\n /** emitted on close button click, returns modalid */\n @Event()\n modalClose: EventEmitter;\n\n private emitModalClose(): void {\n if (this.closable) {\n this.modalClose.emit({modalid: this.modalid});\n }\n }\n\n /** emitted on modal header click, returns modalid */\n @Event()\n modalHeaderActive: EventEmitter;\n\n private emitModalHeaderActive(): void {\n this.modalHeaderActive.emit({modalid: this.modalid});\n }\n\n /** emitted on background click, returns modalid */\n @Event()\n modalBackgroundClick: EventEmitter;\n\n private emitBackgroundClick(): void {\n if (this.closable) {\n this.modalBackgroundClick.emit({modalid: this.modalid});\n }\n }\n\n componentDidLoad(): void {\n if (typeof window.HTMLDialogElement !== \"function\") {\n /* workaround to fix `registerDialog` in test environment:\n stencil converts html elements to MockHTMLElement but this element is missing the `localName` property,\n which is used by `registerDialog` to recognize the element as dialog */\n if (!this.dialog.localName) {\n Object.defineProperty(this.dialog, \"localName\", {value: \"dialog\"});\n }\n dialogPolyfill.registerDialog(this.dialog);\n this.dialog.setAttribute(\"open\", \"true\");\n } else {\n this.open();\n }\n }\n\n /** open modal */\n @Method()\n async open(): Promise<void> {\n this.dialog?.showModal();\n }\n\n /** close modal */\n @Method()\n async close(): Promise<void> {\n if (this.closable) {\n this.dialog?.close();\n }\n }\n\n /**\n * Get a list of focusable elements in the dialog.\n * Remove elements with `display: none` from the list, because they're not focusable.\n *\n * N.B. The list is built on the assumption that elements inside shadow root are placed ALL before the `modalContent` slot.\n * Adding focusable elements after the `modalContent` slot would break the order of elements in the list.\n */\n private get focusableElements(): HTMLElement[] {\n return [\n ...Array.from(this.host.shadowRoot.querySelectorAll<HTMLElement>(FOCUSABLE_ELEMENTS_SELECTOR)),\n ...Array.from(this.host.querySelectorAll<HTMLElement>(FOCUSABLE_ELEMENTS_SELECTOR)),\n ].filter((element) => getComputedStyle(element).display !== \"none\");\n }\n\n @Listen(\"keydown\")\n handleKeyDown(e: KeyboardEvent): void {\n if (e.code === KeyboardCode.ESC && !this.closable) {\n e.preventDefault();\n }\n\n if (e.code !== KeyboardCode.TAB) {\n return;\n }\n\n const focusableElements = this.focusableElements;\n const shadowActiveElement = this.host.shadowRoot.activeElement;\n const activeElement = this.host.ownerDocument.activeElement;\n const firstFocusableElement = focusableElements[0];\n const lastFocusableElement = focusableElements[focusableElements.length - 1];\n if (e.shiftKey && (shadowActiveElement == firstFocusableElement || activeElement == firstFocusableElement)) {\n // shift + tab was pressed and current active element is the first focusable element\n e.preventDefault();\n lastFocusableElement.focus();\n } else if (!e.shiftKey && (shadowActiveElement == lastFocusableElement || activeElement == lastFocusableElement)) {\n // shift + tab was pressed and current active element is the first focusable element\n e.preventDefault();\n firstFocusableElement.focus();\n }\n }\n\n private closeButtonSlot(): HTMLElement | void {\n if (this.closable) {\n return (\n <slot name=\"modalCloseButton\">\n <button\n aria-label={this.closeButtonLabel}\n onClick={() => this.close()}\n >\n <z-icon name=\"multiply-circle-filled\"></z-icon>\n </button>\n </slot>\n );\n }\n }\n\n private handleEscape(e: Event): void {\n if (this.closable) {\n return;\n }\n e.preventDefault();\n }\n\n render(): HTMLZModalElement {\n return (\n <dialog\n class={{\n \"modal-dialog\": !this.scrollInside,\n }}\n aria-labelledby=\"modal-title\"\n aria-describedby=\"modal-content\"\n role={this.alertdialog ? \"alertdialog\" : undefined}\n ref={(el) => (this.dialog = el as HTMLDialogElement)}\n onClose={() => this.emitModalClose()}\n onCancel={(e) => this.handleEscape(e)}\n >\n <div\n class={{\n \"modal-container\": true,\n \"modal-container-scroll-inside\": this.scrollInside,\n \"modal-container-scroll-outside\": !this.scrollInside,\n }}\n id={this.modalid}\n >\n <header onClick={this.emitModalHeaderActive.bind(this)}>\n <div>\n {this.modaltitle && <h1 id=\"modal-title\">{this.modaltitle}</h1>}\n {this.closeButtonSlot()}\n </div>\n {this.modalsubtitle && (\n <div\n class=\"subtitle\"\n id=\"modal-subtitle\"\n >\n {this.modalsubtitle}\n </div>\n )}\n </header>\n\n <div\n class={{\n \"modal-content-scroll-inside\": this.scrollInside,\n \"modal-content-scroll-outside\": !this.scrollInside,\n }}\n id=\"modal-content\"\n >\n <slot name=\"modalContent\"></slot>\n </div>\n </div>\n <div\n class={{\n \"modal-background\": true,\n \"modal-background-scroll-outside\": !this.scrollInside,\n }}\n data-action=\"modalBackground\"\n data-modal={this.modalid}\n onClick={() => {\n this.emitBackgroundClick();\n this.close();\n }}\n ></div>\n </dialog>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{r as t,h as e}from"./p-75c4a726.js";const o=":host{position:absolute;overflow:hidden;width:1px;height:1px;padding:0;border:0;margin:0 -1px -1px 0;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}";const s=o;const r=class{constructor(e){t(this,e)}render(){return e("slot",{key:"f34bff11c258d464016d3963268b24ea73e2e6ac"})}};r.style=s;export{r as z_visually_hidden};
2
- //# sourceMappingURL=p-65f993a4.entry.js.map
@@ -1,2 +0,0 @@
1
- import{r as o,h as r,a as s}from"./p-75c4a726.js";const c=":host{display:block;box-sizing:border-box;border-top:1px solid var(--color-surface03);border-bottom:1px solid var(--color-surface03)}:host([sticky]){position:sticky;z-index:1;bottom:0;background-color:var(--color-surface01)}";const a=c;const t=class{constructor(r){o(this,r);this.sticky=false}render(){return r(s,{key:"5fa9603626d56fd5d7fc85ab116f4951c0ab01a9",role:"rowgroup"},r("slot",{key:"d47ca57a00753b01cbfecbd1d562bb0c1b6e0124"}))}};t.style=a;export{t as Z};
2
- //# sourceMappingURL=p-6f69c2b6.js.map
@@ -1,2 +0,0 @@
1
- import{r as t,c as i,h as e,a as s,g as n}from"./p-75c4a726.js";import{v as a,p as r,D as o}from"./p-b34993de.js";import{g as l}from"./p-10607a39.js";import"./p-5145a606.js";const c=':host{color:var(--color-default-text);font-family:var(--font-family-sans);font-weight:var(--font-rg)}:host>.container{display:flex;flex-direction:column}:host .modal-wrapper{display:flex;align-items:center;justify-content:center;padding:calc(var(--space-unit) * 2)}:host .modal-wrapper>.files-wrapper{display:flex;flex-direction:column;margin:calc(var(--space-unit) * 4);gap:var(--space-unit)}:host .text-container{display:flex;flex-direction:column;margin:auto}:host .text-container .body-1{text-align:center}:host .text-container .upload-link{color:var(--color-text-link-blue);cursor:pointer}:host .text-container .upload-link:focus-visible{box-shadow:var(--shadow-focus-primary);outline:none !important}:host .text-container .upload-link-text{margin-bottom:var(--space-unit)}input#file-elem{display:none}#title{display:inline-block;margin:calc(var(--space-unit) * 2.5) 0 calc(var(--space-unit) * 4);font-size:calc(var(--space-unit) * 3);font-weight:var(--font-sb)}:host>.container>z-button{display:inline-block;margin-top:calc(var(--space-unit) * 3)}:host>.container>.files-container.hidden{display:none}:host>.container>.files-container>.heading-4-sb{display:inline-block;margin:calc(var(--space-unit) * 3) 0;font-size:calc(var(--space-unit) * 2);font-weight:var(--font-sb)}:host([type="dragdrop"])>.container>.files-container>.heading-4-sb{margin-top:0;margin-bottom:calc(var(--space-unit) * 3)}:host>.container>.files-container>.files-wrapper{display:flex;flex-wrap:wrap;column-gap:calc(var(--space-unit) * 2);row-gap:calc(var(--space-unit) * 2)}:host>.container>.files-container>z-divider{margin-top:calc(var(--space-unit) * 3);margin-bottom:0}:host([type="dragdrop"])>.container>.files-container>z-divider{margin:calc(var(--space-unit) * 3) 0}:host .error-message{font-size:14px;font-weight:400;letter-spacing:0.16%;line-height:20px;text-align:left}:host .error-message>.file-name{font-weight:600}@media only screen and (min-width: 768px){:host>.container>z-button{align-self:flex-start}:host .modal-wrapper{padding:calc(var(--space-unit) * 3)}}@media only screen and (min-width: 1152px){:host .modal-wrapper{padding:calc(var(--space-unit) * 4)}}';const d=c;const h=class{constructor(e){t(this,e);this.fileInput=i(this,"fileInput",7);this.inputAttributes={type:"file",id:"file-elem",multiple:true};this.type=a.DEFAULT;this.buttonVariant=undefined;this.acceptedFormat=undefined;this.fileMaxSize=undefined;this.mainTitle=undefined;this.description=undefined;this.files=[];this.uploadBtnLabel="allega";this.dragAndDropLabel="Rilascia i file in questa area per allegarli.";this.allowedFilesMessage=undefined;this.uploadClickableMessage="Carica";this.uploadMessage="o trascina dal tuo computer";this.errorModalTitle="Errore di caricamento";this.errorModalMessage=undefined;this.uploadedFilesLabel="File appena caricati";this.hasFileSection=true;this.invalidFiles=undefined}removeFileListener(t){this.removeFileHandler(t.detail)}fileDroppedListener(t){this.input.files=t.detail;this.fileInputHandler()}componentDidUpdate(){this.handleAccessibility();this.invalidFiles.size&&this.errorModal.focus()}componentWillLoad(){this.invalidFiles=new Map}fileInputHandler(){if(this.input.files.length){this.invalidFiles=this.checkFiles(Array.from(this.input.files))}}async getFiles(){return this.files}async removeFile(t){this.removeFileHandler(t)}removeFileHandler(t){const i=this.files;const e=i.find((i=>i.name===t));if(e){const t=i.indexOf(e);if(t>=0){i.splice(t,1);this.files=[...i]}}}getType(){if(l()!==r.DESKTOP&&l()!==r.DESKTOP_WIDE){return a.DEFAULT}return this.type}handleAccessibility(){const t=this.el.querySelector("z-file:last-child z-chip button");if(this.files.length>0&&t){t.focus()}else{this.getType()===a.DEFAULT?this.button.querySelector("button").focus():this.uploadLink.focus()}}checkFiles(t){const i=new Map;const e=`supera il limite di ${this.fileMaxSize}MB`;const s=" ha un formato non supportato";t.forEach((t=>{const n=t.size/1024/1024;const a=this.acceptedFormat.split(",").some((i=>t.name.toLowerCase().endsWith(i.trim())));const r=n<=this.fileMaxSize;if(r&&a){if(!this.files.find((i=>i.name===t.name))){this.files.push(t);this.fileInput.emit(t);this.input.value=""}return}i.set(t.name,[]);if(!r){i.get(t.name).push(e)}if(!a){i.get(t.name).push(s)}}));return i}renderTitle(){return e("span",{id:"title"},this.mainTitle)}renderDescription(t){return e("span",{class:t},this.description)}renderAllowedFileExtensions(){let t="";let i="";if(this.acceptedFormat){const i=this.acceptedFormat.split(", ").map((t=>t.substring(1).toUpperCase())).join(", ");t=` nei formati ${i}`}if(this.fileMaxSize){i=` per un massimo di ${this.fileMaxSize}MB di peso`}const s=`Puoi allegare file${t}${i}.`;return e("span",{class:"body-3"},this.allowedFilesMessage?this.allowedFilesMessage:t||i?s:null)}renderFileSection(){if(!this.hasFileSection){return}return e("section",{class:`files-container ${!this.files.length?"hidden":""}`},e("span",{class:"heading-4-sb"},this.uploadedFilesLabel),e("div",{class:"files-wrapper"},e("slot",{name:"files"})),e("z-divider",{size:o.MEDIUM}))}renderInput(){return e("input",Object.assign({},this.inputAttributes,{onChange:()=>this.fileInputHandler(),accept:this.acceptedFormat,ref:t=>this.input=t}))}renderUploadButton(){return[this.renderInput(),e("z-button",{onClick:()=>this.input.click(),onKeyPress:t=>{if(t.code=="Space"||t.code=="Enter"){t.preventDefault();this.input.click()}},id:"fileSelect",variant:this.buttonVariant,icon:"upload",ref:t=>this.button=t},this.uploadBtnLabel)]}renderUploadLink(){return[this.renderInput(),e("span",{class:"body-1 upload-link-text"},e("span",{tabIndex:0,class:"body-1-sb upload-link",onClick:()=>this.input.click(),onKeyPress:t=>{if(t.code=="Space"||t.code=="Enter"){t.preventDefault();this.input.click()}},ref:t=>this.uploadLink=t},this.uploadClickableMessage)," ",this.uploadMessage)]}renderDefaultMode(){return[this.renderDescription("body-3-sb"),this.renderAllowedFileExtensions(),this.renderFileSection(),this.renderUploadButton()]}renderDragDropMode(){return[this.renderFileSection(),e("z-dragdrop-area",{"drag-and-drop-label":this.dragAndDropLabel},e("div",{class:"text-container"},this.renderDescription("body-1"),this.renderUploadLink(),this.renderAllowedFileExtensions()))]}formatErrorString(t,i){var s,n;const a=i[0]&&i[1]?" e ":"";return e("span",{class:"error-message"},"Il file ",e("span",{class:"file-name"},t)," ",(s=i[1])!==null&&s!==void 0?s:"",a,(n=i[0])!==null&&n!==void 0?n:"",".")}handleErrorModalContent(){return e("div",{slot:"modalContent"},e("div",{class:"modal-wrapper"},e("div",{class:"files"},this.errorModalMessage?e("span",{class:"body-3"},this.errorModalMessage):Array.from(this.invalidFiles).map((([t,i])=>e("span",{class:"body-3"},this.formatErrorString(t,i)))))))}render(){return e(s,{key:"516d51d19835f55e0a5696d3f3b847f2f253e915"},e("div",{key:"41a4196b48636cf761673ce0672bd3c5246ba8f8",class:`container ${this.getType()}`},this.mainTitle&&this.renderTitle(),this.getType()==a.DEFAULT?this.renderDefaultMode():this.renderDragDropMode()),!!this.invalidFiles.size&&e("z-modal",{key:"8c790bf5dd9b70557b4479bae9ef3a949d9bb4c3",modalid:`file-upload-${this.type}-error-modal`,tabIndex:0,ref:t=>this.errorModal=t,modaltitle:this.errorModalTitle,onModalClose:()=>this.invalidFiles=new Map,onModalBackgroundClick:()=>this.invalidFiles=new Map},this.handleErrorModalContent()))}get el(){return n(this)}};h.style=d;export{h as z_file_upload};
2
- //# sourceMappingURL=p-72618fde.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["stylesCss","ZFileUploadStyle0","ZFileUpload","this","inputAttributes","type","id","multiple","ZFileUploadType","DEFAULT","removeFileListener","e","removeFileHandler","detail","fileDroppedListener","input","files","fileInputHandler","componentDidUpdate","handleAccessibility","invalidFiles","size","errorModal","focus","componentWillLoad","Map","length","checkFiles","Array","from","getFiles","removeFile","fileName","file","find","name","index","indexOf","splice","getType","getDevice","Device","DESKTOP","DESKTOP_WIDE","lastFile","el","querySelector","button","uploadLink","errors","sizeErrorString","fileMaxSize","formatErrorString","forEach","fileSize","fileFormatOk","acceptedFormat","split","some","ext","toLowerCase","endsWith","trim","fileSizeOk","f","push","fileInput","emit","value","set","get","renderTitle","h","mainTitle","renderDescription","cssClass","class","description","renderAllowedFileExtensions","fileFormatString","fileWeightString","fileFormat","map","string","substring","toUpperCase","join","finalString","allowedFilesMessage","renderFileSection","hasFileSection","uploadedFilesLabel","DividerSize","MEDIUM","renderInput","Object","assign","onChange","accept","ref","val","renderUploadButton","onClick","click","onKeyPress","code","preventDefault","variant","buttonVariant","icon","uploadBtnLabel","renderUploadLink","tabIndex","uploadClickableMessage","uploadMessage","renderDefaultMode","renderDragDropMode","dragAndDropLabel","key","bothErrors","_a","_b","handleErrorModalContent","slot","errorModalMessage","render","Host","modalid","modaltitle","errorModalTitle","onModalClose","onModalBackgroundClick"],"sources":["src/components/file-upload/z-file-upload/styles.css?tag=z-file-upload&encapsulation=shadow","src/components/file-upload/z-file-upload/index.tsx"],"sourcesContent":[":host {\n color: var(--color-default-text);\n font-family: var(--font-family-sans);\n font-weight: var(--font-rg);\n}\n\n:host > .container {\n display: flex;\n flex-direction: column;\n}\n\n:host .modal-wrapper {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: calc(var(--space-unit) * 2);\n}\n\n:host .modal-wrapper > .files-wrapper {\n display: flex;\n flex-direction: column;\n margin: calc(var(--space-unit) * 4);\n gap: var(--space-unit);\n}\n\n:host .text-container {\n display: flex;\n flex-direction: column;\n margin: auto;\n}\n\n:host .text-container .body-1 {\n text-align: center;\n}\n\n:host .text-container .upload-link {\n color: var(--color-text-link-blue);\n cursor: pointer;\n}\n\n:host .text-container .upload-link:focus-visible {\n box-shadow: var(--shadow-focus-primary);\n outline: none !important;\n}\n\n:host .text-container .upload-link-text {\n margin-bottom: var(--space-unit);\n}\n\ninput#file-elem {\n display: none;\n}\n\n#title {\n display: inline-block;\n margin: calc(var(--space-unit) * 2.5) 0 calc(var(--space-unit) * 4);\n font-size: calc(var(--space-unit) * 3);\n font-weight: var(--font-sb);\n}\n\n:host > .container > z-button {\n display: inline-block;\n margin-top: calc(var(--space-unit) * 3);\n}\n\n:host > .container > .files-container.hidden {\n display: none;\n}\n\n:host > .container > .files-container > .heading-4-sb {\n display: inline-block;\n margin: calc(var(--space-unit) * 3) 0;\n font-size: calc(var(--space-unit) * 2);\n font-weight: var(--font-sb);\n}\n\n:host([type=\"dragdrop\"]) > .container > .files-container > .heading-4-sb {\n margin-top: 0;\n margin-bottom: calc(var(--space-unit) * 3);\n}\n\n:host > .container > .files-container > .files-wrapper {\n display: flex;\n flex-wrap: wrap;\n column-gap: calc(var(--space-unit) * 2);\n row-gap: calc(var(--space-unit) * 2);\n}\n\n:host > .container > .files-container > z-divider {\n margin-top: calc(var(--space-unit) * 3);\n margin-bottom: 0;\n}\n\n:host([type=\"dragdrop\"]) > .container > .files-container > z-divider {\n margin: calc(var(--space-unit) * 3) 0;\n}\n\n:host .error-message {\n font-size: 14px;\n font-weight: 400;\n letter-spacing: 0.16%;\n line-height: 20px;\n text-align: left;\n}\n\n:host .error-message > .file-name {\n font-weight: 600;\n}\n\n/* Tablet breakpoint */\n@media only screen and (min-width: 768px) {\n :host > .container > z-button {\n align-self: flex-start;\n }\n\n :host .modal-wrapper {\n padding: calc(var(--space-unit) * 3);\n }\n}\n\n@media only screen and (min-width: 1152px) {\n :host .modal-wrapper {\n padding: calc(var(--space-unit) * 4);\n }\n}\n","import {Component, Element, Event, EventEmitter, Host, Listen, Method, Prop, State, h} from \"@stencil/core\";\nimport {ButtonVariant, Device, DividerSize, ZFileUploadType} from \"../../../beans\";\nimport {getDevice} from \"../../../utils/utils\";\n\n@Component({\n tag: \"z-file-upload\",\n styleUrl: \"styles.css\",\n shadow: true,\n})\nexport class ZFileUpload {\n /** Prop indicating the file upload type - can be default or dragdrop */\n @Prop({reflect: true})\n type: ZFileUploadType = ZFileUploadType.DEFAULT;\n\n /** Prop indicating the button variant*/\n @Prop()\n buttonVariant?: ButtonVariant;\n\n /** Prop indicating the accepted file type: ex \".pdf, .doc, .jpg\" */\n @Prop()\n acceptedFormat?: string;\n\n /** Max file dimension in Megabyte */\n @Prop()\n fileMaxSize?: number;\n\n /** Title */\n @Prop()\n mainTitle?: string;\n\n /** Description */\n @Prop()\n description?: string;\n\n /** Files added by the user */\n @State()\n files: File[] = [];\n\n /** upoload button label */\n @Prop()\n uploadBtnLabel?: string = \"allega\";\n\n /** drag & drop button label */\n @Prop()\n dragAndDropLabel?: string = \"Rilascia i file in questa area per allegarli.\";\n\n /** allowed file message */\n @Prop()\n allowedFilesMessage?: string;\n\n /** upload clickable message */\n @Prop()\n uploadClickableMessage?: string = \"Carica\";\n\n /** upload message */\n @Prop()\n uploadMessage?: string = \"o trascina dal tuo computer\";\n\n /** error modal title */\n @Prop()\n errorModalTitle?: string = \"Errore di caricamento\";\n\n /** error modal message */\n @Prop()\n errorModalMessage?: string;\n\n /** loaded files label */\n @Prop()\n uploadedFilesLabel?: string = \"File appena caricati\";\n\n /** uploaded files history rendering */\n @Prop()\n hasFileSection?: boolean = true;\n\n /** List of files not allowed to be uploaded */\n @State()\n invalidFiles: Map<string, string[]>;\n\n @Element() el: HTMLZFileUploadElement;\n\n private input: HTMLInputElement;\n\n private button: HTMLZButtonElement;\n\n private errorModal: HTMLZModalElement;\n\n private uploadLink: HTMLSpanElement;\n\n private inputAttributes = {\n type: \"file\",\n id: \"file-elem\",\n multiple: true,\n };\n\n /** Listen removeFile event sent from z-file component */\n @Listen(\"removeFile\")\n removeFileListener(e: CustomEvent): void {\n this.removeFileHandler(e.detail);\n }\n\n /** Listen fileDropped event sent from z-dragdrop-area component */\n @Listen(\"fileDropped\")\n fileDroppedListener(e: CustomEvent): void {\n this.input.files = e.detail;\n this.fileInputHandler();\n }\n\n componentDidUpdate(): void {\n this.handleAccessibility();\n this.invalidFiles.size && this.errorModal.focus();\n }\n\n componentWillLoad(): void {\n this.invalidFiles = new Map<string, string[]>();\n }\n\n /** Emitted when user select one or more files */\n @Event()\n fileInput: EventEmitter;\n\n private fileInputHandler(): void {\n if (this.input.files.length) {\n this.invalidFiles = this.checkFiles(Array.from(this.input.files));\n }\n }\n\n /** get array of uploaded files */\n @Method()\n async getFiles(): Promise<File[]> {\n return this.files;\n }\n\n /** remove file from the array */\n @Method()\n async removeFile(fileName: string): Promise<void> {\n this.removeFileHandler(fileName);\n }\n\n private removeFileHandler(fileName: string): void {\n const files = this.files;\n const file = files.find((file) => file.name === fileName);\n if (file) {\n const index = files.indexOf(file);\n if (index >= 0) {\n files.splice(index, 1);\n this.files = [...files];\n }\n }\n }\n\n private getType(): ZFileUploadType {\n if (getDevice() !== Device.DESKTOP && getDevice() !== Device.DESKTOP_WIDE) {\n return ZFileUploadType.DEFAULT;\n }\n\n return this.type;\n }\n\n private handleAccessibility(): void {\n const lastFile = this.el.querySelector(\"z-file:last-child z-chip button\");\n if (this.files.length > 0 && lastFile) {\n (lastFile as HTMLElement).focus();\n } else {\n this.getType() === ZFileUploadType.DEFAULT\n ? this.button.querySelector(\"button\").focus()\n : this.uploadLink.focus();\n }\n }\n\n private checkFiles(files: File[]): Map<string, string[]> {\n const errors = new Map<string, string[]>();\n const sizeErrorString = `supera il limite di ${this.fileMaxSize}MB`;\n const formatErrorString = \" ha un formato non supportato\";\n files.forEach((file: File) => {\n const fileSize = file.size / 1024 / 1024;\n const fileFormatOk = this.acceptedFormat\n .split(\",\")\n .some((ext: string) => file.name.toLowerCase().endsWith(ext.trim()));\n const fileSizeOk = fileSize <= this.fileMaxSize;\n if (fileSizeOk && fileFormatOk) {\n if (!this.files.find((f) => f.name === file.name)) {\n this.files.push(file);\n this.fileInput.emit(file);\n this.input.value = \"\";\n }\n\n return;\n }\n errors.set(file.name, []);\n if (!fileSizeOk) {\n errors.get(file.name).push(sizeErrorString);\n }\n if (!fileFormatOk) {\n errors.get(file.name).push(formatErrorString);\n }\n });\n\n return errors;\n }\n\n private renderTitle(): HTMLElement {\n return <span id=\"title\">{this.mainTitle}</span>;\n }\n\n private renderDescription(cssClass): HTMLElement {\n return <span class={cssClass}>{this.description}</span>;\n }\n\n private renderAllowedFileExtensions(): HTMLElement {\n let fileFormatString = \"\";\n let fileWeightString = \"\";\n\n if (this.acceptedFormat) {\n const fileFormat = this.acceptedFormat\n .split(\", \")\n .map((string) => string.substring(1).toUpperCase())\n .join(\", \");\n fileFormatString = ` nei formati ${fileFormat}`;\n }\n\n if (this.fileMaxSize) {\n fileWeightString = ` per un massimo di ${this.fileMaxSize}MB di peso`;\n }\n\n const finalString = `Puoi allegare file${fileFormatString}${fileWeightString}.`;\n\n return (\n <span class=\"body-3\">\n {this.allowedFilesMessage\n ? this.allowedFilesMessage\n : fileFormatString || fileWeightString\n ? finalString\n : null}\n </span>\n );\n }\n\n private renderFileSection(): HTMLElement {\n if (!this.hasFileSection) {\n return;\n }\n\n return (\n <section class={`files-container ${!this.files.length ? \"hidden\" : \"\"}`}>\n <span class=\"heading-4-sb\">{this.uploadedFilesLabel}</span>\n <div class=\"files-wrapper\">\n <slot name=\"files\" />\n </div>\n <z-divider size={DividerSize.MEDIUM} />\n </section>\n );\n }\n\n private renderInput(): HTMLInputElement {\n return (\n <input\n {...this.inputAttributes}\n onChange={() => this.fileInputHandler()}\n accept={this.acceptedFormat}\n ref={(val) => (this.input = val)}\n />\n );\n }\n\n private renderUploadButton(): unknown[] {\n return [\n this.renderInput(),\n <z-button\n onClick={() => this.input.click()}\n onKeyPress={(e) => {\n if (e.code == \"Space\" || e.code == \"Enter\") {\n e.preventDefault();\n this.input.click();\n }\n }}\n id=\"fileSelect\"\n variant={this.buttonVariant}\n icon=\"upload\"\n ref={(val) => (this.button = val)}\n >\n {this.uploadBtnLabel}\n </z-button>,\n ];\n }\n\n private renderUploadLink(): unknown[] {\n return [\n this.renderInput(),\n <span class=\"body-1 upload-link-text\">\n <span\n tabIndex={0}\n class=\"body-1-sb upload-link\"\n onClick={() => this.input.click()}\n onKeyPress={(e) => {\n if (e.code == \"Space\" || e.code == \"Enter\") {\n e.preventDefault();\n this.input.click();\n }\n }}\n ref={(val) => (this.uploadLink = val)}\n >\n {this.uploadClickableMessage}\n </span>{\" \"}\n {this.uploadMessage}\n </span>,\n ];\n }\n\n private renderDefaultMode(): unknown[] {\n return [\n this.renderDescription(\"body-3-sb\"),\n this.renderAllowedFileExtensions(),\n this.renderFileSection(),\n this.renderUploadButton(),\n ];\n }\n\n private renderDragDropMode(): unknown[] {\n return [\n this.renderFileSection(),\n <z-dragdrop-area drag-and-drop-label={this.dragAndDropLabel}>\n <div class=\"text-container\">\n {this.renderDescription(\"body-1\")}\n {this.renderUploadLink()}\n {this.renderAllowedFileExtensions()}\n </div>\n </z-dragdrop-area>,\n ];\n }\n\n private formatErrorString(key, value): string {\n const bothErrors = value[0] && value[1] ? \" e \" : \"\";\n\n return (\n <span class=\"error-message\">\n Il file <span class=\"file-name\">{key}</span> {value[1] ?? \"\"}\n {bothErrors}\n {value[0] ?? \"\"}.\n </span>\n );\n }\n\n private handleErrorModalContent(): HTMLDivElement {\n return (\n <div slot=\"modalContent\">\n <div class=\"modal-wrapper\">\n <div class=\"files\">\n {this.errorModalMessage ? (\n <span class=\"body-3\">{this.errorModalMessage}</span>\n ) : (\n Array.from(this.invalidFiles).map(([key, value]) => {\n return <span class=\"body-3\">{this.formatErrorString(key, value)}</span>;\n })\n )}\n </div>\n </div>\n </div>\n );\n }\n\n render(): HTMLZFileUploadElement {\n return (\n <Host>\n <div class={`container ${this.getType()}`}>\n {this.mainTitle && this.renderTitle()}\n {this.getType() == ZFileUploadType.DEFAULT ? this.renderDefaultMode() : this.renderDragDropMode()}\n </div>\n {!!this.invalidFiles.size && (\n <z-modal\n modalid={`file-upload-${this.type}-error-modal`}\n tabIndex={0}\n ref={(val) => (this.errorModal = val)}\n modaltitle={this.errorModalTitle}\n onModalClose={() => (this.invalidFiles = new Map<string, string[]>())}\n onModalBackgroundClick={() => (this.invalidFiles = new Map<string, string[]>())}\n >\n {this.handleErrorModalContent()}\n </z-modal>\n )}\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{r as t,c as i,h as a,a as n,g as e}from"./p-75c4a726.js";import{N as o,a as s,b as r}from"./p-b34993de.js";const l='z-navigation-tabs{position:relative;z-index:0;display:flex;overflow:hidden;flex-direction:row;font-family:var(--font-family-sans);font-weight:var(--font-rg)}z-navigation-tabs,z-navigation-tabs *{box-sizing:border-box}z-navigation-tabs>nav::-webkit-scrollbar{display:none}z-navigation-tabs .navigation-button{position:absolute;z-index:1;display:flex;align-items:center;justify-content:center;padding:0;border:none;margin:0;background-color:var(--z-navigation-tabs-nav-buttons-bg, var(--color-surface01));border-radius:var(--border-no-radius);box-shadow:0 0 4px 1px var(--shadow-color-base);cursor:pointer;fill:var(--z-navigation-tabs-nav-buttons-fg, var(--color-primary01));outline:none}z-navigation-tabs .navigation-button:disabled{display:none}z-navigation-tabs>nav{z-index:0;display:flex;overflow:auto;align-items:center;justify-content:flex-start;scroll-behavior:smooth;scrollbar-width:none}z-navigation-tabs[orientation="horizontal"]>nav{width:100%}z-navigation-tabs[orientation="horizontal"] .navigation-button{top:0;width:calc(var(--space-unit) * 4);height:100%}z-navigation-tabs[orientation="horizontal"] .navigation-button:first-child{left:0}z-navigation-tabs[orientation="horizontal"] .navigation-button:last-child{right:0}z-navigation-tabs[orientation="vertical"]{width:fit-content;flex-direction:column}z-navigation-tabs[orientation="vertical"]>nav{height:100%;flex-direction:column;align-items:stretch}z-navigation-tabs[orientation="vertical"] .navigation-button{left:0;width:100%;height:calc(var(--space-unit) * 4)}z-navigation-tabs[orientation="vertical"] .navigation-button:first-child{top:0}z-navigation-tabs[orientation="vertical"] .navigation-button:last-child{bottom:0}z-navigation-tabs[size="small"][orientation="vertical"] .navigation-button{height:calc(var(--space-unit) * 4)}z-navigation-tabs>nav>*{position:relative;z-index:0;display:inline-flex;width:auto;align-items:center;justify-content:center;padding:calc(var(--space-unit) * 2) calc(var(--space-unit) * 5);border:none;margin:0;background-color:unset;border-radius:var(--border-no-radius);color:var(--color-primary01);cursor:pointer;fill:currentcolor;font-family:var(--font-family-sans);font-size:inherit;gap:var(--space-unit);letter-spacing:inherit;line-height:inherit;outline:none;text-align:center;white-space:nowrap}z-navigation-tabs>nav>a{text-decoration:none}z-navigation-tabs>nav>*:focus:focus-visible{z-index:1;box-shadow:inset 0 0 4px 3px var(--blue800)}z-navigation-tabs>nav>:not([disabled]):hover{background-color:var(--color-background)}z-navigation-tabs>nav>button[disabled]{color:var(--color-disabled03);cursor:not-allowed;fill:currentcolor;pointer-events:all}z-navigation-tabs>nav>:not([disabled]):hover,nav>[aria-selected="true"]{color:var(--color-hover-secondary);fill:currentcolor}z-navigation-tabs>nav>:not([disabled]):hover::after,nav>[aria-selected="true"]::after{position:absolute;background-color:var(--color-hover-secondary);content:""}z-navigation-tabs[orientation="horizontal"]>nav>:not([disabled]):hover::after,z-navigation-tabs[orientation="horizontal"]>nav>[aria-selected="true"]::after{bottom:0;left:0;width:100%;height:var(--border-size-large)}z-navigation-tabs>nav>* z-icon{--z-icon-width:calc(var(--space-unit) * 2);--z-icon-height:calc(var(--space-unit) * 2);display:flex;margin:0}z-navigation-tabs[size="small"][orientation="horizontal"]>nav>*{padding:var(--space-unit) calc(var(--space-unit) * 2)}z-navigation-tabs[size="small"][orientation="horizontal"]>nav>:not([disabled]):hover::after,z-navigation-tabs[size="small"][orientation="horizontal"]>nav>[aria-selected="true"]::after{height:var(--border-size-medium)}z-navigation-tabs[size="small"]:not([orientation="vertical"])>nav>* z-icon{--z-icon-width:14px;--z-icon-height:14px}z-navigation-tabs[orientation="vertical"]>nav>*{padding:calc(var(--space-unit) * 3) calc(var(--space-unit) * 2)}z-navigation-tabs[orientation="vertical"]>nav>*>:not(z-icon){display:none}z-navigation-tabs[orientation="vertical"]>nav>:not([disabled]):hover::after,z-navigation-tabs[orientation="vertical"]>nav>[aria-selected="true"]::after{top:0;right:0;width:var(--border-size-large);height:100%}';const h=l;const c=class{constructor(a){t(this,a);this.selected=i(this,"selected",7);this.focusedTab=undefined;this.ariaLabel="";this.orientation=o.HORIZONTAL;this.size=s.BIG;this.selectedTab=undefined;this.canNavigate=undefined;this.canNavigatePrev=undefined;this.canNavigateNext=undefined}get direction(){return this.orientation==o.HORIZONTAL?"Left":"Top"}get dimension(){return this.orientation==o.HORIZONTAL?"Width":"Height"}get tabs(){return Array.from(this.nav.children)}scrollToTab(t){const i=this.orientation===o.HORIZONTAL?{block:"nearest",inline:"center"}:{block:"center",inline:"nearest"};t.scrollIntoView(Object.assign({behavior:"smooth"},i))}navigateBackwards(){this.nav.scrollBy({[this.direction.toLowerCase()]:0-this.nav[`client${this.dimension}`]/2,behavior:"smooth"})}navigateForward(){this.nav.scrollBy({[this.direction.toLowerCase()]:this.nav[`scroll${this.direction}`]+this.nav[`client${this.dimension}`]/2,behavior:"smooth"})}isArrowNavigation(t){return Object.values(r).includes(t.key)}checkScrollVisible(){if(!this.nav){return}this.canNavigate=this.nav[`scroll${this.dimension}`]>this.nav[`client${this.dimension}`]}checkScrollEnabled(){if(!this.nav){return}this.canNavigateNext=this.nav[`scroll${this.direction}`]+this.nav[`client${this.dimension}`]<this.nav[`scroll${this.dimension}`];this.canNavigatePrev=this.nav[`scroll${this.direction}`]>0}onTabSelected(){this.tabs.forEach(((t,i)=>{const a=t.querySelector("z-icon");const n=a===null||a===void 0?void 0:a.name.replace("-filled","");if(i!==this.selectedTab){t.setAttribute("aria-selected","false");t.tabIndex=-1;if(a){a.name=n}return}if(a){a.name=`${n}-filled`}t.setAttribute("aria-selected","true")}));this.selected.emit(this.selectedTab);if(this.selectedTab!==undefined){this.scrollToTab(this.tabs[this.selectedTab])}}handleTabClick(t){const i=t.target.closest("[role='tab']");if(!this.tabs.some((t=>t.contains(i)))){return}this.selectedTab=this.tabs.indexOf(i)}onTabFocusIn(t){const i=this.tabs.findIndex((i=>i.contains(t.target)));if(i===-1){return}if(this.selectedTab!==undefined){this.tabs[this.selectedTab].tabIndex=-1}this.focusedTab=i;this.tabs[this.focusedTab].tabIndex=-1;this.scrollToTab(this.tabs[this.focusedTab])}navigateThroughTabs(t){if(!this.tabs.some((i=>i.contains(t.target)))||!this.isArrowNavigation(t)){return true}t.preventDefault();if(t.key===r.RIGHT&&this.orientation==o.HORIZONTAL||t.key===r.DOWN&&this.orientation==o.VERTICAL){this.focusedTab++;if(this.focusedTab>=this.tabs.length){this.focusedTab=0}}else if(t.key===r.LEFT&&this.orientation==o.HORIZONTAL||t.key===r.UP&&this.orientation==o.VERTICAL){this.focusedTab--;if(this.focusedTab<0){this.focusedTab=this.tabs.length-1}}if(this.tabs[this.focusedTab].hasAttribute("disabled")&&this.tabs[this.focusedTab].getAttribute("disabled")!=="false"){return this.navigateThroughTabs(t)}this.tabs[this.focusedTab].focus();this.scrollToTab(this.tabs[this.focusedTab])}onTabFocusOut(t){var i;if(!this.tabs.some((i=>i.contains(t.relatedTarget)))){this.tabs[(i=this.selectedTab)!==null&&i!==void 0?i:0].tabIndex=0;this.focusedTab=undefined}}connectedCallback(){this.resizeObserver=new ResizeObserver((()=>this.checkScrollVisible()))}componentDidLoad(){var t;this.tabs.forEach((t=>{t.setAttribute("role","tab");t.tabIndex=-1}));const i=(t=this.selectedTab)!==null&&t!==void 0?t:this.tabs.findIndex((t=>t.ariaSelected==="true"));if(i!==-1){this.selectedTab=i;this.tabs[i].tabIndex=0;this.onTabSelected()}else{this.tabs[0].tabIndex=0}this.resizeObserver.observe(this.nav)}disconnectedCallback(){var t;(t=this.resizeObserver)===null||t===void 0?void 0:t.disconnect()}render(){return a(n,{key:"5be0d9887946f1fe38edf5ae657c9bf2fabc8d1f",class:{"interactive-2":this.size===s.SMALL,"interactive-1":this.size!==s.SMALL},scrollable:this.canNavigate},a("button",{key:"626765b099eb840c62ecf28a8281e0354ff63f3a",class:"navigation-button",onClick:this.navigateBackwards.bind(this),tabIndex:-1,disabled:!this.canNavigatePrev,"aria-label":"Mostra elementi precedenti",hidden:!this.canNavigate},a("z-icon",{key:"c59992ffc3e62a55c49b7d1c312d125a97b2fec8",name:this.orientation===o.HORIZONTAL?"chevron-left":"chevron-up",width:16,height:16})),a("nav",{key:"de67749daf40000757fff0148be2248127092c68",role:"tablist","aria-label":this.ariaLabel,ref:t=>this.nav=t!==null&&t!==void 0?t:this.nav,onScroll:this.checkScrollEnabled.bind(this),"aria-orientation":this.orientation},a("slot",{key:"9ddc7ad7766c525f9c2226a858c5cd1e6a2bbc6a"})),a("button",{key:"4af266b3752e99fd23720a3ba38376b564d461a9",class:"navigation-button",onClick:this.navigateForward.bind(this),tabIndex:-1,disabled:!this.canNavigateNext,"aria-label":"Mostra elementi successivi",hidden:!this.canNavigate},a("z-icon",{key:"6cd04b56841f88ac636a43a043196d96dacb6c88",name:this.orientation===o.HORIZONTAL?"chevron-right":"chevron-down",width:16,height:16})))}get host(){return e(this)}static get watchers(){return{canNavigate:["checkScrollEnabled"],selectedTab:["onTabSelected"]}}};c.style=h;export{c as z_navigation_tabs};
2
- //# sourceMappingURL=p-8d79971b.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["stylesCss","ZNavigationTabsStyle0","ZNavigationTabs","this","focusedTab","undefined","NavigationTabsOrientation","HORIZONTAL","NavigationTabsSize","BIG","direction","orientation","dimension","tabs","Array","from","nav","children","scrollToTab","tabElement","scrollOptions","block","inline","scrollIntoView","Object","assign","behavior","navigateBackwards","scrollBy","toLowerCase","navigateForward","isArrowNavigation","e","values","NavigationTabsKeyboardEvents","includes","key","checkScrollVisible","canNavigate","checkScrollEnabled","canNavigateNext","canNavigatePrev","onTabSelected","forEach","tab","i","zicon","querySelector","strokeIcon","name","replace","selectedTab","setAttribute","tabIndex","selected","emit","handleTabClick","event","clickedTab","target","closest","some","child","contains","indexOf","onTabFocusIn","focused","findIndex","navigateThroughTabs","preventDefault","RIGHT","DOWN","VERTICAL","length","LEFT","UP","hasAttribute","getAttribute","focus","onTabFocusOut","relatedTarget","_a","connectedCallback","resizeObserver","ResizeObserver","componentDidLoad","preselectedTab","ariaSelected","observe","disconnectedCallback","disconnect","render","h","Host","class","size","SMALL","scrollable","onClick","bind","disabled","hidden","width","height","role","ariaLabel","ref","el","onScroll"],"sources":["src/components/z-navigation-tabs/styles.css?tag=z-navigation-tabs","src/components/z-navigation-tabs/index.tsx"],"sourcesContent":["z-navigation-tabs {\n --z-navigation-tabs-nav-buttons-bg: ;\n --z-navigation-tabs-nav-buttons-fg: ;\n\n position: relative;\n z-index: 0;\n display: flex;\n overflow: hidden;\n flex-direction: row;\n font-family: var(--font-family-sans);\n font-weight: var(--font-rg);\n}\n\nz-navigation-tabs,\nz-navigation-tabs * {\n box-sizing: border-box;\n}\n\nz-navigation-tabs > nav::-webkit-scrollbar {\n display: none;\n}\n\nz-navigation-tabs .navigation-button {\n position: absolute;\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0;\n border: none;\n margin: 0;\n background-color: var(--z-navigation-tabs-nav-buttons-bg, var(--color-surface01));\n border-radius: var(--border-no-radius);\n box-shadow: 0 0 4px 1px var(--shadow-color-base);\n cursor: pointer;\n fill: var(--z-navigation-tabs-nav-buttons-fg, var(--color-primary01));\n outline: none;\n}\n\nz-navigation-tabs .navigation-button:disabled {\n display: none;\n}\n\nz-navigation-tabs > nav {\n z-index: 0;\n display: flex;\n overflow: auto;\n align-items: center;\n justify-content: flex-start;\n scroll-behavior: smooth;\n\n /* hide scrollbar in Firefox */\n scrollbar-width: none;\n}\n\nz-navigation-tabs[orientation=\"horizontal\"] > nav {\n width: 100%;\n}\n\nz-navigation-tabs[orientation=\"horizontal\"] .navigation-button {\n top: 0;\n width: calc(var(--space-unit) * 4);\n height: 100%;\n}\n\nz-navigation-tabs[orientation=\"horizontal\"] .navigation-button:first-child {\n left: 0;\n}\n\nz-navigation-tabs[orientation=\"horizontal\"] .navigation-button:last-child {\n right: 0;\n}\n\n/* Orientation vertical */\nz-navigation-tabs[orientation=\"vertical\"] {\n width: fit-content;\n flex-direction: column;\n}\n\nz-navigation-tabs[orientation=\"vertical\"] > nav {\n height: 100%;\n flex-direction: column;\n align-items: stretch;\n}\n\nz-navigation-tabs[orientation=\"vertical\"] .navigation-button {\n left: 0;\n width: 100%;\n height: calc(var(--space-unit) * 4);\n}\n\nz-navigation-tabs[orientation=\"vertical\"] .navigation-button:first-child {\n top: 0;\n}\n\nz-navigation-tabs[orientation=\"vertical\"] .navigation-button:last-child {\n bottom: 0;\n}\n\nz-navigation-tabs[size=\"small\"][orientation=\"vertical\"] .navigation-button {\n height: calc(var(--space-unit) * 4);\n}\n\n/* Style for the tabs */\n\nz-navigation-tabs > nav > * {\n position: relative;\n z-index: 0;\n display: inline-flex;\n width: auto;\n align-items: center;\n justify-content: center;\n padding: calc(var(--space-unit) * 2) calc(var(--space-unit) * 5);\n border: none;\n margin: 0;\n background-color: unset;\n border-radius: var(--border-no-radius);\n color: var(--color-primary01);\n cursor: pointer;\n fill: currentcolor;\n font-family: var(--font-family-sans);\n font-size: inherit;\n gap: var(--space-unit);\n letter-spacing: inherit;\n line-height: inherit;\n outline: none;\n text-align: center;\n white-space: nowrap;\n}\n\nz-navigation-tabs > nav > a {\n text-decoration: none;\n}\n\nz-navigation-tabs > nav > *:focus:focus-visible {\n z-index: 1;\n box-shadow: inset 0 0 4px 3px var(--blue800);\n}\n\nz-navigation-tabs > nav > :not([disabled]):hover {\n background-color: var(--color-background);\n}\n\nz-navigation-tabs > nav > button[disabled] {\n color: var(--color-disabled03);\n cursor: not-allowed;\n fill: currentcolor;\n pointer-events: all;\n}\n\nz-navigation-tabs > nav > :not([disabled]):hover,\nnav > [aria-selected=\"true\"] {\n color: var(--color-hover-secondary);\n fill: currentcolor;\n}\n\nz-navigation-tabs > nav > :not([disabled]):hover::after,\nnav > [aria-selected=\"true\"]::after {\n position: absolute;\n background-color: var(--color-hover-secondary);\n content: \"\";\n}\n\nz-navigation-tabs[orientation=\"horizontal\"] > nav > :not([disabled]):hover::after,\nz-navigation-tabs[orientation=\"horizontal\"] > nav > [aria-selected=\"true\"]::after {\n bottom: 0;\n left: 0;\n width: 100%;\n height: var(--border-size-large);\n}\n\nz-navigation-tabs > nav > * z-icon {\n --z-icon-width: calc(var(--space-unit) * 2);\n --z-icon-height: calc(var(--space-unit) * 2);\n\n display: flex;\n margin: 0;\n}\n\n/* `small` size (only available for horizontal orientation) */\n\nz-navigation-tabs[size=\"small\"][orientation=\"horizontal\"] > nav > * {\n padding: var(--space-unit) calc(var(--space-unit) * 2);\n}\n\nz-navigation-tabs[size=\"small\"][orientation=\"horizontal\"] > nav > :not([disabled]):hover::after,\nz-navigation-tabs[size=\"small\"][orientation=\"horizontal\"] > nav > [aria-selected=\"true\"]::after {\n height: var(--border-size-medium);\n}\n\nz-navigation-tabs[size=\"small\"]:not([orientation=\"vertical\"]) > nav > * z-icon {\n --z-icon-width: 14px;\n --z-icon-height: 14px;\n}\n\n/* Orientation Vertical */\n\nz-navigation-tabs[orientation=\"vertical\"] > nav > * {\n padding: calc(var(--space-unit) * 3) calc(var(--space-unit) * 2);\n}\n\nz-navigation-tabs[orientation=\"vertical\"] > nav > * > :not(z-icon) {\n display: none;\n}\n\nz-navigation-tabs[orientation=\"vertical\"] > nav > :not([disabled]):hover::after,\nz-navigation-tabs[orientation=\"vertical\"] > nav > [aria-selected=\"true\"]::after {\n top: 0;\n right: 0;\n width: var(--border-size-large);\n height: 100%;\n}\n","import {Component, Element, Event, EventEmitter, Host, Listen, Prop, State, Watch, h} from \"@stencil/core\";\nimport {NavigationTabsKeyboardEvents, NavigationTabsOrientation, NavigationTabsSize} from \"../../beans\";\n\n/**\n * Navigation tabs component.\n * To select a specific tab programmatically, set the `aria-selected` attribute to `true` on the desired tab.\n * @slot - Main slot. Use `<button>` or `<a>` tags as children.\n * @cssprop --z-navigation-tabs-nav-buttons-bg - Navigation buttons background color.\n * @cssprop --z-navigation-tabs-nav-buttons-fg - Navigation buttons foreground color.\n */\n@Component({\n tag: \"z-navigation-tabs\",\n styleUrl: \"styles.css\",\n})\nexport class ZNavigationTabs {\n /**\n * Set `aria-label` attribute to the internal `<nav>` element with `tablist` role.\n */\n @Prop()\n ariaLabel = \"\";\n\n /**\n * Navigation tabs orientation.\n */\n @Prop({reflect: true})\n orientation? = NavigationTabsOrientation.HORIZONTAL;\n\n /**\n * Navigation tabs size.\n */\n @Prop({reflect: true})\n size? = NavigationTabsSize.BIG;\n\n /**\n * Index of the selected tab.\n * Useful to programmatically select a tab.\n * The tab can also be selected by setting the `aria-selected` attribute to `true` on the desired tab.\n */\n @Prop({mutable: true})\n selectedTab: number = undefined;\n\n /**\n * Emitted when the selected tab changes.\n * Contains the index of the new selected tab in the `detail` of the event.\n */\n @Event()\n selected: EventEmitter<number>;\n\n /**\n * Whether to show navigation buttons.\n */\n @State()\n canNavigate: boolean;\n\n /**\n * Whether backwards navigation is allowed.\n */\n @State()\n canNavigatePrev: boolean;\n\n /**\n * Whether forward navigation is allowed.\n */\n @State()\n canNavigateNext: boolean;\n\n @Element() host: HTMLZNavigationTabsElement;\n\n /**\n * Index of the last tab that held focus.\n */\n private focusedTab = undefined;\n\n /**\n * Reference to the `<nav>` element\n */\n private nav: HTMLElement;\n\n /**\n * Getter for the direction to check based on current orientation.\n */\n get direction(): string {\n return this.orientation == NavigationTabsOrientation.HORIZONTAL ? \"Left\" : \"Top\";\n }\n\n /**\n * Getter for the dimension to check based on current orientation.\n */\n get dimension(): string {\n return this.orientation == NavigationTabsOrientation.HORIZONTAL ? \"Width\" : \"Height\";\n }\n\n get tabs(): HTMLElement[] {\n return Array.from(this.nav.children) as HTMLElement[];\n }\n\n private resizeObserver: ResizeObserver;\n\n /**\n * Scroll into view to center the tab.\n */\n private scrollToTab(tabElement: HTMLElement): void {\n const scrollOptions = (\n this.orientation === NavigationTabsOrientation.HORIZONTAL\n ? {block: \"nearest\", inline: \"center\"}\n : {block: \"center\", inline: \"nearest\"}\n ) as ScrollIntoViewOptions;\n\n tabElement.scrollIntoView({\n behavior: \"smooth\",\n ...scrollOptions,\n });\n }\n\n /**\n * Scroll the navigation bar half of its size backward.\n */\n private navigateBackwards(): void {\n this.nav.scrollBy({\n [this.direction.toLowerCase()]: 0 - this.nav[`client${this.dimension}`] / 2,\n behavior: \"smooth\",\n });\n }\n\n /**\n * Scroll the navigation bar half of its size forward.\n */\n private navigateForward(): void {\n this.nav.scrollBy({\n [this.direction.toLowerCase()]: this.nav[`scroll${this.direction}`] + this.nav[`client${this.dimension}`] / 2,\n behavior: \"smooth\",\n });\n }\n\n /**\n * Check if a keyboard event was triggered by an arrow key.\n */\n private isArrowNavigation(e: KeyboardEvent): boolean {\n return Object.values(NavigationTabsKeyboardEvents).includes(e.key as NavigationTabsKeyboardEvents);\n }\n\n /**\n * Check if the navigation buttons are needed.\n */\n private checkScrollVisible(): void {\n if (!this.nav) {\n return;\n }\n\n this.canNavigate = this.nav[`scroll${this.dimension}`] > this.nav[`client${this.dimension}`];\n }\n\n /**\n * Check if navigation buttons can be enabled for each direction.\n */\n @Watch(\"canNavigate\")\n checkScrollEnabled(): void {\n if (!this.nav) {\n return;\n }\n\n this.canNavigateNext =\n this.nav[`scroll${this.direction}`] + this.nav[`client${this.dimension}`] < this.nav[`scroll${this.dimension}`];\n this.canNavigatePrev = this.nav[`scroll${this.direction}`] > 0;\n }\n\n /**\n * When the selected tab changes, update the `aria-selected` attribute on each tab and scroll to the selected tab.\n */\n @Watch(\"selectedTab\")\n onTabSelected(): void {\n this.tabs.forEach((tab, i) => {\n const zicon = tab.querySelector(\"z-icon\");\n const strokeIcon = zicon?.name.replace(\"-filled\", \"\");\n if (i !== this.selectedTab) {\n tab.setAttribute(\"aria-selected\", \"false\");\n tab.tabIndex = -1;\n if (zicon) {\n zicon.name = strokeIcon;\n }\n\n return;\n }\n\n if (zicon) {\n zicon.name = `${strokeIcon}-filled`;\n }\n tab.setAttribute(\"aria-selected\", \"true\");\n });\n this.selected.emit(this.selectedTab);\n if (this.selectedTab !== undefined) {\n this.scrollToTab(this.tabs[this.selectedTab]);\n }\n }\n\n /**\n * Handle click on the tabs.\n * @param event `click` event triggered by a child tab\n */\n @Listen(\"click\")\n handleTabClick(event: MouseEvent): void {\n const clickedTab = (event.target as HTMLElement).closest<HTMLElement>(\"[role='tab']\");\n if (!this.tabs.some((child) => child.contains(clickedTab))) {\n return;\n }\n\n this.selectedTab = this.tabs.indexOf(clickedTab);\n }\n\n /**\n * When a tab is focused, temporarily set to -1 the `tabindex` of the selected tab (if any) and set the `focusedTab` to the index of the focused tab.\n */\n @Listen(\"focusin\")\n onTabFocusIn(event: FocusEvent): void {\n const focused = this.tabs.findIndex((tab) => tab.contains(event.target as HTMLElement));\n if (focused === -1) {\n return;\n }\n\n if (this.selectedTab !== undefined) {\n this.tabs[this.selectedTab].tabIndex = -1;\n }\n this.focusedTab = focused;\n this.tabs[this.focusedTab].tabIndex = -1;\n this.scrollToTab(this.tabs[this.focusedTab]);\n }\n\n /**\n * Handle keyboard navigation through tabs with arrow keys.\n */\n @Listen(\"keydown\")\n navigateThroughTabs(event: KeyboardEvent): void | boolean {\n if (!this.tabs.some((tab) => tab.contains(event.target as HTMLElement)) || !this.isArrowNavigation(event)) {\n return true;\n }\n\n event.preventDefault();\n if (\n (event.key === NavigationTabsKeyboardEvents.RIGHT && this.orientation == NavigationTabsOrientation.HORIZONTAL) ||\n (event.key === NavigationTabsKeyboardEvents.DOWN && this.orientation == NavigationTabsOrientation.VERTICAL)\n ) {\n // Move forward\n this.focusedTab++;\n if (this.focusedTab >= this.tabs.length) {\n this.focusedTab = 0;\n }\n } else if (\n (event.key === NavigationTabsKeyboardEvents.LEFT && this.orientation == NavigationTabsOrientation.HORIZONTAL) ||\n (event.key === NavigationTabsKeyboardEvents.UP && this.orientation == NavigationTabsOrientation.VERTICAL)\n ) {\n // Move backward\n this.focusedTab--;\n if (this.focusedTab < 0) {\n this.focusedTab = this.tabs.length - 1;\n }\n }\n // Ignore disabled tabs\n if (\n this.tabs[this.focusedTab].hasAttribute(\"disabled\") &&\n this.tabs[this.focusedTab].getAttribute(\"disabled\") !== \"false\"\n ) {\n return this.navigateThroughTabs(event);\n }\n\n this.tabs[this.focusedTab].focus();\n this.scrollToTab(this.tabs[this.focusedTab]);\n }\n\n /**\n * If the focus is not going on a tab (`relatedTarget` is the new focused element), set to 0 the `tabindex` of the selected tab or the one of the first tab, then unset the `focusedTab`.\n */\n @Listen(\"focusout\")\n onTabFocusOut(event: FocusEvent): void {\n if (!this.tabs.some((tab) => tab.contains(event.relatedTarget as HTMLElement))) {\n this.tabs[this.selectedTab ?? 0].tabIndex = 0;\n this.focusedTab = undefined;\n }\n }\n\n connectedCallback(): void {\n this.resizeObserver = new ResizeObserver(() => this.checkScrollVisible());\n }\n\n componentDidLoad(): void {\n // Set role and tabindex to each slotted tab\n this.tabs.forEach((tab) => {\n tab.setAttribute(\"role\", \"tab\");\n tab.tabIndex = -1;\n });\n\n const preselectedTab = this.selectedTab ?? this.tabs.findIndex((tab) => tab.ariaSelected === \"true\");\n if (preselectedTab !== -1) {\n this.selectedTab = preselectedTab;\n this.tabs[preselectedTab].tabIndex = 0;\n this.onTabSelected();\n } else {\n this.tabs[0].tabIndex = 0;\n }\n\n this.resizeObserver.observe(this.nav);\n }\n\n disconnectedCallback(): void {\n this.resizeObserver?.disconnect();\n }\n\n render(): HTMLZNavigationTabsElement {\n return (\n <Host\n class={{\n \"interactive-2\": this.size === NavigationTabsSize.SMALL,\n \"interactive-1\": this.size !== NavigationTabsSize.SMALL,\n }}\n scrollable={this.canNavigate}\n >\n <button\n class=\"navigation-button\"\n onClick={this.navigateBackwards.bind(this)}\n tabIndex={-1}\n disabled={!this.canNavigatePrev}\n aria-label=\"Mostra elementi precedenti\"\n hidden={!this.canNavigate}\n >\n <z-icon\n name={this.orientation === NavigationTabsOrientation.HORIZONTAL ? \"chevron-left\" : \"chevron-up\"}\n width={16}\n height={16}\n />\n </button>\n\n <nav\n role=\"tablist\"\n aria-label={this.ariaLabel}\n ref={(el) => (this.nav = el ?? this.nav)}\n onScroll={this.checkScrollEnabled.bind(this)}\n aria-orientation={this.orientation}\n >\n <slot></slot>\n </nav>\n\n <button\n class=\"navigation-button\"\n onClick={this.navigateForward.bind(this)}\n tabIndex={-1}\n disabled={!this.canNavigateNext}\n aria-label=\"Mostra elementi successivi\"\n hidden={!this.canNavigate}\n >\n <z-icon\n name={this.orientation === NavigationTabsOrientation.HORIZONTAL ? \"chevron-right\" : \"chevron-down\"}\n width={16}\n height={16}\n />\n </button>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{r as a,h as t,a as e}from"./p-75c4a726.js";const o=":host{position:relative;display:flex;width:100%;max-width:100%;box-sizing:border-box;flex-direction:row;padding:0;margin:0;font-family:var(--font-family-sans);font-weight:var(--font-rg);list-style:none}@media only screen and (min-width: 768px){:host{padding:0 calc(var(--space-unit) * 2)}}";const s=o;const i=class{constructor(t){a(this,t)}render(){return t(e,{key:"ae157efced49b287a294c00090b5a104a4317401",role:"list"},t("slot",{key:"a1509aa8285d3166f3fe18c51205a829053fad33"}))}};i.style=s;export{i as z_stepper};
2
- //# sourceMappingURL=p-93069a90.entry.js.map
@@ -1,2 +0,0 @@
1
- import{r as t,c as e,h as s,a as i,g as o}from"./p-75c4a726.js";import{g as a}from"./p-b34993de.js";const n=':host{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:0;font-family:var(--font-family-sans)}:host,::slotted(*),*{box-sizing:border-box}::slotted(a){text-decoration:none}::slotted(*){color:var(--color-default-text);font-family:var(--font-family-sans);font-weight:var(--font-rg)}.label{display:flex;width:100%;align-items:center;padding:var(--space-unit) 0;border:0;border-bottom:var(--border-size-small) solid var(--color-surface03);margin:0;background:transparent;border-radius:0;cursor:pointer;text-align:left}:host(:last-child:not([open])) .label{border-bottom:none}:host(:is([active],[open])) .label,.label:focus:focus-visible,.label:hover{border-color:var(--color-secondary01)}.label:focus:focus-visible{box-shadow:var(--shadow-focus-primary);outline:none}:host(:is([active],[open])) .label ::slotted(*),.label:focus:focus-visible ::slotted(*),.label:hover ::slotted(*){font-weight:var(--font-bd)}::slotted([data-text]){display:inline-flex;flex-direction:column}::slotted([data-text])::after{overflow:hidden;height:0;content:attr(data-text);content:attr(data-text) / "";font-weight:var(--font-bd);pointer-events:none;user-select:none;visibility:hidden}@media speech{::slotted([data-text])::after{display:none}}.label ::slotted(*){width:100%;margin:0;font-size:var(--font-size-3);line-height:1.5}.label z-icon{margin-left:calc(var(--space-unit) * 4);fill:var(--color-default-icon)}.items{display:flex;width:100%;flex-direction:column;padding:calc(var(--space-unit) / 2);padding-bottom:calc(var(--space-unit) * 1.5)}.items[hidden]{display:none}::slotted([slot="section"]){display:inline-flex;padding:calc(var(--space-unit) / 2);margin:0;font-size:var(--font-size-1);line-height:1.333;outline:none}::slotted([slot="section"]:last-of-type){border:none}::slotted([slot="section"]:focus:focus-visible){box-shadow:var(--shadow-focus-primary);color:var(--color-secondary01)}::slotted([slot="section"]:hover),::slotted([slot="section"]:focus:focus-visible),::slotted([slot="section"][active]){color:var(--color-secondary01);font-weight:var(--font-bd)}';const h=n;const l=class{get focusableItem(){return this.items.find((({tabIndex:t})=>t===0))}toggle(){if(!this.hasItems){return}this.open=!this.open}setItemsA11yAttrs(){if(!this.hasItems){return}this.items.forEach((t=>{t.setAttribute("role","menuitem");t.tabIndex=-1}))}onItemsChange(){this.items=Array.from(this.host.querySelectorAll('[slot="section"]'));this.hasItems=this.items.length>0;this.setItemsA11yAttrs()}onLabelSlotChange(t){const e=t.target.assignedElements()[0];e.dataset.text=e===null||e===void 0?void 0:e.textContent}onLabelClick(){this.toggle();this.setFocus()}onLabelKeydown(t){if(t.key===a.ENTER||t.key===a.SPACE){t.preventDefault();t.stopPropagation();this.toggle();if(this.open){this.focustFirstItem()}}}moveFocus(t,e){t.tabIndex=0;setTimeout((()=>{t.focus()}),100);if(e){e.tabIndex=-1}}focustFirstItem(){this.moveFocus(this.items[0])}async focusLastItem(){this.moveFocus(this.items[this.items.length-1])}async setFocus(){this.htmlTabindex=0;setTimeout((()=>{this.label.focus()}),100)}onOpenChange(){if(!this.open){this.setItemsA11yAttrs();this.closed.emit()}else{this.opened.emit()}}onTabindexChange(){this.label.tabIndex=this.htmlTabindex}onItemsKeydown(t){switch(t.key){case a.ESC:case a.ARROW_LEFT:if(!this.open){break}t.preventDefault();t.stopPropagation();this.moveFocus(this.label,this.focusableItem);this.open=false;break;case a.ARROW_RIGHT:if(this.open){break}t.preventDefault();t.stopPropagation();this.open=true;this.focustFirstItem();break;case a.ARROW_DOWN:{if(!this.open){break}if(document.activeElement===this.host){t.preventDefault();t.stopPropagation();this.focustFirstItem();break}const e=this.items.indexOf(this.focusableItem);const s=this.items[e+1];if(s){t.preventDefault();t.stopPropagation();this.moveFocus(s,this.focusableItem)}else{this.htmlTabindex=0;this.focusableItem.tabIndex=-1}break}case a.ARROW_UP:{if(!this.open||document.activeElement===this.host){break}const e=this.items.indexOf(this.focusableItem);const s=this.items[e-1];t.preventDefault();t.stopPropagation();if(s){this.moveFocus(s,this.focusableItem)}else{this.focusableItem.tabIndex=-1;this.setFocus()}break}}}constructor(s){t(this,s);this.opened=e(this,"opened",7);this.closed=e(this,"closed",7);this.active=undefined;this.htmlTabindex=-1;this.open=undefined;this.hasItems=undefined;this.items=undefined;this.toggle=this.toggle.bind(this);this.onItemsChange=this.onItemsChange.bind(this);this.onLabelSlotChange=this.onLabelSlotChange.bind(this);this.onLabelClick=this.onLabelClick.bind(this);this.onLabelKeydown=this.onLabelKeydown.bind(this);this.onItemsKeydown=this.onItemsKeydown.bind(this)}connectedCallback(){this.onItemsChange()}render(){return s(i,{key:"7856cfecf0ce3ae7c4447c63772812f6e7b7a1c6",open:this.open},s("button",{key:"a7835a207dc247498f7877ba3934658ba0f0f17b",ref:t=>this.label=t,class:"label","aria-haspopup":`${!!this.hasItems}`,"aria-expanded":`${!!this.open}`,role:"menuitem",tabindex:this.htmlTabindex,onClick:this.onLabelClick,onKeyDown:this.onLabelKeydown},s("slot",{key:"ba3b818777208237403b328962ef5953b23226af",onSlotchange:this.onLabelSlotChange}),this.hasItems&&s("z-icon",{key:"016a4437999b5586918add14bebb5fc0d9e6c86b",name:this.open?"chevron-up":"chevron-down"})),s("div",{key:"cc22753575b2650078c6528c7ea63e4789a709f6",class:"items",role:"menu",hidden:!this.open},s("slot",{key:"c89aa53d0d420c6f87ad7a2fd66de4ba8d17850f",name:"section",onSlotchange:this.onItemsChange})))}get host(){return o(this)}static get watchers(){return{open:["onOpenChange"],htmlTabindex:["onTabindexChange"]}}};l.style=h;export{l as z_menu_section};
2
- //# sourceMappingURL=p-a7bcb93d.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["stylesCss","ZMenuSectionStyle0","ZMenuSection","focusableItem","this","items","find","tabIndex","toggle","hasItems","open","setItemsA11yAttrs","forEach","item","setAttribute","onItemsChange","Array","from","host","querySelectorAll","length","onLabelSlotChange","ev","labelElement","target","assignedElements","dataset","text","textContent","onLabelClick","setFocus","onLabelKeydown","key","KeyboardCode","ENTER","SPACE","preventDefault","stopPropagation","focustFirstItem","moveFocus","receiver","current","setTimeout","focus","focusLastItem","htmlTabindex","label","onOpenChange","closed","emit","opened","onTabindexChange","onItemsKeydown","ESC","ARROW_LEFT","ARROW_RIGHT","ARROW_DOWN","document","activeElement","currentIndex","indexOf","ARROW_UP","constructor","hostRef","bind","connectedCallback","render","h","Host","ref","el","class","role","tabindex","onClick","onKeyDown","onSlotchange","name","hidden"],"sources":["src/components/z-menu-section/styles.css?tag=z-menu-section&encapsulation=shadow","src/components/z-menu-section/index.tsx"],"sourcesContent":[":host {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n padding: 0;\n font-family: var(--font-family-sans);\n}\n\n:host,\n::slotted(*),\n* {\n box-sizing: border-box;\n}\n\n::slotted(a) {\n text-decoration: none;\n}\n\n::slotted(*) {\n color: var(--color-default-text);\n font-family: var(--font-family-sans);\n font-weight: var(--font-rg);\n}\n\n.label {\n display: flex;\n width: 100%;\n align-items: center;\n padding: var(--space-unit) 0;\n border: 0;\n border-bottom: var(--border-size-small) solid var(--color-surface03);\n margin: 0;\n background: transparent;\n border-radius: 0;\n cursor: pointer;\n text-align: left;\n}\n\n:host(:last-child:not([open])) .label {\n border-bottom: none;\n}\n\n:host(:is([active], [open])) .label,\n.label:focus:focus-visible,\n.label:hover {\n border-color: var(--color-secondary01);\n}\n\n.label:focus:focus-visible {\n box-shadow: var(--shadow-focus-primary);\n outline: none;\n}\n\n:host(:is([active], [open])) .label ::slotted(*),\n.label:focus:focus-visible ::slotted(*),\n.label:hover ::slotted(*) {\n font-weight: var(--font-bd);\n}\n\n::slotted([data-text]) {\n display: inline-flex;\n flex-direction: column;\n}\n\n/* Trick to prevent layout shifts on font-weight changes.\nThe trick is to put an hidden copy of the text already set to bold,\nso the needed space is correctly calculated before any hover/active state changes the\nfont-weight of the real text.\nThe hidden text has an height of 0px so it can expand the width without changing the height\nwhen placed below the real text using `flex-direction: column`. */\n::slotted([data-text])::after {\n overflow: hidden;\n height: 0;\n content: attr(data-text);\n content: attr(data-text) / \"\";\n font-weight: var(--font-bd);\n pointer-events: none;\n user-select: none;\n visibility: hidden;\n}\n\n@media speech {\n ::slotted([data-text])::after {\n display: none;\n }\n}\n\n.label ::slotted(*) {\n width: 100%;\n margin: 0;\n font-size: var(--font-size-3);\n line-height: 1.5;\n}\n\n.label z-icon {\n margin-left: calc(var(--space-unit) * 4);\n fill: var(--color-default-icon);\n}\n\n.items {\n display: flex;\n width: 100%;\n flex-direction: column;\n padding: calc(var(--space-unit) / 2);\n padding-bottom: calc(var(--space-unit) * 1.5);\n}\n\n.items[hidden] {\n display: none;\n}\n\n::slotted([slot=\"section\"]) {\n display: inline-flex;\n padding: calc(var(--space-unit) / 2);\n margin: 0;\n font-size: var(--font-size-1);\n line-height: 1.333;\n outline: none;\n}\n\n::slotted([slot=\"section\"]:last-of-type) {\n border: none;\n}\n\n::slotted([slot=\"section\"]:focus:focus-visible) {\n box-shadow: var(--shadow-focus-primary);\n color: var(--color-secondary01);\n}\n\n::slotted([slot=\"section\"]:hover),\n::slotted([slot=\"section\"]:focus:focus-visible),\n::slotted([slot=\"section\"][active]) {\n color: var(--color-secondary01);\n font-weight: var(--font-bd);\n}\n","import {Component, Element, Event, EventEmitter, Host, Listen, Method, Prop, State, Watch, h} from \"@stencil/core\";\nimport {KeyboardCode} from \"../../beans\";\n\n/**\n * A component to create submenus inside the ZMenu.\n * @slot - Label of the menu section.\n * @slot section - Single entry of the menu section. Set the same slot name to different elements to put many of them. Add the `active` attribute to a slotted element to highlight it.\n */\n@Component({\n tag: \"z-menu-section\",\n styleUrl: \"styles.css\",\n shadow: true,\n})\nexport class ZMenuSection {\n @Element() host: HTMLZMenuSectionElement;\n\n /** Active state */\n @Prop({reflect: true})\n active?: boolean;\n\n /**\n * Tabindex value to set on the label button.\n * Useful to manage keyboard navigation focus with roving tabindex handled by this component's parent (usually ZMenu).\n */\n @Prop()\n htmlTabindex = -1;\n\n /** The opening state of the section. */\n @Prop({mutable: true})\n open: boolean;\n\n @State()\n hasItems: boolean;\n\n @State()\n items: HTMLElement[];\n\n /** The section has been opened. */\n @Event()\n opened: EventEmitter;\n\n /** The section has been closed. */\n @Event()\n closed: EventEmitter;\n\n private label: HTMLButtonElement;\n\n private get focusableItem(): HTMLElement {\n return this.items.find(({tabIndex}) => tabIndex === 0);\n }\n\n private toggle(): void {\n if (!this.hasItems) {\n return;\n }\n\n this.open = !this.open;\n }\n\n private setItemsA11yAttrs(): void {\n if (!this.hasItems) {\n return;\n }\n\n this.items.forEach((item) => {\n item.setAttribute(\"role\", \"menuitem\");\n item.tabIndex = -1;\n });\n }\n\n private onItemsChange(): void {\n this.items = Array.from(this.host.querySelectorAll('[slot=\"section\"]')) as HTMLElement[];\n this.hasItems = this.items.length > 0;\n this.setItemsA11yAttrs();\n }\n\n /**\n * Sets slotted item text as `data-text` attribute value, to let CSS use it through `attr()`.\n * @param ev Slotchange event\n */\n private onLabelSlotChange(ev: Event): void {\n const labelElement = (ev.target as HTMLSlotElement).assignedElements()[0] as HTMLElement;\n labelElement.dataset.text = labelElement?.textContent;\n }\n\n private onLabelClick(): void {\n this.toggle();\n this.setFocus();\n }\n\n private onLabelKeydown(ev: KeyboardEvent): void {\n if (ev.key === KeyboardCode.ENTER || ev.key === KeyboardCode.SPACE) {\n ev.preventDefault();\n ev.stopPropagation();\n this.toggle();\n if (this.open) {\n this.focustFirstItem();\n }\n }\n }\n\n /**\n * Move focus and adjust the tabindex value of `receiver` and `current` elements,\n * setting -1 to the `current` and 0 to the `receiver`, then focus the `receiver` element.\n */\n private moveFocus(receiver: HTMLElement, current?: HTMLElement): void {\n receiver.tabIndex = 0;\n setTimeout(() => {\n receiver.focus();\n }, 100);\n if (current) {\n current.tabIndex = -1;\n }\n }\n\n private focustFirstItem(): void {\n this.moveFocus(this.items[0]);\n }\n\n /** Focus the last item. */\n @Method()\n async focusLastItem(): Promise<void> {\n this.moveFocus(this.items[this.items.length - 1]);\n }\n\n /** Set tabindex of the label to 0, then focus it. */\n @Method()\n async setFocus(): Promise<void> {\n this.htmlTabindex = 0;\n setTimeout(() => {\n this.label.focus();\n }, 100);\n }\n\n @Watch(\"open\")\n onOpenChange(): void {\n if (!this.open) {\n this.setItemsA11yAttrs();\n this.closed.emit();\n } else {\n this.opened.emit();\n }\n }\n\n @Watch(\"htmlTabindex\")\n onTabindexChange(): void {\n this.label.tabIndex = this.htmlTabindex;\n }\n\n @Listen(\"keydown\")\n private onItemsKeydown(ev: KeyboardEvent): void {\n switch (ev.key) {\n case KeyboardCode.ESC:\n case KeyboardCode.ARROW_LEFT:\n if (!this.open) {\n break;\n }\n ev.preventDefault();\n ev.stopPropagation();\n this.moveFocus(this.label, this.focusableItem);\n this.open = false;\n break;\n case KeyboardCode.ARROW_RIGHT:\n if (this.open) {\n break;\n }\n ev.preventDefault();\n ev.stopPropagation();\n this.open = true;\n this.focustFirstItem();\n break;\n case KeyboardCode.ARROW_DOWN: {\n if (!this.open) {\n break;\n }\n if (document.activeElement === this.host) {\n ev.preventDefault();\n ev.stopPropagation();\n this.focustFirstItem();\n break;\n }\n const currentIndex = this.items.indexOf(this.focusableItem);\n const receiver = this.items[currentIndex + 1];\n if (receiver) {\n ev.preventDefault();\n ev.stopPropagation();\n this.moveFocus(receiver, this.focusableItem);\n } else {\n this.htmlTabindex = 0;\n this.focusableItem.tabIndex = -1;\n }\n break;\n }\n case KeyboardCode.ARROW_UP: {\n if (!this.open || document.activeElement === this.host) {\n break;\n }\n const currentIndex = this.items.indexOf(this.focusableItem);\n const receiver = this.items[currentIndex - 1];\n ev.preventDefault();\n ev.stopPropagation();\n if (receiver) {\n this.moveFocus(receiver, this.focusableItem);\n } else {\n // since there isn't a previous item to focus, give the focus to the label element\n this.focusableItem.tabIndex = -1;\n this.setFocus();\n }\n break;\n }\n }\n }\n\n constructor() {\n this.toggle = this.toggle.bind(this);\n this.onItemsChange = this.onItemsChange.bind(this);\n this.onLabelSlotChange = this.onLabelSlotChange.bind(this);\n this.onLabelClick = this.onLabelClick.bind(this);\n this.onLabelKeydown = this.onLabelKeydown.bind(this);\n this.onItemsKeydown = this.onItemsKeydown.bind(this);\n }\n\n connectedCallback(): void {\n this.onItemsChange();\n }\n\n render(): HTMLZMenuSectionElement {\n return (\n <Host open={this.open}>\n <button\n ref={(el) => (this.label = el)}\n class=\"label\"\n aria-haspopup={`${!!this.hasItems}`}\n aria-expanded={`${!!this.open}`}\n role=\"menuitem\"\n tabindex={this.htmlTabindex}\n onClick={this.onLabelClick}\n onKeyDown={this.onLabelKeydown}\n >\n <slot onSlotchange={this.onLabelSlotChange} />\n {this.hasItems && <z-icon name={this.open ? \"chevron-up\" : \"chevron-down\"} />}\n </button>\n <div\n class=\"items\"\n role=\"menu\"\n hidden={!this.open}\n >\n <slot\n name=\"section\"\n onSlotchange={this.onItemsChange}\n />\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- export{Z as z_tfoot}from"./p-6f69c2b6.js";import"./p-75c4a726.js";
2
- //# sourceMappingURL=p-add2b5e8.entry.js.map
@@ -1,2 +0,0 @@
1
- export{Z as z_tr}from"./p-cd55204b.js";import"./p-75c4a726.js";import"./p-10607a39.js";import"./p-b34993de.js";import"./p-5145a606.js";import"./p-7c6dad4b.js";import"./p-90d54c40.js";
2
- //# sourceMappingURL=p-b896dcf7.entry.js.map
@@ -1,2 +0,0 @@
1
- export{Z as z_tbody}from"./p-f400cf1b.js";import"./p-75c4a726.js";
2
- //# sourceMappingURL=p-cc6406ab.entry.js.map
@@ -1,2 +0,0 @@
1
- import{r as e,c as t,h as n,a,g as i}from"./p-75c4a726.js";const o=':host,::slotted(*),*{box-sizing:border-box}:host{position:relative;display:inline-flex;flex-direction:column;--z-menu-label-color:var(--color-default-text)}::slotted(a){text-decoration:none}::slotted(*){color:var(--color-default-text);font-family:var(--font-family-sans);font-weight:var(--font-rg)}.menu-label{padding:0;border:0;margin:0;background:transparent;border-radius:0;color:inherit;outline:none;text-align:left}button.menu-label{cursor:pointer}.menu-label:focus-within{z-index:1;padding-right:calc(var(--space-unit) * 0.5);padding-left:calc(var(--space-unit) * 0.5);margin-right:calc(var(--space-unit) * -0.5);margin-left:calc(var(--space-unit) * -0.5);box-shadow:var(--shadow-focus-primary)}.menu-label .menu-label-content{position:relative;display:flex;align-items:center}:host(:is([active],[open])) .menu-label-content,.menu-label:focus-within .menu-label-content{font-weight:var(--font-bd)}:host(:is([active],[open])) .menu-label-content ::slotted(*),.menu-label:focus-within .menu-label-content ::slotted(*){letter-spacing:normal}:host .menu-label .menu-label-content ::slotted(*:not([slot]):focus:focus-visible){box-shadow:none !important}:host(:is([active],[open],[vertical-context])) .menu-label .menu-label-content::after,.menu-label .menu-label-content:hover::after,.menu-label:focus-within .menu-label-content::after{position:absolute;bottom:0;left:0;width:100%;content:"";pointer-events:none}:host([vertical-context]) .menu-label-content::after{height:var(--border-size-small);background-color:var(--color-surface03)}:host(:is([active],[open])) .menu-label .menu-label-content::after,.menu-label .menu-label-content:hover::after,.menu-label:focus-within .menu-label-content::after{height:var(--border-size-large);background-color:var(--color-secondary01)}::slotted([data-text])::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])::after{display:none}}::slotted([data-text]){display:inline-flex;flex-direction:column}.menu-label .menu-label-content ::slotted(*){display:inline-flex;width:100%;margin:0;appearance:none;color:var(--z-menu-label-color);font-family:var(--font-family-sans);font-size:var(--font-size-5);font-weight:inherit;letter-spacing:0.36px;line-height:1.2;outline:none}.menu-label .menu-label-content ::slotted(*),.menu-label .menu-label-content z-icon{padding:var(--space-unit) 0}.menu-label .menu-label-content z-icon{margin-left:calc(var(--space-unit) * 1.5);fill:currentcolor}.content{background:var(--color-surface01)}:host(:not([open])) .content{display:none}:host([floating]) .content{position:absolute;top:100%;left:0;width:375px;min-width:100%;max-width:100vw;padding:var(--space-unit) var(--space-unit) 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.25;outline:none}.items>::slotted([slot="item"]:focus:focus-visible){box-shadow:var(--shadow-focus-primary)}.items>::slotted([slot="item"]:not(z-menu-section)){padding:calc(var(--space-unit) * 2) calc(var(--space-unit) * 0.5);border-bottom:var(--border-size-small) solid var(--color-surface05)}.items>::slotted([slot="item"]:hover),.items>::slotted([slot="item"]:focus:focus-visible),.items>::slotted([slot="item"]:active){border-color:var(--color-secondary01);font-weight:var(--font-bd)}';const s=o;const l=class{toggle(){if(!this.hasContent){return}this.open=!this.open;this.open?this.opened.emit():this.closed.emit()}handleClick(e){if(!this.floating||!this.open||this.hostElement.contains(e.target)){return}this.reflow();this.open=false;this.closed.emit()}onOpenChanged(){if(this.open){this.reflow(true)}else{cancelAnimationFrame(this.raf)}}constructor(n){e(this,n);this.opened=t(this,"opened",7);this.closed=t(this,"closed",7);this.active=undefined;this.floating=false;this.open=false;this.verticalContext=false;this.hasHeader=undefined;this.hasContent=undefined;this.toggle=this.toggle.bind(this);this.checkContent=this.checkContent.bind(this);this.onLabelSlotChange=this.onLabelSlotChange.bind(this);this.onItemsChange=this.onItemsChange.bind(this)}componentWillLoad(){this.checkContent()}onLabelSlotChange(e){const t=e.target.assignedElements()[0];t.dataset.text=t===null||t===void 0?void 0:t.textContent}reflow(e=false){if(this.content){const{style:e}=this.content;const{left:t}=this.hostElement.getBoundingClientRect();const n=getComputedStyle(this.content).width;const a=n?parseFloat(n.replace("px","")):375;const i=30;e.left=`${Math.min(window.innerWidth-t-a-i,0)}px`}if(e){this.raf=requestAnimationFrame(this.reflow.bind(this,e))}}checkContent(){this.hasHeader=!!this.hostElement.querySelectorAll("[slot=header]").length;this.hasContent=!!this.hostElement.querySelectorAll("[slot=item]").length||this.hasHeader}onItemsChange(){this.checkContent();const e=this.hostElement.querySelectorAll("[slot=item]");e.forEach((e=>{e.setAttribute("role","menuitem");e.dataset.text=e.textContent}))}renderMenuLabel(){if(this.hasContent){return n("button",{class:"menu-label","aria-expanded":this.open?"true":"false","aria-label":this.open?"Chiudi menù":"Apri menù",onClick:this.toggle},n("div",{class:"menu-label-content"},n("slot",{onSlotchange:this.onLabelSlotChange}),n("z-icon",{name:this.open?"chevron-up":"chevron-down"})))}return n("div",{class:"menu-label"},n("div",{class:"menu-label-content"},n("slot",{onSlotchange:this.onLabelSlotChange})))}render(){return n(a,{key:"168ae999d1b4ed3f790b24d164ea5ee574ad4667"},this.renderMenuLabel(),this.hasContent&&n("div",{key:"16fe3c3597ee65ffe758d209db2124d9dce766ca",class:"content",ref:e=>this.content=e},this.hasHeader&&n("header",{key:"6baa93318d9edb189c31ef73515083ecddbcc4ec",class:"header"},n("slot",{key:"7d221ecaae610ff5a6cc533c06e65c76684b3cfc",name:"header",onSlotchange:this.checkContent})),n("div",{key:"d706e6a9bded04273fec5fb7676042a59e9eda81",class:"items",role:"menu"},n("slot",{key:"494d78bea12e9abf941216b8f7af70e429448ab5",name:"item",onSlotchange:this.onItemsChange}))))}get hostElement(){return i(this)}static get watchers(){return{open:["onOpenChanged"]}}};l.style=s;export{l as z_menu_deprecated};
2
- //# sourceMappingURL=p-d34a177a.entry.js.map