@zanichelli/albe-web-components 17.0.0-RC4 → 17.0.1

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 (820) hide show
  1. package/CHANGELOG.md +15 -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-47d0257d.js → index-4e2d222e.js} +3 -3
  5. package/dist/cjs/index-4e2d222e.js.map +1 -0
  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-15cb0816.js → index-aa56c709.js} +5 -5
  11. package/dist/cjs/index-aa56c709.js.map +1 -0
  12. package/dist/cjs/{index-0b5e5c05.js → index-b2f35532.js} +3 -3
  13. package/dist/cjs/index-b2f35532.js.map +1 -0
  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 +28 -16
  23. package/dist/cjs/z-app-header_12.cjs.entry.js.map +1 -1
  24. package/dist/cjs/z-aria-alert.cjs.entry.js +1 -1
  25. package/dist/cjs/z-avatar.cjs.entry.js +2 -2
  26. package/dist/cjs/z-book-card-app.cjs.entry.js +2 -2
  27. package/dist/cjs/z-book-card-app.cjs.entry.js.map +1 -1
  28. package/dist/cjs/z-book-card-deprecated.cjs.entry.js +2 -2
  29. package/dist/cjs/z-book-card-deprecated.cjs.entry.js.map +1 -1
  30. package/dist/cjs/z-book-card.cjs.entry.js +3 -3
  31. package/dist/cjs/z-book-card.cjs.entry.js.map +1 -1
  32. package/dist/cjs/z-breadcrumb.cjs.entry.js +3 -3
  33. package/dist/cjs/z-breadcrumb.cjs.entry.js.map +1 -1
  34. package/dist/cjs/z-button-sort.cjs.entry.js +1 -1
  35. package/dist/cjs/z-chip.cjs.entry.js +2 -2
  36. package/dist/cjs/z-combobox.cjs.entry.js +2 -2
  37. package/dist/cjs/z-combobox.cjs.entry.js.map +1 -1
  38. package/dist/cjs/z-cover-hero.cjs.entry.js +2 -2
  39. package/dist/cjs/z-date-picker.cjs.entry.js +1 -1
  40. package/dist/cjs/z-dragdrop-area_2.cjs.entry.js +17 -27
  41. package/dist/cjs/z-dragdrop-area_2.cjs.entry.js.map +1 -1
  42. package/dist/cjs/z-file-upload.cjs.entry.js +77 -101
  43. package/dist/cjs/z-file-upload.cjs.entry.js.map +1 -1
  44. package/dist/cjs/z-file.cjs.entry.js +1 -1
  45. package/dist/cjs/z-ghost-loading.cjs.entry.js +2 -2
  46. package/dist/cjs/z-ghost-loading.cjs.entry.js.map +1 -1
  47. package/dist/cjs/z-info-box.cjs.entry.js +1 -1
  48. package/dist/cjs/z-info-reveal.cjs.entry.js +1 -1
  49. package/dist/cjs/z-logo.cjs.entry.js +1 -1
  50. package/dist/cjs/z-menu-deprecated.cjs.entry.js +1 -1
  51. package/dist/cjs/z-menu-section-deprecated.cjs.entry.js +1 -1
  52. package/dist/cjs/z-menu-section.cjs.entry.js +2 -2
  53. package/dist/cjs/z-menu-section.cjs.entry.js.map +1 -1
  54. package/dist/cjs/z-menu.cjs.entry.js +1 -1
  55. package/dist/cjs/z-menu.cjs.entry.js.map +1 -1
  56. package/dist/cjs/z-myz-card-alert.cjs.entry.js +2 -2
  57. package/dist/cjs/z-myz-card-alert.cjs.entry.js.map +1 -1
  58. package/dist/cjs/z-myz-card-dictionary.cjs.entry.js +1 -1
  59. package/dist/cjs/z-myz-card-footer-sections.cjs.entry.js +1 -1
  60. package/dist/cjs/z-myz-card-footer.cjs.entry.js +1 -1
  61. package/dist/cjs/z-myz-card-icon.cjs.entry.js +1 -1
  62. package/dist/cjs/z-myz-card-info.cjs.entry.js +2 -2
  63. package/dist/cjs/z-myz-card-info.cjs.entry.js.map +1 -1
  64. package/dist/cjs/z-myz-card-list.cjs.entry.js +1 -1
  65. package/dist/cjs/z-myz-card_4.cjs.entry.js +6 -6
  66. package/dist/cjs/z-myz-card_4.cjs.entry.js.map +1 -1
  67. package/dist/cjs/z-myz-list-item.cjs.entry.js +1 -1
  68. package/dist/cjs/z-myz-list.cjs.entry.js +1 -1
  69. package/dist/cjs/z-navigation-tabs.cjs.entry.js +3 -3
  70. package/dist/cjs/z-navigation-tabs.cjs.entry.js.map +1 -1
  71. package/dist/cjs/z-notification.cjs.entry.js +1 -1
  72. package/dist/cjs/z-otp.cjs.entry.js +2 -2
  73. package/dist/cjs/z-panel-elem.cjs.entry.js +3 -2
  74. package/dist/cjs/z-panel-elem.cjs.entry.js.map +1 -1
  75. package/dist/cjs/z-popover.cjs.entry.js +1 -1
  76. package/dist/cjs/z-range-picker.cjs.entry.js +3 -3
  77. package/dist/cjs/z-section-title.cjs.entry.js +1 -1
  78. package/dist/cjs/z-select.cjs.entry.js +1 -1
  79. package/dist/cjs/z-skip-to-content.cjs.entry.js +2 -3
  80. package/dist/cjs/z-skip-to-content.cjs.entry.js.map +1 -1
  81. package/dist/cjs/z-slideshow.cjs.entry.js +1 -1
  82. package/dist/cjs/z-slideshow.cjs.entry.js.map +1 -1
  83. package/dist/cjs/z-stepper-item.cjs.entry.js +1 -1
  84. package/dist/cjs/z-stepper.cjs.entry.js +1 -1
  85. package/dist/cjs/z-table.cjs.entry.js +7 -7
  86. package/dist/cjs/z-tbody.cjs.entry.js +1 -1
  87. package/dist/cjs/z-td.cjs.entry.js +1 -1
  88. package/dist/cjs/z-tfoot.cjs.entry.js +1 -1
  89. package/dist/cjs/z-th.cjs.entry.js +1 -1
  90. package/dist/cjs/z-thead.cjs.entry.js +1 -1
  91. package/dist/cjs/z-toast-notification-list.cjs.entry.js +1 -1
  92. package/dist/cjs/z-toast-notification.cjs.entry.js +1 -1
  93. package/dist/cjs/z-toggle-button.cjs.entry.js +2 -2
  94. package/dist/cjs/z-toggle-switch.cjs.entry.js +3 -3
  95. package/dist/cjs/z-tooltip.cjs.entry.js +1 -1
  96. package/dist/cjs/z-tr.cjs.entry.js +3 -3
  97. package/dist/cjs/z-visually-hidden.cjs.entry.js +1 -1
  98. package/dist/collection/collection-manifest.json +1 -1
  99. package/dist/collection/components/book-card/z-book-card/index.js +2 -2
  100. package/dist/collection/components/book-card/z-book-card/index.js.map +1 -1
  101. package/dist/collection/components/book-card/z-book-card-app/index.js +1 -1
  102. package/dist/collection/components/css-components/z-link/index.stories.js +5 -6
  103. package/dist/collection/components/css-components/z-link/index.stories.js.map +1 -1
  104. package/dist/collection/components/css-components/z-link/styles.css +101 -107
  105. package/dist/collection/components/date-picker/z-date-picker/index.js +1 -1
  106. package/dist/collection/components/date-picker/z-range-picker/index.js +3 -3
  107. package/dist/collection/components/deprecated/z-app-header-deprecated/index.js +1 -1
  108. package/dist/collection/components/deprecated/z-book-card-deprecated/index.js +1 -1
  109. package/dist/collection/components/deprecated/z-book-card-deprecated/index.stories.js +3 -3
  110. package/dist/collection/components/deprecated/z-book-card-deprecated/index.stories.js.map +1 -1
  111. package/dist/collection/components/deprecated/z-book-card-deprecated/styles.css +2 -2
  112. package/dist/collection/components/deprecated/z-menu-deprecated/index.js +1 -1
  113. package/dist/collection/components/deprecated/z-menu-section-deprecated/index.js +1 -1
  114. package/dist/collection/components/file-upload/z-dragdrop-area/index.js +17 -16
  115. package/dist/collection/components/file-upload/z-dragdrop-area/index.js.map +1 -1
  116. package/dist/collection/components/file-upload/z-dragdrop-area/styles.css +54 -28
  117. package/dist/collection/components/file-upload/z-file/index.js +1 -1
  118. package/dist/collection/components/file-upload/z-file-upload/index.js +146 -107
  119. package/dist/collection/components/file-upload/z-file-upload/index.js.map +1 -1
  120. package/dist/collection/components/file-upload/z-file-upload/index.stories.js +11 -13
  121. package/dist/collection/components/file-upload/z-file-upload/index.stories.js.map +1 -1
  122. package/dist/collection/components/file-upload/z-file-upload/styles.css +19 -53
  123. package/dist/collection/components/list/z-list/index.js +1 -1
  124. package/dist/collection/components/list/z-list-element/index.js +1 -1
  125. package/dist/collection/components/list/z-list-element/styles.css +2 -2
  126. package/dist/collection/components/list/z-list-group/index.js +2 -2
  127. package/dist/collection/components/table/cells/z-td/index.js +1 -1
  128. package/dist/collection/components/table/cells/z-th/index.js +1 -1
  129. package/dist/collection/components/table/cells/z-th/styles.css +1 -1
  130. package/dist/collection/components/table/z-table/index.js +1 -1
  131. package/dist/collection/components/table/z-tbody/index.js +1 -1
  132. package/dist/collection/components/table/z-tfoot/index.js +1 -1
  133. package/dist/collection/components/table/z-thead/index.js +1 -1
  134. package/dist/collection/components/table/z-thead/styles.css +1 -1
  135. package/dist/collection/components/table/z-tr/index.js +1 -1
  136. package/dist/collection/components/table/z-tr/styles.css +1 -1
  137. package/dist/collection/components/z-accordion/index.js +1 -1
  138. package/dist/collection/components/z-accordion/styles.css +6 -1
  139. package/dist/collection/components/z-anchor-navigation/index.js +1 -1
  140. package/dist/collection/components/z-anchor-navigation/styles.css +6 -4
  141. package/dist/collection/components/z-app-header/index.js +1 -1
  142. package/dist/collection/components/z-aria-alert/index.js +1 -1
  143. package/dist/collection/components/z-avatar/index.js +2 -2
  144. package/dist/collection/components/z-breadcrumb/index.js +2 -2
  145. package/dist/collection/components/z-breadcrumb/styles.css +4 -4
  146. package/dist/collection/components/z-button-sort/index.js +1 -1
  147. package/dist/collection/components/z-chip/index.js +2 -2
  148. package/dist/collection/components/z-combobox/index.js +1 -1
  149. package/dist/collection/components/z-combobox/styles.css +2 -2
  150. package/dist/collection/components/z-cover-hero/index.js +2 -2
  151. package/dist/collection/components/z-divider/index.js +1 -1
  152. package/dist/collection/components/z-ghost-loading/index.js +1 -1
  153. package/dist/collection/components/z-ghost-loading/styles.css +3 -3
  154. package/dist/collection/components/z-icon/index.js +1 -1
  155. package/dist/collection/components/z-info-box/index.js +1 -1
  156. package/dist/collection/components/z-info-reveal/index.js +1 -1
  157. package/dist/collection/components/z-input/index.js +1 -1
  158. package/dist/collection/components/z-input/styles.css +2 -2
  159. package/dist/collection/components/z-input-message/index.js +1 -1
  160. package/dist/collection/components/z-logo/index.js +1 -1
  161. package/dist/collection/components/z-menu/styles.css +3 -3
  162. package/dist/collection/components/z-menu-section/index.js +1 -1
  163. package/dist/collection/components/z-menu-section/styles.css +3 -3
  164. package/dist/collection/components/z-modal/index.js +4 -10
  165. package/dist/collection/components/z-modal/index.js.map +1 -1
  166. package/dist/collection/components/z-modal/styles.css +1 -1
  167. package/dist/collection/components/z-navigation-tabs/index.js +2 -2
  168. package/dist/collection/components/z-navigation-tabs/styles.css +3 -3
  169. package/dist/collection/components/z-notification/index.js +1 -1
  170. package/dist/collection/components/z-offcanvas/index.js +1 -1
  171. package/dist/collection/components/z-panel-elem/index.js +3 -2
  172. package/dist/collection/components/z-panel-elem/index.js.map +1 -1
  173. package/dist/collection/components/z-popover/index.js +1 -1
  174. package/dist/collection/components/z-searchbar/index.js +1 -1
  175. package/dist/collection/components/z-searchbar/styles.css +1 -1
  176. package/dist/collection/components/z-section-title/index.js +1 -1
  177. package/dist/collection/components/z-select/index.js +1 -1
  178. package/dist/collection/components/z-skip-to-content/index.js +2 -3
  179. package/dist/collection/components/z-skip-to-content/index.js.map +1 -1
  180. package/dist/collection/components/z-stepper/index.js +1 -1
  181. package/dist/collection/components/z-stepper-item/index.js +1 -1
  182. package/dist/collection/components/z-tag/index.js +2 -2
  183. package/dist/collection/components/z-toast-notification/index.js +1 -1
  184. package/dist/collection/components/z-toast-notification-list/index.js +1 -1
  185. package/dist/collection/components/z-toggle-button/index.js +2 -2
  186. package/dist/collection/components/z-toggle-switch/index.js +3 -3
  187. package/dist/collection/components/z-tooltip/index.js +1 -1
  188. package/dist/collection/components/z-visually-hidden/index.js +1 -1
  189. package/dist/collection/constants/iconset.js +12 -0
  190. package/dist/collection/constants/iconset.js.map +1 -1
  191. package/dist/collection/snowflakes/myz/card/z-myz-card/index.js +1 -1
  192. package/dist/collection/snowflakes/myz/card/z-myz-card/styles.css +1 -1
  193. package/dist/collection/snowflakes/myz/card/z-myz-card-alert/index.js +1 -1
  194. package/dist/collection/snowflakes/myz/card/z-myz-card-alert/styles.css +1 -1
  195. package/dist/collection/snowflakes/myz/card/z-myz-card-body/index.js +1 -1
  196. package/dist/collection/snowflakes/myz/card/z-myz-card-cover/index.js +1 -1
  197. package/dist/collection/snowflakes/myz/card/z-myz-card-dictionary/index.js +1 -1
  198. package/dist/collection/snowflakes/myz/card/z-myz-card-footer/index.js +1 -1
  199. package/dist/collection/snowflakes/myz/card/z-myz-card-footer-sections/index.js +1 -1
  200. package/dist/collection/snowflakes/myz/card/z-myz-card-header/index.js +1 -1
  201. package/dist/collection/snowflakes/myz/card/z-myz-card-header/styles.css +1 -1
  202. package/dist/collection/snowflakes/myz/card/z-myz-card-icon/index.js +1 -1
  203. package/dist/collection/snowflakes/myz/card/z-myz-card-info/index.js +1 -1
  204. package/dist/collection/snowflakes/myz/card/z-myz-card-info/styles.css +1 -1
  205. package/dist/collection/snowflakes/myz/card/z-myz-card-list/index.js +1 -1
  206. package/dist/collection/snowflakes/myz/list/z-myz-list/index.js +1 -1
  207. package/dist/collection/snowflakes/myz/list/z-myz-list-item/index.js +1 -1
  208. package/dist/collection/snowflakes/myz/z-alert/index.js +1 -1
  209. package/dist/collection/snowflakes/myz/z-otp/index.js +2 -2
  210. package/dist/collection/snowflakes/myz/z-slideshow/styles.css +2 -2
  211. package/dist/components/iconset.js +12 -0
  212. package/dist/components/iconset.js.map +1 -1
  213. package/dist/components/index10.js +1 -1
  214. package/dist/components/index11.js +2 -2
  215. package/dist/components/index11.js.map +1 -1
  216. package/dist/components/index12.js +1 -1
  217. package/dist/components/index13.js +1 -1
  218. package/dist/components/index14.js +2 -2
  219. package/dist/components/index14.js.map +1 -1
  220. package/dist/components/index15.js +2 -2
  221. package/dist/components/index16.js +5 -11
  222. package/dist/components/index16.js.map +1 -1
  223. package/dist/components/index17.js +2 -2
  224. package/dist/components/index17.js.map +1 -1
  225. package/dist/components/index18.js +1 -1
  226. package/dist/components/index19.js +1 -1
  227. package/dist/components/index20.js +2 -2
  228. package/dist/components/index20.js.map +1 -1
  229. package/dist/components/index21.js +1 -1
  230. package/dist/components/index22.js +1 -1
  231. package/dist/components/index23.js +1 -1
  232. package/dist/components/index24.js +2 -2
  233. package/dist/components/index24.js.map +1 -1
  234. package/dist/components/index25.js +2 -2
  235. package/dist/components/index3.js +1 -1
  236. package/dist/components/index5.js +2 -2
  237. package/dist/components/index6.js +1 -1
  238. package/dist/components/index7.js +28 -19
  239. package/dist/components/index7.js.map +1 -1
  240. package/dist/components/index8.js +2 -2
  241. package/dist/components/index8.js.map +1 -1
  242. package/dist/components/index9.js +1 -1
  243. package/dist/components/z-accordion.js +2 -2
  244. package/dist/components/z-accordion.js.map +1 -1
  245. package/dist/components/z-anchor-navigation.js +2 -2
  246. package/dist/components/z-anchor-navigation.js.map +1 -1
  247. package/dist/components/z-app-header-deprecated.js +1 -1
  248. package/dist/components/z-app-header.js +1 -1
  249. package/dist/components/z-aria-alert.js +1 -1
  250. package/dist/components/z-avatar.js +2 -2
  251. package/dist/components/z-book-card-app.js +2 -2
  252. package/dist/components/z-book-card-app.js.map +1 -1
  253. package/dist/components/z-book-card-deprecated.js +2 -2
  254. package/dist/components/z-book-card-deprecated.js.map +1 -1
  255. package/dist/components/z-book-card.js +3 -3
  256. package/dist/components/z-book-card.js.map +1 -1
  257. package/dist/components/z-breadcrumb.js +3 -3
  258. package/dist/components/z-breadcrumb.js.map +1 -1
  259. package/dist/components/z-button-sort.js +1 -1
  260. package/dist/components/z-combobox.js +2 -2
  261. package/dist/components/z-combobox.js.map +1 -1
  262. package/dist/components/z-cover-hero.js +2 -2
  263. package/dist/components/z-date-picker.js +1 -1
  264. package/dist/components/z-file-upload.js +85 -112
  265. package/dist/components/z-file-upload.js.map +1 -1
  266. package/dist/components/z-file.js +1 -1
  267. package/dist/components/z-info-box.js +1 -1
  268. package/dist/components/z-logo.js +1 -1
  269. package/dist/components/z-menu-deprecated.js +1 -1
  270. package/dist/components/z-menu-section-deprecated.js +1 -1
  271. package/dist/components/z-menu-section.js +2 -2
  272. package/dist/components/z-menu-section.js.map +1 -1
  273. package/dist/components/z-menu.js +1 -1
  274. package/dist/components/z-menu.js.map +1 -1
  275. package/dist/components/z-myz-card-alert.js +2 -2
  276. package/dist/components/z-myz-card-alert.js.map +1 -1
  277. package/dist/components/z-myz-card-dictionary.js +1 -1
  278. package/dist/components/z-myz-card-footer-sections.js +1 -1
  279. package/dist/components/z-myz-card-footer.js +1 -1
  280. package/dist/components/z-myz-card-icon.js +1 -1
  281. package/dist/components/z-myz-card-info.js +2 -2
  282. package/dist/components/z-myz-card-info.js.map +1 -1
  283. package/dist/components/z-myz-card-list.js +1 -1
  284. package/dist/components/z-myz-list.js +1 -1
  285. package/dist/components/z-navigation-tabs.js +3 -3
  286. package/dist/components/z-navigation-tabs.js.map +1 -1
  287. package/dist/components/z-notification.js +1 -1
  288. package/dist/components/z-otp.js +2 -2
  289. package/dist/components/z-panel-elem.js +3 -2
  290. package/dist/components/z-panel-elem.js.map +1 -1
  291. package/dist/components/z-range-picker.js +3 -3
  292. package/dist/components/z-section-title.js +1 -1
  293. package/dist/components/z-select.js +1 -1
  294. package/dist/components/z-skip-to-content.js +2 -3
  295. package/dist/components/z-skip-to-content.js.map +1 -1
  296. package/dist/components/z-slideshow.js +1 -1
  297. package/dist/components/z-slideshow.js.map +1 -1
  298. package/dist/components/z-stepper-item.js +1 -1
  299. package/dist/components/z-stepper.js +1 -1
  300. package/dist/components/z-table.js +1 -1
  301. package/dist/components/z-tbody.js +1 -1
  302. package/dist/components/z-td.js +1 -1
  303. package/dist/components/z-tfoot.js +1 -1
  304. package/dist/components/z-th.js +2 -2
  305. package/dist/components/z-th.js.map +1 -1
  306. package/dist/components/z-thead.js +2 -2
  307. package/dist/components/z-thead.js.map +1 -1
  308. package/dist/components/z-toast-notification-list.js +1 -1
  309. package/dist/components/z-toast-notification.js +1 -1
  310. package/dist/components/z-toggle-button.js +2 -2
  311. package/dist/components/z-toggle-switch.js +3 -3
  312. package/dist/components/z-tooltip.js +1 -1
  313. package/dist/components/z-tr.js +2 -2
  314. package/dist/components/z-tr.js.map +1 -1
  315. package/dist/components/z-visually-hidden.js +1 -1
  316. package/dist/docs/themes/index.stories.js +1 -1
  317. package/dist/docs/themes/index.stories.js.map +1 -1
  318. package/dist/esm/{index-daf6dc52.js → index-04335eea.js} +2 -2
  319. package/dist/esm/{index-daf6dc52.js.map → index-04335eea.js.map} +1 -1
  320. package/dist/esm/{index-a71eb5f5.js → index-5dff449e.js} +3 -3
  321. package/dist/esm/index-5dff449e.js.map +1 -0
  322. package/dist/esm/{index-bf3d3447.js → index-735d4f23.js} +2 -2
  323. package/dist/esm/{index-bf3d3447.js.map → index-735d4f23.js.map} +1 -1
  324. package/dist/esm/{index-13d1f531.js → index-8df19678.js} +5 -5
  325. package/dist/esm/index-8df19678.js.map +1 -0
  326. package/dist/esm/{index-f372e39c.js → index-90f624c1.js} +3 -3
  327. package/{www/build/p-72bfc9d0.js.map → dist/esm/index-90f624c1.js.map} +1 -1
  328. package/dist/esm/{index-358dea59.js → index-9adfcd0d.js} +2 -2
  329. package/dist/esm/{index-358dea59.js.map → index-9adfcd0d.js.map} +1 -1
  330. package/dist/esm/loader.js +1 -1
  331. package/dist/esm/web-components-library.js +1 -1
  332. package/dist/esm/z-accordion.entry.js +2 -2
  333. package/dist/esm/z-accordion.entry.js.map +1 -1
  334. package/dist/esm/z-alert.entry.js +1 -1
  335. package/dist/esm/z-anchor-navigation.entry.js +2 -2
  336. package/dist/esm/z-anchor-navigation.entry.js.map +1 -1
  337. package/dist/esm/z-app-header-deprecated.entry.js +1 -1
  338. package/dist/esm/z-app-header_12.entry.js +28 -16
  339. package/dist/esm/z-app-header_12.entry.js.map +1 -1
  340. package/dist/esm/z-aria-alert.entry.js +1 -1
  341. package/dist/esm/z-avatar.entry.js +2 -2
  342. package/dist/esm/z-book-card-app.entry.js +2 -2
  343. package/dist/esm/z-book-card-app.entry.js.map +1 -1
  344. package/dist/esm/z-book-card-deprecated.entry.js +2 -2
  345. package/dist/esm/z-book-card-deprecated.entry.js.map +1 -1
  346. package/dist/esm/z-book-card.entry.js +3 -3
  347. package/dist/esm/z-book-card.entry.js.map +1 -1
  348. package/dist/esm/z-breadcrumb.entry.js +3 -3
  349. package/dist/esm/z-breadcrumb.entry.js.map +1 -1
  350. package/dist/esm/z-button-sort.entry.js +1 -1
  351. package/dist/esm/z-chip.entry.js +2 -2
  352. package/dist/esm/z-combobox.entry.js +2 -2
  353. package/dist/esm/z-combobox.entry.js.map +1 -1
  354. package/dist/esm/z-cover-hero.entry.js +2 -2
  355. package/dist/esm/z-date-picker.entry.js +1 -1
  356. package/dist/esm/z-dragdrop-area_2.entry.js +18 -28
  357. package/dist/esm/z-dragdrop-area_2.entry.js.map +1 -1
  358. package/dist/esm/z-file-upload.entry.js +78 -102
  359. package/dist/esm/z-file-upload.entry.js.map +1 -1
  360. package/dist/esm/z-file.entry.js +1 -1
  361. package/dist/esm/z-ghost-loading.entry.js +2 -2
  362. package/dist/esm/z-ghost-loading.entry.js.map +1 -1
  363. package/dist/esm/z-info-box.entry.js +1 -1
  364. package/dist/esm/z-info-reveal.entry.js +1 -1
  365. package/dist/esm/z-logo.entry.js +1 -1
  366. package/dist/esm/z-menu-deprecated.entry.js +1 -1
  367. package/dist/esm/z-menu-section-deprecated.entry.js +1 -1
  368. package/dist/esm/z-menu-section.entry.js +2 -2
  369. package/dist/esm/z-menu-section.entry.js.map +1 -1
  370. package/dist/esm/z-menu.entry.js +1 -1
  371. package/dist/esm/z-menu.entry.js.map +1 -1
  372. package/dist/esm/z-myz-card-alert.entry.js +2 -2
  373. package/dist/esm/z-myz-card-alert.entry.js.map +1 -1
  374. package/dist/esm/z-myz-card-dictionary.entry.js +1 -1
  375. package/dist/esm/z-myz-card-footer-sections.entry.js +1 -1
  376. package/dist/esm/z-myz-card-footer.entry.js +1 -1
  377. package/dist/esm/z-myz-card-icon.entry.js +1 -1
  378. package/dist/esm/z-myz-card-info.entry.js +2 -2
  379. package/dist/esm/z-myz-card-info.entry.js.map +1 -1
  380. package/dist/esm/z-myz-card-list.entry.js +1 -1
  381. package/dist/esm/z-myz-card_4.entry.js +6 -6
  382. package/dist/esm/z-myz-card_4.entry.js.map +1 -1
  383. package/dist/esm/z-myz-list-item.entry.js +1 -1
  384. package/dist/esm/z-myz-list.entry.js +1 -1
  385. package/dist/esm/z-navigation-tabs.entry.js +3 -3
  386. package/dist/esm/z-navigation-tabs.entry.js.map +1 -1
  387. package/dist/esm/z-notification.entry.js +1 -1
  388. package/dist/esm/z-otp.entry.js +2 -2
  389. package/dist/esm/z-panel-elem.entry.js +3 -2
  390. package/dist/esm/z-panel-elem.entry.js.map +1 -1
  391. package/dist/esm/z-popover.entry.js +1 -1
  392. package/dist/esm/z-range-picker.entry.js +3 -3
  393. package/dist/esm/z-section-title.entry.js +1 -1
  394. package/dist/esm/z-select.entry.js +1 -1
  395. package/dist/esm/z-skip-to-content.entry.js +2 -3
  396. package/dist/esm/z-skip-to-content.entry.js.map +1 -1
  397. package/dist/esm/z-slideshow.entry.js +1 -1
  398. package/dist/esm/z-slideshow.entry.js.map +1 -1
  399. package/dist/esm/z-stepper-item.entry.js +1 -1
  400. package/dist/esm/z-stepper.entry.js +1 -1
  401. package/dist/esm/z-table.entry.js +7 -7
  402. package/dist/esm/z-tbody.entry.js +1 -1
  403. package/dist/esm/z-td.entry.js +1 -1
  404. package/dist/esm/z-tfoot.entry.js +1 -1
  405. package/dist/esm/z-th.entry.js +1 -1
  406. package/dist/esm/z-thead.entry.js +1 -1
  407. package/dist/esm/z-toast-notification-list.entry.js +1 -1
  408. package/dist/esm/z-toast-notification.entry.js +1 -1
  409. package/dist/esm/z-toggle-button.entry.js +2 -2
  410. package/dist/esm/z-toggle-switch.entry.js +3 -3
  411. package/dist/esm/z-tooltip.entry.js +1 -1
  412. package/dist/esm/z-tr.entry.js +3 -3
  413. package/dist/esm/z-visually-hidden.entry.js +1 -1
  414. package/dist/types/components/css-components/z-link/index.stories.d.ts +0 -1
  415. package/dist/types/components/file-upload/z-dragdrop-area/index.d.ts +4 -4
  416. package/dist/types/components/file-upload/z-file-upload/index.d.ts +39 -25
  417. package/dist/types/components/file-upload/z-file-upload/index.stories.d.ts +1 -0
  418. package/dist/types/components/z-modal/index.d.ts +0 -1
  419. package/dist/types/components.d.ts +27 -4
  420. package/dist/types/constants/iconset.d.ts +24 -0
  421. package/dist/web-components-library/p-015621c8.entry.js +2 -0
  422. package/dist/web-components-library/p-015621c8.entry.js.map +1 -0
  423. package/dist/web-components-library/p-035807e3.entry.js +2 -0
  424. package/dist/web-components-library/p-037c59b3.js +2 -0
  425. package/dist/web-components-library/p-037c59b3.js.map +1 -0
  426. package/dist/web-components-library/p-0565f1b2.entry.js +2 -0
  427. package/dist/web-components-library/p-0565f1b2.entry.js.map +1 -0
  428. package/{www/build/p-f413c03c.entry.js → dist/web-components-library/p-080b13fe.entry.js} +2 -2
  429. package/dist/web-components-library/p-08d8f935.entry.js +2 -0
  430. package/dist/web-components-library/{p-95795174.entry.js → p-0df6b405.entry.js} +2 -2
  431. package/dist/web-components-library/p-11216ee8.entry.js +2 -0
  432. package/dist/web-components-library/{p-5ccbdfbe.entry.js.map → p-11216ee8.entry.js.map} +1 -1
  433. package/dist/web-components-library/p-115fab3e.entry.js +2 -0
  434. package/dist/web-components-library/p-115fab3e.entry.js.map +1 -0
  435. package/dist/web-components-library/{p-914e20e9.entry.js → p-11629dd3.entry.js} +2 -2
  436. package/dist/web-components-library/p-123739cb.js +2 -0
  437. package/dist/web-components-library/p-123739cb.js.map +1 -0
  438. package/dist/web-components-library/{p-7c6dad4b.js → p-14e61df6.js} +2 -2
  439. package/dist/web-components-library/{p-2e48ff6b.entry.js → p-18d63f0c.entry.js} +2 -2
  440. package/dist/web-components-library/p-20b628e7.entry.js +2 -0
  441. package/dist/web-components-library/p-20b628e7.entry.js.map +1 -0
  442. package/dist/web-components-library/{p-166ea39f.entry.js → p-22d56699.entry.js} +2 -2
  443. package/dist/web-components-library/{p-166ea39f.entry.js.map → p-22d56699.entry.js.map} +1 -1
  444. package/dist/web-components-library/p-2798c0b2.entry.js +2 -0
  445. package/{www/build/p-83cd8d7c.entry.js → dist/web-components-library/p-2a0d8ebe.entry.js} +2 -2
  446. package/dist/web-components-library/p-2aeb2a94.entry.js +2 -0
  447. package/dist/web-components-library/{p-34d82be5.entry.js → p-2c450113.entry.js} +2 -2
  448. package/dist/web-components-library/{p-c57bb632.entry.js → p-2dcf53b3.entry.js} +2 -2
  449. package/dist/web-components-library/p-30170218.entry.js +2 -0
  450. package/dist/web-components-library/{p-8be628c6.entry.js → p-34f4f441.entry.js} +2 -2
  451. package/dist/web-components-library/{p-8be628c6.entry.js.map → p-34f4f441.entry.js.map} +1 -1
  452. package/dist/web-components-library/{p-73d089fe.entry.js → p-384baa02.entry.js} +2 -2
  453. package/dist/web-components-library/{p-46ce378d.entry.js → p-395b261e.entry.js} +2 -2
  454. package/dist/web-components-library/p-3bf02cab.entry.js +2 -0
  455. package/dist/web-components-library/p-3bf02cab.entry.js.map +1 -0
  456. package/dist/web-components-library/{p-4a058a26.entry.js → p-42559870.entry.js} +2 -2
  457. package/dist/web-components-library/{p-92da97fb.entry.js → p-4374d3f3.entry.js} +2 -2
  458. package/dist/web-components-library/p-4c462e7f.js +2 -0
  459. package/dist/web-components-library/p-4c462e7f.js.map +1 -0
  460. package/dist/web-components-library/{p-589f4f48.entry.js → p-4fedcbc2.entry.js} +2 -2
  461. package/dist/web-components-library/p-50bf57b4.entry.js +2 -0
  462. package/dist/web-components-library/p-50bf57b4.entry.js.map +1 -0
  463. package/{www/build/p-8f47b574.entry.js → dist/web-components-library/p-52be7378.entry.js} +2 -2
  464. package/dist/web-components-library/p-54a70792.entry.js +2 -0
  465. package/dist/web-components-library/p-54a70792.entry.js.map +1 -0
  466. package/dist/web-components-library/{p-c9913f1e.entry.js → p-5f04d9eb.entry.js} +2 -2
  467. package/dist/web-components-library/p-60a9cb8b.entry.js +2 -0
  468. package/dist/web-components-library/p-60a9cb8b.entry.js.map +1 -0
  469. package/dist/web-components-library/{p-ddae9016.entry.js → p-6230c432.entry.js} +2 -2
  470. package/dist/web-components-library/p-65f1b68b.entry.js +2 -0
  471. package/dist/web-components-library/p-65f1b68b.entry.js.map +1 -0
  472. package/dist/web-components-library/p-6e1ba2f0.entry.js +2 -0
  473. package/dist/web-components-library/{p-3ce0d28c.entry.js → p-7095262b.entry.js} +2 -2
  474. package/dist/web-components-library/{p-af4b759a.entry.js → p-72dae90b.entry.js} +2 -2
  475. package/dist/web-components-library/p-73d686e0.entry.js +2 -0
  476. package/dist/web-components-library/p-73d686e0.entry.js.map +1 -0
  477. package/dist/web-components-library/p-75808b47.entry.js +2 -0
  478. package/dist/web-components-library/p-75808b47.entry.js.map +1 -0
  479. package/dist/web-components-library/p-7e8d843e.entry.js +2 -0
  480. package/{www/build/p-d34a177a.entry.js.map → dist/web-components-library/p-7e8d843e.entry.js.map} +1 -1
  481. package/dist/web-components-library/{p-0d1dbe04.entry.js → p-8c952964.entry.js} +2 -2
  482. package/dist/web-components-library/{p-18fbbf63.entry.js → p-9187ce36.entry.js} +2 -2
  483. package/dist/web-components-library/{p-08691c77.entry.js → p-9218da42.entry.js} +2 -2
  484. package/{www/build/p-2cc8c5a5.entry.js → dist/web-components-library/p-972098a5.entry.js} +2 -2
  485. package/{www/build/p-5365f354.entry.js → dist/web-components-library/p-9d850412.entry.js} +2 -2
  486. package/dist/web-components-library/{p-5365f354.entry.js.map → p-9d850412.entry.js.map} +1 -1
  487. package/dist/web-components-library/{p-ecaca2df.entry.js → p-9f0a3d88.entry.js} +2 -2
  488. package/dist/web-components-library/p-a90027c2.entry.js +2 -0
  489. package/dist/web-components-library/p-a90027c2.entry.js.map +1 -0
  490. package/dist/web-components-library/p-aa0b3e7a.entry.js +2 -0
  491. package/dist/web-components-library/p-aa0b3e7a.entry.js.map +1 -0
  492. package/{www/build/p-65c59027.entry.js → dist/web-components-library/p-aa42f01d.entry.js} +2 -2
  493. package/dist/web-components-library/p-ad825740.entry.js +2 -0
  494. package/dist/web-components-library/p-b309bd71.entry.js +2 -0
  495. package/dist/web-components-library/p-b309bd71.entry.js.map +1 -0
  496. package/dist/web-components-library/p-b38be247.entry.js +2 -0
  497. package/dist/web-components-library/{p-ac03a6cc.entry.js → p-bbd492d3.entry.js} +2 -2
  498. package/dist/web-components-library/p-c13ef624.js +2 -0
  499. package/dist/web-components-library/{p-0eab0213.entry.js → p-caccf490.entry.js} +2 -2
  500. package/dist/web-components-library/p-cb8aec27.entry.js +2 -0
  501. package/dist/web-components-library/p-cc8186a9.entry.js +2 -0
  502. package/dist/web-components-library/{p-d972d6aa.entry.js.map → p-cc8186a9.entry.js.map} +1 -1
  503. package/dist/web-components-library/p-d65aba93.entry.js +2 -0
  504. package/dist/web-components-library/{p-386e385c.entry.js.map → p-d65aba93.entry.js.map} +1 -1
  505. package/dist/web-components-library/p-db0a5f51.entry.js +2 -0
  506. package/dist/web-components-library/p-db0a5f51.entry.js.map +1 -0
  507. package/dist/web-components-library/p-deb86b5c.entry.js +2 -0
  508. package/dist/web-components-library/p-ea36d666.entry.js +2 -0
  509. package/dist/web-components-library/p-ea36d666.entry.js.map +1 -0
  510. package/dist/web-components-library/{p-9078dfd7.entry.js → p-f06bd257.entry.js} +2 -2
  511. package/dist/web-components-library/p-f075ec62.entry.js +2 -0
  512. package/dist/web-components-library/p-f075ec62.entry.js.map +1 -0
  513. package/dist/web-components-library/{p-27a59513.entry.js → p-f8915e2e.entry.js} +2 -2
  514. package/dist/web-components-library/{p-068b15fc.entry.js → p-fb06a5d8.entry.js} +2 -2
  515. package/dist/web-components-library/p-feb84d36.js +2 -0
  516. package/dist/web-components-library/web-components-library.css +171 -144
  517. package/dist/web-components-library/web-components-library.esm.js +1 -1
  518. package/dist/web-components-library/web-components-library.esm.js.map +1 -1
  519. package/package.json +1 -1
  520. package/www/build/p-015621c8.entry.js +2 -0
  521. package/www/build/p-015621c8.entry.js.map +1 -0
  522. package/www/build/p-035807e3.entry.js +2 -0
  523. package/www/build/p-037c59b3.js +2 -0
  524. package/www/build/p-037c59b3.js.map +1 -0
  525. package/www/build/p-0565f1b2.entry.js +2 -0
  526. package/www/build/p-0565f1b2.entry.js.map +1 -0
  527. package/{dist/web-components-library/p-f413c03c.entry.js → www/build/p-080b13fe.entry.js} +2 -2
  528. package/www/build/p-08d8f935.entry.js +2 -0
  529. package/www/build/{p-95795174.entry.js → p-0df6b405.entry.js} +2 -2
  530. package/www/build/p-11216ee8.entry.js +2 -0
  531. package/www/build/{p-5ccbdfbe.entry.js.map → p-11216ee8.entry.js.map} +1 -1
  532. package/www/build/p-115fab3e.entry.js +2 -0
  533. package/www/build/p-115fab3e.entry.js.map +1 -0
  534. package/www/build/{p-914e20e9.entry.js → p-11629dd3.entry.js} +2 -2
  535. package/www/build/p-123739cb.js +2 -0
  536. package/www/build/p-123739cb.js.map +1 -0
  537. package/www/build/{p-7c6dad4b.js → p-14e61df6.js} +2 -2
  538. package/www/build/{p-2e48ff6b.entry.js → p-18d63f0c.entry.js} +2 -2
  539. package/www/build/p-20b628e7.entry.js +2 -0
  540. package/www/build/p-20b628e7.entry.js.map +1 -0
  541. package/www/build/{p-166ea39f.entry.js → p-22d56699.entry.js} +2 -2
  542. package/www/build/{p-166ea39f.entry.js.map → p-22d56699.entry.js.map} +1 -1
  543. package/www/build/p-2798c0b2.entry.js +2 -0
  544. package/{dist/web-components-library/p-83cd8d7c.entry.js → www/build/p-2a0d8ebe.entry.js} +2 -2
  545. package/www/build/p-2aeb2a94.entry.js +2 -0
  546. package/www/build/{p-34d82be5.entry.js → p-2c450113.entry.js} +2 -2
  547. package/www/build/{p-c57bb632.entry.js → p-2dcf53b3.entry.js} +2 -2
  548. package/www/build/p-30170218.entry.js +2 -0
  549. package/www/build/{p-8be628c6.entry.js → p-34f4f441.entry.js} +2 -2
  550. package/www/build/{p-8be628c6.entry.js.map → p-34f4f441.entry.js.map} +1 -1
  551. package/www/build/{p-73d089fe.entry.js → p-384baa02.entry.js} +2 -2
  552. package/www/build/{p-46ce378d.entry.js → p-395b261e.entry.js} +2 -2
  553. package/www/build/p-3bf02cab.entry.js +2 -0
  554. package/www/build/p-3bf02cab.entry.js.map +1 -0
  555. package/www/build/{p-4a058a26.entry.js → p-42559870.entry.js} +2 -2
  556. package/www/build/{p-92da97fb.entry.js → p-4374d3f3.entry.js} +2 -2
  557. package/www/build/{p-d9dbe303.css → p-4c358c38.css} +171 -144
  558. package/www/build/p-4c462e7f.js +2 -0
  559. package/www/build/p-4c462e7f.js.map +1 -0
  560. package/www/build/{p-589f4f48.entry.js → p-4fedcbc2.entry.js} +2 -2
  561. package/www/build/p-50bf57b4.entry.js +2 -0
  562. package/www/build/p-50bf57b4.entry.js.map +1 -0
  563. package/{dist/web-components-library/p-8f47b574.entry.js → www/build/p-52be7378.entry.js} +2 -2
  564. package/www/build/p-54a70792.entry.js +2 -0
  565. package/www/build/p-54a70792.entry.js.map +1 -0
  566. package/www/build/{p-c9913f1e.entry.js → p-5f04d9eb.entry.js} +2 -2
  567. package/www/build/p-60a9cb8b.entry.js +2 -0
  568. package/www/build/p-60a9cb8b.entry.js.map +1 -0
  569. package/www/build/{p-ddae9016.entry.js → p-6230c432.entry.js} +2 -2
  570. package/www/build/p-65f1b68b.entry.js +2 -0
  571. package/www/build/p-65f1b68b.entry.js.map +1 -0
  572. package/www/build/p-6e1ba2f0.entry.js +2 -0
  573. package/www/build/{p-3ce0d28c.entry.js → p-7095262b.entry.js} +2 -2
  574. package/www/build/{p-af4b759a.entry.js → p-72dae90b.entry.js} +2 -2
  575. package/www/build/p-73d686e0.entry.js +2 -0
  576. package/www/build/p-73d686e0.entry.js.map +1 -0
  577. package/www/build/p-75808b47.entry.js +2 -0
  578. package/www/build/p-75808b47.entry.js.map +1 -0
  579. package/www/build/p-7e8d843e.entry.js +2 -0
  580. package/{dist/web-components-library/p-d34a177a.entry.js.map → www/build/p-7e8d843e.entry.js.map} +1 -1
  581. package/www/build/{p-0d1dbe04.entry.js → p-8c952964.entry.js} +2 -2
  582. package/www/build/{p-18fbbf63.entry.js → p-9187ce36.entry.js} +2 -2
  583. package/www/build/{p-08691c77.entry.js → p-9218da42.entry.js} +2 -2
  584. package/{dist/web-components-library/p-2cc8c5a5.entry.js → www/build/p-972098a5.entry.js} +2 -2
  585. package/{dist/web-components-library/p-5365f354.entry.js → www/build/p-9d850412.entry.js} +2 -2
  586. package/www/build/{p-5365f354.entry.js.map → p-9d850412.entry.js.map} +1 -1
  587. package/www/build/{p-ecaca2df.entry.js → p-9f0a3d88.entry.js} +2 -2
  588. package/www/build/p-a90027c2.entry.js +2 -0
  589. package/www/build/p-a90027c2.entry.js.map +1 -0
  590. package/www/build/p-aa0b3e7a.entry.js +2 -0
  591. package/www/build/p-aa0b3e7a.entry.js.map +1 -0
  592. package/{dist/web-components-library/p-65c59027.entry.js → www/build/p-aa42f01d.entry.js} +2 -2
  593. package/www/build/p-ad825740.entry.js +2 -0
  594. package/www/build/p-b309bd71.entry.js +2 -0
  595. package/www/build/p-b309bd71.entry.js.map +1 -0
  596. package/www/build/p-b38be247.entry.js +2 -0
  597. package/www/build/p-b4161535.js +2 -0
  598. package/www/build/{p-ac03a6cc.entry.js → p-bbd492d3.entry.js} +2 -2
  599. package/www/build/p-c13ef624.js +2 -0
  600. package/www/build/{p-0eab0213.entry.js → p-caccf490.entry.js} +2 -2
  601. package/www/build/p-cb8aec27.entry.js +2 -0
  602. package/www/build/p-cc8186a9.entry.js +2 -0
  603. package/www/build/{p-d972d6aa.entry.js.map → p-cc8186a9.entry.js.map} +1 -1
  604. package/www/build/p-d65aba93.entry.js +2 -0
  605. package/www/build/{p-386e385c.entry.js.map → p-d65aba93.entry.js.map} +1 -1
  606. package/www/build/p-db0a5f51.entry.js +2 -0
  607. package/www/build/p-db0a5f51.entry.js.map +1 -0
  608. package/www/build/p-deb86b5c.entry.js +2 -0
  609. package/www/build/p-ea36d666.entry.js +2 -0
  610. package/www/build/p-ea36d666.entry.js.map +1 -0
  611. package/www/build/{p-9078dfd7.entry.js → p-f06bd257.entry.js} +2 -2
  612. package/www/build/p-f075ec62.entry.js +2 -0
  613. package/www/build/p-f075ec62.entry.js.map +1 -0
  614. package/www/build/{p-27a59513.entry.js → p-f8915e2e.entry.js} +2 -2
  615. package/www/build/{p-068b15fc.entry.js → p-fb06a5d8.entry.js} +2 -2
  616. package/www/build/p-feb84d36.js +2 -0
  617. package/www/build/web-components-library.css +171 -144
  618. package/www/build/web-components-library.esm.js +1 -1
  619. package/www/build/web-components-library.esm.js.map +1 -1
  620. package/www/index.html +1 -1
  621. package/dist/cjs/index-0b5e5c05.js.map +0 -1
  622. package/dist/cjs/index-15cb0816.js.map +0 -1
  623. package/dist/cjs/index-47d0257d.js.map +0 -1
  624. package/dist/esm/index-13d1f531.js.map +0 -1
  625. package/dist/esm/index-a71eb5f5.js.map +0 -1
  626. package/dist/esm/index-f372e39c.js.map +0 -1
  627. package/dist/web-components-library/p-0d966ad0.js +0 -2
  628. package/dist/web-components-library/p-0d966ad0.js.map +0 -1
  629. package/dist/web-components-library/p-1a297fb0.entry.js +0 -2
  630. package/dist/web-components-library/p-1db926ff.entry.js +0 -2
  631. package/dist/web-components-library/p-1db926ff.entry.js.map +0 -1
  632. package/dist/web-components-library/p-2f3732d9.entry.js +0 -2
  633. package/dist/web-components-library/p-372d3d61.entry.js +0 -2
  634. package/dist/web-components-library/p-372d3d61.entry.js.map +0 -1
  635. package/dist/web-components-library/p-386e385c.entry.js +0 -2
  636. package/dist/web-components-library/p-3be73d77.entry.js +0 -2
  637. package/dist/web-components-library/p-3be73d77.entry.js.map +0 -1
  638. package/dist/web-components-library/p-3f8725c1.entry.js +0 -2
  639. package/dist/web-components-library/p-40280990.entry.js +0 -2
  640. package/dist/web-components-library/p-563e86c0.entry.js +0 -2
  641. package/dist/web-components-library/p-563e86c0.entry.js.map +0 -1
  642. package/dist/web-components-library/p-5b677d6c.entry.js +0 -2
  643. package/dist/web-components-library/p-5b677d6c.entry.js.map +0 -1
  644. package/dist/web-components-library/p-5ccbdfbe.entry.js +0 -2
  645. package/dist/web-components-library/p-63806f4f.entry.js +0 -2
  646. package/dist/web-components-library/p-63806f4f.entry.js.map +0 -1
  647. package/dist/web-components-library/p-65f993a4.entry.js +0 -2
  648. package/dist/web-components-library/p-6f69c2b6.js +0 -2
  649. package/dist/web-components-library/p-7049aef2.entry.js +0 -2
  650. package/dist/web-components-library/p-7049aef2.entry.js.map +0 -1
  651. package/dist/web-components-library/p-72af7932.entry.js +0 -2
  652. package/dist/web-components-library/p-72bfc9d0.js +0 -2
  653. package/dist/web-components-library/p-72bfc9d0.js.map +0 -1
  654. package/dist/web-components-library/p-72f77ee8.entry.js +0 -2
  655. package/dist/web-components-library/p-767b66ca.entry.js +0 -2
  656. package/dist/web-components-library/p-767b66ca.entry.js.map +0 -1
  657. package/dist/web-components-library/p-814f09df.entry.js +0 -2
  658. package/dist/web-components-library/p-814f09df.entry.js.map +0 -1
  659. package/dist/web-components-library/p-8b94f31a.entry.js +0 -2
  660. package/dist/web-components-library/p-8b94f31a.entry.js.map +0 -1
  661. package/dist/web-components-library/p-8e203650.entry.js +0 -2
  662. package/dist/web-components-library/p-8e203650.entry.js.map +0 -1
  663. package/dist/web-components-library/p-92a5e308.entry.js +0 -2
  664. package/dist/web-components-library/p-92a5e308.entry.js.map +0 -1
  665. package/dist/web-components-library/p-93069a90.entry.js +0 -2
  666. package/dist/web-components-library/p-a7bcb93d.entry.js +0 -2
  667. package/dist/web-components-library/p-a7bcb93d.entry.js.map +0 -1
  668. package/dist/web-components-library/p-ac52308e.entry.js +0 -2
  669. package/dist/web-components-library/p-ac52308e.entry.js.map +0 -1
  670. package/dist/web-components-library/p-add2b5e8.entry.js +0 -2
  671. package/dist/web-components-library/p-af9df838.entry.js +0 -2
  672. package/dist/web-components-library/p-af9df838.entry.js.map +0 -1
  673. package/dist/web-components-library/p-b5b0ffb6.entry.js +0 -2
  674. package/dist/web-components-library/p-b5b0ffb6.entry.js.map +0 -1
  675. package/dist/web-components-library/p-cc6406ab.entry.js +0 -2
  676. package/dist/web-components-library/p-d34a177a.entry.js +0 -2
  677. package/dist/web-components-library/p-d972d6aa.entry.js +0 -2
  678. package/dist/web-components-library/p-e1ed2ecb.js +0 -2
  679. package/dist/web-components-library/p-e1ed2ecb.js.map +0 -1
  680. package/dist/web-components-library/p-e4e0d271.entry.js +0 -2
  681. package/dist/web-components-library/p-e4e0d271.entry.js.map +0 -1
  682. package/dist/web-components-library/p-f400cf1b.js +0 -2
  683. package/www/build/p-0d966ad0.js +0 -2
  684. package/www/build/p-0d966ad0.js.map +0 -1
  685. package/www/build/p-1834b57c.js +0 -2
  686. package/www/build/p-1a297fb0.entry.js +0 -2
  687. package/www/build/p-1db926ff.entry.js +0 -2
  688. package/www/build/p-1db926ff.entry.js.map +0 -1
  689. package/www/build/p-2f3732d9.entry.js +0 -2
  690. package/www/build/p-372d3d61.entry.js +0 -2
  691. package/www/build/p-372d3d61.entry.js.map +0 -1
  692. package/www/build/p-386e385c.entry.js +0 -2
  693. package/www/build/p-3be73d77.entry.js +0 -2
  694. package/www/build/p-3be73d77.entry.js.map +0 -1
  695. package/www/build/p-3f8725c1.entry.js +0 -2
  696. package/www/build/p-40280990.entry.js +0 -2
  697. package/www/build/p-563e86c0.entry.js +0 -2
  698. package/www/build/p-563e86c0.entry.js.map +0 -1
  699. package/www/build/p-5b677d6c.entry.js +0 -2
  700. package/www/build/p-5b677d6c.entry.js.map +0 -1
  701. package/www/build/p-5ccbdfbe.entry.js +0 -2
  702. package/www/build/p-63806f4f.entry.js +0 -2
  703. package/www/build/p-63806f4f.entry.js.map +0 -1
  704. package/www/build/p-65f993a4.entry.js +0 -2
  705. package/www/build/p-6f69c2b6.js +0 -2
  706. package/www/build/p-7049aef2.entry.js +0 -2
  707. package/www/build/p-7049aef2.entry.js.map +0 -1
  708. package/www/build/p-72af7932.entry.js +0 -2
  709. package/www/build/p-72bfc9d0.js +0 -2
  710. package/www/build/p-72f77ee8.entry.js +0 -2
  711. package/www/build/p-767b66ca.entry.js +0 -2
  712. package/www/build/p-767b66ca.entry.js.map +0 -1
  713. package/www/build/p-814f09df.entry.js +0 -2
  714. package/www/build/p-814f09df.entry.js.map +0 -1
  715. package/www/build/p-8b94f31a.entry.js +0 -2
  716. package/www/build/p-8b94f31a.entry.js.map +0 -1
  717. package/www/build/p-8e203650.entry.js +0 -2
  718. package/www/build/p-8e203650.entry.js.map +0 -1
  719. package/www/build/p-92a5e308.entry.js +0 -2
  720. package/www/build/p-92a5e308.entry.js.map +0 -1
  721. package/www/build/p-93069a90.entry.js +0 -2
  722. package/www/build/p-a7bcb93d.entry.js +0 -2
  723. package/www/build/p-a7bcb93d.entry.js.map +0 -1
  724. package/www/build/p-ac52308e.entry.js +0 -2
  725. package/www/build/p-ac52308e.entry.js.map +0 -1
  726. package/www/build/p-add2b5e8.entry.js +0 -2
  727. package/www/build/p-af9df838.entry.js +0 -2
  728. package/www/build/p-af9df838.entry.js.map +0 -1
  729. package/www/build/p-b5b0ffb6.entry.js +0 -2
  730. package/www/build/p-b5b0ffb6.entry.js.map +0 -1
  731. package/www/build/p-cc6406ab.entry.js +0 -2
  732. package/www/build/p-d34a177a.entry.js +0 -2
  733. package/www/build/p-d972d6aa.entry.js +0 -2
  734. package/www/build/p-e1ed2ecb.js +0 -2
  735. package/www/build/p-e1ed2ecb.js.map +0 -1
  736. package/www/build/p-e4e0d271.entry.js +0 -2
  737. package/www/build/p-e4e0d271.entry.js.map +0 -1
  738. package/www/build/p-f400cf1b.js +0 -2
  739. /package/dist/web-components-library/{p-93069a90.entry.js.map → p-035807e3.entry.js.map} +0 -0
  740. /package/dist/web-components-library/{p-f413c03c.entry.js.map → p-080b13fe.entry.js.map} +0 -0
  741. /package/dist/web-components-library/{p-65f993a4.entry.js.map → p-08d8f935.entry.js.map} +0 -0
  742. /package/dist/web-components-library/{p-95795174.entry.js.map → p-0df6b405.entry.js.map} +0 -0
  743. /package/dist/web-components-library/{p-914e20e9.entry.js.map → p-11629dd3.entry.js.map} +0 -0
  744. /package/dist/web-components-library/{p-7c6dad4b.js.map → p-14e61df6.js.map} +0 -0
  745. /package/dist/web-components-library/{p-2e48ff6b.entry.js.map → p-18d63f0c.entry.js.map} +0 -0
  746. /package/dist/web-components-library/{p-1a297fb0.entry.js.map → p-2798c0b2.entry.js.map} +0 -0
  747. /package/dist/web-components-library/{p-83cd8d7c.entry.js.map → p-2a0d8ebe.entry.js.map} +0 -0
  748. /package/dist/web-components-library/{p-2f3732d9.entry.js.map → p-2aeb2a94.entry.js.map} +0 -0
  749. /package/dist/web-components-library/{p-34d82be5.entry.js.map → p-2c450113.entry.js.map} +0 -0
  750. /package/dist/web-components-library/{p-c57bb632.entry.js.map → p-2dcf53b3.entry.js.map} +0 -0
  751. /package/dist/web-components-library/{p-40280990.entry.js.map → p-30170218.entry.js.map} +0 -0
  752. /package/dist/web-components-library/{p-73d089fe.entry.js.map → p-384baa02.entry.js.map} +0 -0
  753. /package/dist/web-components-library/{p-46ce378d.entry.js.map → p-395b261e.entry.js.map} +0 -0
  754. /package/dist/web-components-library/{p-4a058a26.entry.js.map → p-42559870.entry.js.map} +0 -0
  755. /package/dist/web-components-library/{p-92da97fb.entry.js.map → p-4374d3f3.entry.js.map} +0 -0
  756. /package/dist/web-components-library/{p-589f4f48.entry.js.map → p-4fedcbc2.entry.js.map} +0 -0
  757. /package/dist/web-components-library/{p-8f47b574.entry.js.map → p-52be7378.entry.js.map} +0 -0
  758. /package/dist/web-components-library/{p-c9913f1e.entry.js.map → p-5f04d9eb.entry.js.map} +0 -0
  759. /package/dist/web-components-library/{p-ddae9016.entry.js.map → p-6230c432.entry.js.map} +0 -0
  760. /package/dist/web-components-library/{p-72af7932.entry.js.map → p-6e1ba2f0.entry.js.map} +0 -0
  761. /package/dist/web-components-library/{p-3ce0d28c.entry.js.map → p-7095262b.entry.js.map} +0 -0
  762. /package/dist/web-components-library/{p-af4b759a.entry.js.map → p-72dae90b.entry.js.map} +0 -0
  763. /package/dist/web-components-library/{p-0d1dbe04.entry.js.map → p-8c952964.entry.js.map} +0 -0
  764. /package/dist/web-components-library/{p-18fbbf63.entry.js.map → p-9187ce36.entry.js.map} +0 -0
  765. /package/dist/web-components-library/{p-08691c77.entry.js.map → p-9218da42.entry.js.map} +0 -0
  766. /package/dist/web-components-library/{p-2cc8c5a5.entry.js.map → p-972098a5.entry.js.map} +0 -0
  767. /package/dist/web-components-library/{p-ecaca2df.entry.js.map → p-9f0a3d88.entry.js.map} +0 -0
  768. /package/dist/web-components-library/{p-65c59027.entry.js.map → p-aa42f01d.entry.js.map} +0 -0
  769. /package/dist/web-components-library/{p-72f77ee8.entry.js.map → p-ad825740.entry.js.map} +0 -0
  770. /package/dist/web-components-library/{p-add2b5e8.entry.js.map → p-b38be247.entry.js.map} +0 -0
  771. /package/dist/web-components-library/{p-ac03a6cc.entry.js.map → p-bbd492d3.entry.js.map} +0 -0
  772. /package/dist/web-components-library/{p-6f69c2b6.js.map → p-c13ef624.js.map} +0 -0
  773. /package/dist/web-components-library/{p-0eab0213.entry.js.map → p-caccf490.entry.js.map} +0 -0
  774. /package/dist/web-components-library/{p-3f8725c1.entry.js.map → p-cb8aec27.entry.js.map} +0 -0
  775. /package/dist/web-components-library/{p-cc6406ab.entry.js.map → p-deb86b5c.entry.js.map} +0 -0
  776. /package/dist/web-components-library/{p-9078dfd7.entry.js.map → p-f06bd257.entry.js.map} +0 -0
  777. /package/dist/web-components-library/{p-27a59513.entry.js.map → p-f8915e2e.entry.js.map} +0 -0
  778. /package/dist/web-components-library/{p-068b15fc.entry.js.map → p-fb06a5d8.entry.js.map} +0 -0
  779. /package/dist/web-components-library/{p-f400cf1b.js.map → p-feb84d36.js.map} +0 -0
  780. /package/www/build/{p-93069a90.entry.js.map → p-035807e3.entry.js.map} +0 -0
  781. /package/www/build/{p-f413c03c.entry.js.map → p-080b13fe.entry.js.map} +0 -0
  782. /package/www/build/{p-65f993a4.entry.js.map → p-08d8f935.entry.js.map} +0 -0
  783. /package/www/build/{p-95795174.entry.js.map → p-0df6b405.entry.js.map} +0 -0
  784. /package/www/build/{p-914e20e9.entry.js.map → p-11629dd3.entry.js.map} +0 -0
  785. /package/www/build/{p-7c6dad4b.js.map → p-14e61df6.js.map} +0 -0
  786. /package/www/build/{p-2e48ff6b.entry.js.map → p-18d63f0c.entry.js.map} +0 -0
  787. /package/www/build/{p-1a297fb0.entry.js.map → p-2798c0b2.entry.js.map} +0 -0
  788. /package/www/build/{p-83cd8d7c.entry.js.map → p-2a0d8ebe.entry.js.map} +0 -0
  789. /package/www/build/{p-2f3732d9.entry.js.map → p-2aeb2a94.entry.js.map} +0 -0
  790. /package/www/build/{p-34d82be5.entry.js.map → p-2c450113.entry.js.map} +0 -0
  791. /package/www/build/{p-c57bb632.entry.js.map → p-2dcf53b3.entry.js.map} +0 -0
  792. /package/www/build/{p-40280990.entry.js.map → p-30170218.entry.js.map} +0 -0
  793. /package/www/build/{p-73d089fe.entry.js.map → p-384baa02.entry.js.map} +0 -0
  794. /package/www/build/{p-46ce378d.entry.js.map → p-395b261e.entry.js.map} +0 -0
  795. /package/www/build/{p-4a058a26.entry.js.map → p-42559870.entry.js.map} +0 -0
  796. /package/www/build/{p-92da97fb.entry.js.map → p-4374d3f3.entry.js.map} +0 -0
  797. /package/www/build/{p-589f4f48.entry.js.map → p-4fedcbc2.entry.js.map} +0 -0
  798. /package/www/build/{p-8f47b574.entry.js.map → p-52be7378.entry.js.map} +0 -0
  799. /package/www/build/{p-c9913f1e.entry.js.map → p-5f04d9eb.entry.js.map} +0 -0
  800. /package/www/build/{p-ddae9016.entry.js.map → p-6230c432.entry.js.map} +0 -0
  801. /package/www/build/{p-72af7932.entry.js.map → p-6e1ba2f0.entry.js.map} +0 -0
  802. /package/www/build/{p-3ce0d28c.entry.js.map → p-7095262b.entry.js.map} +0 -0
  803. /package/www/build/{p-af4b759a.entry.js.map → p-72dae90b.entry.js.map} +0 -0
  804. /package/www/build/{p-0d1dbe04.entry.js.map → p-8c952964.entry.js.map} +0 -0
  805. /package/www/build/{p-18fbbf63.entry.js.map → p-9187ce36.entry.js.map} +0 -0
  806. /package/www/build/{p-08691c77.entry.js.map → p-9218da42.entry.js.map} +0 -0
  807. /package/www/build/{p-2cc8c5a5.entry.js.map → p-972098a5.entry.js.map} +0 -0
  808. /package/www/build/{p-ecaca2df.entry.js.map → p-9f0a3d88.entry.js.map} +0 -0
  809. /package/www/build/{p-65c59027.entry.js.map → p-aa42f01d.entry.js.map} +0 -0
  810. /package/www/build/{p-72f77ee8.entry.js.map → p-ad825740.entry.js.map} +0 -0
  811. /package/www/build/{p-add2b5e8.entry.js.map → p-b38be247.entry.js.map} +0 -0
  812. /package/www/build/{p-ac03a6cc.entry.js.map → p-bbd492d3.entry.js.map} +0 -0
  813. /package/www/build/{p-6f69c2b6.js.map → p-c13ef624.js.map} +0 -0
  814. /package/www/build/{p-0eab0213.entry.js.map → p-caccf490.entry.js.map} +0 -0
  815. /package/www/build/{p-3f8725c1.entry.js.map → p-cb8aec27.entry.js.map} +0 -0
  816. /package/www/build/{p-cc6406ab.entry.js.map → p-deb86b5c.entry.js.map} +0 -0
  817. /package/www/build/{p-9078dfd7.entry.js.map → p-f06bd257.entry.js.map} +0 -0
  818. /package/www/build/{p-27a59513.entry.js.map → p-f8915e2e.entry.js.map} +0 -0
  819. /package/www/build/{p-068b15fc.entry.js.map → p-fb06a5d8.entry.js.map} +0 -0
  820. /package/www/build/{p-f400cf1b.js.map → p-feb84d36.js.map} +0 -0
