@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.
- package/dist/designer/zs-app-wizard.d.ts +33 -0
- package/dist/designer/zs-app-wizard.d.ts.map +1 -0
- package/dist/designer/zs-app-wizard.js +493 -0
- package/dist/designer/zs-app-wizard.js.map +1 -0
- package/dist/designer/zs-page-designer.d.ts +30 -0
- package/dist/designer/zs-page-designer.d.ts.map +1 -0
- package/dist/designer/zs-page-designer.js +466 -0
- package/dist/designer/zs-page-designer.js.map +1 -0
- package/dist/fields/zs-field-address.d.ts +28 -0
- package/dist/fields/zs-field-address.d.ts.map +1 -0
- package/dist/fields/zs-field-address.js +129 -0
- package/dist/fields/zs-field-address.js.map +1 -0
- package/dist/fields/zs-field-chart.d.ts +27 -0
- package/dist/fields/zs-field-chart.d.ts.map +1 -0
- package/dist/fields/zs-field-chart.js +192 -0
- package/dist/fields/zs-field-chart.js.map +1 -0
- package/dist/fields/zs-field-checkbox.d.ts +33 -0
- package/dist/fields/zs-field-checkbox.d.ts.map +1 -0
- package/dist/fields/zs-field-checkbox.js +172 -0
- package/dist/fields/zs-field-checkbox.js.map +1 -0
- package/dist/fields/zs-field-chips.d.ts +38 -0
- package/dist/fields/zs-field-chips.d.ts.map +1 -0
- package/dist/fields/zs-field-chips.js +257 -0
- package/dist/fields/zs-field-chips.js.map +1 -0
- package/dist/fields/zs-field-date.d.ts +23 -0
- package/dist/fields/zs-field-date.d.ts.map +1 -0
- package/dist/fields/zs-field-date.js +98 -0
- package/dist/fields/zs-field-date.js.map +1 -0
- package/dist/fields/zs-field-file.d.ts +26 -0
- package/dist/fields/zs-field-file.d.ts.map +1 -0
- package/dist/fields/zs-field-file.js +190 -0
- package/dist/fields/zs-field-file.js.map +1 -0
- package/dist/fields/zs-field-heading.d.ts +14 -0
- package/dist/fields/zs-field-heading.d.ts.map +1 -0
- package/dist/fields/zs-field-heading.js +54 -0
- package/dist/fields/zs-field-heading.js.map +1 -0
- package/dist/fields/zs-field-html.d.ts +12 -0
- package/dist/fields/zs-field-html.d.ts.map +1 -0
- package/dist/fields/zs-field-html.js +38 -0
- package/dist/fields/zs-field-html.js.map +1 -0
- package/dist/fields/zs-field-lookup.d.ts +37 -0
- package/dist/fields/zs-field-lookup.d.ts.map +1 -0
- package/dist/fields/zs-field-lookup.js +204 -0
- package/dist/fields/zs-field-lookup.js.map +1 -0
- package/dist/fields/zs-field-media.d.ts +15 -0
- package/dist/fields/zs-field-media.d.ts.map +1 -0
- package/dist/fields/zs-field-media.js +59 -0
- package/dist/fields/zs-field-media.js.map +1 -0
- package/dist/fields/zs-field-number.d.ts +35 -0
- package/dist/fields/zs-field-number.d.ts.map +1 -0
- package/dist/fields/zs-field-number.js +192 -0
- package/dist/fields/zs-field-number.js.map +1 -0
- package/dist/fields/zs-field-select.d.ts +34 -0
- package/dist/fields/zs-field-select.d.ts.map +1 -0
- package/dist/fields/zs-field-select.js +237 -0
- package/dist/fields/zs-field-select.js.map +1 -0
- package/dist/fields/zs-field-separator.d.ts +12 -0
- package/dist/fields/zs-field-separator.d.ts.map +1 -0
- package/dist/fields/zs-field-separator.js +37 -0
- package/dist/fields/zs-field-separator.js.map +1 -0
- package/dist/fields/zs-field-signature.d.ts +34 -0
- package/dist/fields/zs-field-signature.d.ts.map +1 -0
- package/dist/fields/zs-field-signature.js +191 -0
- package/dist/fields/zs-field-signature.js.map +1 -0
- package/dist/fields/zs-field-switch.d.ts +19 -0
- package/dist/fields/zs-field-switch.d.ts.map +1 -0
- package/dist/fields/zs-field-switch.js +100 -0
- package/dist/fields/zs-field-switch.js.map +1 -0
- package/dist/fields/zs-field-text.d.ts +24 -0
- package/dist/fields/zs-field-text.d.ts.map +1 -0
- package/dist/fields/zs-field-text.js +115 -0
- package/dist/fields/zs-field-text.js.map +1 -0
- package/dist/fields/zs-field-treeview.d.ts +37 -0
- package/dist/fields/zs-field-treeview.d.ts.map +1 -0
- package/dist/fields/zs-field-treeview.js +234 -0
- package/dist/fields/zs-field-treeview.js.map +1 -0
- package/dist/styles/tokens.d.ts +3 -0
- package/dist/styles/tokens.d.ts.map +1 -0
- package/dist/styles/tokens.js +159 -0
- package/dist/styles/tokens.js.map +1 -0
- package/dist/zentto-studio-app.d.ts +55 -0
- package/dist/zentto-studio-app.d.ts.map +1 -0
- package/dist/zentto-studio-app.js +748 -0
- package/dist/zentto-studio-app.js.map +1 -0
- package/dist/zentto-studio-designer.d.ts +13 -0
- package/dist/zentto-studio-designer.d.ts.map +1 -0
- package/dist/zentto-studio-designer.js +75 -0
- package/dist/zentto-studio-designer.js.map +1 -0
- package/dist/zentto-studio-renderer.d.ts +53 -0
- package/dist/zentto-studio-renderer.d.ts.map +1 -0
- package/dist/zentto-studio-renderer.js +636 -0
- package/dist/zentto-studio-renderer.js.map +1 -0
- 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"}
|