@zanichelli/albe-web-components 6.9.0 → 6.10.0-RC

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 (86) hide show
  1. package/dist/cjs/index-e3299e0a.js +22 -2
  2. package/dist/cjs/loader.cjs.js +1 -1
  3. package/dist/cjs/web-components-library.cjs.js +1 -1
  4. package/dist/cjs/z-app-header_2.cjs.entry.js +153 -0
  5. package/dist/cjs/z-body_2.cjs.entry.js +42 -0
  6. package/dist/cjs/z-combobox.cjs.entry.js +1 -1
  7. package/dist/cjs/z-divider.cjs.entry.js +26 -0
  8. package/dist/cjs/z-input_2.cjs.entry.js +266 -0
  9. package/dist/cjs/z-list_3.cjs.entry.js +261 -0
  10. package/dist/cjs/z-select.cjs.entry.js +325 -0
  11. package/dist/collection/components/inputs/z-combobox/styles.css +14 -4
  12. package/dist/collection/components/inputs/z-input/styles.css +19 -6
  13. package/dist/collection/components/inputs/z-select/index.js +28 -2
  14. package/dist/collection/components/inputs/z-select/styles.css +4 -0
  15. package/dist/esm/index-a2ca4b97.js +22 -2
  16. package/dist/esm/index.js +1 -1
  17. package/dist/esm/loader.js +1 -1
  18. package/dist/esm/{utils-5445d989.js → utils-6cf7efe2.js} +1 -1
  19. package/dist/esm/web-components-library.js +1 -1
  20. package/dist/esm/z-app-header_2.entry.js +148 -0
  21. package/dist/esm/z-body_2.entry.js +37 -0
  22. package/dist/esm/z-chip.entry.js +1 -1
  23. package/dist/esm/z-combobox.entry.js +2 -2
  24. package/dist/esm/z-divider.entry.js +22 -0
  25. package/dist/esm/z-file-upload.entry.js +1 -1
  26. package/dist/esm/z-input_2.entry.js +261 -0
  27. package/dist/esm/z-list_3.entry.js +255 -0
  28. package/dist/esm/z-myz-card-info.entry.js +1 -1
  29. package/dist/esm/z-myz-list-item.entry.js +1 -1
  30. package/dist/esm/z-pocket_3.entry.js +1 -1
  31. package/dist/esm/z-searchbar.entry.js +1 -1
  32. package/dist/esm/z-select.entry.js +321 -0
  33. package/dist/esm/z-skip-to-content.entry.js +1 -1
  34. package/dist/esm/z-slideshow.entry.js +1 -1
  35. package/dist/esm/z-table-header.entry.js +1 -1
  36. package/dist/esm/z-toggle-switch.entry.js +1 -1
  37. package/dist/types/components/inputs/z-select/index.d.ts +2 -0
  38. package/dist/types/components.d.ts +8 -0
  39. package/dist/web-components-library/index.esm.js +1 -1
  40. package/dist/web-components-library/{p-48d3f650.entry.js → p-26033729.entry.js} +1 -1
  41. package/dist/web-components-library/p-33352f9e.entry.js +1 -0
  42. package/dist/web-components-library/{p-229e17af.entry.js → p-53065788.entry.js} +1 -1
  43. package/dist/web-components-library/{p-51333b32.entry.js → p-54b18f6e.entry.js} +1 -1
  44. package/dist/web-components-library/{p-28b288a8.entry.js → p-5c62387a.entry.js} +1 -1
  45. package/dist/web-components-library/p-6acb48e3.entry.js +1 -0
  46. package/dist/web-components-library/{p-102d82ee.entry.js → p-6c163539.entry.js} +1 -1
  47. package/dist/web-components-library/{p-d0accfc5.entry.js → p-7b3b99ee.entry.js} +1 -1
  48. package/{www/build/p-00481c22.js → dist/web-components-library/p-8ebe4adf.js} +1 -1
  49. package/dist/web-components-library/{p-db77ef4e.entry.js → p-93142fac.entry.js} +1 -1
  50. package/dist/web-components-library/p-9c338aeb.entry.js +1 -0
  51. package/dist/web-components-library/{p-669f14ae.entry.js → p-a05ce0a6.entry.js} +1 -1
  52. package/dist/web-components-library/{p-933efc27.entry.js → p-a6c0f149.entry.js} +1 -1
  53. package/dist/web-components-library/p-a79d1412.entry.js +1 -0
  54. package/dist/web-components-library/{p-5bbbda4e.entry.js → p-bb92c90f.entry.js} +1 -1
  55. package/dist/web-components-library/{p-169b9762.entry.js → p-d2127d84.entry.js} +1 -1
  56. package/dist/web-components-library/p-d9a6a204.entry.js +1 -0
  57. package/dist/web-components-library/p-ff27c534.entry.js +1 -0
  58. package/dist/web-components-library/web-components-library.esm.js +1 -1
  59. package/package.json +1 -1
  60. package/www/build/index.esm.js +1 -1
  61. package/www/build/{p-48d3f650.entry.js → p-26033729.entry.js} +1 -1
  62. package/www/build/p-33352f9e.entry.js +1 -0
  63. package/www/build/{p-229e17af.entry.js → p-53065788.entry.js} +1 -1
  64. package/www/build/{p-51333b32.entry.js → p-54b18f6e.entry.js} +1 -1
  65. package/www/build/{p-28b288a8.entry.js → p-5c62387a.entry.js} +1 -1
  66. package/www/build/p-6acb48e3.entry.js +1 -0
  67. package/www/build/{p-102d82ee.entry.js → p-6c163539.entry.js} +1 -1
  68. package/www/build/{p-d0accfc5.entry.js → p-7b3b99ee.entry.js} +1 -1
  69. package/{dist/web-components-library/p-00481c22.js → www/build/p-8ebe4adf.js} +1 -1
  70. package/www/build/{p-db77ef4e.entry.js → p-93142fac.entry.js} +1 -1
  71. package/www/build/p-9c338aeb.entry.js +1 -0
  72. package/www/build/{p-669f14ae.entry.js → p-a05ce0a6.entry.js} +1 -1
  73. package/www/build/{p-933efc27.entry.js → p-a6c0f149.entry.js} +1 -1
  74. package/www/build/p-a79d1412.entry.js +1 -0
  75. package/www/build/{p-5bbbda4e.entry.js → p-bb92c90f.entry.js} +1 -1
  76. package/www/build/{p-169b9762.entry.js → p-d2127d84.entry.js} +1 -1
  77. package/www/build/p-d9a6a204.entry.js +1 -0
  78. package/www/build/p-de48bd49.js +1 -0
  79. package/www/build/p-ff27c534.entry.js +1 -0
  80. package/www/build/web-components-library.esm.js +1 -1
  81. package/www/index.html +1 -1
  82. package/dist/cjs/z-app-header_11.cjs.entry.js +0 -1030
  83. package/dist/esm/z-app-header_11.entry.js +0 -1016
  84. package/dist/web-components-library/p-4bdf6a9b.entry.js +0 -1
  85. package/www/build/p-4bdf6a9b.entry.js +0 -1
  86. package/www/build/p-e9b88186.js +0 -1
