@zanichelli/albe-web-components 6.9.0 → 6.9.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 (241) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/dist/cjs/index-e3299e0a.js +32 -4
  3. package/dist/cjs/loader.cjs.js +1 -1
  4. package/dist/cjs/web-components-library.cjs.js +1 -1
  5. package/dist/cjs/z-app-header_2.cjs.entry.js +153 -0
  6. package/dist/cjs/z-body.cjs.entry.js +18 -0
  7. package/dist/cjs/z-combobox.cjs.entry.js +3 -3
  8. package/dist/cjs/z-divider.cjs.entry.js +26 -0
  9. package/dist/cjs/z-dragdrop-area_2.cjs.entry.js +118 -0
  10. package/dist/cjs/z-file-upload.cjs.entry.js +11 -11
  11. package/dist/cjs/z-heading.cjs.entry.js +18 -0
  12. package/dist/cjs/z-input_2.cjs.entry.js +266 -0
  13. package/dist/cjs/z-list_3.cjs.entry.js +261 -0
  14. package/dist/cjs/z-select.cjs.entry.js +325 -0
  15. package/dist/cjs/z-table-empty-box.cjs.entry.js +1 -1
  16. package/dist/cjs/z-table.cjs.entry.js +1 -1
  17. package/dist/cjs/z-typography.cjs.entry.js +30 -0
  18. package/dist/collection/collection-manifest.json +3 -3
  19. package/dist/collection/components/file-upload/z-dragdrop-area/index.js +1 -1
  20. package/dist/collection/components/file-upload/z-file-upload/index.js +10 -10
  21. package/dist/collection/components/file-upload/z-file-upload/styles.css +2 -2
  22. package/dist/collection/components/inputs/z-combobox/index.js +2 -2
  23. package/dist/collection/components/inputs/z-combobox/styles.css +17 -7
  24. package/dist/collection/components/inputs/z-input/styles.css +19 -6
  25. package/dist/collection/components/inputs/z-select/index.js +29 -3
  26. package/dist/collection/components/inputs/z-select/styles.css +4 -0
  27. package/dist/collection/components/modal/z-modal/index.js +123 -6
  28. package/dist/collection/components/modal/z-modal/styles.css +9 -11
  29. package/dist/collection/components/z-table/z-table/index.js +1 -1
  30. package/dist/collection/components/z-table/z-table-empty-box/index.js +1 -1
  31. package/dist/collection/{components → deprecated}/typography/z-body/index.js +0 -0
  32. package/dist/collection/{components → deprecated}/typography/z-heading/index.js +0 -0
  33. package/dist/collection/{components → deprecated}/typography/z-typography/index.js +0 -0
  34. package/dist/collection/{components → deprecated}/typography/z-typography/styles.css +0 -0
  35. package/dist/esm/index-a2ca4b97.js +32 -4
  36. package/dist/esm/index.js +1 -1
  37. package/dist/esm/loader.js +1 -1
  38. package/dist/esm/polyfills/css-shim.js +0 -0
  39. package/dist/esm/{utils-5445d989.js → utils-6cf7efe2.js} +1 -1
  40. package/dist/esm/web-components-library.js +1 -1
  41. package/dist/esm/z-app-header_2.entry.js +148 -0
  42. package/dist/esm/z-body.entry.js +14 -0
  43. package/dist/esm/z-chip.entry.js +1 -1
  44. package/dist/esm/z-combobox.entry.js +4 -4
  45. package/dist/esm/z-divider.entry.js +22 -0
  46. package/dist/esm/z-dragdrop-area_2.entry.js +113 -0
  47. package/dist/esm/z-file-upload.entry.js +12 -12
  48. package/dist/esm/z-heading.entry.js +14 -0
  49. package/dist/esm/z-input_2.entry.js +261 -0
  50. package/dist/esm/z-list_3.entry.js +255 -0
  51. package/dist/esm/z-myz-card-info.entry.js +1 -1
  52. package/dist/esm/z-myz-list-item.entry.js +1 -1
  53. package/dist/esm/z-pocket_3.entry.js +1 -1
  54. package/dist/esm/z-searchbar.entry.js +1 -1
  55. package/dist/esm/z-select.entry.js +321 -0
  56. package/dist/esm/z-skip-to-content.entry.js +1 -1
  57. package/dist/esm/z-slideshow.entry.js +1 -1
  58. package/dist/esm/z-table-empty-box.entry.js +1 -1
  59. package/dist/esm/z-table-header.entry.js +1 -1
  60. package/dist/esm/z-table.entry.js +1 -1
  61. package/dist/esm/z-toggle-switch.entry.js +1 -1
  62. package/dist/esm/z-typography.entry.js +26 -0
  63. package/dist/types/beans/index.d.ts +0 -0
  64. package/dist/types/components/buttons/z-button/index.d.ts +0 -0
  65. package/dist/types/components/buttons/z-button-sort/index.d.ts +0 -0
  66. package/dist/types/components/buttons/z-chip/index.d.ts +0 -0
  67. package/dist/types/components/buttons/z-toggle-button/index.d.ts +0 -0
  68. package/dist/types/components/buttons/z-toggle-switch/index.d.ts +0 -0
  69. package/dist/types/components/date-picker/utils.d.ts +0 -0
  70. package/dist/types/components/date-picker/z-date-picker/index.d.ts +0 -0
  71. package/dist/types/components/date-picker/z-range-picker/index.d.ts +0 -0
  72. package/dist/types/components/file-upload/z-dragdrop-area/index.d.ts +0 -0
  73. package/dist/types/components/file-upload/z-file/index.d.ts +0 -0
  74. package/dist/types/components/file-upload/z-file-upload/index.d.ts +0 -0
  75. package/dist/types/components/icons/icons.d.ts +0 -0
  76. package/dist/types/components/icons/z-icon/index.d.ts +0 -0
  77. package/dist/types/components/index.d.ts +0 -0
  78. package/dist/types/components/indicators/z-stepper/index.d.ts +0 -0
  79. package/dist/types/components/indicators/z-stepper-item/index.d.ts +0 -0
  80. package/dist/types/components/inputs/z-combobox/index.d.ts +0 -0
  81. package/dist/types/components/inputs/z-input/index.d.ts +0 -0
  82. package/dist/types/components/inputs/z-input-message/index.d.ts +0 -0
  83. package/dist/types/components/inputs/z-searchbar/index.d.ts +0 -0
  84. package/dist/types/components/inputs/z-select/index.d.ts +2 -0
  85. package/dist/types/components/list/z-list/index.d.ts +0 -0
  86. package/dist/types/components/list/z-list-element/index.d.ts +0 -0
  87. package/dist/types/components/list/z-list-group/index.d.ts +0 -0
  88. package/dist/types/components/list/z-toast-notification-list/index.d.ts +0 -0
  89. package/dist/types/components/logo/z-logo/index.d.ts +0 -0
  90. package/dist/types/components/modal/z-modal/index.d.ts +20 -2
  91. package/dist/types/components/navigation/tabs/z-navigation-tab/index.d.ts +0 -0
  92. package/dist/types/components/navigation/tabs/z-navigation-tab-link/index.d.ts +0 -0
  93. package/dist/types/components/navigation/tabs/z-navigation-tabs/index.d.ts +0 -0
  94. package/dist/types/components/navigation/z-app-header/index.d.ts +0 -0
  95. package/dist/types/components/navigation/z-app-switcher/index.d.ts +0 -0
  96. package/dist/types/components/navigation/z-link/index.d.ts +0 -0
  97. package/dist/types/components/navigation/z-menu/index.d.ts +0 -0
  98. package/dist/types/components/navigation/z-menu-section/index.d.ts +0 -0
  99. package/dist/types/components/notification/z-info-box/index.d.ts +0 -0
  100. package/dist/types/components/notification/z-notification/index.d.ts +0 -0
  101. package/dist/types/components/notification/z-toast-notification/index.d.ts +0 -0
  102. package/dist/types/components/notification/z-tooltip/index.d.ts +0 -0
  103. package/dist/types/components/panel/z-panel-elem/index.d.ts +0 -0
  104. package/dist/types/components/z-anchor-navigation/index.d.ts +0 -0
  105. package/dist/types/components/z-aria-alert/index.d.ts +0 -0
  106. package/dist/types/components/z-avatar/index.d.ts +0 -0
  107. package/dist/types/components/z-card/index.d.ts +0 -0
  108. package/dist/types/components/z-carousel/index.d.ts +0 -0
  109. package/dist/types/components/z-contextual-menu/index.d.ts +0 -0
  110. package/dist/types/components/z-cover-hero/index.d.ts +0 -0
  111. package/dist/types/components/z-divider/index.d.ts +0 -0
  112. package/dist/types/components/z-ghost-loading/index.d.ts +0 -0
  113. package/dist/types/components/z-info-reveal/index.d.ts +0 -0
  114. package/dist/types/components/z-offcanvas/index.d.ts +0 -0
  115. package/dist/types/components/z-pagination/index.d.ts +0 -0
  116. package/dist/types/components/z-popover/index.d.ts +0 -0
  117. package/dist/types/components/z-section-title/index.d.ts +0 -0
  118. package/dist/types/components/z-skip-to-content/index.d.ts +0 -0
  119. package/dist/types/components/z-table/z-table/index.d.ts +0 -0
  120. package/dist/types/components/z-table/z-table-body/index.d.ts +0 -0
  121. package/dist/types/components/z-table/z-table-cell/index.d.ts +0 -0
  122. package/dist/types/components/z-table/z-table-empty-box/index.d.ts +0 -0
  123. package/dist/types/components/z-table/z-table-expanded-row/index.d.ts +0 -0
  124. package/dist/types/components/z-table/z-table-footer/index.d.ts +0 -0
  125. package/dist/types/components/z-table/z-table-head/index.d.ts +0 -0
  126. package/dist/types/components/z-table/z-table-header/index.d.ts +0 -0
  127. package/dist/types/components/z-table/z-table-header-row/index.d.ts +0 -0
  128. package/dist/types/components/z-table/z-table-row/index.d.ts +0 -0
  129. package/dist/types/components/z-table/z-table-sticky-footer/index.d.ts +0 -0
  130. package/dist/types/components/z-tag/index.d.ts +0 -0
  131. package/dist/types/components/z-visually-hidden/index.d.ts +0 -0
  132. package/dist/types/components.d.ts +26 -2
  133. package/dist/types/constants/breakpoints.d.ts +0 -0
  134. package/dist/types/constants/icons.d.ts +0 -0
  135. package/dist/types/{components → deprecated}/typography/z-body/index.d.ts +0 -0
  136. package/dist/types/{components → deprecated}/typography/z-heading/index.d.ts +0 -0
  137. package/dist/types/{components → deprecated}/typography/z-typography/index.d.ts +0 -0
  138. package/dist/types/index.d.ts +0 -0
  139. package/dist/types/snowflakes/myz/card/z-myz-card/index.d.ts +0 -0
  140. package/dist/types/snowflakes/myz/card/z-myz-card-alert/index.d.ts +0 -0
  141. package/dist/types/snowflakes/myz/card/z-myz-card-body/index.d.ts +0 -0
  142. package/dist/types/snowflakes/myz/card/z-myz-card-cover/index.d.ts +0 -0
  143. package/dist/types/snowflakes/myz/card/z-myz-card-dictionary/index.d.ts +0 -0
  144. package/dist/types/snowflakes/myz/card/z-myz-card-footer/index.d.ts +0 -0
  145. package/dist/types/snowflakes/myz/card/z-myz-card-footer-sections/index.d.ts +0 -0
  146. package/dist/types/snowflakes/myz/card/z-myz-card-header/index.d.ts +0 -0
  147. package/dist/types/snowflakes/myz/card/z-myz-card-icon/index.d.ts +0 -0
  148. package/dist/types/snowflakes/myz/card/z-myz-card-info/index.d.ts +0 -0
  149. package/dist/types/snowflakes/myz/card/z-myz-card-list/index.d.ts +0 -0
  150. package/dist/types/snowflakes/myz/list/z-myz-list/index.d.ts +0 -0
  151. package/dist/types/snowflakes/myz/list/z-myz-list-item/index.d.ts +0 -0
  152. package/dist/types/snowflakes/myz/pocket/z-messages-pocket/index.d.ts +0 -0
  153. package/dist/types/snowflakes/myz/pocket/z-pocket/index.d.ts +0 -0
  154. package/dist/types/snowflakes/myz/pocket/z-pocket-body/index.d.ts +0 -0
  155. package/dist/types/snowflakes/myz/pocket/z-pocket-header/index.d.ts +0 -0
  156. package/dist/types/snowflakes/myz/pocket/z-pocket-message/index.d.ts +0 -0
  157. package/dist/types/snowflakes/myz/z-alert/index.d.ts +0 -0
  158. package/dist/types/snowflakes/myz/z-otp/index.d.ts +0 -0
  159. package/dist/types/snowflakes/myz/z-slideshow/index.d.ts +0 -0
  160. package/dist/types/stencil-public-runtime.d.ts +0 -0
  161. package/dist/types/utils/utils.d.ts +0 -0
  162. package/dist/web-components-library/index.esm.js +1 -1
  163. package/dist/web-components-library/{p-48d3f650.entry.js → p-26033729.entry.js} +1 -1
  164. package/dist/web-components-library/p-33352f9e.entry.js +1 -0
  165. package/dist/web-components-library/p-3860061a.entry.js +1 -0
  166. package/dist/web-components-library/p-4367f978.entry.js +1 -0
  167. package/dist/web-components-library/p-52b084fb.entry.js +1 -0
  168. package/dist/web-components-library/{p-229e17af.entry.js → p-53065788.entry.js} +1 -1
  169. package/dist/web-components-library/{p-51333b32.entry.js → p-54b18f6e.entry.js} +1 -1
  170. package/dist/web-components-library/p-56cbd174.entry.js +1 -0
  171. package/dist/web-components-library/p-5ac6109d.entry.js +1 -0
  172. package/dist/web-components-library/{p-28b288a8.entry.js → p-5c62387a.entry.js} +1 -1
  173. package/dist/web-components-library/p-6acb48e3.entry.js +1 -0
  174. package/dist/web-components-library/{p-102d82ee.entry.js → p-6c163539.entry.js} +1 -1
  175. package/dist/web-components-library/p-6ea7428a.entry.js +1 -0
  176. package/dist/web-components-library/{p-00481c22.js → p-8ebe4adf.js} +1 -1
  177. package/dist/web-components-library/{p-db77ef4e.entry.js → p-93142fac.entry.js} +1 -1
  178. package/dist/web-components-library/p-9c338aeb.entry.js +1 -0
  179. package/dist/web-components-library/{p-669f14ae.entry.js → p-a05ce0a6.entry.js} +1 -1
  180. package/dist/web-components-library/{p-933efc27.entry.js → p-a6c0f149.entry.js} +1 -1
  181. package/dist/web-components-library/{p-169b9762.entry.js → p-d2127d84.entry.js} +1 -1
  182. package/dist/web-components-library/p-d6497e67.entry.js +1 -0
  183. package/dist/web-components-library/p-d9a6a204.entry.js +1 -0
  184. package/dist/web-components-library/p-e78ce8ec.entry.js +1 -0
  185. package/dist/web-components-library/p-edd53386.entry.js +1 -0
  186. package/dist/web-components-library/web-components-library.css +0 -0
  187. package/dist/web-components-library/web-components-library.esm.js +1 -1
  188. package/loader/cdn.js +0 -0
  189. package/loader/index.cjs.js +0 -0
  190. package/loader/index.d.ts +0 -0
  191. package/loader/index.es2017.js +0 -0
  192. package/loader/index.js +0 -0
  193. package/loader/package.json +0 -0
  194. package/package.json +1 -1
  195. package/www/build/index.esm.js +1 -1
  196. package/www/build/{p-48d3f650.entry.js → p-26033729.entry.js} +1 -1
  197. package/www/build/p-33352f9e.entry.js +1 -0
  198. package/www/build/p-3860061a.entry.js +1 -0
  199. package/www/build/p-4367f978.entry.js +1 -0
  200. package/www/build/p-52b084fb.entry.js +1 -0
  201. package/www/build/{p-229e17af.entry.js → p-53065788.entry.js} +1 -1
  202. package/www/build/{p-51333b32.entry.js → p-54b18f6e.entry.js} +1 -1
  203. package/www/build/p-56cbd174.entry.js +1 -0
  204. package/www/build/p-5ac6109d.entry.js +1 -0
  205. package/www/build/{p-28b288a8.entry.js → p-5c62387a.entry.js} +1 -1
  206. package/www/build/p-6acb48e3.entry.js +1 -0
  207. package/www/build/{p-102d82ee.entry.js → p-6c163539.entry.js} +1 -1
  208. package/www/build/p-6ea7428a.entry.js +1 -0
  209. package/www/build/{p-00481c22.js → p-8ebe4adf.js} +1 -1
  210. package/www/build/{p-db77ef4e.entry.js → p-93142fac.entry.js} +1 -1
  211. package/www/build/p-9c338aeb.entry.js +1 -0
  212. package/www/build/{p-669f14ae.entry.js → p-a05ce0a6.entry.js} +1 -1
  213. package/www/build/p-a240c0f4.js +1 -0
  214. package/www/build/{p-933efc27.entry.js → p-a6c0f149.entry.js} +1 -1
  215. package/www/build/{p-169b9762.entry.js → p-d2127d84.entry.js} +1 -1
  216. package/www/build/p-d6497e67.entry.js +1 -0
  217. package/www/build/p-d9a6a204.entry.js +1 -0
  218. package/www/build/p-e78ce8ec.entry.js +1 -0
  219. package/www/build/p-edd53386.entry.js +1 -0
  220. package/www/build/web-components-library.css +0 -0
  221. package/www/build/web-components-library.esm.js +1 -1
  222. package/www/build/web-components-library.js +0 -0
  223. package/www/host.config.json +0 -0
  224. package/www/index.html +1 -1
  225. package/dist/cjs/z-app-header_11.cjs.entry.js +0 -1030
  226. package/dist/cjs/z-dragdrop-area_3.cjs.entry.js +0 -76
  227. package/dist/esm/z-app-header_11.entry.js +0 -1016
  228. package/dist/esm/z-dragdrop-area_3.entry.js +0 -70
  229. package/dist/web-components-library/p-4bdf6a9b.entry.js +0 -1
  230. package/dist/web-components-library/p-5bbbda4e.entry.js +0 -1
  231. package/dist/web-components-library/p-735bdfa3.entry.js +0 -1
  232. package/dist/web-components-library/p-95b8f109.entry.js +0 -1
  233. package/dist/web-components-library/p-d0accfc5.entry.js +0 -1
  234. package/dist/web-components-library/p-de55c171.entry.js +0 -1
  235. package/www/build/p-4bdf6a9b.entry.js +0 -1
  236. package/www/build/p-5bbbda4e.entry.js +0 -1
  237. package/www/build/p-735bdfa3.entry.js +0 -1
  238. package/www/build/p-95b8f109.entry.js +0 -1
  239. package/www/build/p-d0accfc5.entry.js +0 -1
  240. package/www/build/p-de55c171.entry.js +0 -1
  241. package/www/build/p-e9b88186.js +0 -1
