@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,27 @@
1
+ import { LitElement } from 'lit';
2
+ interface ChartDataPoint {
3
+ label: string;
4
+ value: number;
5
+ color?: string;
6
+ }
7
+ export declare class ZsFieldChart extends LitElement {
8
+ static styles: import("lit").CSSResult;
9
+ label: string;
10
+ chartType: 'bar' | 'line' | 'pie' | 'donut';
11
+ data: ChartDataPoint[];
12
+ width: number;
13
+ height: number;
14
+ render(): import("lit-html").TemplateResult<1>;
15
+ private color;
16
+ private renderBar;
17
+ private renderLine;
18
+ private renderPie;
19
+ private renderLegend;
20
+ }
21
+ declare global {
22
+ interface HTMLElementTagNameMap {
23
+ 'zs-field-chart': ZsFieldChart;
24
+ }
25
+ }
26
+ export {};
27
+ //# sourceMappingURL=zs-field-chart.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zs-field-chart.d.ts","sourceRoot":"","sources":["../../src/fields/zs-field-chart.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAG5C,UAAU,cAAc;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAOD,qBACa,YAAa,SAAQ,UAAU;IAC1C,MAAM,CAAC,MAAM,0BAoBX;IAEU,KAAK,SAAM;IACX,SAAS,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,CAAS;IACrC,IAAI,EAAE,cAAc,EAAE,CAAM;IAC3B,KAAK,SAAO;IACZ,MAAM,SAAO;IAEzC,MAAM;IAaN,OAAO,CAAC,KAAK;IAIb,OAAO,CAAC,SAAS;IA4BjB,OAAO,CAAC,UAAU;IAgClB,OAAO,CAAC,SAAS;IA6CjB,OAAO,CAAC,YAAY;CAarB;AAED,OAAO,CAAC,MAAM,CAAC;IAAE,UAAU,qBAAqB;QAAG,gBAAgB,EAAE,YAAY,CAAC;KAAE;CAAE"}
@@ -0,0 +1,192 @@
1
+ // @zentto/studio — Inline SVG chart field
2
+ // Renders bar, line, pie, donut charts from data
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
+ const DEFAULT_COLORS = [
12
+ '#e67e22', '#3498db', '#27ae60', '#e74c3c', '#9b59b6',
13
+ '#f39c12', '#1abc9c', '#34495e', '#e91e63', '#00bcd4',
14
+ ];
15
+ let ZsFieldChart = class ZsFieldChart extends LitElement {
16
+ constructor() {
17
+ super(...arguments);
18
+ this.label = '';
19
+ this.chartType = 'bar';
20
+ this.data = [];
21
+ this.width = 400;
22
+ this.height = 250;
23
+ }
24
+ static { this.styles = css `
25
+ :host { display: block; }
26
+ .zs-chart-wrapper {
27
+ font-family: var(--zs-font-family, sans-serif);
28
+ }
29
+ .zs-chart-title {
30
+ font-size: var(--zs-font-size, 14px);
31
+ font-weight: 600; margin-bottom: 8px;
32
+ color: var(--zs-text, #212529);
33
+ }
34
+ svg { width: 100%; height: auto; }
35
+ .zs-chart-legend {
36
+ display: flex; flex-wrap: wrap; gap: 12px;
37
+ margin-top: 8px; font-size: 12px;
38
+ }
39
+ .zs-chart-legend-item { display: flex; align-items: center; gap: 4px; }
40
+ .zs-chart-legend-dot {
41
+ width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0;
42
+ }
43
+ .zs-chart-legend-label { color: var(--zs-text-secondary, #6c757d); }
44
+ `; }
45
+ render() {
46
+ return html `
47
+ <div class="zs-chart-wrapper">
48
+ ${this.label ? html `<div class="zs-chart-title">${this.label}</div>` : ''}
49
+ ${this.chartType === 'bar' ? this.renderBar() :
50
+ this.chartType === 'line' ? this.renderLine() :
51
+ this.chartType === 'pie' || this.chartType === 'donut' ? this.renderPie() :
52
+ this.renderBar()}
53
+ ${this.renderLegend()}
54
+ </div>
55
+ `;
56
+ }
57
+ color(i) {
58
+ return this.data[i]?.color ?? DEFAULT_COLORS[i % DEFAULT_COLORS.length];
59
+ }
60
+ renderBar() {
61
+ if (this.data.length === 0)
62
+ return html ``;
63
+ const maxVal = Math.max(...this.data.map(d => d.value), 1);
64
+ const barW = Math.max(20, (this.width - 60) / this.data.length - 8);
65
+ const chartH = this.height - 40;
66
+ return html `
67
+ <svg viewBox="0 0 ${this.width} ${this.height}" xmlns="http://www.w3.org/2000/svg">
68
+ <!-- Axis -->
69
+ <line x1="40" y1="10" x2="40" y2="${chartH + 10}" stroke="#dee2e6" stroke-width="1"/>
70
+ <line x1="40" y1="${chartH + 10}" x2="${this.width - 10}" y2="${chartH + 10}" stroke="#dee2e6" stroke-width="1"/>
71
+ ${this.data.map((d, i) => {
72
+ const barH = (d.value / maxVal) * chartH;
73
+ const x = 50 + i * (barW + 8);
74
+ const y = chartH + 10 - barH;
75
+ return html `
76
+ <rect x="${x}" y="${y}" width="${barW}" height="${barH}"
77
+ fill="${this.color(i)}" rx="3" opacity="0.85">
78
+ <title>${d.label}: ${d.value}</title>
79
+ </rect>
80
+ <text x="${x + barW / 2}" y="${chartH + 25}" text-anchor="middle"
81
+ font-size="10" fill="#6c757d">${d.label.slice(0, 8)}</text>
82
+ `;
83
+ })}
84
+ </svg>
85
+ `;
86
+ }
87
+ renderLine() {
88
+ if (this.data.length === 0)
89
+ return html ``;
90
+ const maxVal = Math.max(...this.data.map(d => d.value), 1);
91
+ const chartH = this.height - 40;
92
+ const chartW = this.width - 60;
93
+ const step = chartW / Math.max(this.data.length - 1, 1);
94
+ const points = this.data.map((d, i) => {
95
+ const x = 50 + i * step;
96
+ const y = chartH + 10 - (d.value / maxVal) * chartH;
97
+ return `${x},${y}`;
98
+ }).join(' ');
99
+ return html `
100
+ <svg viewBox="0 0 ${this.width} ${this.height}" xmlns="http://www.w3.org/2000/svg">
101
+ <line x1="40" y1="10" x2="40" y2="${chartH + 10}" stroke="#dee2e6" stroke-width="1"/>
102
+ <line x1="40" y1="${chartH + 10}" x2="${this.width - 10}" y2="${chartH + 10}" stroke="#dee2e6" stroke-width="1"/>
103
+ <polyline points="${points}" fill="none" stroke="${this.color(0)}" stroke-width="2.5" stroke-linejoin="round"/>
104
+ ${this.data.map((d, i) => {
105
+ const x = 50 + i * step;
106
+ const y = chartH + 10 - (d.value / maxVal) * chartH;
107
+ return html `
108
+ <circle cx="${x}" cy="${y}" r="4" fill="${this.color(0)}" stroke="white" stroke-width="2">
109
+ <title>${d.label}: ${d.value}</title>
110
+ </circle>
111
+ <text x="${x}" y="${chartH + 25}" text-anchor="middle" font-size="10" fill="#6c757d">${d.label.slice(0, 8)}</text>
112
+ `;
113
+ })}
114
+ </svg>
115
+ `;
116
+ }
117
+ renderPie() {
118
+ const total = this.data.reduce((sum, d) => sum + d.value, 0);
119
+ if (total === 0)
120
+ return html ``;
121
+ const cx = this.width / 2;
122
+ const cy = this.height / 2;
123
+ const r = Math.min(cx, cy) - 20;
124
+ const innerR = this.chartType === 'donut' ? r * 0.55 : 0;
125
+ let startAngle = -Math.PI / 2;
126
+ const slices = this.data.map((d, i) => {
127
+ const angle = (d.value / total) * Math.PI * 2;
128
+ const endAngle = startAngle + angle;
129
+ const largeArc = angle > Math.PI ? 1 : 0;
130
+ const x1 = cx + r * Math.cos(startAngle);
131
+ const y1 = cy + r * Math.sin(startAngle);
132
+ const x2 = cx + r * Math.cos(endAngle);
133
+ const y2 = cy + r * Math.sin(endAngle);
134
+ let path;
135
+ if (innerR > 0) {
136
+ const ix1 = cx + innerR * Math.cos(startAngle);
137
+ const iy1 = cy + innerR * Math.sin(startAngle);
138
+ const ix2 = cx + innerR * Math.cos(endAngle);
139
+ const iy2 = cy + innerR * Math.sin(endAngle);
140
+ path = `M ${x1} ${y1} A ${r} ${r} 0 ${largeArc} 1 ${x2} ${y2} L ${ix2} ${iy2} A ${innerR} ${innerR} 0 ${largeArc} 0 ${ix1} ${iy1} Z`;
141
+ }
142
+ else {
143
+ path = `M ${cx} ${cy} L ${x1} ${y1} A ${r} ${r} 0 ${largeArc} 1 ${x2} ${y2} Z`;
144
+ }
145
+ startAngle = endAngle;
146
+ return html `
147
+ <path d="${path}" fill="${this.color(i)}" opacity="0.85">
148
+ <title>${d.label}: ${d.value} (${((d.value / total) * 100).toFixed(1)}%)</title>
149
+ </path>
150
+ `;
151
+ });
152
+ return html `
153
+ <svg viewBox="0 0 ${this.width} ${this.height}" xmlns="http://www.w3.org/2000/svg">
154
+ ${slices}
155
+ </svg>
156
+ `;
157
+ }
158
+ renderLegend() {
159
+ if (this.data.length === 0)
160
+ return html ``;
161
+ return html `
162
+ <div class="zs-chart-legend">
163
+ ${this.data.map((d, i) => html `
164
+ <div class="zs-chart-legend-item">
165
+ <span class="zs-chart-legend-dot" style="background:${this.color(i)}"></span>
166
+ <span class="zs-chart-legend-label">${d.label}</span>
167
+ </div>
168
+ `)}
169
+ </div>
170
+ `;
171
+ }
172
+ };
173
+ __decorate([
174
+ property()
175
+ ], ZsFieldChart.prototype, "label", void 0);
176
+ __decorate([
177
+ property()
178
+ ], ZsFieldChart.prototype, "chartType", void 0);
179
+ __decorate([
180
+ property({ type: Array })
181
+ ], ZsFieldChart.prototype, "data", void 0);
182
+ __decorate([
183
+ property({ type: Number })
184
+ ], ZsFieldChart.prototype, "width", void 0);
185
+ __decorate([
186
+ property({ type: Number })
187
+ ], ZsFieldChart.prototype, "height", void 0);
188
+ ZsFieldChart = __decorate([
189
+ customElement('zs-field-chart')
190
+ ], ZsFieldChart);
191
+ export { ZsFieldChart };
192
+ //# sourceMappingURL=zs-field-chart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zs-field-chart.js","sourceRoot":"","sources":["../../src/fields/zs-field-chart.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import { LitElement } from 'lit';
2
+ interface CheckboxOption {
3
+ value: string | number;
4
+ label: string;
5
+ disabled?: boolean;
6
+ }
7
+ export declare class ZsFieldCheckbox extends LitElement {
8
+ static styles: import("lit").CSSResult[];
9
+ fieldId: string;
10
+ label: string;
11
+ value: boolean | string | number | (string | number)[];
12
+ helpText: string;
13
+ mode: 'checkbox' | 'radio';
14
+ required: boolean;
15
+ disabled: boolean;
16
+ horizontal: boolean;
17
+ options: CheckboxOption[];
18
+ errors: string[];
19
+ private handleSingleChange;
20
+ private handleRadioChange;
21
+ private handleCheckboxGroupChange;
22
+ render(): import("lit-html").TemplateResult<1>;
23
+ private renderSingle;
24
+ private renderRadioGroup;
25
+ private renderCheckboxGroup;
26
+ }
27
+ declare global {
28
+ interface HTMLElementTagNameMap {
29
+ 'zs-field-checkbox': ZsFieldCheckbox;
30
+ }
31
+ }
32
+ export {};
33
+ //# sourceMappingURL=zs-field-checkbox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zs-field-checkbox.d.ts","sourceRoot":"","sources":["../../src/fields/zs-field-checkbox.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAI5C,UAAU,cAAc;IACtB,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,qBACa,eAAgB,SAAQ,UAAU;IAC7C,MAAM,CAAC,MAAM,4BAmBV;IAES,OAAO,SAAM;IACb,KAAK,SAAM;IACX,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAS;IAC/D,QAAQ,SAAM;IACd,IAAI,EAAE,UAAU,GAAG,OAAO,CAAc;IACvB,QAAQ,UAAS;IACjB,QAAQ,UAAS;IACjB,UAAU,UAAS;IACrB,OAAO,EAAE,cAAc,EAAE,CAAM;IAC/B,MAAM,EAAE,MAAM,EAAE,CAAM;IAEjD,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,yBAAyB;IAWjC,MAAM;IAiBN,OAAO,CAAC,YAAY;IAcpB,OAAO,CAAC,gBAAgB;IAqBxB,OAAO,CAAC,mBAAmB;CAmB5B;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,mBAAmB,EAAE,eAAe,CAAC;KACtC;CACF"}
@@ -0,0 +1,172 @@
1
+ // @zentto/studio — Checkbox/Radio field web component
2
+ // Handles: checkbox (single + group), radio
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 ZsFieldCheckbox = class ZsFieldCheckbox extends LitElement {
13
+ constructor() {
14
+ super(...arguments);
15
+ this.fieldId = '';
16
+ this.label = '';
17
+ this.value = false;
18
+ this.helpText = '';
19
+ this.mode = 'checkbox';
20
+ this.required = false;
21
+ this.disabled = false;
22
+ this.horizontal = false;
23
+ this.options = [];
24
+ this.errors = [];
25
+ }
26
+ static { this.styles = [fieldBaseStyles, css `
27
+ :host { display: block; }
28
+ .zs-check-group { display: flex; flex-direction: column; gap: 6px; }
29
+ .zs-check-group--horizontal { flex-direction: row; flex-wrap: wrap; gap: 12px; }
30
+ .zs-check-item {
31
+ display: flex; align-items: center; gap: 8px; cursor: pointer;
32
+ font-size: var(--zs-font-size); color: var(--zs-text);
33
+ }
34
+ .zs-check-item input {
35
+ accent-color: var(--zs-primary); width: 16px; height: 16px; cursor: pointer;
36
+ }
37
+ .zs-check-item--disabled { opacity: 0.6; cursor: not-allowed; }
38
+ .zs-check-single {
39
+ display: flex; align-items: center; gap: 8px; cursor: pointer;
40
+ font-size: var(--zs-font-size);
41
+ }
42
+ .zs-check-single input {
43
+ accent-color: var(--zs-primary); width: 18px; height: 18px; cursor: pointer;
44
+ }
45
+ `]; }
46
+ handleSingleChange(e) {
47
+ const input = e.target;
48
+ this.dispatchEvent(new CustomEvent('field-change', {
49
+ detail: { fieldId: this.fieldId, value: input.checked },
50
+ bubbles: true, composed: true,
51
+ }));
52
+ }
53
+ handleRadioChange(e) {
54
+ const input = e.target;
55
+ this.dispatchEvent(new CustomEvent('field-change', {
56
+ detail: { fieldId: this.fieldId, value: input.value },
57
+ bubbles: true, composed: true,
58
+ }));
59
+ }
60
+ handleCheckboxGroupChange(optValue, checked) {
61
+ const currentValues = Array.isArray(this.value) ? [...this.value] : [];
62
+ const newValues = checked
63
+ ? [...currentValues, optValue]
64
+ : currentValues.filter(v => v !== optValue);
65
+ this.dispatchEvent(new CustomEvent('field-change', {
66
+ detail: { fieldId: this.fieldId, value: newValues },
67
+ bubbles: true, composed: true,
68
+ }));
69
+ }
70
+ render() {
71
+ const hasError = this.errors.length > 0;
72
+ const labelClass = `zs-label ${this.required ? 'zs-label--required' : ''}`;
73
+ const isSingle = this.options.length === 0 && this.mode === 'checkbox';
74
+ return html `
75
+ <div class="zs-field">
76
+ ${this.label && !isSingle ? html `<label class="${labelClass}">${this.label}</label>` : ''}
77
+ ${isSingle ? this.renderSingle() :
78
+ this.mode === 'radio' ? this.renderRadioGroup() :
79
+ this.renderCheckboxGroup()}
80
+ ${hasError ? html `<span class="zs-error">${this.errors[0]}</span>` : ''}
81
+ ${this.helpText && !hasError ? html `<span class="zs-help">${this.helpText}</span>` : ''}
82
+ </div>
83
+ `;
84
+ }
85
+ renderSingle() {
86
+ return html `
87
+ <label class="zs-check-single ${this.disabled ? 'zs-check-item--disabled' : ''}">
88
+ <input
89
+ type="checkbox"
90
+ .checked="${this.value === true}"
91
+ ?disabled="${this.disabled}"
92
+ @change="${this.handleSingleChange}"
93
+ />
94
+ ${this.label}
95
+ </label>
96
+ `;
97
+ }
98
+ renderRadioGroup() {
99
+ const groupClass = `zs-check-group ${this.horizontal ? 'zs-check-group--horizontal' : ''}`;
100
+ return html `
101
+ <div class="${groupClass}">
102
+ ${this.options.map(opt => html `
103
+ <label class="zs-check-item ${opt.disabled || this.disabled ? 'zs-check-item--disabled' : ''}">
104
+ <input
105
+ type="radio"
106
+ name="${this.fieldId}"
107
+ value="${opt.value}"
108
+ .checked="${String(this.value) === String(opt.value)}"
109
+ ?disabled="${opt.disabled || this.disabled}"
110
+ @change="${this.handleRadioChange}"
111
+ />
112
+ ${opt.label}
113
+ </label>
114
+ `)}
115
+ </div>
116
+ `;
117
+ }
118
+ renderCheckboxGroup() {
119
+ const selectedValues = Array.isArray(this.value) ? this.value.map(String) : [];
120
+ const groupClass = `zs-check-group ${this.horizontal ? 'zs-check-group--horizontal' : ''}`;
121
+ return html `
122
+ <div class="${groupClass}">
123
+ ${this.options.map(opt => html `
124
+ <label class="zs-check-item ${opt.disabled || this.disabled ? 'zs-check-item--disabled' : ''}">
125
+ <input
126
+ type="checkbox"
127
+ .checked="${selectedValues.includes(String(opt.value))}"
128
+ ?disabled="${opt.disabled || this.disabled}"
129
+ @change="${(e) => this.handleCheckboxGroupChange(opt.value, e.target.checked)}"
130
+ />
131
+ ${opt.label}
132
+ </label>
133
+ `)}
134
+ </div>
135
+ `;
136
+ }
137
+ };
138
+ __decorate([
139
+ property()
140
+ ], ZsFieldCheckbox.prototype, "fieldId", void 0);
141
+ __decorate([
142
+ property()
143
+ ], ZsFieldCheckbox.prototype, "label", void 0);
144
+ __decorate([
145
+ property()
146
+ ], ZsFieldCheckbox.prototype, "value", void 0);
147
+ __decorate([
148
+ property()
149
+ ], ZsFieldCheckbox.prototype, "helpText", void 0);
150
+ __decorate([
151
+ property()
152
+ ], ZsFieldCheckbox.prototype, "mode", void 0);
153
+ __decorate([
154
+ property({ type: Boolean })
155
+ ], ZsFieldCheckbox.prototype, "required", void 0);
156
+ __decorate([
157
+ property({ type: Boolean })
158
+ ], ZsFieldCheckbox.prototype, "disabled", void 0);
159
+ __decorate([
160
+ property({ type: Boolean })
161
+ ], ZsFieldCheckbox.prototype, "horizontal", void 0);
162
+ __decorate([
163
+ property({ type: Array })
164
+ ], ZsFieldCheckbox.prototype, "options", void 0);
165
+ __decorate([
166
+ property({ type: Array })
167
+ ], ZsFieldCheckbox.prototype, "errors", void 0);
168
+ ZsFieldCheckbox = __decorate([
169
+ customElement('zs-field-checkbox')
170
+ ], ZsFieldCheckbox);
171
+ export { ZsFieldCheckbox };
172
+ //# sourceMappingURL=zs-field-checkbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zs-field-checkbox.js","sourceRoot":"","sources":["../../src/fields/zs-field-checkbox.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import { LitElement } from 'lit';
2
+ interface ChipOption {
3
+ value: string;
4
+ label: string;
5
+ color?: string;
6
+ icon?: string;
7
+ }
8
+ export declare class ZsFieldChips extends LitElement {
9
+ static styles: import("lit").CSSResult[];
10
+ fieldId: string;
11
+ label: string;
12
+ placeholder: string;
13
+ helpText: string;
14
+ value: string[];
15
+ options: ChipOption[];
16
+ required: boolean;
17
+ disabled: boolean;
18
+ allowCustom: boolean;
19
+ maxChips: number;
20
+ colorMode: 'default' | 'primary' | 'success' | 'danger' | 'info' | 'auto';
21
+ errors: string[];
22
+ private inputValue;
23
+ private showSuggestions;
24
+ private get filteredOptions();
25
+ private addChip;
26
+ private removeChip;
27
+ private handleKeydown;
28
+ private getChipClass;
29
+ private getChipLabel;
30
+ render(): import("lit-html").TemplateResult<1>;
31
+ }
32
+ declare global {
33
+ interface HTMLElementTagNameMap {
34
+ 'zs-field-chips': ZsFieldChips;
35
+ }
36
+ }
37
+ export {};
38
+ //# sourceMappingURL=zs-field-chips.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zs-field-chips.d.ts","sourceRoot":"","sources":["../../src/fields/zs-field-chips.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAI5C,UAAU,UAAU;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,qBACa,YAAa,SAAQ,UAAU;IAC1C,MAAM,CAAC,MAAM,4BA6EV;IAES,OAAO,SAAM;IACb,KAAK,SAAM;IACX,WAAW,SAAiC;IAC5C,QAAQ,SAAM;IACC,KAAK,EAAE,MAAM,EAAE,CAAM;IACrB,OAAO,EAAE,UAAU,EAAE,CAAM;IACzB,QAAQ,UAAS;IACjB,QAAQ,UAAS;IACjB,WAAW,UAAQ;IACpB,QAAQ,SAAK;IAC7B,SAAS,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAa;IACvE,MAAM,EAAE,MAAM,EAAE,CAAM;IAExC,OAAO,CAAC,UAAU,CAAM;IACxB,OAAO,CAAC,eAAe,CAAS;IAEzC,OAAO,KAAK,eAAe,GAK1B;IAED,OAAO,CAAC,OAAO;IAcf,OAAO,CAAC,UAAU;IASlB,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,YAAY;IAIpB,MAAM;CA6CP;AAED,OAAO,CAAC,MAAM,CAAC;IAAE,UAAU,qBAAqB;QAAG,gBAAgB,EAAE,YAAY,CAAC;KAAE;CAAE"}