@@ -1,27 +1,20 @@
1
1
  import { r as registerInstance, c as createEvent, h, a as Host, g as getElement } from './index-c8ceadeb.js';
2
- import { v as ZFileUploadType, p as Device, D as DividerSize } from './index-ee40e66b.js';
3
- import { g as getDevice } from './utils-ed82ce58.js';
4
- import './breakpoints-d148bfde.js';
2
+ import { v as ZFileUploadType } from './index-ee40e66b.js';
5
3
 
6
- const stylesCss = ":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-link-primary);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)}}";
4
+ const stylesCss = ".sc-z-file-upload-h{display:flex;flex-direction:column;align-items:flex-start;color:var(--color-default-text);font-family:var(--font-family-sans);font-weight:var(--font-rg)}.sc-z-file-upload-h .modal-wrapper.sc-z-file-upload{display:flex;flex-direction:column;justify-content:center;padding:calc(var(--space-unit) * 2);row-gap:calc(var(--space-unit) * 2)}.sc-z-file-upload-h .modal-wrapper.sc-z-file-upload>.files-wrapper.sc-z-file-upload{display:flex;flex-direction:column;margin:calc(var(--space-unit) * 4);gap:var(--space-unit)}.sc-z-file-upload-h .text-container.sc-z-file-upload{display:flex;flex-direction:column;margin:auto;text-align:center}.sc-z-file-upload-h .text-container.sc-z-file-upload .upload-link.sc-z-file-upload{color:var(--color-text-link-blue);cursor:pointer;text-decoration:underline}.sc-z-file-upload-h .text-container.sc-z-file-upload .upload-link.sc-z-file-upload:focus-visible{box-shadow:var(--shadow-focus-primary);outline:none !important}.sc-z-file-upload-h .text-container.sc-z-file-upload .upload-link-text.sc-z-file-upload{margin-bottom:var(--space-unit)}.sc-z-file-upload-h input[type=\"file\"].sc-z-file-upload{display:none}.sc-z-file-upload-h #title.sc-z-file-upload+#description.sc-z-file-upload{margin-top:var(--space-unit)}.sc-z-file-upload-h>*.sc-z-file-upload+z-button.sc-z-file-upload,.sc-z-file-upload-h>.files-container.sc-z-file-upload+*.sc-z-file-upload,.sc-z-file-upload-h>.files-container.sc-z-file-upload:not(:first-child){margin-top:calc(var(--space-unit) * 3)}.sc-z-file-upload-h>.files-container.hidden.sc-z-file-upload{display:none}.sc-z-file-upload-h>.files-container.sc-z-file-upload>.uploaded-files-label.sc-z-file-upload{margin-bottom:calc(var(--space-unit) * 2)}.sc-z-file-upload-h>.files-container.sc-z-file-upload>.files-wrapper.sc-z-file-upload{display:flex;flex-wrap:wrap;column-gap:calc(var(--space-unit) * 2);row-gap:calc(var(--space-unit) * 2)}@media (min-width: 768px){.sc-z-file-upload-h>.container.sc-z-file-upload>z-button.sc-z-file-upload{align-self:flex-start}.sc-z-file-upload-h .modal-wrapper.sc-z-file-upload{padding:calc(var(--space-unit) * 3)}}@media (min-width: 1152px){.sc-z-file-upload-h .modal-wrapper.sc-z-file-upload{padding:calc(var(--space-unit) * 4)}}";
7
5
  const ZFileUploadStyle0 = stylesCss;
