@zentto/studio 0.1.0

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 (93) hide show
  1. package/dist/designer/zs-app-wizard.d.ts +33 -0
  2. package/dist/designer/zs-app-wizard.d.ts.map +1 -0
  3. package/dist/designer/zs-app-wizard.js +493 -0
  4. package/dist/designer/zs-app-wizard.js.map +1 -0
  5. package/dist/designer/zs-page-designer.d.ts +30 -0
  6. package/dist/designer/zs-page-designer.d.ts.map +1 -0
  7. package/dist/designer/zs-page-designer.js +466 -0
  8. package/dist/designer/zs-page-designer.js.map +1 -0
  9. package/dist/fields/zs-field-address.d.ts +28 -0
  10. package/dist/fields/zs-field-address.d.ts.map +1 -0
  11. package/dist/fields/zs-field-address.js +129 -0
  12. package/dist/fields/zs-field-address.js.map +1 -0
  13. package/dist/fields/zs-field-chart.d.ts +27 -0
  14. package/dist/fields/zs-field-chart.d.ts.map +1 -0
  15. package/dist/fields/zs-field-chart.js +192 -0
  16. package/dist/fields/zs-field-chart.js.map +1 -0
  17. package/dist/fields/zs-field-checkbox.d.ts +33 -0
  18. package/dist/fields/zs-field-checkbox.d.ts.map +1 -0
  19. package/dist/fields/zs-field-checkbox.js +172 -0
  20. package/dist/fields/zs-field-checkbox.js.map +1 -0
  21. package/dist/fields/zs-field-chips.d.ts +38 -0
  22. package/dist/fields/zs-field-chips.d.ts.map +1 -0
  23. package/dist/fields/zs-field-chips.js +257 -0
  24. package/dist/fields/zs-field-chips.js.map +1 -0
  25. package/dist/fields/zs-field-date.d.ts +23 -0
  26. package/dist/fields/zs-field-date.d.ts.map +1 -0
  27. package/dist/fields/zs-field-date.js +98 -0
  28. package/dist/fields/zs-field-date.js.map +1 -0
  29. package/dist/fields/zs-field-file.d.ts +26 -0
  30. package/dist/fields/zs-field-file.d.ts.map +1 -0
  31. package/dist/fields/zs-field-file.js +190 -0
  32. package/dist/fields/zs-field-file.js.map +1 -0
  33. package/dist/fields/zs-field-heading.d.ts +14 -0
  34. package/dist/fields/zs-field-heading.d.ts.map +1 -0
  35. package/dist/fields/zs-field-heading.js +54 -0
  36. package/dist/fields/zs-field-heading.js.map +1 -0
  37. package/dist/fields/zs-field-html.d.ts +12 -0
  38. package/dist/fields/zs-field-html.d.ts.map +1 -0
  39. package/dist/fields/zs-field-html.js +38 -0
  40. package/dist/fields/zs-field-html.js.map +1 -0
  41. package/dist/fields/zs-field-lookup.d.ts +37 -0
  42. package/dist/fields/zs-field-lookup.d.ts.map +1 -0
  43. package/dist/fields/zs-field-lookup.js +204 -0
  44. package/dist/fields/zs-field-lookup.js.map +1 -0
  45. package/dist/fields/zs-field-media.d.ts +15 -0
  46. package/dist/fields/zs-field-media.d.ts.map +1 -0
  47. package/dist/fields/zs-field-media.js +59 -0
  48. package/dist/fields/zs-field-media.js.map +1 -0
  49. package/dist/fields/zs-field-number.d.ts +35 -0
  50. package/dist/fields/zs-field-number.d.ts.map +1 -0
  51. package/dist/fields/zs-field-number.js +192 -0
  52. package/dist/fields/zs-field-number.js.map +1 -0
  53. package/dist/fields/zs-field-select.d.ts +34 -0
  54. package/dist/fields/zs-field-select.d.ts.map +1 -0
  55. package/dist/fields/zs-field-select.js +237 -0
  56. package/dist/fields/zs-field-select.js.map +1 -0
  57. package/dist/fields/zs-field-separator.d.ts +12 -0
  58. package/dist/fields/zs-field-separator.d.ts.map +1 -0
  59. package/dist/fields/zs-field-separator.js +37 -0
  60. package/dist/fields/zs-field-separator.js.map +1 -0
  61. package/dist/fields/zs-field-signature.d.ts +34 -0
  62. package/dist/fields/zs-field-signature.d.ts.map +1 -0
  63. package/dist/fields/zs-field-signature.js +191 -0
  64. package/dist/fields/zs-field-signature.js.map +1 -0
  65. package/dist/fields/zs-field-switch.d.ts +19 -0
  66. package/dist/fields/zs-field-switch.d.ts.map +1 -0
  67. package/dist/fields/zs-field-switch.js +100 -0
  68. package/dist/fields/zs-field-switch.js.map +1 -0
  69. package/dist/fields/zs-field-text.d.ts +24 -0
  70. package/dist/fields/zs-field-text.d.ts.map +1 -0
  71. package/dist/fields/zs-field-text.js +115 -0
  72. package/dist/fields/zs-field-text.js.map +1 -0
  73. package/dist/fields/zs-field-treeview.d.ts +37 -0
  74. package/dist/fields/zs-field-treeview.d.ts.map +1 -0
  75. package/dist/fields/zs-field-treeview.js +234 -0
  76. package/dist/fields/zs-field-treeview.js.map +1 -0
  77. package/dist/styles/tokens.d.ts +3 -0
  78. package/dist/styles/tokens.d.ts.map +1 -0
  79. package/dist/styles/tokens.js +159 -0
  80. package/dist/styles/tokens.js.map +1 -0
  81. package/dist/zentto-studio-app.d.ts +55 -0
  82. package/dist/zentto-studio-app.d.ts.map +1 -0
  83. package/dist/zentto-studio-app.js +748 -0
  84. package/dist/zentto-studio-app.js.map +1 -0
  85. package/dist/zentto-studio-designer.d.ts +13 -0
  86. package/dist/zentto-studio-designer.d.ts.map +1 -0
  87. package/dist/zentto-studio-designer.js +75 -0
  88. package/dist/zentto-studio-designer.js.map +1 -0
  89. package/dist/zentto-studio-renderer.d.ts +53 -0
  90. package/dist/zentto-studio-renderer.d.ts.map +1 -0
  91. package/dist/zentto-studio-renderer.js +636 -0
  92. package/dist/zentto-studio-renderer.js.map +1 -0
  93. package/package.json +56 -0
