@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,54 @@
1
+ // @zentto/studio — Heading/label display 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 ZsFieldHeading = class ZsFieldHeading extends LitElement {
11
+ constructor() {
12
+ super(...arguments);
13
+ this.label = '';
14
+ this.helpText = '';
15
+ this.level = 'h2';
16
+ }
17
+ static { this.styles = css `
18
+ :host { display: block; }
19
+ .zs-heading {
20
+ font-family: var(--zs-font-family, sans-serif);
21
+ color: var(--zs-text, #212529);
22
+ margin: 0;
23
+ line-height: 1.3;
24
+ }
25
+ .zs-heading--h1 { font-size: 28px; font-weight: 700; }
26
+ .zs-heading--h2 { font-size: 22px; font-weight: 600; }
27
+ .zs-heading--h3 { font-size: 18px; font-weight: 600; }
28
+ .zs-heading--h4 { font-size: 16px; font-weight: 500; }
29
+ .zs-subtitle {
30
+ font-size: 14px; color: var(--zs-text-secondary, #6c757d);
31
+ margin: 4px 0 0;
32
+ }
33
+ `; }
34
+ render() {
35
+ return html `
36
+ <div class="zs-heading zs-heading--${this.level}">${this.label}</div>
37
+ ${this.helpText ? html `<p class="zs-subtitle">${this.helpText}</p>` : ''}
38
+ `;
39
+ }
40
+ };
41
+ __decorate([
42
+ property()
43
+ ], ZsFieldHeading.prototype, "label", void 0);
44
+ __decorate([
45
+ property()
46
+ ], ZsFieldHeading.prototype, "helpText", void 0);
47
+ __decorate([
48
+ property()
49
+ ], ZsFieldHeading.prototype, "level", void 0);
50
+ ZsFieldHeading = __decorate([
51
+ customElement('zs-field-heading')
52
+ ], ZsFieldHeading);
53
+ export { ZsFieldHeading };
54
+ //# sourceMappingURL=zs-field-heading.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zs-field-heading.js","sourceRoot":"","sources":["../../src/fields/zs-field-heading.ts"],"names":[],"mappings":"AAAA,+CAA+C;;;;;;;AAE/C,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAGrD,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,UAAU;IAAvC;;QAmBO,UAAK,GAAG,EAAE,CAAC;QACX,aAAQ,GAAG,EAAE,CAAC;QACd,UAAK,GAA8B,IAAI,CAAC;IAQtD,CAAC;aA5BQ,WAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;GAgBlB,AAhBY,CAgBX;IAMF,MAAM;QACJ,OAAO,IAAI,CAAA;2CAC4B,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK;QAC5D,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAA,0BAA0B,IAAI,CAAC,QAAQ,MAAM,CAAC,CAAC,CAAC,EAAE;KACzE,CAAC;IACJ,CAAC;;AATW;IAAX,QAAQ,EAAE;6CAAY;AACX;IAAX,QAAQ,EAAE;gDAAe;AACd;IAAX,QAAQ,EAAE;6CAAyC;AArBzC,cAAc;IAD1B,aAAa,CAAC,kBAAkB,CAAC;GACrB,cAAc,CA6B1B"}
@@ -0,0 +1,12 @@
1
+ import { LitElement } from 'lit';
2
+ export declare class ZsFieldHtml extends LitElement {
3
+ static styles: import("lit").CSSResult;
4
+ content: string;
5
+ render(): import("lit-html").TemplateResult<1>;
6
+ }
7
+ declare global {
8
+ interface HTMLElementTagNameMap {
9
+ 'zs-field-html': ZsFieldHtml;
10
+ }
11
+ }
12
+ //# sourceMappingURL=zs-field-html.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zs-field-html.d.ts","sourceRoot":"","sources":["../../src/fields/zs-field-html.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAI5C,qBACa,WAAY,SAAQ,UAAU;IACzC,MAAM,CAAC,MAAM,0BAUX;IAEU,OAAO,SAAM;IAEzB,MAAM;CAGP;AAED,OAAO,CAAC,MAAM,CAAC;IAAE,UAAU,qBAAqB;QAAG,eAAe,EAAE,WAAW,CAAC;KAAE;CAAE"}
@@ -0,0 +1,38 @@
1
+ // @zentto/studio — Raw HTML display 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
+ import { unsafeHTML } from 'lit/directives/unsafe-html.js';
11
+ let ZsFieldHtml = class ZsFieldHtml extends LitElement {
12
+ constructor() {
13
+ super(...arguments);
14
+ this.content = '';
15
+ }
16
+ static { this.styles = css `
17
+ :host { display: block; }
18
+ .zs-html-wrapper {
19
+ font-family: var(--zs-font-family, sans-serif);
20
+ color: var(--zs-text, #212529);
21
+ font-size: var(--zs-font-size, 14px);
22
+ line-height: var(--zs-line-height, 1.5);
23
+ }
24
+ .zs-html-wrapper img { max-width: 100%; height: auto; }
25
+ .zs-html-wrapper a { color: var(--zs-primary, #e67e22); }
26
+ `; }
27
+ render() {
28
+ return html `<div class="zs-html-wrapper">${unsafeHTML(this.content)}</div>`;
29
+ }
30
+ };
31
+ __decorate([
32
+ property()
33
+ ], ZsFieldHtml.prototype, "content", void 0);
34
+ ZsFieldHtml = __decorate([
35
+ customElement('zs-field-html')
36
+ ], ZsFieldHtml);
37
+ export { ZsFieldHtml };
38
+ //# sourceMappingURL=zs-field-html.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zs-field-html.js","sourceRoot":"","sources":["../../src/fields/zs-field-html.ts"],"names":[],"mappings":"AAAA,0CAA0C;;;;;;;AAE1C,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAGpD,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,UAAU;IAApC;;QAaO,YAAO,GAAG,EAAE,CAAC;IAK3B,CAAC;aAjBQ,WAAM,GAAG,GAAG,CAAA;;;;;;;;;;GAUlB,AAVY,CAUX;IAIF,MAAM;QACJ,OAAO,IAAI,CAAA,gCAAgC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;IAC9E,CAAC;;AAJW;IAAX,QAAQ,EAAE;4CAAc;AAbd,WAAW;IADvB,aAAa,CAAC,eAAe,CAAC;GAClB,WAAW,CAkBvB"}
@@ -0,0 +1,37 @@
1
+ import { LitElement } from 'lit';
2
+ interface LookupOption {
3
+ value: string | number;
4
+ label: string;
5
+ subtitle?: string;
6
+ }
7
+ export declare class ZsFieldLookup extends LitElement {
8
+ static styles: import("lit").CSSResult[];
9
+ fieldId: string;
10
+ label: string;
11
+ placeholder: string;
12
+ helpText: string;
13
+ value: string | number;
14
+ displayValue: string;
15
+ required: boolean;
16
+ disabled: boolean;
17
+ minChars: number;
18
+ debounceMs: number;
19
+ options: LookupOption[];
20
+ errors: string[];
21
+ private query;
22
+ private showResults;
23
+ private loading;
24
+ private debounceTimer;
25
+ private handleInput;
26
+ private selectOption;
27
+ private clearSelection;
28
+ private handleBlur;
29
+ render(): import("lit-html").TemplateResult<1>;
30
+ }
31
+ declare global {
32
+ interface HTMLElementTagNameMap {
33
+ 'zs-field-lookup': ZsFieldLookup;
34
+ }
35
+ }
36
+ export {};
37
+ //# sourceMappingURL=zs-field-lookup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zs-field-lookup.d.ts","sourceRoot":"","sources":["../../src/fields/zs-field-lookup.ts"],"names":[],"mappings":"AAEA,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,MAAM,CAAC;CACnB;AAED,qBACa,aAAc,SAAQ,UAAU;IAC3C,MAAM,CAAC,MAAM,4BAmCV;IAES,OAAO,SAAM;IACb,KAAK,SAAM;IACX,WAAW,SAAe;IAC1B,QAAQ,SAAM;IACd,KAAK,EAAE,MAAM,GAAG,MAAM,CAAM;IAC5B,YAAY,SAAM;IACD,QAAQ,UAAS;IACjB,QAAQ,UAAS;IAClB,QAAQ,SAAK;IACb,UAAU,SAAO;IAClB,OAAO,EAAE,YAAY,EAAE,CAAM;IAC7B,MAAM,EAAE,MAAM,EAAE,CAAM;IAExC,OAAO,CAAC,KAAK,CAAM;IACnB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,OAAO,CAAS;IAEjC,OAAO,CAAC,aAAa,CAA8C;IAEnE,OAAO,CAAC,WAAW;IAuBnB,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,UAAU;IAKlB,MAAM;CA8CP;AAED,OAAO,CAAC,MAAM,CAAC;IAAE,UAAU,qBAAqB;QAAG,iBAAiB,EAAE,aAAa,CAAC;KAAE;CAAE"}
@@ -0,0 +1,204 @@
1
+ // @zentto/studio — Lookup field (async search with debounce)
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, state } from 'lit/decorators.js';
10
+ import { fieldBaseStyles } from '../styles/tokens.js';
11
+ let ZsFieldLookup = class ZsFieldLookup extends LitElement {
12
+ constructor() {
13
+ super(...arguments);
14
+ this.fieldId = '';
15
+ this.label = '';
16
+ this.placeholder = 'Buscar...';
17
+ this.helpText = '';
18
+ this.value = '';
19
+ this.displayValue = '';
20
+ this.required = false;
21
+ this.disabled = false;
22
+ this.minChars = 2;
23
+ this.debounceMs = 300;
24
+ this.options = [];
25
+ this.errors = [];
26
+ this.query = '';
27
+ this.showResults = false;
28
+ this.loading = false;
29
+ this.debounceTimer = null;
30
+ }
31
+ static { this.styles = [fieldBaseStyles, css `
32
+ :host { display: block; position: relative; }
33
+ .zs-lookup-wrapper { position: relative; }
34
+ .zs-lookup-results {
35
+ position: absolute; top: 100%; left: 0; right: 0;
36
+ background: var(--zs-bg); border: 1px solid var(--zs-border);
37
+ border-radius: var(--zs-radius); box-shadow: 0 4px 12px var(--zs-shadow);
38
+ max-height: 240px; overflow-y: auto; z-index: 100;
39
+ margin-top: 2px;
40
+ }
41
+ .zs-lookup-item {
42
+ padding: 8px 12px; cursor: pointer;
43
+ transition: background var(--zs-transition);
44
+ }
45
+ .zs-lookup-item:hover { background: var(--zs-bg-hover); }
46
+ .zs-lookup-item--selected { background: var(--zs-primary-light); }
47
+ .zs-lookup-label { font-size: var(--zs-font-size); color: var(--zs-text); }
48
+ .zs-lookup-subtitle { font-size: var(--zs-font-size-sm); color: var(--zs-text-muted); }
49
+ .zs-lookup-empty {
50
+ padding: 12px; text-align: center;
51
+ color: var(--zs-text-muted); font-size: var(--zs-font-size-sm);
52
+ }
53
+ .zs-lookup-loading { padding: 12px; text-align: center; color: var(--zs-text-muted); }
54
+ .zs-lookup-clear {
55
+ position: absolute; right: 10px; top: 50%; transform: translateY(-50%);
56
+ border: none; background: none; cursor: pointer; font-size: 16px;
57
+ color: var(--zs-text-muted); padding: 2px 4px;
58
+ }
59
+ .zs-lookup-clear:hover { color: var(--zs-text); }
60
+ .zs-selected-badge {
61
+ display: inline-flex; align-items: center; gap: 4px;
62
+ padding: 2px 8px; border-radius: 12px; margin-top: 4px;
63
+ background: var(--zs-primary-light); color: var(--zs-primary);
64
+ font-size: var(--zs-font-size-sm);
65
+ }
66
+ `]; }
67
+ handleInput(e) {
68
+ const input = e.target;
69
+ this.query = input.value;
70
+ if (this.query.length < this.minChars) {
71
+ this.showResults = false;
72
+ return;
73
+ }
74
+ // Debounce search
75
+ if (this.debounceTimer)
76
+ clearTimeout(this.debounceTimer);
77
+ this.debounceTimer = setTimeout(() => {
78
+ this.loading = true;
79
+ this.showResults = true;
80
+ this.dispatchEvent(new CustomEvent('lookup-search', {
81
+ detail: { fieldId: this.fieldId, query: this.query },
82
+ bubbles: true, composed: true,
83
+ }));
84
+ // Loading will be set to false when options are updated externally
85
+ setTimeout(() => { this.loading = false; }, 100);
86
+ }, this.debounceMs);
87
+ }
88
+ selectOption(opt) {
89
+ this.showResults = false;
90
+ this.query = '';
91
+ this.displayValue = opt.label;
92
+ this.dispatchEvent(new CustomEvent('field-change', {
93
+ detail: { fieldId: this.fieldId, value: opt.value },
94
+ bubbles: true, composed: true,
95
+ }));
96
+ }
97
+ clearSelection() {
98
+ this.displayValue = '';
99
+ this.query = '';
100
+ this.dispatchEvent(new CustomEvent('field-change', {
101
+ detail: { fieldId: this.fieldId, value: null },
102
+ bubbles: true, composed: true,
103
+ }));
104
+ }
105
+ handleBlur() {
106
+ // Delay to allow click on results
107
+ setTimeout(() => { this.showResults = false; }, 200);
108
+ }
109
+ render() {
110
+ const hasError = this.errors.length > 0;
111
+ const labelClass = `zs-label ${this.required ? 'zs-label--required' : ''}`;
112
+ const inputClass = `zs-input ${hasError ? 'zs-input--error' : ''}`;
113
+ return html `
114
+ <div class="zs-field">
115
+ ${this.label ? html `<label class="${labelClass}">${this.label}</label>` : ''}
116
+ <div class="zs-lookup-wrapper">
117
+ <input
118
+ class="${inputClass}"
119
+ type="text"
120
+ .value="${this.displayValue || this.query}"
121
+ placeholder="${this.placeholder}"
122
+ ?disabled="${this.disabled}"
123
+ @input="${this.handleInput}"
124
+ @focus="${() => { if (this.query.length >= this.minChars)
125
+ this.showResults = true; }}"
126
+ @blur="${this.handleBlur}"
127
+ />
128
+ ${this.value ? html `
129
+ <button class="zs-lookup-clear" @click="${this.clearSelection}" title="Limpiar">×</button>
130
+ ` : ''}
131
+ ${this.showResults ? html `
132
+ <div class="zs-lookup-results">
133
+ ${this.loading
134
+ ? html `<div class="zs-lookup-loading">Buscando...</div>`
135
+ : this.options.length === 0
136
+ ? html `<div class="zs-lookup-empty">Sin resultados</div>`
137
+ : this.options.map(opt => html `
138
+ <div
139
+ class="zs-lookup-item ${String(opt.value) === String(this.value) ? 'zs-lookup-item--selected' : ''}"
140
+ @mousedown="${() => this.selectOption(opt)}"
141
+ >
142
+ <div class="zs-lookup-label">${opt.label}</div>
143
+ ${opt.subtitle ? html `<div class="zs-lookup-subtitle">${opt.subtitle}</div>` : ''}
144
+ </div>
145
+ `)}
146
+ </div>
147
+ ` : ''}
148
+ </div>
149
+ ${hasError ? html `<span class="zs-error">${this.errors[0]}</span>` : ''}
150
+ ${this.helpText && !hasError ? html `<span class="zs-help">${this.helpText}</span>` : ''}
151
+ </div>
152
+ `;
153
+ }
154
+ };
155
+ __decorate([
156
+ property()
157
+ ], ZsFieldLookup.prototype, "fieldId", void 0);
158
+ __decorate([
159
+ property()
160
+ ], ZsFieldLookup.prototype, "label", void 0);
161
+ __decorate([
162
+ property()
163
+ ], ZsFieldLookup.prototype, "placeholder", void 0);
164
+ __decorate([
165
+ property()
166
+ ], ZsFieldLookup.prototype, "helpText", void 0);
167
+ __decorate([
168
+ property()
169
+ ], ZsFieldLookup.prototype, "value", void 0);
170
+ __decorate([
171
+ property()
172
+ ], ZsFieldLookup.prototype, "displayValue", void 0);
173
+ __decorate([
174
+ property({ type: Boolean })
175
+ ], ZsFieldLookup.prototype, "required", void 0);
176
+ __decorate([
177
+ property({ type: Boolean })
178
+ ], ZsFieldLookup.prototype, "disabled", void 0);
179
+ __decorate([
180
+ property({ type: Number })
181
+ ], ZsFieldLookup.prototype, "minChars", void 0);
182
+ __decorate([
183
+ property({ type: Number })
184
+ ], ZsFieldLookup.prototype, "debounceMs", void 0);
185
+ __decorate([
186
+ property({ type: Array })
187
+ ], ZsFieldLookup.prototype, "options", void 0);
188
+ __decorate([
189
+ property({ type: Array })
190
+ ], ZsFieldLookup.prototype, "errors", void 0);
191
+ __decorate([
192
+ state()
193
+ ], ZsFieldLookup.prototype, "query", void 0);
194
+ __decorate([
195
+ state()
196
+ ], ZsFieldLookup.prototype, "showResults", void 0);
197
+ __decorate([
198
+ state()
199
+ ], ZsFieldLookup.prototype, "loading", void 0);
200
+ ZsFieldLookup = __decorate([
201
+ customElement('zs-field-lookup')
202
+ ], ZsFieldLookup);
203
+ export { ZsFieldLookup };
204
+ //# sourceMappingURL=zs-field-lookup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zs-field-lookup.js","sourceRoot":"","sources":["../../src/fields/zs-field-lookup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { LitElement } from 'lit';
2
+ export declare class ZsFieldMedia extends LitElement {
3
+ static styles: import("lit").CSSResult;
4
+ label: string;
5
+ src: string;
6
+ mediaType: 'image' | 'video' | 'audio' | 'iframe';
7
+ alt: string;
8
+ render(): import("lit-html").TemplateResult<1>;
9
+ }
10
+ declare global {
11
+ interface HTMLElementTagNameMap {
12
+ 'zs-field-media': ZsFieldMedia;
13
+ }
14
+ }
15
+ //# sourceMappingURL=zs-field-media.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zs-field-media.d.ts","sourceRoot":"","sources":["../../src/fields/zs-field-media.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAG5C,qBACa,YAAa,SAAQ,UAAU;IAC1C,MAAM,CAAC,MAAM,0BAcX;IAEU,KAAK,SAAM;IACX,GAAG,SAAM;IACT,SAAS,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAW;IAC5D,GAAG,SAAM;IAErB,MAAM;CAUP;AAED,OAAO,CAAC,MAAM,CAAC;IAAE,UAAU,qBAAqB;QAAG,gBAAgB,EAAE,YAAY,CAAC;KAAE;CAAE"}
@@ -0,0 +1,59 @@
1
+ // @zentto/studio — Media display field (image, video, audio, iframe)
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 ZsFieldMedia = class ZsFieldMedia extends LitElement {
11
+ constructor() {
12
+ super(...arguments);
13
+ this.label = '';
14
+ this.src = '';
15
+ this.mediaType = 'image';
16
+ this.alt = '';
17
+ }
18
+ static { this.styles = css `
19
+ :host { display: block; }
20
+ .zs-media-label {
21
+ font-size: 13px; font-weight: 500;
22
+ color: var(--zs-text, #212529);
23
+ margin-bottom: 4px;
24
+ }
25
+ img { max-width: 100%; height: auto; border-radius: 6px; display: block; }
26
+ video { max-width: 100%; border-radius: 6px; display: block; }
27
+ audio { width: 100%; }
28
+ iframe {
29
+ width: 100%; min-height: 300px; border: 1px solid var(--zs-border, #dee2e6);
30
+ border-radius: 6px;
31
+ }
32
+ `; }
33
+ render() {
34
+ return html `
35
+ ${this.label ? html `<div class="zs-media-label">${this.label}</div>` : ''}
36
+ ${this.mediaType === 'image' ? html `<img src="${this.src}" alt="${this.alt}" loading="lazy" />` :
37
+ this.mediaType === 'video' ? html `<video src="${this.src}" controls></video>` :
38
+ this.mediaType === 'audio' ? html `<audio src="${this.src}" controls></audio>` :
39
+ html `<iframe src="${this.src}" title="${this.alt}" frameborder="0"></iframe>`}
40
+ `;
41
+ }
42
+ };
43
+ __decorate([
44
+ property()
45
+ ], ZsFieldMedia.prototype, "label", void 0);
46
+ __decorate([
47
+ property()
48
+ ], ZsFieldMedia.prototype, "src", void 0);
49
+ __decorate([
50
+ property()
51
+ ], ZsFieldMedia.prototype, "mediaType", void 0);
52
+ __decorate([
53
+ property()
54
+ ], ZsFieldMedia.prototype, "alt", void 0);
55
+ ZsFieldMedia = __decorate([
56
+ customElement('zs-field-media')
57
+ ], ZsFieldMedia);
58
+ export { ZsFieldMedia };
59
+ //# sourceMappingURL=zs-field-media.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zs-field-media.js","sourceRoot":"","sources":["../../src/fields/zs-field-media.ts"],"names":[],"mappings":"AAAA,qEAAqE;;;;;;;AAErE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAGrD,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,UAAU;IAArC;;QAiBO,UAAK,GAAG,EAAE,CAAC;QACX,QAAG,GAAG,EAAE,CAAC;QACT,cAAS,GAA2C,OAAO,CAAC;QAC5D,QAAG,GAAG,EAAE,CAAC;IAYvB,CAAC;aA/BQ,WAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;GAclB,AAdY,CAcX;IAOF,MAAM;QACJ,OAAO,IAAI,CAAA;QACP,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA,+BAA+B,IAAI,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE;QACvE,IAAI,CAAC,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAA,aAAa,IAAI,CAAC,GAAG,UAAU,IAAI,CAAC,GAAG,qBAAqB,CAAC,CAAC;YAC/F,IAAI,CAAC,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAA,eAAe,IAAI,CAAC,GAAG,qBAAqB,CAAC,CAAC;gBAC/E,IAAI,CAAC,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAA,eAAe,IAAI,CAAC,GAAG,qBAAqB,CAAC,CAAC;oBAC/E,IAAI,CAAA,gBAAgB,IAAI,CAAC,GAAG,YAAY,IAAI,CAAC,GAAG,6BAClD;KACD,CAAC;IACJ,CAAC;;AAdW;IAAX,QAAQ,EAAE;2CAAY;AACX;IAAX,QAAQ,EAAE;yCAAU;AACT;IAAX,QAAQ,EAAE;+CAA6D;AAC5D;IAAX,QAAQ,EAAE;yCAAU;AApBV,YAAY;IADxB,aAAa,CAAC,gBAAgB,CAAC;GACnB,YAAY,CAgCxB"}
@@ -0,0 +1,35 @@
1
+ import { LitElement } from 'lit';
2
+ export declare class ZsFieldNumber extends LitElement {
3
+ static styles: import("lit").CSSResult[];
4
+ fieldId: string;
5
+ label: string;
6
+ value: number | null;
7
+ placeholder: string;
8
+ helpText: string;
9
+ required: boolean;
10
+ disabled: boolean;
11
+ readOnly: boolean;
12
+ isCurrency: boolean;
13
+ isPercentage: boolean;
14
+ currencySymbol: string;
15
+ mode: 'input' | 'slider' | 'rating';
16
+ min: number;
17
+ max: number;
18
+ step: number;
19
+ maxRating: number;
20
+ errors: string[];
21
+ private emitChange;
22
+ private handleInput;
23
+ private handleSlider;
24
+ private handleRating;
25
+ render(): import("lit-html").TemplateResult<1>;
26
+ private renderInput;
27
+ private renderSlider;
28
+ private renderRating;
29
+ }
30
+ declare global {
31
+ interface HTMLElementTagNameMap {
32
+ 'zs-field-number': ZsFieldNumber;
33
+ }
34
+ }
35
+ //# sourceMappingURL=zs-field-number.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zs-field-number.d.ts","sourceRoot":"","sources":["../../src/fields/zs-field-number.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAI5C,qBACa,aAAc,SAAQ,UAAU;IAC3C,MAAM,CAAC,MAAM,4BAkBV;IAES,OAAO,SAAM;IACb,KAAK,SAAM;IACK,KAAK,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC5C,WAAW,SAAM;IACjB,QAAQ,SAAM;IACG,QAAQ,UAAS;IACjB,QAAQ,UAAS;IACjB,QAAQ,UAAS;IACjB,UAAU,UAAS;IACnB,YAAY,UAAS;IACtC,cAAc,SAAO;IACrB,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAW;IAC9B,GAAG,SAAK;IACR,GAAG,SAAO;IACV,IAAI,SAAK;IACT,SAAS,SAAK;IACf,MAAM,EAAE,MAAM,EAAE,CAAM;IAEjD,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,YAAY;IAKpB,MAAM;IAgBN,OAAO,CAAC,WAAW;IA0BnB,OAAO,CAAC,YAAY;IAcpB,OAAO,CAAC,YAAY;CAarB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,iBAAiB,EAAE,aAAa,CAAC;KAClC;CACF"}