8
6
 
9
7
  const ZFileUpload = class {
10
8
  constructor(hostRef) {
11
9
  registerInstance(this, hostRef);
12
10
  this.fileInput = createEvent(this, "fileInput", 7);
13
- this.inputAttributes = {
14
- type: "file",
15
- id: "file-elem",
16
- multiple: true,
17
- };
11
+ this.fileError = createEvent(this, "fileError", 7);
18
12
  this.type = ZFileUploadType.DEFAULT;
19
13
  this.buttonVariant = undefined;
20
14
  this.acceptedFormat = undefined;
21
15
  this.fileMaxSize = undefined;
22
16
  this.mainTitle = undefined;
23
17
  this.description = undefined;
24
- this.files = [];
25
18
  this.uploadBtnLabel = "allega";
26
19
  this.dragAndDropLabel = "Rilascia i file in questa area per allegarli.";
27
20
  this.allowedFilesMessage = undefined;
@@ -31,100 +24,88 @@ const ZFileUpload = class {
31
24
  this.errorModalMessage = undefined;
32
25
  this.uploadedFilesLabel = "File appena caricati";
33
26
  this.hasFileSection = true;
34
- this.invalidFiles = undefined;
27
+ this.inputName = "z-file-upload";
28
+ this.showErrors = true;
29
+ this._type = this.type;
30
+ this.files = [];
31
+ this.invalidFiles = new Map();
35
32
  }
36
- /** Listen removeFile event sent from z-file component */
37
- removeFileListener(e) {
38
- this.removeFileHandler(e.detail);
33
+ /** Listen `removeFile` event sent from z-file component */
34
+ onFileRemoved(e) {
35
+ this.removeFile(e.detail);
39
36
  }
40
37
  /** Listen fileDropped event sent from z-dragdrop-area component */
41
38
  fileDroppedListener(e) {
42
39
  this.input.files = e.detail;
43
- this.fileInputHandler();
44
- }
45
- componentDidUpdate() {
46
- this.handleAccessibility();
47
- this.invalidFiles.size && this.errorModal.focus();
48
- }
49
- componentWillLoad() {
50
- this.invalidFiles = new Map();
51
- }
52
- fileInputHandler() {
53
- if (this.input.files.length) {
54
- this.invalidFiles = this.checkFiles(Array.from(this.input.files));
55
- }
40
+ this.checkFilesValidity(this.input.files);
56
41
  }
57
- /** get array of uploaded files */
42
+ /** Get the list of uploaded files */
58
43
  async getFiles() {
59
44
  return this.files;
60
45
  }
61
- /** remove file from the array */
46
+ /** Remove a previously uploaded file */
62
47
  async removeFile(fileName) {
63
- this.removeFileHandler(fileName);
64
- }
65
- removeFileHandler(fileName) {
66
48
  const files = this.files;
67
- const file = files.find((file) => file.name === fileName);
68
- if (file) {
69
- const index = files.indexOf(file);
70
- if (index >= 0) {
71
- files.splice(index, 1);
72
- this.files = [...files];
73
- }
74
- }
75
- }
76
- getType() {
77
- if (getDevice() !== Device.DESKTOP && getDevice() !== Device.DESKTOP_WIDE) {
78
- return ZFileUploadType.DEFAULT;
49
+ const index = files.findIndex((file) => file.name === fileName);
50
+ if (index >= 0) {
51
+ files.splice(index, 1);
52
+ this.files = [...files];
79
53
  }
80
- return this.type;
81
54
  }
82
- handleAccessibility() {
83
- const lastFile = this.el.querySelector("z-file:last-child z-chip button");
84
- if (this.files.length > 0 && lastFile) {
85
- lastFile.focus();
86
- }
87
- else {
88
- this.getType() === ZFileUploadType.DEFAULT
89
- ? this.button.querySelector("button").focus()
90
- : this.uploadLink.focus();
55
+ checkFilesValidity(files) {
56
+ if (!files.length) {
57
+ return;
91
58
  }
92
- }
93
- checkFiles(files) {
94
- const errors = new Map();
95
- const sizeErrorString = `supera il limite di ${this.fileMaxSize}MB`;
96
- const formatErrorString = " ha un formato non supportato";
97
- files.forEach((file) => {
59
+ Array.from(files).forEach((file) => {
98
60
  const fileSize = file.size / 1024 / 1024;
99
61
  const fileFormatOk = this.acceptedFormat
100
62
  .split(",")
101
63
  .some((ext) => file.name.toLowerCase().endsWith(ext.trim()));
102
64
  const fileSizeOk = fileSize <= this.fileMaxSize;
103
- if (fileSizeOk && fileFormatOk) {
104
- if (!this.files.find((f) => f.name === file.name)) {
105
- this.files.push(file);
106
- this.fileInput.emit(file);
107
- this.input.value = "";
108
- }
65
+ if (fileSizeOk && fileFormatOk && !this.files.find((f) => f.name === file.name)) {
66
+ this.files = [...this.files, file];
67
+ this.fileInput.emit(file);
68
+ this.input.value = "";
109
69
  return;
110
70
  }
111
- errors.set(file.name, []);
112
- if (!fileSizeOk) {
113
- errors.get(file.name).push(sizeErrorString);
114
- }
115
- if (!fileFormatOk) {
116
- errors.get(file.name).push(formatErrorString);
117
- }
71
+ const sizeError = `Il file ${file.name} supera il limite di ${this.fileMaxSize}MB`;
72
+ const formatError = `Il file ${file.name} ha un formato non supportato`;
73
+ const errors = [
74
+ !fileSizeOk && { cause: "size", message: sizeError },
75
+ !fileFormatOk && { cause: "format", message: formatError },
76
+ ].filter(Boolean);
77
+ this.invalidFiles.set(file.name, errors);
78
+ this.invalidFiles = new Map(this.invalidFiles); // trigger state update
79
+ this.fileError.emit({ file: file.name, errors });
118
80
  });
119
- return errors;
120
81
  }
121
- renderTitle() {
122
- return h("span", { id: "title" }, this.mainTitle);
82
+ resetErrors() {
83
+ this.invalidFiles = new Map();
84
+ }
85
+ onFilesChange(e) {
86
+ this.checkFilesValidity(e.target.files);
87
+ }
88
+ componentWillLoad() {
89
+ // force default type on mobile and tablet viewport
90
+ const mql = window.matchMedia("(max-width: 1151px)");
91
+ this._type = mql.matches ? ZFileUploadType.DEFAULT : this.type;
92
+ mql.addEventListener("change", (e) => {
93
+ this._type = e.matches ? ZFileUploadType.DEFAULT : this.type;
94
+ });
95
+ }
96
+ componentDidUpdate() {
97
+ if (!this.showErrors || !this.invalidFiles.size) {
98
+ return;
99
+ }
100
+ this.errorModal.open();
123
101
  }
124
102
  renderDescription(cssClass) {
125
- return h("span", { class: cssClass }, this.description);
103
+ if (!this.description) {
104
+ return;
105
+ }
106
+ return (h("span", { id: "description", class: cssClass }, this.description));
126
107
  }
127
- renderAllowedFileExtensions() {
108
+ renderAllowedFilesMessage() {
128
109
  let fileFormatString = "";
129
110
  let fileWeightString = "";
130
111
  if (this.acceptedFormat) {
@@ -137,31 +118,30 @@ const ZFileUpload = class {
137
118
  if (this.fileMaxSize) {
138
119
  fileWeightString = ` per un massimo di ${this.fileMaxSize}MB di peso`;
139
120
  }
140
- const finalString = `Puoi allegare file${fileFormatString}${fileWeightString}.`;
141
- return (h("span", { class: "body-3" }, this.allowedFilesMessage
142
- ? this.allowedFilesMessage
143
- : fileFormatString || fileWeightString
144
- ? finalString
145
- : null));
121
+ const defaultMessage = fileFormatString || fileWeightString ? `Puoi allegare file${fileFormatString}${fileWeightString}.` : undefined;
122
+ if (!this.allowedFilesMessage && !defaultMessage) {
123
+ return;
124
+ }
125
+ return h("span", { class: "allowed-files-message body-3" }, this.allowedFilesMessage || defaultMessage);
146
126
  }
147
127
  renderFileSection() {
148
128
  if (!this.hasFileSection) {
149
129
  return;
150
130
  }
151
- return (h("section", { class: `files-container ${!this.files.length ? "hidden" : ""}` }, h("span", { class: "heading-4-sb" }, this.uploadedFilesLabel), h("div", { class: "files-wrapper" }, h("slot", { name: "files" })), h("z-divider", { size: DividerSize.MEDIUM })));
131
+ return (h("section", { class: { "files-container": true, "hidden": !this.files.length } }, h("div", { class: "uploaded-files-label heading-3-sb" }, this.uploadedFilesLabel), h("div", { class: "files-wrapper" }, h("slot", { name: "files" }))));
152
132
  }
153
133
  renderInput() {
154
- return (h("input", Object.assign({}, this.inputAttributes, { onChange: () => this.fileInputHandler(), accept: this.acceptedFormat, ref: (val) => (this.input = val) })));
134
+ return (h("input", { type: "file", name: this.inputName, multiple: true, onChange: (e) => this.onFilesChange(e), accept: this.acceptedFormat, ref: (val) => (this.input = val) }));
155
135
  }
156
136
  renderUploadButton() {
157
137
  return [
158
- this.renderInput(),
159
138
  h("z-button", { onClick: () => this.input.click(), onKeyPress: (e) => {
160
139
  if (e.code == "Space" || e.code == "Enter") {
161
140
  e.preventDefault();
162
141
  this.input.click();
163
142
  }
164
- }, id: "fileSelect", variant: this.buttonVariant, icon: "upload", ref: (val) => (this.button = val) }, this.uploadBtnLabel),
143
+ }, id: "fileSelect", variant: this.buttonVariant, icon: "upload" }, this.uploadBtnLabel),
144
+ this.renderInput(),
165
145
  ];
166
146
  }
167
147
  renderUploadLink() {
@@ -172,13 +152,13 @@ const ZFileUpload = class {
172
152
  e.preventDefault();
173
153
  this.input.click();
174
154
  }
175
- }, ref: (val) => (this.uploadLink = val) }, this.uploadClickableMessage), " ", this.uploadMessage),
155
+ } }, this.uploadClickableMessage), " ", this.uploadMessage),
176
156
  ];
177
157
  }
178
158
  renderDefaultMode() {
179
159
  return [
180
160
  this.renderDescription("body-3-sb"),
181
- this.renderAllowedFileExtensions(),
161
+ this.renderAllowedFilesMessage(),
182
162
  this.renderFileSection(),
183
163
  this.renderUploadButton(),
184
164
  ];
@@ -186,23 +166,19 @@ const ZFileUpload = class {
186
166
  renderDragDropMode() {
187
167
  return [
188
168
  this.renderFileSection(),
189
- h("z-dragdrop-area", { "drag-and-drop-label": this.dragAndDropLabel }, h("div", { class: "text-container" }, this.renderDescription("body-1"), this.renderUploadLink(), this.renderAllowedFileExtensions())),
169
+ h("z-dragdrop-area", { "drag-and-drop-label": this.dragAndDropLabel }, h("div", { class: "text-container" }, this.renderDescription("body-1"), this.renderUploadLink(), this.renderAllowedFilesMessage())),
190
170
  ];
191
171
  }
192
- formatErrorString(key, value) {
193
- var _a, _b;
194
- const bothErrors = value[0] && value[1] ? " e " : "";
195
- return (h("span", { class: "error-message" }, "Il file ", h("span", { class: "file-name" }, key), " ", (_a = value[1]) !== null && _a !== void 0 ? _a : "", bothErrors, (_b = value[0]) !== null && _b !== void 0 ? _b : "", "."));
196
- }
197
- handleErrorModalContent() {
198
- return (h("div", { slot: "modalContent" }, h("div", { class: "modal-wrapper" }, h("div", { class: "files" }, this.errorModalMessage ? (h("span", { class: "body-3" }, this.errorModalMessage)) : (Array.from(this.invalidFiles).map(([key, value]) => {
199
- return h("span", { class: "body-3" }, this.formatErrorString(key, value));
200
- }))))));
172
+ renderFileErrors() {
173
+ return Array.from(this.invalidFiles).map(([fileName, errors]) => {
174
+ const prefix = `Il file ${fileName}`;
175
+ return (h("span", { class: "error-message" }, "Il file ", h("span", { class: "body-3-sb" }, fileName), errors.map(({ message }) => message.replace(prefix, "")).join(" e "), "."));
176
+ });
201
177
  }
202
178
  render() {
203
- return (h(Host, { key: '516d51d19835f55e0a5696d3f3b847f2f253e915' }, h("div", { key: '41a4196b48636cf761673ce0672bd3c5246ba8f8', class: `container ${this.getType()}` }, this.mainTitle && this.renderTitle(), this.getType() == ZFileUploadType.DEFAULT ? this.renderDefaultMode() : this.renderDragDropMode()), !!this.invalidFiles.size && (h("z-modal", { key: '8c790bf5dd9b70557b4479bae9ef3a949d9bb4c3', modalid: `file-upload-${this.type}-error-modal`, tabIndex: 0, ref: (val) => (this.errorModal = val), modaltitle: this.errorModalTitle, onModalClose: () => (this.invalidFiles = new Map()), onModalBackgroundClick: () => (this.invalidFiles = new Map()) }, this.handleErrorModalContent()))));
179
+ return (h(Host, { key: 'ea57cc0462e4358d04bfc8f5709b61be50947e7a' }, this.mainTitle && (h("div", { key: '59e23f66172333b963922832782a8ac89611acb9', id: "title", class: "heading-3-sb" }, this.mainTitle)), this._type == ZFileUploadType.DEFAULT ? this.renderDefaultMode() : this.renderDragDropMode(), !!this.invalidFiles.size && this.showErrors && (h("z-modal", { key: '64cb55a1c0fb491a9dd5b414a309b284e4f2d24e', modalid: `file-upload-${this.type}-error-modal`, ref: (val) => (this.errorModal = val), modaltitle: this.errorModalTitle, onModalClose: () => this.resetErrors(), onModalBackgroundClick: () => this.resetErrors() }, h("div", { key: '255cf2140f1ca881f90df6952965abc8f364f4d0', slot: "modalContent" }, h("div", { key: '03638b6b970c72c73ac7014f0c7848a032029963', class: "modal-wrapper body-3" }, this.errorModalMessage ? this.errorModalMessage : this.renderFileErrors()))))));
204
180
  }
205
- get el() { return getElement(this); }
181
+ get host() { return getElement(this); }
206
182
  };
207
183
  ZFileUpload.style = ZFileUploadStyle0;
208
184
 
@@ -1 +1 @@
1
- {"file":"z-file-upload.entry.js","mappings":"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","names":[],"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-link-primary);\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"],"version":3}
1
+ {"file":"z-file-upload.entry.js","mappings":"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","names":[],"sources":["src/components/file-upload/z-file-upload/styles.css?tag=z-file-upload&encapsulation=scoped","src/components/file-upload/z-file-upload/index.tsx"],"sourcesContent":[":host {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n color: var(--color-default-text);\n font-family: var(--font-family-sans);\n font-weight: var(--font-rg);\n}\n\n:host .modal-wrapper {\n display: flex;\n flex-direction: column;\n justify-content: center;\n padding: calc(var(--space-unit) * 2);\n row-gap: 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 text-align: center;\n}\n\n:host .text-container .upload-link {\n color: var(--color-text-link-blue);\n cursor: pointer;\n text-decoration: underline;\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\n:host input[type=\"file\"] {\n display: none;\n}\n\n:host #title + #description {\n margin-top: var(--space-unit);\n}\n\n:host > * + z-button,\n:host > .files-container + *,\n:host > .files-container:not(:first-child) {\n margin-top: calc(var(--space-unit) * 3);\n}\n\n:host > .files-container.hidden {\n display: none;\n}\n\n:host > .files-container > .uploaded-files-label {\n margin-bottom: calc(var(--space-unit) * 2);\n}\n\n:host > .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/* Tablet breakpoint */\n@media (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 (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, ZFileUploadType} from \"../../../beans\";\n\nexport type ZFileUploadError = {cause: \"format\" | \"size\"; message: string};\n\n@Component({\n tag: \"z-file-upload\",\n styleUrl: \"styles.css\",\n shadow: false,\n scoped: 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 /** 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 /** Value to set on the file input's `name` attribute (for use with forms) */\n @Prop()\n inputName? = \"z-file-upload\";\n\n /**\n * Whether to show errors in the internal modal or leave the handling to the app.\n * Errors will still be emitted.\n */\n @Prop()\n showErrors = true;\n\n /** Internal store of the component type. It will change when viewport goes from desktop to tablet/mobile and vice versa */\n @State()\n private _type: ZFileUploadType = this.type;\n\n /** Files added by the user */\n @State()\n files: File[] = [];\n\n /** Map of files whose upload caused an error and the relative errors, with the cause and a message */\n @State()\n invalidFiles: Map<string, ZFileUploadError[]> = new Map<string, ZFileUploadError[]>();\n\n /** Emitted when user select one or more files */\n @Event()\n fileInput: EventEmitter<File>;\n\n /**\n * Emits an array of error messages related to one or more files not allowed.\n * Emitted when some file is dropped or selected.\n */\n @Event()\n fileError: EventEmitter<{file: string; errors: ZFileUploadError[]}>;\n\n @Element() host: HTMLZFileUploadElement;\n\n private input: HTMLInputElement;\n\n private errorModal: HTMLZModalElement;\n\n /** Listen `removeFile` event sent from z-file component */\n @Listen(\"removeFile\")\n onFileRemoved(e: CustomEvent): void {\n this.removeFile(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.checkFilesValidity(this.input.files);\n }\n\n /** Get the list of uploaded files */\n @Method()\n async getFiles(): Promise<File[]> {\n return this.files;\n }\n\n /** Remove a previously uploaded file */\n @Method()\n async removeFile(fileName: string): Promise<void> {\n const files = this.files;\n const index = files.findIndex((file) => file.name === fileName);\n if (index >= 0) {\n files.splice(index, 1);\n this.files = [...files];\n }\n }\n\n private checkFilesValidity(files: FileList): Map<string, string[]> {\n if (!files.length) {\n return;\n }\n\n Array.from(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 && !this.files.find((f) => f.name === file.name)) {\n this.files = [...this.files, file];\n this.fileInput.emit(file);\n this.input.value = \"\";\n\n return;\n }\n\n const sizeError = `Il file ${file.name} supera il limite di ${this.fileMaxSize}MB`;\n const formatError = `Il file ${file.name} ha un formato non supportato`;\n const errors = [\n !fileSizeOk && {cause: \"size\" as const, message: sizeError},\n !fileFormatOk && {cause: \"format\" as const, message: formatError},\n ].filter(Boolean);\n this.invalidFiles.set(file.name, errors);\n this.invalidFiles = new Map(this.invalidFiles); // trigger state update\n this.fileError.emit({file: file.name, errors});\n });\n }\n\n private resetErrors(): void {\n this.invalidFiles = new Map<string, ZFileUploadError[]>();\n }\n\n private onFilesChange(e: Event): void {\n this.checkFilesValidity((e.target as HTMLInputElement).files);\n }\n\n componentWillLoad(): void {\n // force default type on mobile and tablet viewport\n const mql = window.matchMedia(\"(max-width: 1151px)\");\n this._type = mql.matches ? ZFileUploadType.DEFAULT : this.type;\n mql.addEventListener(\"change\", (e) => {\n this._type = e.matches ? ZFileUploadType.DEFAULT : this.type;\n });\n }\n\n componentDidUpdate(): void {\n if (!this.showErrors || !this.invalidFiles.size) {\n return;\n }\n\n this.errorModal.open();\n }\n\n private renderDescription(cssClass): HTMLElement | undefined {\n if (!this.description) {\n return;\n }\n\n return (\n <span\n id=\"description\"\n class={cssClass}\n >\n {this.description}\n </span>\n );\n }\n\n private renderAllowedFilesMessage(): 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 defaultMessage =\n fileFormatString || fileWeightString ? `Puoi allegare file${fileFormatString}${fileWeightString}.` : undefined;\n\n if (!this.allowedFilesMessage && !defaultMessage) {\n return;\n }\n\n return <span class=\"allowed-files-message body-3\">{this.allowedFilesMessage || defaultMessage}</span>;\n }\n\n private renderFileSection(): HTMLElement {\n if (!this.hasFileSection) {\n return;\n }\n\n return (\n <section class={{\"files-container\": true, \"hidden\": !this.files.length}}>\n <div class=\"uploaded-files-label heading-3-sb\">{this.uploadedFilesLabel}</div>\n <div class=\"files-wrapper\">\n <slot name=\"files\" />\n </div>\n </section>\n );\n }\n\n private renderInput(): HTMLInputElement {\n return (\n <input\n type=\"file\"\n name={this.inputName}\n multiple\n onChange={(e) => this.onFilesChange(e)}\n accept={this.acceptedFormat}\n ref={(val) => (this.input = val)}\n />\n );\n }\n\n private renderUploadButton(): unknown[] {\n return [\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 >\n {this.uploadBtnLabel}\n </z-button>,\n this.renderInput(),\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 >\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.renderAllowedFilesMessage(),\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.renderAllowedFilesMessage()}\n </div>\n </z-dragdrop-area>,\n ];\n }\n\n private renderFileErrors(): HTMLElement[] {\n return Array.from(this.invalidFiles).map(([fileName, errors]) => {\n const prefix = `Il file ${fileName}`;\n\n return (\n <span class=\"error-message\">\n Il file <span class=\"body-3-sb\">{fileName}</span>\n {errors.map(({message}) => message.replace(prefix, \"\")).join(\" e \")}.\n </span>\n );\n });\n }\n\n render(): HTMLZFileUploadElement {\n return (\n <Host>\n {this.mainTitle && (\n <div\n id=\"title\"\n class=\"heading-3-sb\"\n >\n {this.mainTitle}\n </div>\n )}\n {this._type == ZFileUploadType.DEFAULT ? this.renderDefaultMode() : this.renderDragDropMode()}\n {!!this.invalidFiles.size && this.showErrors && (\n <z-modal\n modalid={`file-upload-${this.type}-error-modal`}\n ref={(val) => (this.errorModal = val)}\n modaltitle={this.errorModalTitle}\n onModalClose={() => this.resetErrors()}\n onModalBackgroundClick={() => this.resetErrors()}\n >\n <div slot=\"modalContent\">\n <div class=\"modal-wrapper body-3\">\n {this.errorModalMessage ? this.errorModalMessage : this.renderFileErrors()}\n </div>\n </div>\n </z-modal>\n )}\n </Host>\n );\n }\n}\n"],"version":3}
@@ -38,7 +38,7 @@ const ZFile = class {
38
38
  return this.ellipsis.offsetWidth < this.ellipsis.scrollWidth;
39
39
  }
40
40
  render() {
41
- return (h(Host, { key: 'b99ff5a4dd4faa2f964189e52264b8f5af79b61c' }, this.allowPopover && (h("z-popover", { key: '41b672aeaf252c2eb231371c622b3632bc8f5046', open: this.popoverVisible, position: PopoverPosition.AUTO, bindTo: this.chip }, h("span", { key: '1c9b014b23e9e40c282e9044484a77bb966251c9', class: "body-5 tooltip-content" }, this.ellipsis.innerText))), h("z-chip", { key: 'dd727841dc90cb19abf85156cdacb83632528e18', ref: (el) => (this.chip = el), id: `chip-${this.fileNumber}`, interactiveIcon: "multiply-circled", type: ZChipType.DEFAULT }, h("span", { key: 'f4d54ff1d4930793da78b03098ccacfa8ca94d37', ref: (el) => (this.ellipsis = el), tabIndex: -1 }, this.fileName))));
41
+ return (h(Host, { key: '9a670c454baa87afc7d1c9e47a744eecaa074c68' }, this.allowPopover && (h("z-popover", { key: '8d5d38d65a09aee75d56b888b9828a3f8a9e1626', open: this.popoverVisible, position: PopoverPosition.AUTO, bindTo: this.chip }, h("span", { key: 'c24e0d8afecbe3fdfb6370c76ddc0db54f597497', class: "body-5 tooltip-content" }, this.ellipsis.innerText))), h("z-chip", { key: 'a5c4ff0f9366bb59d581c9d48606d8989bbed678', ref: (el) => (this.chip = el), id: `chip-${this.fileNumber}`, interactiveIcon: "multiply-circled", type: ZChipType.DEFAULT }, h("span", { key: 'eed1a949170a44f7ff618ec3e363923aea656742', ref: (el) => (this.ellipsis = el), tabIndex: -1 }, this.fileName))));
42
42
  }
43
43
  get el() { return getElement(this); }
44
44
  };
@@ -1,6 +1,6 @@
1
1
  import { r as registerInstance, h, a as Host } from './index-c8ceadeb.js';
2
2
 
3
- const stylesCss = ":host{display:inline-block;overflow:hidden;width:100%;height:100%;background:var(--color-surface02);border-radius:var(--border-radius);transform:translate3d(0, 0, 0)}:host::after{display:block;width:100%;height:100%;animation:progress 1.6s ease-in-out infinite;background-image:linear-gradient(\n 90deg,\n var(--color-surface02) 0%,\n var(--color-surface03) 95%,\n var(--color-surface02) 100%\n );content:\"\";filter:blur(6px)}@keyframes progress{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}";
3
+ const stylesCss = ":host{display:inline-block;overflow:hidden;width:100%;height:100%;background:var(--color-background);border-radius:var(--border-radius);transform:translate3d(0, 0, 0)}:host::after{display:block;width:100%;height:100%;animation:progress 1.6s ease-in-out infinite;background-image:linear-gradient(\n 90deg,\n var(--color-background) 0%,\n var(--color-surface03) 95%,\n var(--color-background) 100%\n );content:\"\";filter:blur(6px)}@keyframes progress{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}";
4
4
  const ZGhostLoadingStyle0 = stylesCss;
5
5
 
6
6
  const ZGhostLoading = class {
@@ -8,7 +8,7 @@ const ZGhostLoading = class {
8
8
  registerInstance(this, hostRef);
9
9
  }
10
10
  render() {
11
- return h(Host, { key: '597d6715119bb24d4a8427f9cb3ebd3b5a20f5fc' });
11
+ return h(Host, { key: '8824327c1d3ba1c9b13dfdfd605c58dd7cd71b55' });
12
12
  }
13
13
  };
14
14
  ZGhostLoading.style = ZGhostLoadingStyle0;
@@ -1 +1 @@
1
- {"file":"z-ghost-loading.entry.js","mappings":";;AAAA,MAAM,SAAS,GAAG,8gBAA8gB,CAAC;AACjiB,4BAAe,SAAS;;MCKX,aAAa;;;;IACxB,MAAM;QACJ,OAAO,EAAC,IAAI,sDAAG,CAAC;KACjB;;;;;;","names":[],"sources":["src/components/z-ghost-loading/styles.css?tag=z-ghost-loading&encapsulation=shadow","src/components/z-ghost-loading/index.tsx"],"sourcesContent":[":host {\n display: inline-block;\n overflow: hidden;\n width: 100%;\n height: 100%;\n background: var(--color-surface02);\n border-radius: var(--border-radius);\n transform: translate3d(0, 0, 0);\n}\n\n:host::after {\n display: block;\n width: 100%;\n height: 100%;\n animation: progress 1.6s ease-in-out infinite;\n background-image: linear-gradient(\n 90deg,\n var(--color-surface02) 0%,\n var(--color-surface03) 95%,\n var(--color-surface02) 100%\n );\n content: \"\";\n filter: blur(6px);\n}\n\n@keyframes progress {\n 0% {\n transform: translateX(-100%);\n }\n\n 100% {\n transform: translateX(100%);\n }\n}\n","import {Component, h, Host} from \"@stencil/core\";\n@Component({\n tag: \"z-ghost-loading\",\n styleUrl: \"styles.css\",\n shadow: true,\n})\nexport class ZGhostLoading {\n render(): HTMLZGhostLoadingElement {\n return <Host />;\n }\n}\n"],"version":3}
1
+ {"file":"z-ghost-loading.entry.js","mappings":";;AAAA,MAAM,SAAS,GAAG,ihBAAihB,CAAC;AACpiB,4BAAe,SAAS;;MCKX,aAAa;;;;IACxB,MAAM;QACJ,OAAO,EAAC,IAAI,sDAAG,CAAC;KACjB;;;;;;","names":[],"sources":["src/components/z-ghost-loading/styles.css?tag=z-ghost-loading&encapsulation=shadow","src/components/z-ghost-loading/index.tsx"],"sourcesContent":[":host {\n display: inline-block;\n overflow: hidden;\n width: 100%;\n height: 100%;\n background: var(--color-background);\n border-radius: var(--border-radius);\n transform: translate3d(0, 0, 0);\n}\n\n:host::after {\n display: block;\n width: 100%;\n height: 100%;\n animation: progress 1.6s ease-in-out infinite;\n background-image: linear-gradient(\n 90deg,\n var(--color-background) 0%,\n var(--color-surface03) 95%,\n var(--color-background) 100%\n );\n content: \"\";\n filter: blur(6px);\n}\n\n@keyframes progress {\n 0% {\n transform: translateX(-100%);\n }\n\n 100% {\n transform: translateX(100%);\n }\n}\n","import {Component, h, Host} from \"@stencil/core\";\n@Component({\n tag: \"z-ghost-loading\",\n styleUrl: \"styles.css\",\n shadow: true,\n})\nexport class ZGhostLoading {\n render(): HTMLZGhostLoadingElement {\n return <Host />;\n }\n}\n"],"version":3}
@@ -14,7 +14,7 @@ const ZInfoBox = class {
14
14
  this.infoBoxClose.emit({ boxid: this.boxid });
15
15
  }
16
16
  render() {
17
- return (h("div", { key: '770d8904081080758219f87d24f5a56846f1fad1', id: this.boxid }, h("slot", { key: 'a6fa079647709fc3c8326c2d73cdd1da884c4b58', name: "content" }), this.isclosable && (h("z-icon", { key: '63de143e010971175608c651d2d2f0c87ee98797', name: "multiply", "data-action": "infoBoxClose", onClick: () => this.emitInfoBoxClose() }))));
17
+ return (h("div", { key: 'bff4d7fdd01fae2697f23b03515d9cb93a53127d', id: this.boxid }, h("slot", { key: 'a2d80c39c0cc7c115974a4d5da52c2189ab830c9', name: "content" }), this.isclosable && (h("z-icon", { key: '555579d0bf7c1e654055fe4c552c4e89af0fb513', name: "multiply", "data-action": "infoBoxClose", onClick: () => this.emitInfoBoxClose() }))));
18
18
  }
19
19
  };