@@ -0,0 +1,192 @@
1
+ // @zentto/studio — Number field web component
2
+ // Handles: number, currency, percentage, slider, rating
3
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
4
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
5
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
6
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
7
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
8
+ };
9
+ import { LitElement, html, css } from 'lit';
10
+ import { customElement, property } from 'lit/decorators.js';
11
+ import { fieldBaseStyles } from '../styles/tokens.js';
12
+ let ZsFieldNumber = class ZsFieldNumber extends LitElement {
13
+ constructor() {
14
+ super(...arguments);
15
+ this.fieldId = '';
16
+ this.label = '';
17
+ this.value = null;
18
+ this.placeholder = '';
19
+ this.helpText = '';
20
+ this.required = false;
21
+ this.disabled = false;
22
+ this.readOnly = false;
23
+ this.isCurrency = false;
24
+ this.isPercentage = false;
25
+ this.currencySymbol = '$';
26
+ this.mode = 'input';
27
+ this.min = 0;
28
+ this.max = 100;
29
+ this.step = 1;
30
+ this.maxRating = 5;
31
+ this.errors = [];
32
+ }
33
+ static { this.styles = [fieldBaseStyles, css `
34
+ :host { display: block; }
35
+ .zs-number-wrapper { position: relative; }
36
+ .zs-prefix, .zs-suffix {
37
+ position: absolute; top: 50%; transform: translateY(-50%);
38
+ color: var(--zs-text-muted); font-size: var(--zs-font-size-sm);
39
+ pointer-events: none;
40
+ }
41
+ .zs-prefix { left: 12px; }
42
+ .zs-suffix { right: 12px; }
43
+ .zs-input--has-prefix { padding-left: 28px; }
44
+ .zs-input--has-suffix { padding-right: 28px; }
45
+ .zs-slider { width: 100%; accent-color: var(--zs-primary); height: 6px; cursor: pointer; }
46
+ .zs-slider-value { font-size: var(--zs-font-size-sm); color: var(--zs-text-secondary); text-align: right; }
47
+ .zs-rating { display: flex; gap: 2px; cursor: pointer; }
48
+ .zs-star { font-size: 24px; color: var(--zs-border); transition: color var(--zs-transition); }
49
+ .zs-star--active { color: #f1c40f; }
50
+ .zs-star:hover { color: #f39c12; }
51
+ `]; }
52
+ emitChange(value) {
53
+ this.dispatchEvent(new CustomEvent('field-change', {
54
+ detail: { fieldId: this.fieldId, value },
55
+ bubbles: true, composed: true,
56
+ }));
57
+ }
58
+ handleInput(e) {
59
+ const input = e.target;
60
+ const val = input.value === '' ? null : parseFloat(input.value);
61
+ this.emitChange(val);
62
+ }
63
+ handleSlider(e) {
64
+ const input = e.target;
65
+ this.emitChange(parseFloat(input.value));
66
+ }
67
+ handleRating(star) {
68
+ if (this.disabled || this.readOnly)
69
+ return;
70
+ this.emitChange(star === this.value ? 0 : star);
71
+ }
72
+ render() {
73
+ const hasError = this.errors.length > 0;
74
+ const labelClass = `zs-label ${this.required ? 'zs-label--required' : ''}`;
75
+ return html `
76
+ <div class="zs-field">
77
+ ${this.label ? html `<label class="${labelClass}">${this.label}</label>` : ''}
78
+ ${this.mode === 'slider' ? this.renderSlider() :
79
+ this.mode === 'rating' ? this.renderRating() :
80
+ this.renderInput(hasError)}
81
+ ${hasError ? html `<span class="zs-error">${this.errors[0]}</span>` : ''}
82
+ ${this.helpText && !hasError ? html `<span class="zs-help">${this.helpText}</span>` : ''}
83
+ </div>
84
+ `;
85
+ }
86
+ renderInput(hasError) {
87
+ const classes = [
88
+ 'zs-input',
89
+ hasError ? 'zs-input--error' : '',
90
+ this.isCurrency ? 'zs-input--has-prefix' : '',
91
+ this.isPercentage ? 'zs-input--has-suffix' : '',
92
+ ].filter(Boolean).join(' ');
93
+ return html `
94
+ <div class="zs-number-wrapper">
95
+ ${this.isCurrency ? html `<span class="zs-prefix">${this.currencySymbol}</span>` : ''}
96
+ <input
97
+ class="${classes}"
98
+ type="number"
99
+ .value="${this.value != null ? String(this.value) : ''}"
100
+ placeholder="${this.placeholder}"
101
+ step="${this.step}"
102
+ ?disabled="${this.disabled}"
103
+ ?readonly="${this.readOnly}"
104
+ @input="${this.handleInput}"
105
+ />
106
+ ${this.isPercentage ? html `<span class="zs-suffix">%</span>` : ''}
107
+ </div>
108
+ `;
109
+ }
110
+ renderSlider() {
111
+ return html `
112
+ <input
113
+ class="zs-slider"
114
+ type="range"
115
+ .value="${String(this.value ?? this.min)}"
116
+ min="${this.min}" max="${this.max}" step="${this.step}"
117
+ ?disabled="${this.disabled}"
118
+ @input="${this.handleSlider}"
119
+ />
120
+ <div class="zs-slider-value">${this.value ?? this.min}</div>
121
+ `;
122
+ }
123
+ renderRating() {
124
+ const stars = Array.from({ length: this.maxRating }, (_, i) => i + 1);
125
+ return html `
126
+ <div class="zs-rating">
127
+ ${stars.map(s => html `
128
+ <span
129
+ class="zs-star ${s <= (this.value ?? 0) ? 'zs-star--active' : ''}"
130
+ @click="${() => this.handleRating(s)}"
131
+ >★</span>
132
+ `)}
133
+ </div>
134
+ `;
135
+ }
136
+ };
137
+ __decorate([
138
+ property()
139
+ ], ZsFieldNumber.prototype, "fieldId", void 0);
140
+ __decorate([
141
+ property()
142
+ ], ZsFieldNumber.prototype, "label", void 0);
143
+ __decorate([
144
+ property({ type: Number })
145
+ ], ZsFieldNumber.prototype, "value", void 0);
146
+ __decorate([
147
+ property()
148
+ ], ZsFieldNumber.prototype, "placeholder", void 0);
149
+ __decorate([
150
+ property()
151
+ ], ZsFieldNumber.prototype, "helpText", void 0);
152
+ __decorate([
153
+ property({ type: Boolean })
154
+ ], ZsFieldNumber.prototype, "required", void 0);
155
+ __decorate([
156
+ property({ type: Boolean })
157
+ ], ZsFieldNumber.prototype, "disabled", void 0);
158
+ __decorate([
159
+ property({ type: Boolean })
160
+ ], ZsFieldNumber.prototype, "readOnly", void 0);
161
+ __decorate([
162
+ property({ type: Boolean })
163
+ ], ZsFieldNumber.prototype, "isCurrency", void 0);
164
+ __decorate([
165
+ property({ type: Boolean })
166
+ ], ZsFieldNumber.prototype, "isPercentage", void 0);
167
+ __decorate([
168
+ property()
169
+ ], ZsFieldNumber.prototype, "currencySymbol", void 0);
170
+ __decorate([
171
+ property()
172
+ ], ZsFieldNumber.prototype, "mode", void 0);
173
+ __decorate([
174
+ property({ type: Number })
175
+ ], ZsFieldNumber.prototype, "min", void 0);
176
+ __decorate([
177
+ property({ type: Number })
178
+ ], ZsFieldNumber.prototype, "max", void 0);
179
+ __decorate([
180
+ property({ type: Number })
181
+ ], ZsFieldNumber.prototype, "step", void 0);
182
+ __decorate([
183
+ property({ type: Number })
184
+ ], ZsFieldNumber.prototype, "maxRating", void 0);
185
+ __decorate([
186
+ property({ type: Array })
187
+ ], ZsFieldNumber.prototype, "errors", void 0);
188
+ ZsFieldNumber = __decorate([
189
+ customElement('zs-field-number')
190
+ ], ZsFieldNumber);
191
+ export { ZsFieldNumber };
192
+ //# sourceMappingURL=zs-field-number.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zs-field-number.js","sourceRoot":"","sources":["../../src/fields/zs-field-number.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import { LitElement } from 'lit';
2
+ interface SelectOption {
3
+ value: string | number;
4
+ label: string;
5
+ disabled?: boolean;
6
+ group?: string;
7
+ }
8
+ export declare class ZsFieldSelect extends LitElement {
9
+ static styles: import("lit").CSSResult[];
10
+ fieldId: string;
11
+ label: string;
12
+ value: string | number | (string | number)[];
13
+ placeholder: string;
14
+ helpText: string;
15
+ required: boolean;
16
+ disabled: boolean;
17
+ multiple: boolean;
18
+ mode: 'select' | 'tags';
19
+ options: SelectOption[];
20
+ errors: string[];
21
+ private handleChange;
22
+ private removeTag;
23
+ private handleTagInput;
24
+ render(): import("lit-html").TemplateResult<1>;
25
+ private renderSelect;
26
+ private renderTags;
27
+ }
28
+ declare global {
29
+ interface HTMLElementTagNameMap {
30
+ 'zs-field-select': ZsFieldSelect;
31
+ }
32
+ }
33
+ export {};
34
+ //# sourceMappingURL=zs-field-select.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zs-field-select.d.ts","sourceRoot":"","sources":["../../src/fields/zs-field-select.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAI5C,UAAU,YAAY;IACpB,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBACa,aAAc,SAAQ,UAAU;IAC3C,MAAM,CAAC,MAAM,4BAiDV;IAES,OAAO,SAAM;IACb,KAAK,SAAM;IACX,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAM;IAClD,WAAW,SAAmB;IAC9B,QAAQ,SAAM;IACG,QAAQ,UAAS;IACjB,QAAQ,UAAS;IACjB,QAAQ,UAAS;IAClC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAAY;IACpB,OAAO,EAAE,YAAY,EAAE,CAAM;IAC7B,MAAM,EAAE,MAAM,EAAE,CAAM;IAEjD,OAAO,CAAC,YAAY;IAgBpB,OAAO,CAAC,SAAS;IAUjB,OAAO,CAAC,cAAc;IAkBtB,MAAM;IAcN,OAAO,CAAC,YAAY;IAmDpB,OAAO,CAAC,UAAU;CAmBnB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,iBAAiB,EAAE,aAAa,CAAC;KAClC;CACF"}
@@ -0,0 +1,237 @@
1
+ // @zentto/studio — Select field web component
2
+ // Handles: select, multiselect, tags
3
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
4
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
5
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
6
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
7
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
8
+ };
9
+ import { LitElement, html, css } from 'lit';
10
+ import { customElement, property } from 'lit/decorators.js';
11
+ import { fieldBaseStyles } from '../styles/tokens.js';
12
+ let ZsFieldSelect = class ZsFieldSelect extends LitElement {
13
+ constructor() {
14
+ super(...arguments);
15
+ this.fieldId = '';
16
+ this.label = '';
17
+ this.value = '';
18
+ this.placeholder = 'Seleccione...';
19
+ this.helpText = '';
20
+ this.required = false;
21
+ this.disabled = false;
22
+ this.multiple = false;
23
+ this.mode = 'select';
24
+ this.options = [];
25
+ this.errors = [];
26
+ }
27
+ static { this.styles = [fieldBaseStyles, css `
28
+ :host { display: block; }
29
+ .zs-select {
30
+ height: var(--zs-input-height);
31
+ padding: var(--zs-input-padding);
32
+ border: var(--zs-input-border);
33
+ border-radius: var(--zs-radius);
34
+ background: var(--zs-input-bg);
35
+ color: var(--zs-text);
36
+ font-family: var(--zs-font-family);
37
+ font-size: var(--zs-font-size);
38
+ outline: none;
39
+ width: 100%;
40
+ cursor: pointer;
41
+ appearance: none;
42
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236c757d' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
43
+ background-repeat: no-repeat;
44
+ background-position: right 12px center;
45
+ padding-right: 32px;
46
+ transition: border-color var(--zs-transition), box-shadow var(--zs-transition);
47
+ }
48
+ .zs-select:focus {
49
+ border-color: var(--zs-border-focus);
50
+ box-shadow: 0 0 0 3px var(--zs-primary-light);
51
+ }
52
+ .zs-select:disabled { opacity: 0.6; cursor: not-allowed; }
53
+ .zs-select--error { border-color: var(--zs-danger); }
54
+ .zs-select--multiple { height: auto; min-height: 80px; }
55
+ .zs-tags {
56
+ display: flex; flex-wrap: wrap; gap: 4px;
57
+ padding: 4px; border: var(--zs-input-border); border-radius: var(--zs-radius);
58
+ background: var(--zs-input-bg); min-height: var(--zs-input-height);
59
+ align-items: center; cursor: text;
60
+ }
61
+ .zs-tag {
62
+ display: inline-flex; align-items: center; gap: 4px;
63
+ padding: 2px 8px; border-radius: 12px;
64
+ background: var(--zs-primary-light); color: var(--zs-primary);
65
+ font-size: var(--zs-font-size-sm);
66
+ }
67
+ .zs-tag-remove {
68
+ cursor: pointer; font-size: 14px; line-height: 1;
69
+ color: var(--zs-primary-hover);
70
+ }
71
+ .zs-tag-input {
72
+ border: none; outline: none; flex: 1; min-width: 60px;
73
+ font-family: var(--zs-font-family); font-size: var(--zs-font-size);
74
+ background: transparent; color: var(--zs-text);
75
+ }
76
+ `]; }
77
+ handleChange(e) {
78
+ const select = e.target;
79
+ let value;
80
+ if (this.multiple) {
81
+ value = Array.from(select.selectedOptions).map(o => o.value);
82
+ }
83
+ else {
84
+ value = select.value;
85
+ }
86
+ this.dispatchEvent(new CustomEvent('field-change', {
87
+ detail: { fieldId: this.fieldId, value },
88
+ bubbles: true, composed: true,
89
+ }));
90
+ }
91
+ removeTag(tagValue) {
92
+ if (this.disabled)
93
+ return;
94
+ const currentValues = Array.isArray(this.value) ? this.value : [];
95
+ const newValues = currentValues.filter(v => v !== tagValue);
96
+ this.dispatchEvent(new CustomEvent('field-change', {
97
+ detail: { fieldId: this.fieldId, value: newValues },
98
+ bubbles: true, composed: true,
99
+ }));
100
+ }
101
+ handleTagInput(e) {
102
+ if (e.key !== 'Enter' && e.key !== ',')
103
+ return;
104
+ e.preventDefault();
105
+ const input = e.target;
106
+ const tag = input.value.trim();
107
+ if (!tag)
108
+ return;
109
+ const currentValues = Array.isArray(this.value) ? [...this.value] : [];
110
+ if (!currentValues.includes(tag)) {
111
+ currentValues.push(tag);
112
+ this.dispatchEvent(new CustomEvent('field-change', {
113
+ detail: { fieldId: this.fieldId, value: currentValues },
114
+ bubbles: true, composed: true,
115
+ }));
116
+ }
117
+ input.value = '';
118
+ }
119
+ render() {
120
+ const hasError = this.errors.length > 0;
121
+ const labelClass = `zs-label ${this.required ? 'zs-label--required' : ''}`;
122
+ return html `
123
+ <div class="zs-field">
124
+ ${this.label ? html `<label class="${labelClass}">${this.label}</label>` : ''}
125
+ ${this.mode === 'tags' ? this.renderTags() : this.renderSelect(hasError)}
126
+ ${hasError ? html `<span class="zs-error">${this.errors[0]}</span>` : ''}
127
+ ${this.helpText && !hasError ? html `<span class="zs-help">${this.helpText}</span>` : ''}
128
+ </div>
129
+ `;
130
+ }
131
+ renderSelect(hasError) {
132
+ const classes = [
133
+ 'zs-select',
134
+ hasError ? 'zs-select--error' : '',
135
+ this.multiple ? 'zs-select--multiple' : '',
136
+ ].filter(Boolean).join(' ');
137
+ const selectedValues = Array.isArray(this.value) ? this.value.map(String) : [String(this.value)];
138
+ // Group options
139
+ const groups = new Map();
140
+ const ungrouped = [];
141
+ for (const opt of this.options) {
142
+ if (opt.group) {
143
+ if (!groups.has(opt.group))
144
+ groups.set(opt.group, []);
145
+ groups.get(opt.group).push(opt);
146
+ }
147
+ else {
148
+ ungrouped.push(opt);
149
+ }
150
+ }
151
+ return html `
152
+ <select
153
+ class="${classes}"
154
+ ?disabled="${this.disabled}"
155
+ ?multiple="${this.multiple}"
156
+ @change="${this.handleChange}"
157
+ >
158
+ ${!this.multiple ? html `<option value="" ?selected="${!this.value}">${this.placeholder}</option>` : ''}
159
+ ${ungrouped.map(opt => html `
160
+ <option
161
+ value="${opt.value}"
162
+ ?selected="${selectedValues.includes(String(opt.value))}"
163
+ ?disabled="${opt.disabled}"
164
+ >${opt.label}</option>
165
+ `)}
166
+ ${Array.from(groups).map(([group, opts]) => html `
167
+ <optgroup label="${group}">
168
+ ${opts.map(opt => html `
169
+ <option
170
+ value="${opt.value}"
171
+ ?selected="${selectedValues.includes(String(opt.value))}"
172
+ ?disabled="${opt.disabled}"
173
+ >${opt.label}</option>
174
+ `)}
175
+ </optgroup>
176
+ `)}
177
+ </select>
178
+ `;
179
+ }
180
+ renderTags() {
181
+ const tags = Array.isArray(this.value) ? this.value : [];
182
+ return html `
183
+ <div class="zs-tags">
184
+ ${tags.map(tag => html `
185
+ <span class="zs-tag">
186
+ ${tag}
187
+ <span class="zs-tag-remove" @click="${() => this.removeTag(tag)}">×</span>
188
+ </span>
189
+ `)}
190
+ <input
191
+ class="zs-tag-input"
192
+ placeholder="${tags.length === 0 ? this.placeholder : ''}"
193
+ ?disabled="${this.disabled}"
194
+ @keydown="${this.handleTagInput}"
195
+ />
196
+ </div>
197
+ `;
198
+ }
199
+ };
200
+ __decorate([
201
+ property()
202
+ ], ZsFieldSelect.prototype, "fieldId", void 0);
203
+ __decorate([
204
+ property()
205
+ ], ZsFieldSelect.prototype, "label", void 0);
206
+ __decorate([
207
+ property()
208
+ ], ZsFieldSelect.prototype, "value", void 0);
209
+ __decorate([
210
+ property()
211
+ ], ZsFieldSelect.prototype, "placeholder", void 0);
212
+ __decorate([
213
+ property()
214
+ ], ZsFieldSelect.prototype, "helpText", void 0);
215
+ __decorate([
216
+ property({ type: Boolean })
217
+ ], ZsFieldSelect.prototype, "required", void 0);
218
+ __decorate([
219
+ property({ type: Boolean })
220
+ ], ZsFieldSelect.prototype, "disabled", void 0);
221
+ __decorate([
222
+ property({ type: Boolean })
223
+ ], ZsFieldSelect.prototype, "multiple", void 0);
224
+ __decorate([
225
+ property()
226
+ ], ZsFieldSelect.prototype, "mode", void 0);
227
+ __decorate([
228
+ property({ type: Array })
229
+ ], ZsFieldSelect.prototype, "options", void 0);
230
+ __decorate([
231
+ property({ type: Array })
232
+ ], ZsFieldSelect.prototype, "errors", void 0);
233
+ ZsFieldSelect = __decorate([
234
+ customElement('zs-field-select')
235
+ ], ZsFieldSelect);
236
+ export { ZsFieldSelect };
237
+ //# sourceMappingURL=zs-field-select.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zs-field-select.js","sourceRoot":"","sources":["../../src/fields/zs-field-select.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { LitElement } from 'lit';
2
+ export declare class ZsFieldSeparator extends LitElement {
3
+ static styles: import("lit").CSSResult;
4
+ variant: 'thin' | 'thick' | 'dashed';
5
+ render(): import("lit-html").TemplateResult<1>;
6
+ }
7
+ declare global {
8
+ interface HTMLElementTagNameMap {
9
+ 'zs-field-separator': ZsFieldSeparator;
10
+ }
11
+ }
12
+ //# sourceMappingURL=zs-field-separator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zs-field-separator.d.ts","sourceRoot":"","sources":["../../src/fields/zs-field-separator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAG5C,qBACa,gBAAiB,SAAQ,UAAU;IAC9C,MAAM,CAAC,MAAM,0BASX;IAEU,OAAO,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAU;IAE1D,MAAM;CAIP;AAED,OAAO,CAAC,MAAM,CAAC;IAAE,UAAU,qBAAqB;QAAG,oBAAoB,EAAE,gBAAgB,CAAC;KAAE;CAAE"}
@@ -0,0 +1,37 @@
1
+ // @zentto/studio — Separator/divider field
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ import { LitElement, html, css } from 'lit';
9
+ import { customElement, property } from 'lit/decorators.js';
10
+ let ZsFieldSeparator = class ZsFieldSeparator extends LitElement {
11
+ constructor() {
12
+ super(...arguments);
13
+ this.variant = 'thin';
14
+ }
15
+ static { this.styles = css `
16
+ :host { display: block; }
17
+ .zs-separator {
18
+ border: none;
19
+ border-top: 1px solid var(--zs-border, #dee2e6);
20
+ margin: 8px 0;
21
+ }
22
+ .zs-separator--thick { border-top-width: 2px; }
23
+ .zs-separator--dashed { border-top-style: dashed; }
24
+ `; }
25
+ render() {
26
+ const cls = `zs-separator ${this.variant === 'thick' ? 'zs-separator--thick' : this.variant === 'dashed' ? 'zs-separator--dashed' : ''}`;
27
+ return html `<hr class="${cls}" />`;
28
+ }
29
+ };
30
+ __decorate([
31
+ property()
32
+ ], ZsFieldSeparator.prototype, "variant", void 0);
33
+ ZsFieldSeparator = __decorate([
34
+ customElement('zs-field-separator')
35
+ ], ZsFieldSeparator);
36
+ export { ZsFieldSeparator };
37
+ //# sourceMappingURL=zs-field-separator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zs-field-separator.js","sourceRoot":"","sources":["../../src/fields/zs-field-separator.ts"],"names":[],"mappings":"AAAA,2CAA2C;;;;;;;AAE3C,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAGrD,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,UAAU;IAAzC;;QAYO,YAAO,GAAgC,MAAM,CAAC;IAM5D,CAAC;aAjBQ,WAAM,GAAG,GAAG,CAAA;;;;;;;;;GASlB,AATY,CASX;IAIF,MAAM;QACJ,MAAM,GAAG,GAAG,gBAAgB,IAAI,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACzI,OAAO,IAAI,CAAA,cAAc,GAAG,MAAM,CAAC;IACrC,CAAC;;AALW;IAAX,QAAQ,EAAE;iDAA+C;AAZ/C,gBAAgB;IAD5B,aAAa,CAAC,oBAAoB,CAAC;GACvB,gBAAgB,CAkB5B"}
@@ -0,0 +1,34 @@
1
+ import { LitElement } from 'lit';
2
+ export declare class ZsFieldSignature extends LitElement {
3
+ static styles: import("lit").CSSResult[];
4
+ fieldId: string;
5
+ label: string;
6
+ helpText: string;
7
+ value: string;
8
+ required: boolean;
9
+ disabled: boolean;
10
+ penWidth: number;
11
+ penColor: string;
12
+ errors: string[];
13
+ private drawing;
14
+ private canvas;
15
+ private ctx;
16
+ private lastX;
17
+ private lastY;
18
+ firstUpdated(): void;
19
+ private resizeCanvas;
20
+ private loadSignature;
21
+ private getPos;
22
+ private startDraw;
23
+ private draw;
24
+ private endDraw;
25
+ private emitValue;
26
+ private clear;
27
+ render(): import("lit-html").TemplateResult<1>;
28
+ }
29
+ declare global {
30
+ interface HTMLElementTagNameMap {
31
+ 'zs-field-signature': ZsFieldSignature;
32
+ }
33
+ }
34
+ //# sourceMappingURL=zs-field-signature.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zs-field-signature.d.ts","sourceRoot":"","sources":["../../src/fields/zs-field-signature.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAI5C,qBACa,gBAAiB,SAAQ,UAAU;IAC9C,MAAM,CAAC,MAAM,4BAkBV;IAES,OAAO,SAAM;IACb,KAAK,SAAM;IACX,QAAQ,SAAM;IACd,KAAK,SAAM;IACM,QAAQ,UAAS;IACjB,QAAQ,UAAS;IAClB,QAAQ,SAAK;IAC7B,QAAQ,SAAa;IACN,MAAM,EAAE,MAAM,EAAE,CAAM;IAExC,OAAO,CAAC,OAAO,CAAS;IAChB,OAAO,CAAC,MAAM,CAAqB;IACpD,OAAO,CAAC,GAAG,CAAyC;IACpD,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,KAAK,CAAK;IAElB,YAAY;IAWZ,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,MAAM;IAQd,OAAO,CAAC,SAAS;IASjB,OAAO,CAAC,IAAI;IAgBZ,OAAO,CAAC,OAAO;IAMf,OAAO,CAAC,SAAS;IAQjB,OAAO,CAAC,KAAK;IASb,MAAM;CA0BP;AAED,OAAO,CAAC,MAAM,CAAC;IAAE,UAAU,qBAAqB;QAAG,oBAAoB,EAAE,gBAAgB,CAAC;KAAE;CAAE"}