@@ -0,0 +1,118 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const index = require('./index-e3299e0a.js');
6
+ const index$1 = require('./index-fa110f37.js');
7
+
8
+ const stylesCss$1 = ":host{margin-top:calc(var(--space-unit) * 3);font-family:var(--font-family-sans);font-weight:var(--font-rg)}:host>.dragdrop{position:relative;display:flex;height:228px;flex-direction:column;border-color:var(--color-surface04);background-color:var(--color-surface02);background-image:url(\"data:image/svg+xml,%3csvg width='100%25' height='100%25' xmlns='http://www.w3.org/2000/svg'%3e%3crect width='100%25' height='100%25' fill='none' rx='2' ry='2' stroke='%23CACCCEFF' stroke-width='2' stroke-dasharray='15%2c 10%2c 14%2c 11' stroke-dashoffset='3' stroke-linecap='square'/%3e%3c/svg%3e\");border-radius:2px;color:var(--color-text01)}:host>.dragdrop.dragover *{pointer-events:none}:host>.dragdrop .dragover-container{position:absolute;z-index:10;top:0;left:0;display:none;width:100%;height:100%;background-color:var(--color-primary03);box-shadow:var(--shadow-focus-primary)}:host>.dragdrop .dragover-container .dragover-message{padding:10px 28px;background-color:var(--color-link-primary);color:var(--color-text04)}:host>.dragdrop.dragover .dragover-container{display:flex;align-items:center;justify-content:center}";
9
+
10
+ const ZDragdropArea = class {
11
+ constructor(hostRef) {
12
+ index.registerInstance(this, hostRef);
13
+ this.fileDropped = index.createEvent(this, "fileDropped", 7);
14
+ }
15
+ fileDroppedHandler(files) {
16
+ this.fileDropped.emit(files);
17
+ }
18
+ renderOnDragOverMessage() {
19
+ return (index.h("div", { class: "dragover-container" }, index.h("div", { class: "dragover-message" }, index.h("span", { class: "body-2-sb" }, "Rilascia i file in questa area per allegarli."))));
20
+ }
21
+ render() {
22
+ return (index.h("div", { tabIndex: 0, ref: (val) => (this.dragDropContainer = val), class: "dragdrop", onDragOver: (e) => {
23
+ e.preventDefault();
24
+ this.dragDropContainer.classList.add("dragover");
25
+ }, onDragLeave: () => {
26
+ this.dragDropContainer.classList.remove("dragover");
27
+ }, onDrop: (e) => {
28
+ e.preventDefault();
29
+ if (e.dataTransfer.files.length) {
30
+ this.dragDropContainer.classList.remove("dragover");
31
+ this.fileDroppedHandler(e.dataTransfer.files);
32
+ }
33
+ } }, this.renderOnDragOverMessage(), index.h("slot", null)));
34
+ }
35
+ };
36
+ ZDragdropArea.style = stylesCss$1;
37
+
38
+ const stylesCss = ":host{font-family:var(--font-family-sans);font-weight:var(--font-rg)}:host>dialog{padding:0;border:none}:host>dialog::backdrop{display:none}.modal-background{position:fixed;top:0;left:0;width:100%;height:100%;background-color:var(--gray900);opacity:0.7}.modal-container{z-index:1010;display:flex;overflow:-moz-scrollbars-none;overflow:hidden;width:100%;height:100vh;flex-direction:column}.modal-container>header{display:flex;flex-flow:row nowrap;align-items:flex-start;justify-content:flex-start;padding:calc(var(--space-unit) * 1.5) calc(var(--space-unit) * 2);background:var(--color-surface02)}.modal-container>header button{padding:0;border:none;margin:0;margin-left:auto;background:transparent;cursor:pointer}.modal-container>header z-icon{--z-icon-width:calc(var(--space-unit) * 2.5);--z-icon-height:calc(var(--space-unit) * 2.5);display:flex;fill:var(--color-icon01)}.modal-container>header>div{display:flex;width:100%;flex-direction:column;margin-right:calc(var(--space-unit) * 2)}.modal-container>header h1,.modal-container>header h2{padding:0;margin:0;color:var(--color-text01);font-weight:var(--font-rg)}.modal-container>header h1{font-size:var(--font-size-5);letter-spacing:0;line-height:1.4}.modal-container>header h2{font-size:var(--font-size-3);letter-spacing:0;line-height:1.5}.modal-container>header>div *:empty{display:none}.modal-container>header h1+h2{margin-top:calc(var(--space-unit) * 0.5)}.modal-container>.modal-content{overflow:auto;flex:1 auto;background:var(--color-surface01);overflow-x:hidden}.modal-container .modal-content::-webkit-scrollbar{width:10px;background:linear-gradient(to right, transparent 0 3px, var(--gray200) 3px 7px, transparent 7px 10px);border-radius:var(--border-radius)}.modal-container .modal-content::-webkit-scrollbar-track{background-color:transparent}.modal-container .modal-content::-webkit-scrollbar-thumb{width:10px;background-color:var(--color-primary01);border-radius:var(--border-radius)}.modal-container .modal-content::-webkit-scrollbar-thumb:hover{background-color:var(--color-hover-primary)}.modal-container .modal-content{scrollbar-color:var(--color-primary01) transparent}@media only screen and (min-width: 768px){.modal-container{position:fixed;top:calc(var(--space-unit) * 6);left:50%;width:auto;min-width:calc(var(--space-unit) * 40);height:auto;min-height:calc(var(--space-unit) * 40);max-height:calc(100vh - calc(var(--space-unit) * 6 * 2));border-radius:var(--border-radius);transform:translateX(-50%)}.modal-container>header z-icon{--z-icon-width:calc(var(--space-unit) * 3);--z-icon-height:calc(var(--space-unit) * 3)}}@media only screen and (min-width: 768px) and (max-width: 1151px){.modal-container>header{padding:calc(var(--space-unit) * 1.5) calc(var(--space-unit) * 3)}}@media only screen and (min-width: 1152px){.modal-container>header{padding:calc(var(--space-unit) * 1.5) calc(var(--space-unit) * 4)}.modal-container>header h1{font-size:var(--font-size-6);letter-spacing:0;line-height:1.33}.modal-container>header h2{font-size:var(--font-size-4);letter-spacing:0;line-height:1.5}.modal-container>header h1+h2{margin-top:0}}";
39
+
40
+ const FOCUSABLE_ELEMENTS_SELECTOR = ':is(button, input, select, textarea, [contenteditable=""], [contenteditable="true"], a[href], [tabindex], summary):not([disabled], [disabled=""], [tabindex="-1"], [aria-hidden="true"], [hidden])';
41
+ const ZModal = class {
42
+ constructor(hostRef) {
43
+ index.registerInstance(this, hostRef);
44
+ this.modalClose = index.createEvent(this, "modalClose", 7);
45
+ this.modalHeaderActive = index.createEvent(this, "modalHeaderActive", 7);
46
+ this.modalBackgroundClick = index.createEvent(this, "modalBackgroundClick", 7);
47
+ /** aria-label for close button (optional) */
48
+ this.closeButtonLabel = "chiudi modale";
49
+ /** add role "alertdialog" to dialog (optional, default is false) */
50
+ this.alertdialog = false;
51
+ }
52
+ emitModalClose() {
53
+ this.modalClose.emit({ modalid: this.modalid });
54
+ }
55
+ emitModalHeaderActive() {
56
+ this.modalHeaderActive.emit({ modalid: this.modalid });
57
+ }
58
+ emitBackgroundClick() {
59
+ this.modalBackgroundClick.emit({ modalid: this.modalid });
60
+ }
61
+ componentDidLoad() {
62
+ this.open();
63
+ }
64
+ /** open modal */
65
+ async open() {
66
+ var _a;
67
+ (_a = this.dialog) === null || _a === void 0 ? void 0 : _a.showModal();
68
+ }
69
+ /** close modal */
70
+ async close() {
71
+ var _a;
72
+ (_a = this.dialog) === null || _a === void 0 ? void 0 : _a.close();
73
+ }
74
+ /**
75
+ * Get a list of focusable elements in the dialog.
76
+ * Remove elements with `display: none` from the list, because they're not focusable.
77
+ *
78
+ * N.B. The list is built on the assumption that elements inside shadow root are placed ALL before the `modalContent` slot.
79
+ * Adding focusable elements after the `modalContent` slot would break the order of elements in the list.
80
+ */
81
+ get focusableElements() {
82
+ return [
83
+ ...Array.from(this.host.shadowRoot.querySelectorAll(FOCUSABLE_ELEMENTS_SELECTOR)),
84
+ ...Array.from(this.host.querySelectorAll(FOCUSABLE_ELEMENTS_SELECTOR)),
85
+ ].filter((element) => getComputedStyle(element).display !== "none");
86
+ }
87
+ handleKeyDown(e) {
88
+ if (e.code !== index$1.KeyboardCode.TAB) {
89
+ return;
90
+ }
91
+ const focusableElements = this.focusableElements;
92
+ const shadowActiveElement = this.host.shadowRoot.activeElement;
93
+ const activeElement = this.host.ownerDocument.activeElement;
94
+ const firstFocusableElement = focusableElements[0];
95
+ const lastFocusableElement = focusableElements[focusableElements.length - 1];
96
+ if (e.shiftKey && (shadowActiveElement == firstFocusableElement || activeElement == firstFocusableElement)) {
97
+ // shift + tab was pressed and current active element is the first focusable element
98
+ e.preventDefault();
99
+ lastFocusableElement.focus();
100
+ }
101
+ else if (!e.shiftKey && (shadowActiveElement == lastFocusableElement || activeElement == lastFocusableElement)) {
102
+ // shift + tab was pressed and current active element is the first focusable element
103
+ e.preventDefault();
104
+ firstFocusableElement.focus();
105
+ }
106
+ }
107
+ render() {
108
+ return (index.h("dialog", { "aria-labelledby": "modal-title", "aria-describedby": "modal-content", role: this.alertdialog ? "alertdialog" : undefined, ref: (el) => (this.dialog = el), onClose: () => this.emitModalClose() }, index.h("div", { class: "modal-container", id: this.modalid }, index.h("header", { onClick: this.emitModalHeaderActive.bind(this) }, index.h("div", null, this.modaltitle && index.h("h1", { id: "modal-title" }, this.modaltitle), this.modalsubtitle && index.h("h2", { id: "modal-subtitle" }, this.modalsubtitle)), index.h("slot", { name: "modalCloseButton" }, index.h("button", { "aria-label": this.closeButtonLabel, onClick: () => this.close() }, index.h("z-icon", { name: "multiply-circle-filled" })))), index.h("div", { class: "modal-content", id: "modal-content" }, index.h("slot", { name: "modalContent" }))), index.h("div", { class: "modal-background", "data-action": "modalBackground", "data-modal": this.modalid, onClick: () => {
109
+ this.emitBackgroundClick();
110
+ this.close();
111
+ } })));
112
+ }
113
+ get host() { return index.getElement(this); }
114
+ };
115
+ ZModal.style = stylesCss;
116
+
117
+ exports.z_dragdrop_area = ZDragdropArea;
118
+ exports.z_modal = ZModal;
@@ -7,7 +7,7 @@ const index$1 = require('./index-fa110f37.js');
7
7
  const utils = require('./utils-600bad93.js');