@@ -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;
@@ -0,0 +1,261 @@
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$2 = ":host{display:flex;flex-direction:column;font-family:var(--font-family-sans);font-weight:var(--font-rg)}";
9
+
10
+ const ZList = class {
11
+ constructor(hostRef) {
12
+ index.registerInstance(this, hostRef);
13
+ /**
14
+ * [optional] Sets size of inside elements.
15
+ */
16
+ this.size = index$1.ListSize.MEDIUM;
17
+ /**
18
+ * [optional] type of the list marker for each element
19
+ */
20
+ this.listType = index$1.ListType.NONE;
21
+ }
22
+ setChildrenSizeType() {
23
+ const children = this.host.children;
24
+ for (let i = 0; i < children.length; i++) {
25
+ children[i].setAttribute("size", this.size);
26
+ children[i].setAttribute("list-type", this.listType);
27
+ children[i].setAttribute("list-element-position", (i + 1).toString());
28
+ }
29
+ }
30
+ componentDidLoad() {
31
+ this.setChildrenSizeType();
32
+ }
33
+ render() {
34
+ return (index.h(index.Host, { role: "list" }, index.h("slot", null)));
35
+ }
36
+ get host() { return index.getElement(this); }
37
+ };
38
+ ZList.style = stylesCss$2;
39
+
40
+ const stylesCss$1 = ":host{outline:none}:host>.container,:host>.container-contextual-menu{--background-color-list-element:var(--bg-white);--background-hover-color-list-element:var(--color-surface02);--background-active-color-list-element:var(--color-surface02);display:flex;box-sizing:border-box;flex-direction:column;justify-content:center;font-family:var(--font-family-sans);font-weight:var(--font-rg);outline:none}:host([size=\"small\"])>.container{min-height:calc(var(--space-unit) * 4);padding:calc(var(--space-unit) / 2) 0}:host([size=\"medium\"])>.container{min-height:calc(var(--space-unit) * 5);padding:var(--space-unit) 0}:host([size=\"large\"])>.container{min-height:calc(var(--space-unit) * 7);padding:calc(var(--space-unit) * 2) 0}:host([size=\"x-large\"])>.container{min-height:calc(var(--space-unit) * 9);padding:calc(var(--space-unit) * 3) 0}:host([expandable])>.container,:host([expandable])>.container-contextual-menu,:host([clickable])>.container,:host([clickable])>.container-contextual-menu{cursor:pointer}:host([expandable]:hover)>.container,:host([expandable]:hover)>.container-contextual-menu,:host([clickable]:hover)>.container,:host([clickable]:hover)>.container-contextual-menu{background-color:var(--background-hover-color-list-element)}:host([expandable]:focus:focus-visible)>.container,:host([expandable]:focus:focus-visible)>.container-contextual-menu,:host([clickable]:focus:focus-visible)>.container,:host([clickable]:focus:focus-visible)>.container-contextual-menu{box-shadow:var(--shadow-focus-primary)}:host([clickable]:not([expandable]))>.container.clicked,:host([clickable]:not([expandable]))>.container-contextual-menu.clicked{box-shadow:var(--shadow-focus-primary)}:host([expandable]:active)>.container,:host([expandable]:active)>.container-contextual-menu,:host([clickable]:active)>.container,:host([clickable]:active)>.container-contextual-menu{background-color:var(--background-active-color-list-element)}:host([align-button=\"left\"][expandable])>.container>.z-list-element-container,:host([align-button=\"left\"][expandable])>.container-contextual-menu>.z-list-element-container{display:flex}:host([align-button=\"right\"][expandable])>.container>.z-list-element-container,:host([align-button=\"right\"][expandable])>.container-contextual-menu>.z-list-element-container{display:flex;flex-direction:row-reverse;justify-content:space-between}:host([align-button=\"left\"][expandable])>.container>.z-list-element-container>z-icon,:host([align-button=\"left\"][expandable])>.container-contextual-menu>.z-list-element-container>z-icon{margin-right:var(--space-unit)}:host([align-button=\"right\"][expandable])>.container>.z-list-element-container>z-icon,:host([align-button=\"right\"][expandable])>.container-contextual-menu>.z-list-element-container>z-icon{margin-left:var(--space-unit)}:host>.container>.z-list-element-inner-container,:host>.container-contextual-menu>.z-list-element-inner-container{display:none}:host>.container>.z-list-element-inner-container.expanded,:host>.container-contextual-menu>.z-list-element-inner-container.expanded{display:block}:host([clickable]:hover)>.container-contextual-menu{background-color:var(--color-surface03)}.container-contextual-menu:focus-visible{box-shadow:var(--shadow-focus-primary);outline:none}.z-list-content-container{display:flex;align-items:center}";
41
+
42
+ const ZListElement = class {
43
+ /**
44
+ * Constructor.
45
+ */
46
+ constructor(hostRef) {
47
+ index.registerInstance(this, hostRef);
48
+ this.accessibleFocus = index.createEvent(this, "accessibleFocus", 7);
49
+ this.clickItem = index.createEvent(this, "clickItem", 7);
50
+ /**
51
+ * [optional] Align expandable button left or right.
52
+ */
53
+ this.alignButton = index$1.ExpandableListButtonAlign.LEFT;
54
+ /**
55
+ * [optional] Sets element clickable.
56
+ */
57
+ this.clickable = false;
58
+ /**
59
+ * [optional] Sets the divider color.
60
+ */
61
+ this.dividerColor = "color-surface03";
62
+ /**
63
+ * [optional] Sets the position where to insert the divider.
64
+ */
65
+ this.dividerType = index$1.ListDividerType.NONE;
66
+ /**
67
+ * [optional] Sets the divider size.
68
+ */
69
+ this.dividerSize = index$1.DividerSize.SMALL;
70
+ /**
71
+ * [optional] Sets element as expandable.
72
+ */
73
+ this.expandable = false;
74
+ /**
75
+ * [optional] Sets expandable style to element.
76
+ */
77
+ this.expandableStyle = index$1.ExpandableListStyle.ACCORDION;
78
+ /**
79
+ * [optional] Sets size of inside elements.
80
+ */
81
+ this.size = index$1.ListSize.MEDIUM;
82
+ /**
83
+ * [optional] Sets text color of the element.
84
+ */
85
+ this.color = "none";
86
+ /**
87
+ * [optional] Sets disabled style of the element.
88
+ */
89
+ this.disabled = false;
90
+ /**
91
+ * [optional] If is used in ZContextualMenu component
92
+ */
93
+ this.isContextualMenu = false;
94
+ /**
95
+ * [optional] position of the list element inside the list or the group
96
+ */
97
+ this.listElementPosition = "0";
98
+ /**
99
+ * [optional] type of the list marker for each element
100
+ */
101
+ this.listType = index$1.ListType.NONE;
102
+ this.showInnerContent = false;
103
+ this.openElementConfig = {
104
+ accordion: {
105
+ open: "minus-circled",
106
+ close: "plus-circled",
107
+ },
108
+ menu: {
109
+ open: "chevron-up",
110
+ close: "chevron-down",
111
+ },
112
+ };
113
+ this.handleClick = this.handleClick.bind(this);
114
+ this.handleKeyDown = this.handleKeyDown.bind(this);
115
+ }
116
+ accessibleFocusHandler(e) {
117
+ if (this.listElementId === e.detail) {
118
+ const toFocus = this.host.shadowRoot.getElementById(`z-list-element-id-${e.detail}`);
119
+ toFocus.focus();
120
+ }
121
+ }
122
+ /**
123
+ * Handler for click on element. If element is expandable, change state.
124
+ * @returns void
125
+ */
126
+ handleClick() {
127
+ this.clickItem.emit(this.listElementId);
128
+ if (!this.expandable) {
129
+ return;
130
+ }
131
+ this.showInnerContent = !this.showInnerContent;
132
+ }
133
+ calculateClass() {
134
+ if (this.isContextualMenu) {
135
+ return "container-contextual-menu";
136
+ }
137
+ return "container";
138
+ }
139
+ handleKeyDown(event) {
140
+ const expandByKey = event.code === index$1.KeyboardCode.ENTER;
141
+ switch (event.code) {
142
+ case index$1.KeyboardCode.ARROW_DOWN:
143
+ event.preventDefault();
144
+ this.accessibleFocus.emit(this.listElementId + 1);
145
+ break;
146
+ case index$1.KeyboardCode.ARROW_UP:
147
+ event.preventDefault();
148
+ this.accessibleFocus.emit(this.listElementId - 1);
149
+ break;
150
+ case index$1.KeyboardCode.ENTER:
151
+ event.preventDefault();
152
+ this.clickItem.emit(this.listElementId);
153
+ break;
154
+ }
155
+ if (!this.expandable || !expandByKey) {
156
+ return;
157
+ }
158
+ this.showInnerContent = !this.showInnerContent;
159
+ }
160
+ /**
161
+ * Renders button to expand element.
162
+ * @returns expadable button
163
+ */
164
+ renderExpandableButton() {
165
+ if (!this.expandable) {
166
+ return null;
167
+ }
168
+ return (index.h("z-icon", { name: this.showInnerContent
169
+ ? this.openElementConfig[this.expandableStyle].open
170
+ : this.openElementConfig[this.expandableStyle].close }));
171
+ }
172
+ /**
173
+ * Renders expanded content if element is expandable.
174
+ * @returns expanded content
175
+ */
176
+ renderExpandedContent() {
177
+ if (!this.expandable) {
178
+ return null;
179
+ }
180
+ return (index.h("div", { class: {
181
+ "z-list-element-inner-container": true,
182
+ "expanded": this.showInnerContent,
183
+ } }, index.h("slot", { name: "inner-content" })));
184
+ }
185
+ /**
186
+ * Renders content of the z-list-element
187
+ * @returns list content
188
+ */
189
+ renderContent() {
190
+ if (this.listType === index$1.ListType.NONE) {
191
+ return index.h("slot", null);
192
+ }
193
+ if (this.listType === index$1.ListType.ORDERED) {
194
+ return (index.h("div", { class: "z-list-content-container" }, index.h("div", null, this.listElementPosition, ".\u2003"), index.h("slot", null)));
195
+ }
196
+ if (this.listType === index$1.ListType.UNORDERED) {
197
+ return (index.h("div", { class: "z-list-content-container" }, index.h("span", null, "\u2022\u2003"), index.h("slot", null)));
198
+ }
199
+ }
200
+ render() {
201
+ return (index.h(index.Host, { role: "listitem", "aria-expanded": this.expandable ? this.showInnerContent : null, onClick: this.handleClick, onKeyDown: this.handleKeyDown, clickable: this.clickable && !this.disabled, tabIndex: !this.isContextualMenu ? "0" : null }, index.h("div", { class: `${this.calculateClass()}`, style: { color: `var(--${this.color})` }, tabindex: this.isContextualMenu ? "0" : "-1", id: `z-list-element-id-${this.listElementId}` }, index.h("div", { class: "z-list-element-container" }, this.renderExpandableButton(), this.renderContent()), this.renderExpandedContent()), this.dividerType === index$1.ListDividerType.ELEMENT && (index.h("z-divider", { color: this.dividerColor, size: this.dividerSize }))));
202
+ }
203
+ get host() { return index.getElement(this); }
204
+ };
205
+ ZListElement.style = stylesCss$1;
206
+
207
+ const stylesCss = ":host{font-family:var(--font-family-sans);font-weight:var(--font-rg)}:host>.z-list-group-header-container{color:var(--gray700);font-size:var(--font-size-2);font-weight:var(--font-sb) !important;letter-spacing:0.16px;line-height:1.4}:host>.z-list-group-header-container.has-header{padding-top:var(--space-unit);padding-bottom:var(--space-unit)}:host>.z-list-group-header-container.has-header>z-divider{margin-top:var(--space-unit)}";
208
+
209
+ const ZListGroup = class {
210
+ constructor(hostRef) {
211
+ index.registerInstance(this, hostRef);
212
+ /**
213
+ * [optional] Sets size of inside elements.
214
+ */
215
+ this.size = index$1.ListSize.MEDIUM;
216
+ /**
217
+ * [optional] Sets the position where to insert the divider.
218
+ */
219
+ this.dividerType = index$1.ListDividerType.NONE;
220
+ /**
221
+ * [optional] Sets the divider size.
222
+ */
223
+ this.dividerSize = index$1.DividerSize.SMALL;
224
+ /**
225
+ * [optional] Sets the divider color.
226
+ */
227
+ this.dividerColor = "gray200";
228
+ /**
229
+ * [optional] type of the list marker for each element
230
+ */
231
+ this.listType = index$1.ListType.NONE;
232
+ }
233
+ componentDidLoad() {
234
+ const children = this.host.children;
235
+ for (let i = 0; i < children.length; i++) {
236
+ if (children.length - 1 > i) {
237
+ children[i].setAttribute("divider-type", this.dividerType);
238
+ children[i].setAttribute("divider-size", this.dividerSize);
239
+ children[i].setAttribute("divider-color", this.dividerColor);
240
+ }
241
+ children[i].setAttribute("size", this.size);
242
+ children[i].setAttribute("list-type", this.listType);
243
+ children[i].setAttribute("list-element-position", i.toString());
244
+ }
245
+ }
246
+ componentWillLoad() {
247
+ this.hasHeader = !!this.host.querySelector('[slot="header-title"]');
248
+ }
249
+ render() {
250
+ return (index.h(index.Host, { role: "group" }, index.h("div", { class: {
251
+ "z-list-group-header-container": true,
252
+ "has-header": this.hasHeader,
253
+ } }, index.h("slot", { name: "header-title" }), this.dividerType === index$1.ListDividerType.HEADER && (index.h("z-divider", { color: this.dividerColor, size: this.dividerSize }))), index.h("slot", null)));
254
+ }
255
+ get host() { return index.getElement(this); }
256
+ };
257
+ ZListGroup.style = stylesCss;
258
+
259
+ exports.z_list = ZList;
260
+ exports.z_list_element = ZListElement;
261
+ exports.z_list_group = ZListGroup;