20
20
  ZInfoBox.style = ZInfoBoxStyle0;
@@ -46,7 +46,7 @@ const ZInfoReveal = class {
46
46
  }
47
47
  }
48
48
  render() {
49
- return (h(Host, { key: '15ba39838864cad8f7a9bdd8b40842eff368db0d', open: this.open }, h("button", { key: 'ce19913b11a8ffc201cd30073bd7f3b03d5a84bf', class: "z-info-reveal-trigger", type: "button", onClick: this.togglePanel.bind(this), "aria-label": !this.label ? this.ariaLabel : undefined, "aria-expanded": this.open ? "true" : "false", "aria-controls": "z-info-reveal-panel" }, this.icon && h("z-icon", { key: '2e498a95e0c6987d87a1c42d26f0a73c3a8e8ce3', name: this.icon }), this.label && h("span", { key: '5eb373b2ebb1634570b2dbde373a8e2698210e7b', class: "z-info-reveal-label" }, this.label)), h("div", { key: '7794534e52a0d1c5bfd4e385302d7e0a57410dbe', class: "z-info-reveal-panel", id: "z-info-reveal-panel", ref: (el) => (this.panel = el), hidden: !this.open }, h("slot", { key: '8a2036a497e26772a782dc3f8b61f44c1639025a' }), h("button", { key: '1462b743709dc417c5762f76d4bed65bcae2109e', class: "z-info-reveal-close", type: "button", onClick: this.closePanel.bind(this), "aria-label": "Chiudi pannello informazioni" }, h("z-icon", { key: '117385b812e0fe709a1073467d39a2daf213989c', name: "multiply" })))));
49
+ return (h(Host, { key: '7098ea723139c78a7ecca1bbc924d5e17925bdc5', open: this.open }, h("button", { key: '8f798611b1069939b18ab3bdc9c197bec5fc6d20', class: "z-info-reveal-trigger", type: "button", onClick: this.togglePanel.bind(this), "aria-label": !this.label ? this.ariaLabel : undefined, "aria-expanded": this.open ? "true" : "false", "aria-controls": "z-info-reveal-panel" }, this.icon && h("z-icon", { key: '2db6409fe7db09738f83135e58300c235ce988db', name: this.icon }), this.label && h("span", { key: '71ca110cd12256dcfe5e7b37026537fb5ea324b8', class: "z-info-reveal-label" }, this.label)), h("div", { key: '1385b98d28160c1e5578d47f63ba37f26e63eeb8', class: "z-info-reveal-panel", id: "z-info-reveal-panel", ref: (el) => (this.panel = el), hidden: !this.open }, h("slot", { key: 'dbbcff160f1dceaa336362f5a43436d57f357e01' }), h("button", { key: 'e6f4778d55de1de95fa3d509ed01c3b555ff225b', class: "z-info-reveal-close", type: "button", onClick: this.closePanel.bind(this), "aria-label": "Chiudi pannello informazioni" }, h("z-icon", { key: '51b13036bb93efce68db3f0cbf5d9f718ddcb266', name: "multiply" })))));
50
50
  }