8
8
  require('./breakpoints-88c4fd6c.js');
9
9
 
10
- const stylesCss = ":host{color:var(--color-text01);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}: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 z-body{text-align:center}:host .text-container .upload-link{color:var(--color-link-primary);cursor:pointer}:host .text-container .upload-link-text{margin-bottom:var(--space-unit)}input#file-elem{display:none}#title{display:inline-block;margin-bottom:var(--space-unit)}: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>z-heading{display:inline-block;margin:calc(var(--space-unit) * 3) 0}: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}@media only screen and (min-width: 768px){:host>.container>z-button{align-self:flex-start}}";
10
+ const stylesCss = ":host{color:var(--color-text01);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}: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-text{margin-bottom:var(--space-unit)}input#file-elem{display:none}#title{display:inline-block;margin-bottom:var(--space-unit)}: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}: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}@media only screen and (min-width: 768px){:host>.container>z-button{align-self:flex-start}}";
11
11
 
12
12
  const ZFileUpload = class {
13
13
  constructor(hostRef) {
@@ -102,10 +102,10 @@ const ZFileUpload = class {
102
102
  return errors;
103
103
  }
104
104
  renderTitle() {
105
- return (index.h("z-heading", { id: "title", variant: "semibold", level: 2 }, this.mainTitle));
105
+ return (index.h("h2", { class: "heading-2-sb", id: "title" }, this.mainTitle));
106
106
  }
107
- renderDescription(variant, level) {
108
- return (index.h("z-body", { variant: variant, level: level }, this.description));
107
+ renderDescription(cssClass) {
108
+ return index.h("span", { class: cssClass }, this.description);
109
109
  }
110
110
  renderAllowedFileExtensions() {
111
111
  let fileFormatString = "";
@@ -121,10 +121,10 @@ const ZFileUpload = class {
121
121
  fileWeightString = ` per un massimo di ${this.fileMaxSize}MB di peso`;
122
122
  }
123
123
  const finalString = `Puoi allegare file${fileFormatString}${fileWeightString}.`;
124
- return index.h("z-body", { level: 3 }, fileFormatString || fileWeightString ? finalString : null);
124
+ return index.h("span", { class: "body-3" }, fileFormatString || fileWeightString ? finalString : null);
125
125
  }
126
126
  renderFileSection() {
127
- return (index.h("section", { class: `files-container ${!this.files.length ? "hidden" : ""}` }, index.h("z-heading", { variant: "semibold", level: 4 }, "File appena caricati"), index.h("div", { class: "files-wrapper" }, index.h("slot", { name: "files" })), index.h("z-divider", { size: index$1.DividerSize.MEDIUM })));
127
+ return (index.h("section", { class: `files-container ${!this.files.length ? "hidden" : ""}` }, index.h("h4", { class: "heading-4-sb" }, "File appena caricati"), index.h("div", { class: "files-wrapper" }, index.h("slot", { name: "files" })), index.h("z-divider", { size: index$1.DividerSize.MEDIUM })));
128
128
  }
129
129
  renderInput() {
130
130
  return (index.h("input", Object.assign({}, this.inputAttributes, { onChange: () => this.fileInputHandler(), accept: this.acceptedFormat, ref: (val) => (this.input = val) })));
@@ -143,17 +143,17 @@ const ZFileUpload = class {
143
143
  renderUploadLink() {
144
144
  return [
145
145
  this.renderInput(),
146
- index.h("z-body", { class: "upload-link-text", variant: "regular", level: 1 }, "Trascinalo qui o", " ", index.h("z-body", { tabIndex: 0, class: "upload-link", onClick: () => this.input.click(), onKeyPress: (e) => {
146
+ index.h("span", { class: "body-1 upload-link-text" }, "Trascinalo qui o", " ", index.h("span", { tabIndex: 0, class: "body-1-sb upload-link", onClick: () => this.input.click(), onKeyPress: (e) => {
147
147
  if (e.code == "Space" || e.code == "Enter") {
148
148
  e.preventDefault();
149
149
  this.input.click();
150
150
  }
151
- }, variant: "semibold", level: 1, ref: (val) => (this.uploadLink = val) }, "caricalo"), " ", "dal tuo computer"),
151
+ }, ref: (val) => (this.uploadLink = val) }, "caricalo"), " ", "dal tuo computer"),
152
152
  ];
153
153
  }
154
154
  renderDefaultMode() {
155
155
  return [
156
- this.renderDescription("semibold", 3),
156
+ this.renderDescription("body-3-sb"),
157
157
  this.renderAllowedFileExtensions(),
158
158
  this.renderFileSection(),
159
159
  this.renderUploadButton(),
@@ -162,7 +162,7 @@ const ZFileUpload = class {
162
162
  renderDragDropMode() {
163
163
  return [
164
164
  this.renderFileSection(),
165
- index.h("z-dragdrop-area", null, index.h("div", { class: "text-container" }, this.renderDescription("regular", 1), this.renderUploadLink(), this.renderAllowedFileExtensions())),
165
+ index.h("z-dragdrop-area", null, index.h("div", { class: "text-container" }, this.renderDescription("body-1"), this.renderUploadLink(), this.renderAllowedFileExtensions())),
166
166
  ];
167
167
  }
168
168
  formatErrorString(key, value) {
@@ -172,7 +172,7 @@ const ZFileUpload = class {
172
172
  }
173
173
  handleErrorModalContent() {
174
174
  return (index.h("div", { slot: "modalContent" }, index.h("div", { class: "modal-wrapper" }, index.h("div", { class: "files" }, Array.from(this.invalidFiles).map(([key, value]) => {
175
- return (index.h("z-body", { variant: "regular", level: 3 }, this.formatErrorString(key, value)));
175
+ return index.h("span", { class: "body-3" }, this.formatErrorString(key, value));
176
176
  })))));
177
177
  }
178
178
  render() {
@@ -0,0 +1,18 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const index = require('./index-e3299e0a.js');
6
+
7
+ const ZHeading = class {
8
+ constructor(hostRef) {
9
+ index.registerInstance(this, hostRef);
10
+ /** Font weight variant */
11
+ this.variant = "regular";
12
+ }
13
+ render() {
14
+ return (index.h("z-typography", { tabIndex: 0, component: this.component || `h${this.level}`, level: `h${this.level}`, variant: this.variant }, index.h("slot", null)));
15
+ }
16
+ };
17
+
18
+ exports.z_heading = ZHeading;
@@ -0,0 +1,266 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const index = require('./index-e3299e0a.js');
6
+ const index$1 = require('./index-fa110f37.js');
7
+ const utils = require('./utils-600bad93.js');
8
+ require('./breakpoints-88c4fd6c.js');
9
+
10
+ const stylesCss$1 = ".sc-z-input-h{display:inline-block;width:inherit}input.sc-z-input::-ms-clear,input.sc-z-input::-ms-reveal{display:none}.sc-z-input-h input.sc-z-input::-ms-clear,.sc-z-input-h input.sc-z-input::-ms-reveal{display:none}input.sc-z-input,textarea.sc-z-input,.textarea-wrapper.sc-z-input{box-sizing:border-box;border:var(--border-size-small) solid var(--color-surface04);background:var(--color-input-field01);border-radius:var(--border-radius-small);color:var(--color-text01);fill:var(--color-icon02);font-family:var(--font-family-sans);font-size:var(--font-size-3);font-weight:var(--font-rg);outline:none}.cursor-select.sc-z-input-h input.sc-z-input{cursor:pointer}.sc-z-input-h:not(.active-select) input.sc-z-input:focus:focus-visible,.textarea-wrapper.sc-z-input:focus-within{box-shadow:var(--shadow-focus-primary)}input.sc-z-input:focus:focus-visible,textarea.sc-z-input:focus:focus-visible{color:var(--color-primary02)}.active-select.sc-z-input-h input.sc-z-input{border:var(--border-size-small) solid var(--blue500)}.cursor-select.sc-z-input-h input.sc-z-input:focus:focus-visible{box-shadow:var(--shadow-focus-primary)}.sc-z-input-h input[readonly].sc-z-input:focus:focus-visible{box-shadow:none;pointer-events:none}.filled.sc-z-input{border-color:var(--color-surface05)}.input-success.sc-z-input{border-color:var(--color-success01);background:var(--color-success-inverse);fill:var(--color-success01)}.input-error.sc-z-input{border-color:var(--color-error01);background:var(--color-error-inverse);fill:var(--color-error01)}.input-warning.sc-z-input{border-color:var(--color-warning01);background:var(--color-warning-inverse);fill:var(--color-warning01)}input.sc-z-input:hover,.textarea-wrapper.sc-z-input:hover{outline:var(--border-size-medium) solid var(--color-surface04);outline-offset:-2px}.sc-z-input-h:not(.active-select) input[readonly].sc-z-input,.readonly.sc-z-input{border-color:var(--color-disabled01);fill:var(--color-disabled01);pointer-events:none}[disabled].sc-z-input-h:not([disabled=\"false\"]) input.sc-z-input,[disabled].sc-z-input-h:not([disabled=\"false\"]) .textarea-wrapper.sc-z-input,[disabled].sc-z-input-h:not([disabled=\"false\"]) z-icon.sc-z-input{border-color:var(--color-disabled01);box-shadow:none;color:var(--color-disabled02);fill:var(--color-disabled01);pointer-events:none}[disabled].sc-z-input-h:not([disabled=\"false\"]) input.sc-z-input:hover{border-width:var(--border-size-small)}input.sc-z-input::placeholder,textarea.sc-z-input::placeholder{color:var(--color-text05)}.sc-z-input::-webkit-textarea-placeholder{color:var(--color-text05)}.sc-z-input:-ms-textarea-placeholder{color:var(--color-text05)}.sc-z-input::placeholder{color:var(--color-text05)}label.input-label.sc-z-input{display:block;padding-bottom:var(--space-unit);color:var(--color-text02);font-family:var(--font-family-sans);font-size:var(--font-size-1);font-weight:var(--font-sb);text-align:left;text-transform:uppercase}[disabled].sc-z-input-h:not([disabled=\"false\"]) label.input-label.sc-z-input{color:var(--color-disabled02)}.text-wrapper.sc-z-input>div.sc-z-input{position:relative;z-index:1;fill:var(--color-icon02)}.text-wrapper.sc-z-input>div.sc-z-input>input.sc-z-input{width:100%;height:calc(var(--space-unit) * 5.5);box-sizing:border-box;padding:0 calc(var(--space-unit) * 1.5);margin:0}.text-wrapper.sc-z-input>div.sc-z-input>input.has-icon.sc-z-input,.text-wrapper.sc-z-input>div.sc-z-input>input.has-clear-icon.sc-z-input{padding-right:calc(var(--space-unit) * 5.25)}.text-wrapper.sc-z-input>div.sc-z-input>input.has-icon.has-clear-icon.sc-z-input{padding-right:calc(var(--space-unit) * 8)}.text-wrapper.sc-z-input .icons-wrapper.sc-z-input{position:absolute;z-index:2;top:50%;right:calc(var(--space-unit) * 1.5);display:flex;pointer-events:none;transform:translateY(-50%)}.text-wrapper.sc-z-input .icons-wrapper.sc-z-input>button.icon-button.sc-z-input{padding:0;border:0;background:none;color:inherit;font:inherit;pointer-events:initial}.text-wrapper.sc-z-input .icons-wrapper.sc-z-input>button.icon-button.sc-z-input+button.icon-button.sc-z-input{margin-left:calc(var(--space-unit) * 0.5)}.text-wrapper.sc-z-input .icons-wrapper.sc-z-input>button.icon-button.reset-icon.sc-z-input,.text-wrapper.sc-z-input .icons-wrapper.sc-z-input>button.icon-button.toggle-password-icon.sc-z-input{cursor:pointer}.text-wrapper.sc-z-input .icons-wrapper.sc-z-input>button.icon-button.sc-z-input>z-icon.sc-z-input{--z-icon-width:18px;--z-icon-height:18px;display:block}.text-wrapper.sc-z-input>div.sc-z-input>input.sc-z-input:-webkit-autofill,.text-wrapper.sc-z-input>div.sc-z-input>input.sc-z-input:-webkit-autofill:hover,.text-wrapper.sc-z-input>div.sc-z-input>input.sc-z-input:-webkit-autofill:focus,.text-wrapper.sc-z-input>div.sc-z-input>input.sc-z-input:-webkit-autofill:active{background:var(--color-white) !important;background-clip:text !important;-webkit-transition-delay:99999s !important}.textarea-wrapper.sc-z-input{padding:calc(var(--space-unit) * 1.5);scrollbar-color:var(--color-primary01) transparent}textarea.sc-z-input::-webkit-scrollbar{width:10px;background:linear-gradient(to right, transparent 0 3px, var(--gray200) 3px 7px, transparent 7px 10px);border-radius:var(--border-radius)}textarea.sc-z-input::-webkit-scrollbar-track{background-color:transparent}textarea.sc-z-input::-webkit-scrollbar-thumb{width:10px;background-color:var(--color-primary01);border-radius:var(--border-radius)}textarea.sc-z-input::-webkit-scrollbar-thumb:hover{background-color:var(--color-hover-primary)}textarea.sc-z-input{width:100%;min-height:132px;padding:0;border:none;margin:0;resize:none}.radio-wrapper.sc-z-input,.checkbox-wrapper.sc-z-input{position:relative;display:inline-flex;flex-direction:row;align-items:center;color:var(--color-text01);fill:var(--color-primary01);font-family:var(--font-family-sans)}.radio-wrapper.sc-z-input:hover,.checkbox-wrapper.sc-z-input:hover{color:var(--color-hover-primary);fill:currentcolor}.radio-wrapper.sc-z-input>input.sc-z-input,.checkbox-wrapper.sc-z-input>input.sc-z-input{position:absolute;z-index:-1;opacity:0;pointer-events:none}.radio-wrapper.sc-z-input .radio-label.sc-z-input,.checkbox-wrapper.sc-z-input .checkbox-label.sc-z-input{display:inline-flex;align-items:center;margin:0;color:inherit;font-family:inherit;font-size:inherit;font-weight:inherit;line-height:1;text-transform:inherit}.radio-wrapper.sc-z-input input.sc-z-input:not(:disabled)+.radio-label.sc-z-input,.checkbox-wrapper.sc-z-input input.sc-z-input:not(:disabled)+.checkbox-label.sc-z-input{cursor:pointer}.radio-wrapper.sc-z-input .radio-label.sc-z-input z-icon.sc-z-input,.checkbox-wrapper.sc-z-input .checkbox-label.sc-z-input z-icon.sc-z-input{cursor:pointer;fill:inherit}.radio-wrapper.sc-z-input .radio-label.after.sc-z-input,.checkbox-wrapper.sc-z-input .checkbox-label.after.sc-z-input{flex-direction:row}.radio-wrapper.sc-z-input .radio-label.before.sc-z-input,.checkbox-wrapper.sc-z-input .checkbox-label.before.sc-z-input{flex-direction:row-reverse}.radio-wrapper.sc-z-input .radio-label.after.sc-z-input>span.sc-z-input,.checkbox-wrapper.sc-z-input .checkbox-label.after.sc-z-input>span.sc-z-input{margin-left:var(--space-unit)}.radio-wrapper.sc-z-input .radio-label.before.sc-z-input>span.sc-z-input,.checkbox-wrapper.sc-z-input .checkbox-label.before.sc-z-input>span.sc-z-input{margin-right:var(--space-unit)}.radio-wrapper.sc-z-input>input.sc-z-input:focus:focus-visible+.radio-label.sc-z-input>z-icon.sc-z-input,.checkbox-wrapper.sc-z-input>input.sc-z-input:focus:focus-visible+.checkbox-label.sc-z-input>z-icon.sc-z-input{border-radius:var(--border-radius-small);box-shadow:var(--shadow-focus-primary)}.radio-wrapper.sc-z-input>input.sc-z-input:disabled+.radio-label.sc-z-input,.checkbox-wrapper.sc-z-input>input.sc-z-input:disabled+.checkbox-label.sc-z-input{color:var(--color-disabled02)}.radio-wrapper.sc-z-input>input.sc-z-input:disabled+.radio-label.sc-z-input>z-icon.sc-z-input,.checkbox-wrapper.sc-z-input>input.sc-z-input:disabled+.checkbox-label.sc-z-input>z-icon.sc-z-input{cursor:default;fill:var(--color-disabled01)}";
11
+
12
+ const ZInput = class {
13
+ constructor(hostRef) {
14
+ index.registerInstance(this, hostRef);
15
+ this.inputChange = index.createEvent(this, "inputChange", 7);
16
+ this.startTyping = index.createEvent(this, "startTyping", 7);
17
+ this.stopTyping = index.createEvent(this, "stopTyping", 7);
18
+ this.inputCheck = index.createEvent(this, "inputCheck", 7);
19
+ /** the id of the input element */
20
+ this.htmlid = `id-${utils.randomId()}`;
21
+ /** the input aria-label */
22
+ this.ariaLabel = "";
23
+ /** the input is disabled */
24
+ this.disabled = false;
25
+ /** the input is readonly */
26
+ this.readonly = false;
27
+ /** the input is required (optional): available for text, password, number, email, textarea, checkbox */
28
+ this.required = false;
29
+ /** checked: available for checkbox, radio */
30
+ this.checked = false;
31
+ /** input helper message (optional): available for text, password, number, email, textarea - if set to `false` message won't be displayed */
32
+ this.message = true;
33
+ /** the input label position: available for checkbox, radio */
34
+ this.labelPosition = index$1.LabelPosition.RIGHT;
35
+ /** render clear icon when typing (optional): available for text */
36
+ this.hasclearicon = true;
37
+ this.isTyping = false;
38
+ this.passwordHidden = true;
39
+ this.typingtimeout = 300;
40
+ }
41
+ inputCheckListener(e) {
42
+ const data = e.detail;
43
+ switch (this.type) {
44
+ case index$1.InputType.RADIO:
45
+ if (data.type === index$1.InputType.RADIO && data.name === this.name && data.id !== this.htmlid) {
46
+ this.checked = false;
47
+ }
48
+ break;
49
+ }
50
+ }
51
+ /** get checked status */
52
+ async isChecked() {
53
+ switch (this.type) {
54
+ case index$1.InputType.CHECKBOX:
55
+ case index$1.InputType.RADIO:
56
+ return this.checked;
57
+ default:
58
+ console.warn("`isChecked` method is only available for type `checkbox` and `radio`");
59
+ return false;
60
+ }
61
+ }
62
+ emitInputChange(value) {
63
+ if (!this.isTyping) {
64
+ this.emitStartTyping();
65
+ }
66
+ let validity;
67
+ if (this.type === index$1.InputType.TEXTAREA) {
68
+ validity = this.getValidity("textarea");
69
+ }
70
+ else {
71
+ validity = this.getValidity("input");
72
+ }
73
+ this.value = value;
74
+ this.inputChange.emit({ value, validity });
75
+ clearTimeout(this.timer);
76
+ this.timer = setTimeout(() => {
77
+ this.emitStopTyping(this.value, validity);
78
+ }, this.typingtimeout);
79
+ }
80
+ emitStartTyping() {
81
+ this.isTyping = true;
82
+ this.startTyping.emit();
83
+ }
84
+ emitStopTyping(value, validity) {
85
+ this.isTyping = false;
86
+ this.stopTyping.emit({
87
+ value: value,
88
+ validity: validity,
89
+ });
90
+ }
91
+ emitInputCheck(checked) {
92
+ this.inputCheck.emit({
93
+ id: this.htmlid,
94
+ checked: checked,
95
+ type: this.type,
96
+ name: this.name,
97
+ value: this.value,
98
+ validity: this.getValidity("input"),
99
+ });
100
+ }
101
+ getValidity(type) {
102
+ const input = this.hostElement.querySelector(type);
103
+ return input.validity;
104
+ }
105
+ /* START text/password/email/number */
106
+ getTextAttributes() {
107
+ return {
108
+ id: this.htmlid,
109
+ name: this.name,
110
+ placeholder: this.placeholder,
111
+ value: this.value,
112
+ disabled: this.disabled,
113
+ readonly: this.readonly,
114
+ required: this.required,
115
+ title: this.htmltitle,
116
+ class: {
117
+ [`input-${this.status}`]: !!this.status,
118
+ filled: !!this.value,
119
+ },
120
+ autocomplete: this.autocomplete,
121
+ onInput: (e) => this.emitInputChange(e.target.value),
122
+ };
123
+ }
124
+ getNumberAttributes(type) {
125
+ if (type != index$1.InputType.NUMBER) {
126
+ return;
127
+ }
128
+ return {
129
+ min: this.min,
130
+ max: this.max,
131
+ step: this.step,
132
+ };
133
+ }
134
+ getPatternAttribute(type) {
135
+ if (type != index$1.InputType.PASSWORD &&
136
+ type != index$1.InputType.TEXT &&
137
+ type != index$1.InputType.TEL &&
138
+ type != index$1.InputType.SEARCH &&
139
+ type != index$1.InputType.URL &&
140
+ type != index$1.InputType.EMAIL) {
141
+ return;
142
+ }
143
+ return {
144
+ pattern: this.pattern,
145
+ };
146
+ }
147
+ renderInputText(type = index$1.InputType.TEXT) {
148
+ const ariaLabel = this.ariaLabel ? { "aria-label": this.ariaLabel } : {};
149
+ const attr = Object.assign(Object.assign(Object.assign(Object.assign({}, this.getTextAttributes()), this.getNumberAttributes(type)), this.getPatternAttribute(type)), ariaLabel);
150
+ if (this.icon || type === index$1.InputType.PASSWORD) {
151
+ Object.assign(attr.class, { "has-icon": true });
152
+ }
153
+ if (this.hasclearicon && type != index$1.InputType.NUMBER) {
154
+ Object.assign(attr.class, { "has-clear-icon": true });
155
+ }
156
+ return (index.h("div", { class: "text-wrapper" }, this.renderLabel(), index.h("div", null, index.h("input", Object.assign({ type: type === index$1.InputType.PASSWORD && !this.passwordHidden ? index$1.InputType.TEXT : type }, attr)), this.renderIcons()), this.renderMessage()));
157
+ }
158
+ renderLabel() {
159
+ if (!this.label) {
160
+ return;
161
+ }
162
+ return (index.h("label", { class: "input-label body-5-sb", id: `${this.htmlid}_label`, htmlFor: this.htmlid }, this.label));
163
+ }
164
+ renderIcons() {
165
+ return (index.h("span", { class: "icons-wrapper" }, this.renderResetIcon(), this.renderIcon()));
166
+ }
167
+ renderIcon() {
168
+ if (this.type === index$1.InputType.PASSWORD) {
169
+ return this.renderShowHidePassword();
170
+ }
171
+ if (!this.icon) {
172
+ return;
173
+ }
174
+ return (index.h("button", { type: "button", class: "icon-button input-icon", tabIndex: -1 }, index.h("z-icon", { name: this.icon })));
175
+ }
176
+ renderResetIcon() {
177
+ if (!this.hasclearicon || !this.value || this.disabled || this.readonly || this.type == index$1.InputType.NUMBER) {
178
+ return;
179
+ }
180
+ return (index.h("button", { type: "button", class: "icon-button reset-icon", "aria-label": "cancella il contenuto dell'input", onClick: () => this.emitInputChange("") }, index.h("z-icon", { name: "multiply" })));
181
+ }
182
+ renderShowHidePassword() {
183
+ return (index.h("button", { type: "button", class: "icon-button toggle-password-icon", disabled: this.disabled, "aria-label": this.passwordHidden ? "mostra password" : "nascondi password", onClick: () => (this.passwordHidden = !this.passwordHidden) }, index.h("z-icon", { name: this.passwordHidden ? "view-filled" : "view-off-filled" })));
184
+ }
185
+ renderMessage() {
186
+ if (utils.boolean(this.message) === false) {
187
+ return;
188
+ }
189
+ return (index.h("z-input-message", { message: utils.boolean(this.message) === true ? undefined : this.message, status: this.status }));
190
+ }
191
+ /* END text/password/email/number */
192
+ /* START textarea */
193
+ renderTextarea() {
194
+ const attributes = this.getTextAttributes();
195
+ const ariaLabel = this.ariaLabel ? { "aria-label": this.ariaLabel } : {};
196
+ return (index.h("div", { class: "text-wrapper" }, this.renderLabel(), index.h("div", { class: Object.assign(Object.assign({}, attributes.class), { "textarea-wrapper": true, "readonly": attributes.readonly }) }, index.h("textarea", Object.assign({}, attributes, ariaLabel))), this.renderMessage()));
197
+ }
198
+ /* END textarea */
199
+ handleCheck(ev) {
200
+ this.checked = ev.target.checked;
201
+ this.emitInputCheck(this.checked);
202
+ }
203
+ /* START checkbox */
204
+ renderCheckbox() {
205
+ return (index.h("div", { class: "checkbox-wrapper" }, index.h("input", { id: this.htmlid, type: "checkbox", name: this.name, checked: this.checked, disabled: this.disabled, readonly: this.readonly, required: this.required, onChange: this.handleCheck.bind(this), value: this.value }), index.h("label", { htmlFor: this.htmlid, class: {
206
+ "checkbox-label": true,
207
+ "after": this.labelPosition === index$1.LabelPosition.RIGHT,
208
+ "before": this.labelPosition === index$1.LabelPosition.LEFT,
209
+ } }, index.h("z-icon", { name: this.checked ? "checkbox-checked" : "checkbox", "aria-hidden": "true" }), this.label && index.h("span", { innerHTML: this.label }))));
210
+ }
211
+ /* END checkbox */
212
+ /* START radio */
213
+ renderRadio() {
214
+ return (index.h("div", { class: "radio-wrapper" }, index.h("input", { id: this.htmlid, type: "radio", name: this.name, checked: this.checked, disabled: this.disabled, readonly: this.readonly, onChange: this.handleCheck.bind(this), value: this.value }), index.h("label", { htmlFor: this.htmlid, class: {
215
+ "radio-label": true,
216
+ "after": this.labelPosition === index$1.LabelPosition.RIGHT,
217
+ "before": this.labelPosition === index$1.LabelPosition.LEFT,
218
+ } }, index.h("z-icon", { name: this.checked ? "radio-button-checked" : "radio-button", "aria-hidden": "true" }), this.label && index.h("span", { innerHTML: this.label }))));
219
+ }
220
+ /* END radio */
221
+ render() {
222
+ switch (this.type) {
223
+ case index$1.InputType.TEXTAREA:
224
+ return this.renderTextarea();
225
+ case index$1.InputType.CHECKBOX:
226
+ return this.renderCheckbox();
227
+ case index$1.InputType.RADIO:
228
+ return this.renderRadio();
229
+ default:
230
+ return this.renderInputText(this.type);
231
+ }
232
+ }
233
+ get hostElement() { return index.getElement(this); }
234
+ };
235
+ ZInput.style = stylesCss$1;
236
+
237
+ const stylesCss = ":host{display:flex;min-height:calc(var(--space-unit) * 2.5);align-items:start;margin-top:var(--space-unit);color:var(--color-text05);fill:currentcolor;font-family:var(--font-family-sans);font-size:var(--font-size-2);letter-spacing:0.16px}:host([status=\"success\"]){color:var(--color-text-success)}:host([status=\"error\"]){color:var(--color-text-error)}:host([status=\"warning\"]){color:var(--color-warning02)}:host(:focus){outline:none}:host>z-icon{--z-icon-width:calc(var(--space-unit) * 2);--z-icon-height:calc(var(--space-unit) * 2);--z-icon-right-margin:var(--space-unit)}";
238
+
239
+ const ZInputMessage = class {
240
+ constructor(hostRef) {
241
+ index.registerInstance(this, hostRef);
242
+ this.statusIcons = {
243
+ success: "checkmark-circle",
244
+ error: "multiply-circled",
245
+ warning: "exclamation-circle",
246
+ };
247
+ this.statusRole = {};
248
+ }
249
+ onMessageChange() {
250
+ this.statusRole = this.message && this.status ? { role: "alert" } : {};
251
+ }
252
+ componentWillLoad() {
253
+ this.onMessageChange();
254
+ }
255
+ render() {
256
+ return (index.h(index.Host, Object.assign({}, this.statusRole, { "aria-label": this.message }), this.statusIcons[this.status] && this.message && index.h("z-icon", { name: this.statusIcons[this.status] }), index.h("span", { innerHTML: this.message })));
257
+ }
258
+ static get watchers() { return {
259
+ "message": ["onMessageChange"],
260
+ "status": ["onMessageChange"]
261
+ }; }
262
+ };
263
+ ZInputMessage.style = stylesCss;
264
+
265
+ exports.z_input = ZInput;
266
+ exports.z_input_message = ZInputMessage;