51
51
  get host() { return getElement(this); }
52
52
  static get watchers() { return {
@@ -21,7 +21,7 @@ const ZLogo = class {
21
21
  if (this.height) {
22
22
  style["height"] = style["max-height"] = `${this.height}px`;
23
23
  }
24
- return (h(Host, { key: '7e752127614823afe2441a9d3d316d9974f593d1', style: style, class: { mobile: !!this.mobileLogo } }, this.link ? (h("a", { href: this.link, target: this.targetBlank ? "_blank" : "_self" }, h("img", { alt: this.imageAlt }))) : (h("img", { alt: this.imageAlt }))));
24
+ return (h(Host, { key: '43def5f659303a7fa03bdf8a48bf03dacc379dde', style: style, class: { mobile: !!this.mobileLogo } }, this.link ? (h("a", { href: this.link, target: this.targetBlank ? "_blank" : "_self" }, h("img", { alt: this.imageAlt }))) : (h("img", { alt: this.imageAlt }))));
25
25
  }
26
26
  };
27
27
  ZLogo.style = ZLogoStyle0;
@@ -97,7 +97,7 @@ const ZMenuDeprecated = class {
97
97
  return (h("div", { class: "menu-label" }, h("div", { class: "menu-label-content" }, h("slot", { onSlotchange: this.onLabelSlotChange }))));
98
98
  }
99
99
  render() {
100
- return (h(Host, { key: '168ae999d1b4ed3f790b24d164ea5ee574ad4667' }, this.renderMenuLabel(), this.hasContent && (h("div", { key: '16fe3c3597ee65ffe758d209db2124d9dce766ca', class: "content", ref: (el) => (this.content = el) }, this.hasHeader && (h("header", { key: '6baa93318d9edb189c31ef73515083ecddbcc4ec', class: "header" }, h("slot", { key: '7d221ecaae610ff5a6cc533c06e65c76684b3cfc', name: "header", onSlotchange: this.checkContent }))), h("div", { key: 'd706e6a9bded04273fec5fb7676042a59e9eda81', class: "items", role: "menu" }, h("slot", { key: '494d78bea12e9abf941216b8f7af70e429448ab5', name: "item", onSlotchange: this.onItemsChange }))))));
100
+ return (h(Host, { key: 'b85eb4e974d6e49d326f637e96f467d867588cc4' }, this.renderMenuLabel(), this.hasContent && (h("div", { key: '36e4f36123dd6e49f334a6f5e98cce0875df158c', class: "content", ref: (el) => (this.content = el) }, this.hasHeader && (h("header", { key: 'd8d980f037bd593ca7388946f27f08372d19f7e8', class: "header" }, h("slot", { key: '1d40e062cc0d24b5c7adcb707341d438e0089cb7', name: "header", onSlotchange: this.checkContent }))), h("div", { key: '93cdd787bb371624be8311ca32539a576ee1fcb7', class: "items", role: "menu" }, h("slot", { key: '2d1ffad0d4c6fec04d202e371118535f5454eaef', name: "item", onSlotchange: this.onItemsChange }))))));
101
101
  }
102
102
  get hostElement() { return getElement(this); }
103
103
  static get watchers() { return {
@@ -45,7 +45,7 @@ const ZMenuSectionDeprecated = class {
45
45
  this.checkContent();
46
46
  }
47
47
  render() {
48
- return (h(Host, { key: '0c21e80c57e2fd5e618b84f8eb1d709616f4e5db', role: "menu", open: this.open }, h("button", { key: '580b545233b54719f41a094599ab7f1079927050', class: "label", "aria-pressed": this.open ? "true" : "false", onClick: this.toggle.bind(this) }, h("slot", { key: '36dd56fc971a348b7b64e0221f7e4777e86adbd1', onSlotchange: this.onLabelSlotChange.bind(this) }), this.hasContent && h("z-icon", { key: 'fad86e31ca84d7628c830d2528e64bf09c53d772', name: this.open ? "chevron-up" : "chevron-down" })), this.open && (h("div", { key: '7ef9d79c46d058ce4de9d15baa2bd57e02ee9f90', class: "items" }, h("slot", { key: '1203537f2478929ee2eb53c7c08a1c2b558b2e0c', name: "item", onSlotchange: this.checkContent.bind(this) })))));
48
+ return (h(Host, { key: '683c1153c92167f03d2324765485f0c42d9e088e', role: "menu", open: this.open }, h("button", { key: '774e5b28393d489684864d4e3ad3e5f2f9ad8ffe', class: "label", "aria-pressed": this.open ? "true" : "false", onClick: this.toggle.bind(this) }, h("slot", { key: 'f27ceb99398725734be2027e191c7bba8e3bf593', onSlotchange: this.onLabelSlotChange.bind(this) }), this.hasContent && h("z-icon", { key: 'a5a2a175c5ec52579d184afbed86135f0c43ea8e', name: this.open ? "chevron-up" : "chevron-down" })), this.open && (h("div", { key: 'd27cf75d9481eae65039adc296246776b09fbc3a', class: "items" }, h("slot", { key: 'dbb67c5b4f7587a4f83a4ffe8a8af6d91d1180c8', name: "item", onSlotchange: this.checkContent.bind(this) })))));
49
49
  }
50
50
  get hostElement() { return getElement(this); }
51
51
  };
@@ -1,7 +1,7 @@
1
1
  import { r as registerInstance, c as createEvent, h, a as Host, g as getElement } from './index-c8ceadeb.js';
2
2
  import { g as KeyboardCode } from './index-ee40e66b.js';
3
3
 
4
- const stylesCss = ":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)}";
4
+ const stylesCss = ":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-primary01)}.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-primary01)}::slotted([slot=\"section\"]:hover),::slotted([slot=\"section\"]:focus:focus-visible),::slotted([slot=\"section\"][active]){color:var(--color-primary01);font-weight:var(--font-bd)}";
5
5
  const ZMenuSectionStyle0 = stylesCss;
6
6
 
7
7
  const ZMenuSection = class {
@@ -173,7 +173,7 @@ const ZMenuSection = class {
173
173
  this.onItemsChange();
174
174
  }
175
175
  render() {
176
- return (h(Host, { key: '7856cfecf0ce3ae7c4447c63772812f6e7b7a1c6', open: this.open }, h("button", { key: 'a7835a207dc247498f7877ba3934658ba0f0f17b', ref: (el) => (this.label = el), class: "label", "aria-haspopup": `${!!this.hasItems}`, "aria-expanded": `${!!this.open}`, role: "menuitem", tabindex: this.htmlTabindex, onClick: this.onLabelClick, onKeyDown: this.onLabelKeydown }, h("slot", { key: 'ba3b818777208237403b328962ef5953b23226af', onSlotchange: this.onLabelSlotChange }), this.hasItems && h("z-icon", { key: '016a4437999b5586918add14bebb5fc0d9e6c86b', name: this.open ? "chevron-up" : "chevron-down" })), h("div", { key: 'cc22753575b2650078c6528c7ea63e4789a709f6', class: "items", role: "menu", hidden: !this.open }, h("slot", { key: 'c89aa53d0d420c6f87ad7a2fd66de4ba8d17850f', name: "section", onSlotchange: this.onItemsChange }))));
176
+ return (h(Host, { key: 'ca61d9daac35484cf3fa3a7ab4d6b5700dade8b0', open: this.open }, h("button", { key: 'd2750e008a22b0de43075ed947d1b9e0f6917bd5', ref: (el) => (this.label = el), class: "label", "aria-haspopup": `${!!this.hasItems}`, "aria-expanded": `${!!this.open}`, role: "menuitem", tabindex: this.htmlTabindex, onClick: this.onLabelClick, onKeyDown: this.onLabelKeydown }, h("slot", { key: 'be5dad19dd6fece321bb68ff89e17372f4353539', onSlotchange: this.onLabelSlotChange }), this.hasItems && h("z-icon", { key: '7c6fecfd96a4391394b17f3eea38aa7f29786a18', name: this.open ? "chevron-up" : "chevron-down" })), h("div", { key: '87512635c2b4377a6c304cc0bb1345131997e5f4', class: "items", role: "menu", hidden: !this.open }, h("slot", { key: 'b2dfb0d5a94adb555fb08c7592d5c58feb3c6c5f', name: "section", onSlotchange: this.onItemsChange }))));
177
177
  }
178
178
  get host() { return getElement(this); }
179
179
  static get watchers() { return {
@@ -1 +1 @@
1
- {"file":"z-menu-section.entry.js","mappings":"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","names":[],"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"],"version":3}
1
+ {"file":"z-menu-section.entry.js","mappings":"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","names":[],"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-primary01);\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-primary01);\n}\n\n::slotted([slot=\"section\"]:hover),\n::slotted([slot=\"section\"]:focus:focus-visible),\n::slotted([slot=\"section\"][active]) {\n color: var(--color-primary01);\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"],"version":3}