@wsxjs/wsx-base-components 0.0.7 → 0.0.9

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/index.js CHANGED
@@ -1,110 +1,164 @@
1
- import { autoRegister as x, WebComponent as y, jsx as i, createLogger as C, ReactiveWebComponent as ot } from "@wsxjs/wsx-core";
2
- const Qt = ':host{position:relative;display:inline-flex;padding:.25em .625em;box-sizing:border-box;vertical-align:middle;line-height:1.8;overflow:hidden;align-items:center;justify-content:center;font-size:14px;color:var(--fontColor, #333);border-radius:var(--borderRadius, .25em);background:var(--fontColor, #333);transition:background .3s,box-shadow .3s,border-color .3s,color .3s}:host([size="xxxs"]){padding:.03125em .0625em;font-size:6px;line-height:1;min-width:10px;min-height:8px;border-radius:1px}:host([size="xxs"]){padding:.0625em .125em;font-size:8px;line-height:1.1;min-width:14px;min-height:12px;border-radius:2px}:host([size="xs"]){padding:.125em .25em;font-size:10px;line-height:1.2;min-width:18px;min-height:16px;border-radius:3px}:host([size="sm"]){padding:.25em .5em;font-size:12px;line-height:1.4;min-width:24px;min-height:20px;border-radius:4px}:host([size="md"]){padding:.375em .75em;font-size:14px;line-height:1.5;min-width:32px;min-height:28px;border-radius:6px}:host([size="lg"]){padding:.5em 1em;font-size:14px;line-height:1.6;min-width:40px;min-height:32px;border-radius:6px}:host([size="xl"]){padding:.625em 1.25em;font-size:16px;line-height:1.6;min-width:48px;min-height:40px;border-radius:8px}:host([shape="circle"]){border-radius:50%}:host([disabled]),:host([loading]){pointer-events:none;opacity:.6}:host([block]){display:flex}:host([disabled]:not([variant])){background:#0000001a}:host([disabled]) .btn,:host([loading]) .btn{cursor:not-allowed;pointer-events:all}:host(:not([variant="primary"]):not([variant="danger"]):not([disabled]):hover),:host(:not([variant="primary"]):not([variant="danger"]):focus-within),:host([variant="flat"][focus]){color:var(--themeColor, #42b983);border-color:var(--themeColor, #42b983)}:host(:not([variant="primary"]):not([variant="danger"])) .btn:after{background-image:radial-gradient(circle,var(--themeColor, #42b983) 10%,transparent 10.01%)}:host([variant="primary"]){color:#fff;background:var(--themeBackground, var(--themeColor, #42b983))}:host([variant="danger"]){color:#fff;background:var(--themeBackground, var(--dangerColor, #ff7875))}:host([variant="dashed"]){border-style:dashed}:host([variant="flat"]),:host([variant="primary"]),:host([variant="danger"]){border:0;padding:calc(.25em + 1px) calc(.625em + 1px)}:host([variant="flat"]) .btn:before{content:"";position:absolute;background:var(--themeColor, #42b983);pointer-events:none;left:0;right:0;top:0;bottom:0;opacity:0;transition:.3s}:host([variant="flat"]:not([disabled]):hover) .btn:before{opacity:.1}:host(:not([disabled]):hover){z-index:1}:host([variant="flat"]:focus-within) .btn:before,:host([variant="flat"][focus]) .btn:before{opacity:.2}.btn{background:none;outline:0;border:0;position:absolute;left:0;top:0;width:100%;height:100%;padding:0;-webkit-user-select:none;user-select:none;cursor:unset}.loading{margin-right:.35em}::-moz-focus-inner{border:0}.btn:before{content:"";display:block;position:absolute;width:100%;height:100%;left:0;top:0;transition:.2s;background:#fff;opacity:0}:host(:not([disabled]):active) .btn:before{opacity:.2}.btn:after{content:"";display:block;position:absolute;width:100%;height:100%;left:var(--x, 0);top:var(--y, 0);pointer-events:none;background-image:radial-gradient(circle,#fff 10%,transparent 10.01%);background-repeat:no-repeat;background-position:50%;transform:translate(-50%,-50%) scale(10);opacity:0;transition:transform .3s,opacity .8s}.btn:not([disabled]):active:after{transform:translate(-50%,-50%) scale(0);opacity:.3;transition:0s}.icon{margin-right:.35em;transition:none}:host(:empty) .icon{margin:auto}:host(:empty){padding:.65em}:host([type="flat"]:empty),:host([type="primary"]:empty){padding:calc(.65em + 1px)}::slotted(.icon){transition:none}:host([href]){cursor:pointer}';
3
- var Vt = Object.create, L = Object.defineProperty, Zt = Object.getOwnPropertyDescriptor, rt = (e, t) => (t = Symbol[e]) ? t : Symbol.for("Symbol." + e), it = (e) => {
4
- throw TypeError(e);
5
- }, st = (e, t, o) => t in e ? L(e, t, { enumerable: !0, configurable: !0, writable: !0, value: o }) : e[t] = o, te = (e, t) => L(e, "name", { value: t, configurable: !0 }), ee = (e) => [, , , Vt((e == null ? void 0 : e[rt("metadata")]) ?? null)], oe = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"], nt = (e) => e !== void 0 && typeof e != "function" ? it("Function expected") : e, re = (e, t, o, s, r) => ({ kind: oe[e], name: t, metadata: s, addInitializer: (n) => o._ ? it("Already initialized") : r.push(nt(n || null)) }), ie = (e, t) => st(t, rt("metadata"), e[3]), se = (e, t, o, s) => {
6
- for (var r = 0, n = e[t >> 1], a = n && n.length; r < a; r++) n[r].call(o);
7
- return s;
8
- }, ne = (e, t, o, s, r, n) => {
9
- var a, h, u, l = t & 7, p = !1, m = 0, g = e[m] || (e[m] = []), c = l && (r = r.prototype, l < 5 && (l > 3 || !p) && Zt(r, o));
10
- te(r, o);
11
- for (var d = s.length - 1; d >= 0; d--)
12
- u = re(l, o, h = {}, e[3], g), a = (0, s[d])(r, u), h._ = 1, nt(a) && (r = a);
13
- return ie(e, r), c && L(r, o, c), p ? l ^ 4 ? n : c : r;
14
- }, b = (e, t, o) => st(e, typeof t != "symbol" ? t + "" : t, o), at, N, lt;
15
- at = [x({ tagName: "xy-button" })];
16
- class D extends (lt = y) {
17
- constructor(t = {}) {
1
+ import { autoRegister as re, WebComponent as X, jsx as n, createLogger as ne, LightComponent as he } from "@wsxjs/wsx-core";
2
+ const _t = ':host{position:relative;display:inline-flex;padding:.25em .625em;box-sizing:border-box;vertical-align:middle;line-height:1.8;overflow:hidden;align-items:center;justify-content:center;font-size:14px;color:var(--fontColor, #333);border-radius:var(--borderRadius, .25em);background:var(--fontColor, #333);transition:background .3s,box-shadow .3s,border-color .3s,color .3s}:host([size="xxxs"]){padding:.03125em .0625em;font-size:6px;line-height:1;min-width:10px;min-height:8px;border-radius:1px}:host([size="xxs"]){padding:.0625em .125em;font-size:8px;line-height:1.1;min-width:14px;min-height:12px;border-radius:2px}:host([size="xs"]){padding:.125em .25em;font-size:10px;line-height:1.2;min-width:18px;min-height:16px;border-radius:3px}:host([size="sm"]){padding:.25em .5em;font-size:12px;line-height:1.4;min-width:24px;min-height:20px;border-radius:4px}:host([size="md"]){padding:.375em .75em;font-size:14px;line-height:1.5;min-width:32px;min-height:28px;border-radius:6px}:host([size="lg"]){padding:.5em 1em;font-size:14px;line-height:1.6;min-width:40px;min-height:32px;border-radius:6px}:host([size="xl"]){padding:.625em 1.25em;font-size:16px;line-height:1.6;min-width:48px;min-height:40px;border-radius:8px}:host([shape="circle"]){border-radius:50%}:host([disabled]),:host([loading]){pointer-events:none;opacity:.6}:host([block]){display:flex}:host([disabled]:not([variant])){background:#0000001a}:host([disabled]) .btn,:host([loading]) .btn{cursor:not-allowed;pointer-events:all}:host(:not([variant="primary"]):not([variant="danger"]):not([disabled]):hover),:host(:not([variant="primary"]):not([variant="danger"]):focus-within),:host([variant="flat"][focus]){color:var(--themeColor, #42b983);border-color:var(--themeColor, #42b983)}:host(:not([variant="primary"]):not([variant="danger"])) .btn:after{background-image:radial-gradient(circle,var(--themeColor, #42b983) 10%,transparent 10.01%)}:host([variant="primary"]){color:#fff;background:var(--themeBackground, var(--themeColor, #42b983))}:host([variant="danger"]){color:#fff;background:var(--themeBackground, var(--dangerColor, #ff7875))}:host([variant="dashed"]){border-style:dashed}:host([variant="flat"]),:host([variant="primary"]),:host([variant="danger"]){border:0;padding:calc(.25em + 1px) calc(.625em + 1px)}:host([variant="flat"]) .btn:before{content:"";position:absolute;background:var(--themeColor, #42b983);pointer-events:none;left:0;right:0;top:0;bottom:0;opacity:0;transition:.3s}:host([variant="flat"]:not([disabled]):hover) .btn:before{opacity:.1}:host(:not([disabled]):hover){z-index:1}:host([variant="flat"]:focus-within) .btn:before,:host([variant="flat"][focus]) .btn:before{opacity:.2}.btn{background:none;outline:0;border:0;position:absolute;left:0;top:0;width:100%;height:100%;padding:0;-webkit-user-select:none;user-select:none;cursor:unset}.loading{margin-right:.35em}::-moz-focus-inner{border:0}.btn:before{content:"";display:block;position:absolute;width:100%;height:100%;left:0;top:0;transition:.2s;background:#fff;opacity:0}:host(:not([disabled]):active) .btn:before{opacity:.2}.btn:after{content:"";display:block;position:absolute;width:100%;height:100%;left:var(--x, 0);top:var(--y, 0);pointer-events:none;background-image:radial-gradient(circle,#fff 10%,transparent 10.01%);background-repeat:no-repeat;background-position:50%;transform:translate(-50%,-50%) scale(10);opacity:0;transition:transform .3s,opacity .8s}.btn:not([disabled]):active:after{transform:translate(-50%,-50%) scale(0);opacity:.3;transition:0s}.icon{margin-right:.35em;transition:none}:host(:empty) .icon{margin:auto}:host(:empty){padding:.65em}:host([type="flat"]:empty),:host([type="primary"]:empty){padding:calc(.65em + 1px)}::slotted(.icon){transition:none}:host([href]){cursor:pointer}';
3
+ var De;
4
+ let $e, Oe;
5
+ function q(t, e, r) {
6
+ return (e = Pe(e)) in t ? Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }) : t[e] = r, t;
7
+ }
8
+ function Et(t, e, r, g, S, A) {
9
+ function T(o, l, u) {
10
+ return function(s, a) {
11
+ return u && u(s), o[l].call(s, a);
12
+ };
13
+ }
14
+ function B(o, l) {
15
+ for (var u = 0; u < o.length; u++) o[u].call(l);
16
+ return l;
17
+ }
18
+ function _(o, l, u, s) {
19
+ if (typeof o != "function" && (s || o !== void 0)) throw new TypeError(l + " must " + (u || "be") + " a function" + (s ? "" : " or undefined"));
20
+ return o;
21
+ }
22
+ function M(o, l, u, s, a, j, L, E, P, y, b, f, p) {
23
+ function v(c) {
24
+ if (!p(c)) throw new TypeError("Attempted to access private element on non-instance");
25
+ }
26
+ var d, x = l[0], k = l[3], z = !E;
27
+ if (!z) {
28
+ u || Array.isArray(x) || (x = [x]);
29
+ var i = {}, C = [], m = a === 3 ? "get" : a === 4 || f ? "set" : "value";
30
+ y ? (b || f ? i = { get: ve(function() {
31
+ return k(this);
32
+ }, s, "get"), set: function(c) {
33
+ l[4](this, c);
34
+ } } : i[m] = k, b || ve(i[m], s, a === 2 ? "" : m)) : b || (i = Object.getOwnPropertyDescriptor(o, s));
35
+ }
36
+ for (var h = o, I = x.length - 1; I >= 0; I -= u ? 2 : 1) {
37
+ var F = x[I], K = u ? x[I - 1] : void 0, J = {}, D = { kind: ["field", "accessor", "method", "getter", "setter", "class"][a], name: s, metadata: j, addInitializer: (function(c, w) {
38
+ if (c.v) throw Error("attempted to call addInitializer after decoration was finished");
39
+ _(w, "An initializer", "be", !0), L.push(w);
40
+ }).bind(null, J) };
41
+ try {
42
+ if (z) (d = _(F.call(K, h, D), "class decorators", "return")) && (h = d);
43
+ else {
44
+ var $, R;
45
+ D.static = P, D.private = y, y ? a === 2 ? $ = function(c) {
46
+ return v(c), i.value;
47
+ } : (a < 4 && ($ = T(i, "get", v)), a !== 3 && (R = T(i, "set", v))) : ($ = function(c) {
48
+ return c[s];
49
+ }, (a < 2 || a === 4) && (R = function(c, w) {
50
+ c[s] = w;
51
+ }));
52
+ var W = D.access = { has: y ? p.bind() : function(c) {
53
+ return s in c;
54
+ } };
55
+ if ($ && (W.get = $), R && (W.set = R), h = F.call(K, f ? { get: i.get, set: i.set } : i[m], D), f) {
56
+ if (typeof h == "object" && h) (d = _(h.get, "accessor.get")) && (i.get = d), (d = _(h.set, "accessor.set")) && (i.set = d), (d = _(h.init, "accessor.init")) && C.push(d);
57
+ else if (h !== void 0) throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0");
58
+ } else _(h, (b ? "field" : "method") + " decorators", "return") && (b ? C.push(h) : i[m] = h);
59
+ }
60
+ } finally {
61
+ J.v = !0;
62
+ }
63
+ }
64
+ return (b || f) && E.push(function(c, w) {
65
+ for (var N = C.length - 1; N >= 0; N--) w = C[N].call(c, w);
66
+ return w;
67
+ }), b || z || (y ? f ? E.push(T(i, "get"), T(i, "set")) : E.push(a === 2 ? i[m] : T.call.bind(i[m])) : Object.defineProperty(o, s, i)), h;
68
+ }
69
+ function U(o, l) {
70
+ return Object.defineProperty(o, Symbol.metadata || Symbol.for("Symbol.metadata"), { configurable: !0, enumerable: !0, value: l });
71
+ }
72
+ if (arguments.length >= 6) var H = A[Symbol.metadata || Symbol.for("Symbol.metadata")];
73
+ var O = Object.create(H ?? null), G = function(o, l, u, s) {
74
+ var a, j, L = [], E = function(m) {
75
+ return At(m) === o;
76
+ }, P = /* @__PURE__ */ new Map();
77
+ function y(m) {
78
+ m && L.push(B.bind(null, m));
79
+ }
80
+ for (var b = 0; b < l.length; b++) {
81
+ var f = l[b];
82
+ if (Array.isArray(f)) {
83
+ var p = f[1], v = f[2], d = f.length > 3, x = 16 & p, k = !!(8 & p), z = (p &= 7) == 0, i = v + "/" + k;
84
+ if (!z && !d) {
85
+ var C = P.get(i);
86
+ if (C === !0 || C === 3 && p !== 4 || C === 4 && p !== 3) throw Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + v);
87
+ P.set(i, !(p > 2) || p);
88
+ }
89
+ M(k ? o : o.prototype, f, x, d ? "#" + v : Pe(v), p, s, k ? j = j || [] : a = a || [], L, k, d, z, p === 1, k && d ? E : u);
90
+ }
91
+ }
92
+ return y(a), y(j), L;
93
+ }(t, e, S, O);
94
+ return r.length || U(t, O), { e: G, get c() {
95
+ var o = [];
96
+ return r.length && [U(M(t, [r], g, t.name, 5, O, o), O), B.bind(null, o, t)];
97
+ } };
98
+ }
99
+ function Pe(t) {
100
+ var e = zt(t, "string");
101
+ return typeof e == "symbol" ? e : e + "";
102
+ }
103
+ function zt(t, e) {
104
+ if (typeof t != "object" || !t) return t;
105
+ var r = t[Symbol.toPrimitive];
106
+ if (r !== void 0) {
107
+ var g = r.call(t, e);
108
+ if (typeof g != "object") return g;
109
+ throw new TypeError("@@toPrimitive must return a primitive value.");
110
+ }
111
+ return String(t);
112
+ }
113
+ function ve(t, e, r) {
114
+ typeof e == "symbol" && (e = (e = e.description) ? "[" + e + "]" : "");
115
+ try {
116
+ Object.defineProperty(t, "name", { configurable: !0, value: r ? r + " " + e : e });
117
+ } catch {
118
+ }
119
+ return t;
120
+ }
121
+ function At(t) {
122
+ if (Object(t) !== t) throw TypeError("right-hand side of 'in' should be an object, got " + (t !== null ? typeof t : "null"));
123
+ return t;
124
+ }
125
+ Oe = [re({
126
+ tagName: "xy-button"
127
+ })];
128
+ let jt;
129
+ class Lt extends X {
130
+ static get observedAttributes() {
131
+ return ["disabled", "icon", "loading", "href", "type", "target", "rel", "download", "toggle", "checked", "variant", "shape", "block", "size"];
132
+ }
133
+ constructor(e = {}) {
18
134
  super({
19
- styles: Qt,
20
135
  styleName: "xy-button",
21
- ...t
22
- }), b(this, "disabled", !1), b(this, "loading", !1), b(this, "toggle", !1), b(this, "checked", !1), b(this, "icon", null), b(this, "href", null), b(this, "type", null), b(this, "target", "_blank"), b(this, "rel", null), b(this, "download", null), b(this, "variant", "flat"), b(this, "size", "md"), b(this, "btnElement"), b(this, "iconElement"), b(this, "loadingElement"), b(this, "handleMouseDown", (o) => {
136
+ ...e
137
+ }), q(this, "_autoStyles", _t), q(this, "disabled", !1), q(this, "loading", !1), q(this, "toggle", !1), q(this, "checked", !1), q(this, "icon", null), q(this, "href", null), q(this, "type", null), q(this, "target", "_blank"), q(this, "rel", null), q(this, "download", null), q(this, "variant", "flat"), q(this, "size", "md"), q(this, "btnElement", void 0), q(this, "iconElement", void 0), q(this, "loadingElement", void 0), q(this, "handleMouseDown", (r) => {
23
138
  if (this.disabled) return;
24
- const s = this.getBoundingClientRect(), r = o.clientX - s.left, n = o.clientY - s.top;
25
- this.style.setProperty("--x", `${r}px`), this.style.setProperty("--y", `${n}px`);
26
- }), b(this, "handleKeyDown", (o) => {
27
- (o.code === "Enter" || o.code === "Space") && o.stopPropagation();
28
- }), b(this, "handleClick", () => {
139
+ const g = this.getBoundingClientRect(), S = r.clientX - g.left, A = r.clientY - g.top;
140
+ this.style.setProperty("--x", `${S}px`), this.style.setProperty("--y", `${A}px`);
141
+ }), q(this, "handleKeyDown", (r) => {
142
+ (r.code === "Enter" || r.code === "Space") && r.stopPropagation();
143
+ }), q(this, "handleClick", () => {
29
144
  this.toggle && !this.disabled && (this.checked = !this.checked, this.checked ? this.setAttr("checked", "") : this.removeAttr("checked"));
30
- }), this.disabled = t.disabled || !1, this.loading = t.loading || !1, this.toggle = t.toggle || !1, this.checked = t.checked || !1, this.icon = t.icon || null, this.href = t.href || null, this.type = t.type || null, this.target = t.target || "_blank", this.rel = t.rel || null, this.download = t.download || null, this.variant = t.variant || "flat", this.size = t.size || "md";
31
- }
32
- static get observedAttributes() {
33
- return [
34
- "disabled",
35
- "icon",
36
- "loading",
37
- "href",
38
- "type",
39
- "target",
40
- "rel",
41
- "download",
42
- "toggle",
43
- "checked",
44
- "variant",
45
- "shape",
46
- "block",
47
- "size"
48
- ];
145
+ }), this.disabled = e.disabled || !1, this.loading = e.loading || !1, this.toggle = e.toggle || !1, this.checked = e.checked || !1, this.icon = e.icon || null, this.href = e.href || null, this.type = e.type || null, this.target = e.target || "_blank", this.rel = e.rel || null, this.download = e.download || null, this.variant = e.variant || "flat", this.size = e.size || "md";
49
146
  }
50
147
  render() {
51
- const t = !!this.href, o = /* @__PURE__ */ i(
52
- "a",
53
- {
54
- href: this.href,
55
- target: this.target,
56
- rel: this.rel || void 0,
57
- download: this.download || void 0,
58
- className: "btn",
59
- onMouseDown: this.handleMouseDown,
60
- onKeyDown: this.handleKeyDown,
61
- ref: (r) => {
62
- this.btnElement = r;
63
- }
64
- },
65
- this.renderContent()
66
- ), s = /* @__PURE__ */ i(
67
- "button",
68
- {
69
- type: this.type || "button",
70
- disabled: this.disabled,
71
- className: "btn",
72
- onMouseDown: this.handleMouseDown,
73
- onKeyDown: this.handleKeyDown,
74
- ref: (r) => {
75
- this.btnElement = r;
76
- }
77
- },
78
- this.renderContent()
79
- );
80
- return /* @__PURE__ */ i("div", { className: "xy-button-container" }, t ? o : s);
148
+ const e = !!this.href, r = /* @__PURE__ */ n("a", { href: this.href, target: this.target, rel: this.rel || void 0, download: this.download || void 0, className: "btn", onMouseDown: this.handleMouseDown, onKeyDown: this.handleKeyDown, ref: (S) => {
149
+ this.btnElement = S;
150
+ } }, this.renderContent()), g = /* @__PURE__ */ n("button", { type: this.type || "button", disabled: this.disabled, className: "btn", onMouseDown: this.handleMouseDown, onKeyDown: this.handleKeyDown, ref: (S) => {
151
+ this.btnElement = S;
152
+ }, "data-wsx-key": "XyButton-button-text-0" }, this.renderContent());
153
+ return /* @__PURE__ */ n("div", { className: "xy-button-container" }, e ? r : g);
81
154
  }
82
155
  renderContent() {
83
- const t = [];
84
- return this.loading && t.push(
85
- /* @__PURE__ */ i(
86
- "div",
87
- {
88
- className: "loading",
89
- ref: (o) => {
90
- this.loadingElement = o;
91
- }
92
- },
93
- "Loading..."
94
- )
95
- ), !this.loading && this.icon && this.icon !== "null" && t.push(
96
- /* @__PURE__ */ i(
97
- "div",
98
- {
99
- className: "icon",
100
- "data-icon": this.icon,
101
- ref: (o) => {
102
- this.iconElement = o;
103
- }
104
- },
105
- this.icon
106
- )
107
- ), t.push(/* @__PURE__ */ i("slot", null)), t;
156
+ const e = [];
157
+ return this.loading && e.push(/* @__PURE__ */ n("div", { className: "loading", ref: (r) => {
158
+ this.loadingElement = r;
159
+ } }, "Loading...")), !this.loading && this.icon && this.icon !== "null" && e.push(/* @__PURE__ */ n("div", { className: "icon", "data-icon": this.icon, ref: (r) => {
160
+ this.iconElement = r;
161
+ } }, this.icon)), e.push(/* @__PURE__ */ n("slot", null)), e;
108
162
  }
109
163
  /**
110
164
  * 组件连接到DOM后的初始化
@@ -121,43 +175,43 @@ class D extends (lt = y) {
121
175
  /**
122
176
  * 属性变化处理
123
177
  */
124
- onAttributeChanged(t, o, s) {
125
- switch (t) {
178
+ onAttributeChanged(e, r, g) {
179
+ switch (e) {
126
180
  case "disabled":
127
- this.disabled = s !== null, this.updateButtonState();
181
+ this.disabled = g !== null, this.updateButtonState();
128
182
  break;
129
183
  case "loading":
130
- this.loading = s !== null, this.updateButtonState(), this.rerender();
184
+ this.loading = g !== null, this.updateButtonState(), this.rerender();
131
185
  break;
132
186
  case "icon":
133
- this.icon = s, this.rerender();
187
+ this.icon = g, this.rerender();
134
188
  break;
135
189
  case "href":
136
- this.href = s, this.rerender();
190
+ this.href = g, this.rerender();
137
191
  break;
138
192
  case "type":
139
- this.type = s, this.updateButtonState();
193
+ this.type = g, this.updateButtonState();
140
194
  break;
141
195
  case "target":
142
- this.target = s || "_blank";
196
+ this.target = g || "_blank";
143
197
  break;
144
198
  case "rel":
145
- this.rel = s;
199
+ this.rel = g;
146
200
  break;
147
201
  case "download":
148
- this.download = s;
202
+ this.download = g;
149
203
  break;
150
204
  case "toggle":
151
- this.toggle = s !== null;
205
+ this.toggle = g !== null;
152
206
  break;
153
207
  case "checked":
154
- this.checked = s !== null;
208
+ this.checked = g !== null;
155
209
  break;
156
210
  case "variant":
157
- this.variant = s || "flat";
211
+ this.variant = g || "flat";
158
212
  break;
159
213
  case "size":
160
- this.size = s || "md";
214
+ this.size = g || "md";
161
215
  break;
162
216
  }
163
217
  }
@@ -171,8 +225,8 @@ class D extends (lt = y) {
171
225
  * 公共API:聚焦按钮
172
226
  */
173
227
  focus() {
174
- var t;
175
- (t = this.btnElement) == null || t.focus();
228
+ var e;
229
+ (e = this.btnElement) == null || e.focus();
176
230
  }
177
231
  /**
178
232
  * 公共API:获取/设置属性
@@ -180,66 +234,178 @@ class D extends (lt = y) {
180
234
  get isDisabled() {
181
235
  return this.disabled;
182
236
  }
183
- set isDisabled(t) {
184
- t ? this.setAttr("disabled", "") : this.removeAttr("disabled");
237
+ set isDisabled(e) {
238
+ e ? this.setAttr("disabled", "") : this.removeAttr("disabled");
185
239
  }
186
240
  get isLoading() {
187
241
  return this.loading;
188
242
  }
189
- set isLoading(t) {
190
- t ? this.setAttr("loading", "") : this.removeAttr("loading");
243
+ set isLoading(e) {
244
+ e ? this.setAttr("loading", "") : this.removeAttr("loading");
191
245
  }
192
246
  get isChecked() {
193
247
  return this.checked;
194
248
  }
195
- set isChecked(t) {
196
- t ? this.setAttr("checked", "") : this.removeAttr("checked");
249
+ set isChecked(e) {
250
+ e ? this.setAttr("checked", "") : this.removeAttr("checked");
197
251
  }
198
252
  get buttonIcon() {
199
253
  return this.icon;
200
254
  }
201
- set buttonIcon(t) {
202
- t ? this.setAttr("icon", t) : this.removeAttr("icon");
203
- }
204
- }
205
- N = ee(lt);
206
- D = ne(N, 0, "XyButton", at, D);
207
- se(N, 1, D);
208
- const ae = ':host{display:inline-flex}::slotted(xy-button:not(:first-of-type):not(:last-of-type)){border-radius:0}::slotted(xy-button){margin:0!important}::slotted(xy-button:not(:first-of-type)){margin-left:-1px!important}::slotted(xy-button[type]:not([type="dashed"]):not(:first-of-type)){margin-left:1px!important}::slotted(xy-button:first-of-type){border-top-right-radius:0;border-bottom-right-radius:0}::slotted(xy-button:last-of-type){border-top-left-radius:0;border-bottom-left-radius:0}';
209
- var le = Object.create, H = Object.defineProperty, ce = Object.getOwnPropertyDescriptor, ct = (e, t) => (t = Symbol[e]) ? t : Symbol.for("Symbol." + e), dt = (e) => {
210
- throw TypeError(e);
211
- }, ht = (e, t, o) => t in e ? H(e, t, { enumerable: !0, configurable: !0, writable: !0, value: o }) : e[t] = o, de = (e, t) => H(e, "name", { value: t, configurable: !0 }), he = (e) => [, , , le((e == null ? void 0 : e[ct("metadata")]) ?? null)], ue = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"], ut = (e) => e !== void 0 && typeof e != "function" ? dt("Function expected") : e, pe = (e, t, o, s, r) => ({ kind: ue[e], name: t, metadata: s, addInitializer: (n) => o._ ? dt("Already initialized") : r.push(ut(n || null)) }), me = (e, t) => ht(t, ct("metadata"), e[3]), be = (e, t, o, s) => {
212
- for (var r = 0, n = e[t >> 1], a = n && n.length; r < a; r++) n[r].call(o);
213
- return s;
214
- }, ge = (e, t, o, s, r, n) => {
215
- var a, h, u, l = t & 7, p = !1, m = 0, g = e[m] || (e[m] = []), c = l && (r = r.prototype, l < 5 && (l > 3 || !p) && ce(r, o));
216
- de(r, o);
217
- for (var d = s.length - 1; d >= 0; d--)
218
- u = pe(l, o, h = {}, e[3], g), a = (0, s[d])(r, u), h._ = 1, ut(a) && (r = a);
219
- return me(e, r), c && H(r, o, c), p ? l ^ 4 ? n : c : r;
220
- }, fe = (e, t, o) => ht(e, t + "", o), pt, j, mt;
221
- pt = [x({ tagName: "xy-button-group" })];
222
- class T extends (mt = y) {
223
- constructor(t = {}) {
224
- super({
225
- styles: ae,
226
- styleName: "xy-button-group",
227
- ...t
228
- }), fe(this, "disabled", !1), this.disabled = t.disabled || !1;
255
+ set buttonIcon(e) {
256
+ e ? this.setAttr("icon", e) : this.removeAttr("icon");
257
+ }
258
+ }
259
+ De = Lt;
260
+ [jt, $e] = Et(De, [], Oe, 0, void 0, X).c;
261
+ $e();
262
+ const Dt = ':host{display:inline-flex}::slotted(xy-button:not(:first-of-type):not(:last-of-type)){border-radius:0}::slotted(xy-button){margin:0!important}::slotted(xy-button:not(:first-of-type)){margin-left:-1px!important}::slotted(xy-button[type]:not([type="dashed"]):not(:first-of-type)){margin-left:1px!important}::slotted(xy-button:first-of-type){border-top-right-radius:0;border-bottom-right-radius:0}::slotted(xy-button:last-of-type){border-top-left-radius:0;border-bottom-left-radius:0}';
263
+ var Ie;
264
+ let Re, Be;
265
+ function xe(t, e, r) {
266
+ return (e = Ne(e)) in t ? Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }) : t[e] = r, t;
267
+ }
268
+ function $t(t, e, r, g, S, A) {
269
+ function T(o, l, u) {
270
+ return function(s, a) {
271
+ return u && u(s), o[l].call(s, a);
272
+ };
273
+ }
274
+ function B(o, l) {
275
+ for (var u = 0; u < o.length; u++) o[u].call(l);
276
+ return l;
277
+ }
278
+ function _(o, l, u, s) {
279
+ if (typeof o != "function" && (s || o !== void 0)) throw new TypeError(l + " must " + (u || "be") + " a function" + (s ? "" : " or undefined"));
280
+ return o;
281
+ }
282
+ function M(o, l, u, s, a, j, L, E, P, y, b, f, p) {
283
+ function v(c) {
284
+ if (!p(c)) throw new TypeError("Attempted to access private element on non-instance");
285
+ }
286
+ var d, x = l[0], k = l[3], z = !E;
287
+ if (!z) {
288
+ u || Array.isArray(x) || (x = [x]);
289
+ var i = {}, C = [], m = a === 3 ? "get" : a === 4 || f ? "set" : "value";
290
+ y ? (b || f ? i = { get: ke(function() {
291
+ return k(this);
292
+ }, s, "get"), set: function(c) {
293
+ l[4](this, c);
294
+ } } : i[m] = k, b || ke(i[m], s, a === 2 ? "" : m)) : b || (i = Object.getOwnPropertyDescriptor(o, s));
295
+ }
296
+ for (var h = o, I = x.length - 1; I >= 0; I -= u ? 2 : 1) {
297
+ var F = x[I], K = u ? x[I - 1] : void 0, J = {}, D = { kind: ["field", "accessor", "method", "getter", "setter", "class"][a], name: s, metadata: j, addInitializer: (function(c, w) {
298
+ if (c.v) throw Error("attempted to call addInitializer after decoration was finished");
299
+ _(w, "An initializer", "be", !0), L.push(w);
300
+ }).bind(null, J) };
301
+ try {
302
+ if (z) (d = _(F.call(K, h, D), "class decorators", "return")) && (h = d);
303
+ else {
304
+ var $, R;
305
+ D.static = P, D.private = y, y ? a === 2 ? $ = function(c) {
306
+ return v(c), i.value;
307
+ } : (a < 4 && ($ = T(i, "get", v)), a !== 3 && (R = T(i, "set", v))) : ($ = function(c) {
308
+ return c[s];
309
+ }, (a < 2 || a === 4) && (R = function(c, w) {
310
+ c[s] = w;
311
+ }));
312
+ var W = D.access = { has: y ? p.bind() : function(c) {
313
+ return s in c;
314
+ } };
315
+ if ($ && (W.get = $), R && (W.set = R), h = F.call(K, f ? { get: i.get, set: i.set } : i[m], D), f) {
316
+ if (typeof h == "object" && h) (d = _(h.get, "accessor.get")) && (i.get = d), (d = _(h.set, "accessor.set")) && (i.set = d), (d = _(h.init, "accessor.init")) && C.push(d);
317
+ else if (h !== void 0) throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0");
318
+ } else _(h, (b ? "field" : "method") + " decorators", "return") && (b ? C.push(h) : i[m] = h);
319
+ }
320
+ } finally {
321
+ J.v = !0;
322
+ }
323
+ }
324
+ return (b || f) && E.push(function(c, w) {
325
+ for (var N = C.length - 1; N >= 0; N--) w = C[N].call(c, w);
326
+ return w;
327
+ }), b || z || (y ? f ? E.push(T(i, "get"), T(i, "set")) : E.push(a === 2 ? i[m] : T.call.bind(i[m])) : Object.defineProperty(o, s, i)), h;
328
+ }
329
+ function U(o, l) {
330
+ return Object.defineProperty(o, Symbol.metadata || Symbol.for("Symbol.metadata"), { configurable: !0, enumerable: !0, value: l });
331
+ }
332
+ if (arguments.length >= 6) var H = A[Symbol.metadata || Symbol.for("Symbol.metadata")];
333
+ var O = Object.create(H ?? null), G = function(o, l, u, s) {
334
+ var a, j, L = [], E = function(m) {
335
+ return Pt(m) === o;
336
+ }, P = /* @__PURE__ */ new Map();
337
+ function y(m) {
338
+ m && L.push(B.bind(null, m));
339
+ }
340
+ for (var b = 0; b < l.length; b++) {
341
+ var f = l[b];
342
+ if (Array.isArray(f)) {
343
+ var p = f[1], v = f[2], d = f.length > 3, x = 16 & p, k = !!(8 & p), z = (p &= 7) == 0, i = v + "/" + k;
344
+ if (!z && !d) {
345
+ var C = P.get(i);
346
+ if (C === !0 || C === 3 && p !== 4 || C === 4 && p !== 3) throw Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + v);
347
+ P.set(i, !(p > 2) || p);
348
+ }
349
+ M(k ? o : o.prototype, f, x, d ? "#" + v : Ne(v), p, s, k ? j = j || [] : a = a || [], L, k, d, z, p === 1, k && d ? E : u);
350
+ }
351
+ }
352
+ return y(a), y(j), L;
353
+ }(t, e, S, O);
354
+ return r.length || U(t, O), { e: G, get c() {
355
+ var o = [];
356
+ return r.length && [U(M(t, [r], g, t.name, 5, O, o), O), B.bind(null, o, t)];
357
+ } };
358
+ }
359
+ function Ne(t) {
360
+ var e = Ot(t, "string");
361
+ return typeof e == "symbol" ? e : e + "";
362
+ }
363
+ function Ot(t, e) {
364
+ if (typeof t != "object" || !t) return t;
365
+ var r = t[Symbol.toPrimitive];
366
+ if (r !== void 0) {
367
+ var g = r.call(t, e);
368
+ if (typeof g != "object") return g;
369
+ throw new TypeError("@@toPrimitive must return a primitive value.");
370
+ }
371
+ return String(t);
372
+ }
373
+ function ke(t, e, r) {
374
+ typeof e == "symbol" && (e = (e = e.description) ? "[" + e + "]" : "");
375
+ try {
376
+ Object.defineProperty(t, "name", { configurable: !0, value: r ? r + " " + e : e });
377
+ } catch {
229
378
  }
379
+ return t;
380
+ }
381
+ function Pt(t) {
382
+ if (Object(t) !== t) throw TypeError("right-hand side of 'in' should be an object, got " + (t !== null ? typeof t : "null"));
383
+ return t;
384
+ }
385
+ Be = [re({
386
+ tagName: "xy-button-group"
387
+ })];
388
+ let It;
389
+ class Rt extends X {
230
390
  static get observedAttributes() {
231
391
  return ["disabled"];
232
392
  }
393
+ constructor(e = {}) {
394
+ super({
395
+ styleName: "xy-button-group",
396
+ ...e
397
+ }), xe(this, "_autoStyles", Dt), xe(this, "disabled", !1), this.disabled = e.disabled || !1;
398
+ }
233
399
  render() {
234
- return /* @__PURE__ */ i("div", { class: "button-group-container" }, /* @__PURE__ */ i("slot", null));
400
+ return /* @__PURE__ */ n("div", { class: "button-group-container" }, /* @__PURE__ */ n("slot", null));
235
401
  }
236
402
  /**
237
403
  * 属性变化处理
238
404
  */
239
- onAttributeChanged(t, o, s) {
240
- switch (t) {
405
+ onAttributeChanged(e, r, g) {
406
+ switch (e) {
241
407
  case "disabled":
242
- this.disabled = s !== null, this.updateChildrenDisabledState();
408
+ this.disabled = g !== null, this.updateChildrenDisabledState();
243
409
  break;
244
410
  }
245
411
  }
@@ -254,8 +420,8 @@ class T extends (mt = y) {
254
420
  */
255
421
  updateChildrenDisabledState() {
256
422
  if (!this.disabled) return;
257
- this.querySelectorAll("xy-button").forEach((o) => {
258
- this.disabled ? o.setAttribute("disabled", "") : o.removeAttribute("disabled");
423
+ this.querySelectorAll("xy-button").forEach((r) => {
424
+ this.disabled ? r.setAttribute("disabled", "") : r.removeAttribute("disabled");
259
425
  });
260
426
  }
261
427
  /**
@@ -264,8 +430,8 @@ class T extends (mt = y) {
264
430
  get isDisabled() {
265
431
  return this.disabled;
266
432
  }
267
- set isDisabled(t) {
268
- t ? this.setAttr("disabled", "") : this.removeAttr("disabled");
433
+ set isDisabled(e) {
434
+ e ? this.setAttr("disabled", "") : this.removeAttr("disabled");
269
435
  }
270
436
  /**
271
437
  * 公共API:获取组内的所有按钮
@@ -277,221 +443,281 @@ class T extends (mt = y) {
277
443
  * 公共API:启用所有按钮
278
444
  */
279
445
  enableAll() {
280
- this.getButtons().forEach((o) => {
281
- o.removeAttribute("disabled");
446
+ this.getButtons().forEach((r) => {
447
+ r.removeAttribute("disabled");
282
448
  });
283
449
  }
284
450
  /**
285
451
  * 公共API:禁用所有按钮
286
452
  */
287
453
  disableAll() {
288
- this.getButtons().forEach((o) => {
289
- o.setAttribute("disabled", "");
454
+ this.getButtons().forEach((r) => {
455
+ r.setAttribute("disabled", "");
290
456
  });
291
457
  }
292
458
  }
293
- j = he(mt);
294
- T = ge(j, 0, "XyButtonGroup", pt, T);
295
- be(j, 1, T);
296
- const ve = '.color-section{display:inline-block;position:relative}.color-popover{display:inline-block;position:relative;overflow:visible}.color-btn{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border:1px solid #e1e5e9;border-radius:3px;background:var(--theme-color, #000);color:transparent;cursor:pointer;transition:all .2s ease;box-sizing:border-box}.color-btn:hover:not(.disabled){border-color:#3f51b5;box-shadow:0 2px 8px #3f51b54d}.color-btn.disabled{opacity:.5;cursor:not-allowed}.color-indicator{font-size:12px;line-height:1;-webkit-user-select:none;user-select:none}.color-panel{position:absolute;top:100%;left:0;z-index:10000;background:#fff;border:1px solid #e1e5e9;border-radius:6px;box-shadow:0 4px 20px #00000026;padding:8px;margin-top:4px;box-sizing:border-box;transform-origin:top left;animation:colorPanelShow .2s ease-out}@keyframes colorPanelShow{0%{opacity:0;transform:scale(.9) translateY(-4px)}to{opacity:1;transform:scale(1) translateY(0)}}.color-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:4px;min-width:160px}.color-cube{width:20px;height:20px;border:1px solid #e1e5e9;border-radius:3px;cursor:pointer;transition:all .2s ease;box-sizing:border-box;background-color:var(--cube-color, #000)}.color-cube:hover{border-color:#3f51b5;transform:scale(1.1);box-shadow:0 2px 8px #3f51b566;z-index:1}.color-cube:active{transform:scale(.95)}.color-cube.custom-picker{background:linear-gradient(45deg,red,#ff8000,#ff0,#80ff00 42%,#0f0 57%,#00ff80,#0ff 85%,#0080ff);position:relative}.color-cube.custom-picker:after{content:"+";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff;font-size:12px;font-weight:700;text-shadow:0 0 2px rgba(0,0,0,.8);pointer-events:none}:host([disabled]) .color-btn{opacity:.5;cursor:not-allowed}:host([open]) .color-panel{display:block}:host(:not([open])) .color-panel{display:none}@media (max-width: 768px){.color-panel{position:fixed;top:auto;left:50%;bottom:10px;transform:translate(-50%);width:90vw;max-width:300px}.color-grid{grid-template-columns:repeat(8,1fr);gap:6px}.color-cube{width:24px;height:24px}}@media (prefers-color-scheme: dark){.color-panel{background:#2d2d2d;border-color:#404040;color:#fff}.color-btn,.color-cube{border-color:#404040}}', S = "editor-js-text-color-cache";
297
- function xe(e) {
298
- return e.startsWith("var(") && e.endsWith(")");
459
+ Ie = Rt;
460
+ [It, Re] = $t(Ie, [], Be, 0, void 0, X).c;
461
+ Re();
462
+ const fe = "editor-js-text-color-cache";
463
+ function Bt(t) {
464
+ return t.startsWith("var(") && t.endsWith(")");
299
465
  }
300
- function _e(e) {
301
- return e.slice(4, -1).trim();
466
+ function Nt(t) {
467
+ return t.slice(4, -1).trim();
302
468
  }
303
- function ye(e) {
304
- return getComputedStyle(document.documentElement).getPropertyValue(e).trim() || e;
469
+ function Mt(t) {
470
+ return getComputedStyle(document.documentElement).getPropertyValue(t).trim() || t;
305
471
  }
306
- function w(e) {
307
- if (xe(e)) {
308
- const t = _e(e);
309
- return ye(t);
472
+ function ue(t) {
473
+ if (Bt(t)) {
474
+ const e = Nt(t);
475
+ return Mt(e);
310
476
  }
311
- return e;
477
+ return t;
312
478
  }
313
- function ke(e, t) {
314
- return sessionStorage.setItem(`${S}-${t}`, JSON.stringify(e)), e;
479
+ function Ut(t, e) {
480
+ return sessionStorage.setItem(`${fe}-${e}`, JSON.stringify(t)), t;
315
481
  }
316
- function Ce(e, t) {
317
- sessionStorage.setItem(`${S}-${t}-custom`, JSON.stringify(e));
482
+ function Ht(t, e) {
483
+ sessionStorage.setItem(`${fe}-${e}-custom`, JSON.stringify(t));
318
484
  }
319
- function we(e) {
320
- const t = sessionStorage.getItem(`${S}-${e}-custom`);
321
- return t ? JSON.parse(t) : null;
485
+ function Ft(t) {
486
+ const e = sessionStorage.getItem(`${fe}-${t}-custom`);
487
+ return e ? JSON.parse(e) : null;
322
488
  }
323
- function $e(e, t) {
324
- let o = null;
325
- return (...s) => {
326
- o || (o = setTimeout(() => {
327
- e(...s), o = null;
328
- }, t));
489
+ function Kt(t, e) {
490
+ let r = null;
491
+ return (...g) => {
492
+ r || (r = setTimeout(() => {
493
+ t(...g), r = null;
494
+ }, e));
329
495
  };
330
496
  }
331
- function To(e, t) {
332
- const o = sessionStorage.getItem(`${S}-${t}`);
333
- return o ? JSON.parse(o) : e;
334
- }
335
- const Oo = "ce-inline-toolbar__dropdown", Io = "ce-conversion-toolbar--showed";
336
- var Se = Object.create, W = Object.defineProperty, ze = Object.getOwnPropertyDescriptor, bt = (e, t) => (t = Symbol[e]) ? t : Symbol.for("Symbol." + e), gt = (e) => {
337
- throw TypeError(e);
338
- }, ft = (e, t, o) => t in e ? W(e, t, { enumerable: !0, configurable: !0, writable: !0, value: o }) : e[t] = o, Ae = (e, t) => W(e, "name", { value: t, configurable: !0 }), Ee = (e) => [, , , Se((e == null ? void 0 : e[bt("metadata")]) ?? null)], Pe = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"], vt = (e) => e !== void 0 && typeof e != "function" ? gt("Function expected") : e, De = (e, t, o, s, r) => ({ kind: Pe[e], name: t, metadata: s, addInitializer: (n) => o._ ? gt("Already initialized") : r.push(vt(n || null)) }), Te = (e, t) => ft(t, bt("metadata"), e[3]), Oe = (e, t, o, s) => {
339
- for (var r = 0, n = e[t >> 1], a = n && n.length; r < a; r++) n[r].call(o);
340
- return s;
341
- }, Ie = (e, t, o, s, r, n) => {
342
- var a, h, u, l = t & 7, p = !1, m = 0, g = e[m] || (e[m] = []), c = l && (r = r.prototype, l < 5 && (l > 3 || !p) && ze(r, o));
343
- Ae(r, o);
344
- for (var d = s.length - 1; d >= 0; d--)
345
- u = De(l, o, h = {}, e[3], g), a = (0, s[d])(r, u), h._ = 1, vt(a) && (r = a);
346
- return Te(e, r), c && W(r, o, c), p ? l ^ 4 ? n : c : r;
347
- }, f = (e, t, o) => ft(e, typeof t != "symbol" ? t + "" : t, o), xt, G, _t;
348
- const k = C("ColorPicker"), Fe = [
349
- "#ff1300",
350
- "#EC7878",
351
- "#9C27B0",
352
- "#673AB7",
353
- "#3F51B5",
354
- "#0070FF",
355
- "#03A9F4",
356
- "#00BCD4",
357
- "#4CAF50",
358
- "#8BC34A",
359
- "#CDDC39",
360
- "#FFE500",
361
- "#FFBF00",
362
- "#FF9800",
363
- "#795548",
364
- "#9E9E9E",
365
- "#5A5A5A",
366
- "#FFF"
367
- ];
368
- xt = [x({ tagName: "color-picker" })];
369
- class O extends (_t = y) {
370
- constructor(t = {}) {
497
+ function Qr(t, e) {
498
+ const r = sessionStorage.getItem(`${fe}-${e}`);
499
+ return r ? JSON.parse(r) : t;
500
+ }
501
+ const Zr = "ce-inline-toolbar__dropdown", Vr = "ce-conversion-toolbar--showed", Jt = '.color-section{display:inline-block;position:relative}.color-popover{display:inline-block;position:relative;overflow:visible}.color-btn{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border:1px solid #e1e5e9;border-radius:3px;background:var(--theme-color, #000);color:transparent;cursor:pointer;transition:all .2s ease;box-sizing:border-box}.color-btn:hover:not(.disabled){border-color:#3f51b5;box-shadow:0 2px 8px #3f51b54d}.color-btn.disabled{opacity:.5;cursor:not-allowed}.color-indicator{font-size:12px;line-height:1;-webkit-user-select:none;user-select:none}.color-panel{position:absolute;top:100%;left:0;z-index:10000;background:#fff;border:1px solid #e1e5e9;border-radius:6px;box-shadow:0 4px 20px #00000026;padding:8px;margin-top:4px;box-sizing:border-box;transform-origin:top left;animation:colorPanelShow .2s ease-out}@keyframes colorPanelShow{0%{opacity:0;transform:scale(.9) translateY(-4px)}to{opacity:1;transform:scale(1) translateY(0)}}.color-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:4px;min-width:160px}.color-cube{width:20px;height:20px;border:1px solid #e1e5e9;border-radius:3px;cursor:pointer;transition:all .2s ease;box-sizing:border-box;background-color:var(--cube-color, #000)}.color-cube:hover{border-color:#3f51b5;transform:scale(1.1);box-shadow:0 2px 8px #3f51b566;z-index:1}.color-cube:active{transform:scale(.95)}.color-cube.custom-picker{background:linear-gradient(45deg,red,#ff8000,#ff0,#80ff00 42%,#0f0 57%,#00ff80,#0ff 85%,#0080ff);position:relative}.color-cube.custom-picker:after{content:"+";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff;font-size:12px;font-weight:700;text-shadow:0 0 2px rgba(0,0,0,.8);pointer-events:none}:host([disabled]) .color-btn{opacity:.5;cursor:not-allowed}:host([open]) .color-panel{display:block}:host(:not([open])) .color-panel{display:none}@media (max-width: 768px){.color-panel{position:fixed;top:auto;left:50%;bottom:10px;transform:translate(-50%);width:90vw;max-width:300px}.color-grid{grid-template-columns:repeat(8,1fr);gap:6px}.color-cube{width:24px;height:24px}}@media (prefers-color-scheme: dark){.color-panel{background:#2d2d2d;border-color:#404040;color:#fff}.color-btn,.color-cube{border-color:#404040}}';
502
+ var Me;
503
+ let Ue, He;
504
+ function Y(t, e, r) {
505
+ return (e = Fe(e)) in t ? Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }) : t[e] = r, t;
506
+ }
507
+ function Wt(t, e, r, g, S, A) {
508
+ function T(o, l, u) {
509
+ return function(s, a) {
510
+ return u && u(s), o[l].call(s, a);
511
+ };
512
+ }
513
+ function B(o, l) {
514
+ for (var u = 0; u < o.length; u++) o[u].call(l);
515
+ return l;
516
+ }
517
+ function _(o, l, u, s) {
518
+ if (typeof o != "function" && (s || o !== void 0)) throw new TypeError(l + " must " + (u || "be") + " a function" + (s ? "" : " or undefined"));
519
+ return o;
520
+ }
521
+ function M(o, l, u, s, a, j, L, E, P, y, b, f, p) {
522
+ function v(c) {
523
+ if (!p(c)) throw new TypeError("Attempted to access private element on non-instance");
524
+ }
525
+ var d, x = l[0], k = l[3], z = !E;
526
+ if (!z) {
527
+ u || Array.isArray(x) || (x = [x]);
528
+ var i = {}, C = [], m = a === 3 ? "get" : a === 4 || f ? "set" : "value";
529
+ y ? (b || f ? i = { get: Ce(function() {
530
+ return k(this);
531
+ }, s, "get"), set: function(c) {
532
+ l[4](this, c);
533
+ } } : i[m] = k, b || Ce(i[m], s, a === 2 ? "" : m)) : b || (i = Object.getOwnPropertyDescriptor(o, s));
534
+ }
535
+ for (var h = o, I = x.length - 1; I >= 0; I -= u ? 2 : 1) {
536
+ var F = x[I], K = u ? x[I - 1] : void 0, J = {}, D = { kind: ["field", "accessor", "method", "getter", "setter", "class"][a], name: s, metadata: j, addInitializer: (function(c, w) {
537
+ if (c.v) throw Error("attempted to call addInitializer after decoration was finished");
538
+ _(w, "An initializer", "be", !0), L.push(w);
539
+ }).bind(null, J) };
540
+ try {
541
+ if (z) (d = _(F.call(K, h, D), "class decorators", "return")) && (h = d);
542
+ else {
543
+ var $, R;
544
+ D.static = P, D.private = y, y ? a === 2 ? $ = function(c) {
545
+ return v(c), i.value;
546
+ } : (a < 4 && ($ = T(i, "get", v)), a !== 3 && (R = T(i, "set", v))) : ($ = function(c) {
547
+ return c[s];
548
+ }, (a < 2 || a === 4) && (R = function(c, w) {
549
+ c[s] = w;
550
+ }));
551
+ var W = D.access = { has: y ? p.bind() : function(c) {
552
+ return s in c;
553
+ } };
554
+ if ($ && (W.get = $), R && (W.set = R), h = F.call(K, f ? { get: i.get, set: i.set } : i[m], D), f) {
555
+ if (typeof h == "object" && h) (d = _(h.get, "accessor.get")) && (i.get = d), (d = _(h.set, "accessor.set")) && (i.set = d), (d = _(h.init, "accessor.init")) && C.push(d);
556
+ else if (h !== void 0) throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0");
557
+ } else _(h, (b ? "field" : "method") + " decorators", "return") && (b ? C.push(h) : i[m] = h);
558
+ }
559
+ } finally {
560
+ J.v = !0;
561
+ }
562
+ }
563
+ return (b || f) && E.push(function(c, w) {
564
+ for (var N = C.length - 1; N >= 0; N--) w = C[N].call(c, w);
565
+ return w;
566
+ }), b || z || (y ? f ? E.push(T(i, "get"), T(i, "set")) : E.push(a === 2 ? i[m] : T.call.bind(i[m])) : Object.defineProperty(o, s, i)), h;
567
+ }
568
+ function U(o, l) {
569
+ return Object.defineProperty(o, Symbol.metadata || Symbol.for("Symbol.metadata"), { configurable: !0, enumerable: !0, value: l });
570
+ }
571
+ if (arguments.length >= 6) var H = A[Symbol.metadata || Symbol.for("Symbol.metadata")];
572
+ var O = Object.create(H ?? null), G = function(o, l, u, s) {
573
+ var a, j, L = [], E = function(m) {
574
+ return Xt(m) === o;
575
+ }, P = /* @__PURE__ */ new Map();
576
+ function y(m) {
577
+ m && L.push(B.bind(null, m));
578
+ }
579
+ for (var b = 0; b < l.length; b++) {
580
+ var f = l[b];
581
+ if (Array.isArray(f)) {
582
+ var p = f[1], v = f[2], d = f.length > 3, x = 16 & p, k = !!(8 & p), z = (p &= 7) == 0, i = v + "/" + k;
583
+ if (!z && !d) {
584
+ var C = P.get(i);
585
+ if (C === !0 || C === 3 && p !== 4 || C === 4 && p !== 3) throw Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + v);
586
+ P.set(i, !(p > 2) || p);
587
+ }
588
+ M(k ? o : o.prototype, f, x, d ? "#" + v : Fe(v), p, s, k ? j = j || [] : a = a || [], L, k, d, z, p === 1, k && d ? E : u);
589
+ }
590
+ }
591
+ return y(a), y(j), L;
592
+ }(t, e, S, O);
593
+ return r.length || U(t, O), { e: G, get c() {
594
+ var o = [];
595
+ return r.length && [U(M(t, [r], g, t.name, 5, O, o), O), B.bind(null, o, t)];
596
+ } };
597
+ }
598
+ function Fe(t) {
599
+ var e = Gt(t, "string");
600
+ return typeof e == "symbol" ? e : e + "";
601
+ }
602
+ function Gt(t, e) {
603
+ if (typeof t != "object" || !t) return t;
604
+ var r = t[Symbol.toPrimitive];
605
+ if (r !== void 0) {
606
+ var g = r.call(t, e);
607
+ if (typeof g != "object") return g;
608
+ throw new TypeError("@@toPrimitive must return a primitive value.");
609
+ }
610
+ return String(t);
611
+ }
612
+ function Ce(t, e, r) {
613
+ typeof e == "symbol" && (e = (e = e.description) ? "[" + e + "]" : "");
614
+ try {
615
+ Object.defineProperty(t, "name", { configurable: !0, value: r ? r + " " + e : e });
616
+ } catch {
617
+ }
618
+ return t;
619
+ }
620
+ function Xt(t) {
621
+ if (Object(t) !== t) throw TypeError("right-hand side of 'in' should be an object, got " + (t !== null ? typeof t : "null"));
622
+ return t;
623
+ }
624
+ const ce = ne("ColorPicker"), qt = ["#ff1300", "#EC7878", "#9C27B0", "#673AB7", "#3F51B5", "#0070FF", "#03A9F4", "#00BCD4", "#4CAF50", "#8BC34A", "#CDDC39", "#FFE500", "#FFBF00", "#FF9800", "#795548", "#9E9E9E", "#5A5A5A", "#FFF"];
625
+ He = [re({
626
+ tagName: "color-picker"
627
+ })];
628
+ let Yt;
629
+ class Qt extends X {
630
+ static get observedAttributes() {
631
+ return ["disabled", "selected-color", "open"];
632
+ }
633
+ constructor(e = {}) {
371
634
  super({
372
- styles: ve,
373
635
  styleName: "base-color-picker",
374
- ...t
375
- }), f(this, "colorCollections"), f(this, "onColorPicked"), f(this, "hasCustomPicker"), f(this, "defaultColor"), f(this, "pluginType"), f(this, "disabled"), f(this, "selectedColor"), f(this, "customColor"), f(this, "isOpen"), f(this, "colorBtn"), f(this, "colorPanel"), f(this, "handleButtonClick", (o) => {
376
- o.stopPropagation(), this.togglePanel();
377
- }), f(this, "handlePanelClick", (o) => {
378
- o.stopPropagation();
379
- }), f(this, "handleColorSelect", (o) => {
380
- var r;
381
- const s = w(o);
382
- this.setSelectedColor(s), this.closePanel(), ke(s, this.pluginType), (r = this.onColorPicked) == null || r.call(this, s), this.dispatchEvent(
383
- new CustomEvent("colorchange", {
384
- detail: { color: s },
385
- bubbles: !0,
386
- composed: !0
387
- })
388
- ), k.debug("Color selected", { color: s });
389
- }), f(this, "handleCustomPickerClick", () => {
390
- const o = document.createElement("input");
391
- o.type = "color", o.value = this.customColor, o.style.cssText = `
636
+ ...e
637
+ }), Y(this, "_autoStyles", Jt), Y(this, "colorCollections", void 0), Y(this, "onColorPicked", void 0), Y(this, "hasCustomPicker", void 0), Y(this, "defaultColor", void 0), Y(this, "pluginType", void 0), Y(this, "disabled", void 0), Y(this, "selectedColor", void 0), Y(this, "customColor", void 0), Y(this, "isOpen", void 0), Y(this, "colorBtn", void 0), Y(this, "colorPanel", void 0), Y(this, "handleButtonClick", (r) => {
638
+ r.stopPropagation(), this.togglePanel();
639
+ }), Y(this, "handlePanelClick", (r) => {
640
+ r.stopPropagation();
641
+ }), Y(this, "handleColorSelect", (r) => {
642
+ var S;
643
+ const g = ue(r);
644
+ this.setSelectedColor(g), this.closePanel(), Ut(g, this.pluginType), (S = this.onColorPicked) == null || S.call(this, g), this.dispatchEvent(new CustomEvent("colorchange", {
645
+ detail: {
646
+ color: g
647
+ },
648
+ bubbles: !0,
649
+ composed: !0
650
+ })), ce.debug("Color selected", {
651
+ color: g
652
+ });
653
+ }), Y(this, "handleCustomPickerClick", () => {
654
+ const r = document.createElement("input");
655
+ r.type = "color", r.value = this.customColor, r.style.cssText = `
392
656
  position: fixed;
393
657
  left: -9999px;
394
658
  opacity: 0;
395
659
  pointer-events: none;
396
660
  `;
397
- const s = $e((r) => {
398
- var h;
399
- const n = r.target, a = w(n.value);
400
- this.setSelectedColor(a), this.setCustomColor(a), document.body.removeChild(o), (h = this.onColorPicked) == null || h.call(this, a), this.dispatchEvent(
401
- new CustomEvent("colorchange", {
402
- detail: { color: a },
403
- bubbles: !0,
404
- composed: !0
405
- })
406
- ), k.debug("Custom color selected", { color: a });
661
+ const g = Kt((S) => {
662
+ var B;
663
+ const A = S.target, T = ue(A.value);
664
+ this.setSelectedColor(T), this.setCustomColor(T), document.body.removeChild(r), (B = this.onColorPicked) == null || B.call(this, T), this.dispatchEvent(new CustomEvent("colorchange", {
665
+ detail: {
666
+ color: T
667
+ },
668
+ bubbles: !0,
669
+ composed: !0
670
+ })), ce.debug("Custom color selected", {
671
+ color: T
672
+ });
407
673
  }, 30);
408
- o.addEventListener("input", s), document.body.appendChild(o), requestAnimationFrame(() => {
409
- o.focus(), o.click();
674
+ r.addEventListener("input", g), document.body.appendChild(r), requestAnimationFrame(() => {
675
+ r.focus(), r.click();
410
676
  });
411
- }), f(this, "handleDocumentClick", (o) => {
412
- this.isOpen && !this.contains(o.target) && this.closePanel();
413
- }), this.colorCollections = t.colorCollections || Fe, this.onColorPicked = t.onColorPicked, this.hasCustomPicker = t.hasCustomPicker || !1, this.pluginType = t.pluginType || "text", this.disabled = t.disabled || !1, this.defaultColor = w(t.defaultColor || this.colorCollections[0]), this.selectedColor = this.defaultColor, this.customColor = we(this.pluginType) || "", this.isOpen = !1, k.debug("ColorPicker initialized", {
677
+ }), Y(this, "handleDocumentClick", (r) => {
678
+ this.isOpen && !this.contains(r.target) && this.closePanel();
679
+ }), this.colorCollections = e.colorCollections || qt, this.onColorPicked = e.onColorPicked, this.hasCustomPicker = e.hasCustomPicker || !1, this.pluginType = e.pluginType || "text", this.disabled = e.disabled || !1, this.defaultColor = ue(e.defaultColor || this.colorCollections[0]), this.selectedColor = this.defaultColor, this.customColor = Ft(this.pluginType) || "", this.isOpen = !1, ce.debug("ColorPicker initialized", {
414
680
  colorCollections: this.colorCollections.length,
415
681
  hasCustomPicker: this.hasCustomPicker,
416
682
  pluginType: this.pluginType
417
683
  });
418
684
  }
419
- static get observedAttributes() {
420
- return ["disabled", "selected-color", "open"];
421
- }
422
685
  /**
423
686
  * 实现抽象方法:真正的JSX渲染!🎉
424
687
  */
425
688
  render() {
426
- const t = this.renderColorButton(), o = this.isOpen ? this.renderColorPanel() : null;
427
- return /* @__PURE__ */ i("section", { class: "color-section" }, /* @__PURE__ */ i("div", { class: "color-popover" }, t, o));
689
+ const e = this.renderColorButton(), r = this.isOpen ? this.renderColorPanel() : null;
690
+ return /* @__PURE__ */ n("section", { class: "color-section" }, /* @__PURE__ */ n("div", { class: "color-popover" }, e, r));
428
691
  }
429
692
  /**
430
693
  * 渲染颜色按钮 - 真正的JSX!
431
694
  */
432
695
  renderColorButton() {
433
- return /* @__PURE__ */ i(
434
- "xy-button",
435
- {
436
- type: "button",
437
- class: `color-btn ${this.disabled ? "disabled" : ""}`,
438
- style: `--theme-color: ${this.selectedColor}`,
439
- disabled: this.disabled,
440
- onClick: this.handleButtonClick,
441
- ref: (t) => {
442
- this.colorBtn = t;
443
- }
444
- },
445
- /* @__PURE__ */ i("span", { class: "color-indicator" }, "_")
446
- );
696
+ return /* @__PURE__ */ n("xy-button", { type: "button", class: `color-btn ${this.disabled ? "disabled" : ""}`, style: `--theme-color: ${this.selectedColor}`, disabled: this.disabled, onClick: this.handleButtonClick, ref: (e) => {
697
+ this.colorBtn = e;
698
+ } }, /* @__PURE__ */ n("span", { class: "color-indicator" }, "_"));
447
699
  }
448
700
  /**
449
701
  * 渲染颜色面板 - 真正的JSX!
450
702
  */
451
703
  renderColorPanel() {
452
- return /* @__PURE__ */ i(
453
- "div",
454
- {
455
- class: "color-panel",
456
- onClick: this.handlePanelClick,
457
- ref: (t) => {
458
- this.colorPanel = t;
459
- }
460
- },
461
- /* @__PURE__ */ i("div", { class: "color-grid" }, this.hasCustomPicker ? this.renderCustomPicker() : null, this.renderColorButtons())
462
- );
704
+ return /* @__PURE__ */ n("div", { class: "color-panel", onClick: this.handlePanelClick, ref: (e) => {
705
+ this.colorPanel = e;
706
+ } }, /* @__PURE__ */ n("div", { class: "color-grid" }, this.hasCustomPicker ? this.renderCustomPicker() : null, this.renderColorButtons()));
463
707
  }
464
708
  /**
465
709
  * 渲染自定义颜色选择器 - 真正的JSX!
466
710
  */
467
711
  renderCustomPicker() {
468
- return /* @__PURE__ */ i(
469
- "xy-button",
470
- {
471
- type: "button",
472
- class: "color-cube custom-picker",
473
- style: { backgroundColor: this.customColor },
474
- onClick: this.handleCustomPickerClick,
475
- title: "自定义颜色"
476
- }
477
- );
712
+ return /* @__PURE__ */ n("xy-button", { type: "button", class: "color-cube custom-picker", style: {
713
+ backgroundColor: this.customColor
714
+ }, onClick: this.handleCustomPickerClick, title: "自定义颜色" });
478
715
  }
479
716
  /**
480
717
  * 渲染颜色按钮组 - 真正的JSX!
481
718
  */
482
719
  renderColorButtons() {
483
- return this.colorCollections.map((t) => /* @__PURE__ */ i(
484
- "xy-button",
485
- {
486
- key: t,
487
- type: "button",
488
- class: "color-cube",
489
- style: `background-color: ${t}`,
490
- "data-color": t,
491
- title: t,
492
- onClick: () => this.handleColorSelect(t)
493
- }
494
- ));
720
+ return this.colorCollections.map((e) => /* @__PURE__ */ n("xy-button", { key: e, type: "button", class: "color-cube", style: `background-color: ${e}`, "data-color": e, title: e, onClick: () => this.handleColorSelect(e) }));
495
721
  }
496
722
  /**
497
723
  * 切换面板显示状态
@@ -508,20 +734,20 @@ class O extends (_t = y) {
508
734
  /**
509
735
  * 设置选中的颜色
510
736
  */
511
- setSelectedColor(t) {
512
- this.selectedColor = t, this.setAttr("selected-color", t), this.updateColorButton();
737
+ setSelectedColor(e) {
738
+ this.selectedColor = e, this.setAttr("selected-color", e), this.updateColorButton();
513
739
  }
514
740
  /**
515
741
  * 设置自定义颜色
516
742
  */
517
- setCustomColor(t) {
518
- this.customColor = t, Ce(t, this.pluginType);
743
+ setCustomColor(e) {
744
+ this.customColor = e, Ht(e, this.pluginType);
519
745
  }
520
746
  /**
521
747
  * 设置面板开关状态
522
748
  */
523
- setOpen(t) {
524
- this.isOpen = t, t ? this.setAttr("open", "") : this.removeAttr("open"), this.rerender();
749
+ setOpen(e) {
750
+ this.isOpen = e, e ? this.setAttr("open", "") : this.removeAttr("open"), this.rerender();
525
751
  }
526
752
  /**
527
753
  * 更新颜色按钮样式
@@ -533,27 +759,27 @@ class O extends (_t = y) {
533
759
  * 组件连接到DOM后的初始化
534
760
  */
535
761
  onConnected() {
536
- document.addEventListener("click", this.handleDocumentClick), k.info("ColorPicker connected to DOM");
762
+ document.addEventListener("click", this.handleDocumentClick), ce.info("ColorPicker connected to DOM");
537
763
  }
538
764
  /**
539
765
  * 组件从DOM断开时的清理
540
766
  */
541
767
  onDisconnected() {
542
- document.removeEventListener("click", this.handleDocumentClick), k.info("ColorPicker disconnected from DOM");
768
+ document.removeEventListener("click", this.handleDocumentClick), ce.info("ColorPicker disconnected from DOM");
543
769
  }
544
770
  /**
545
771
  * 属性变化处理
546
772
  */
547
- onAttributeChanged(t, o, s) {
548
- switch (t) {
773
+ onAttributeChanged(e, r, g) {
774
+ switch (e) {
549
775
  case "disabled":
550
- this.disabled = s !== null, this.rerender();
776
+ this.disabled = g !== null, this.rerender();
551
777
  break;
552
778
  case "selected-color":
553
- s && s !== this.selectedColor && (this.selectedColor = s, this.updateColorButton());
779
+ g && g !== this.selectedColor && (this.selectedColor = g, this.updateColorButton());
554
780
  break;
555
781
  case "open":
556
- this.isOpen = s !== null;
782
+ this.isOpen = g !== null;
557
783
  break;
558
784
  }
559
785
  }
@@ -566,195 +792,374 @@ class O extends (_t = y) {
566
792
  /**
567
793
  * 公共API:设置颜色
568
794
  */
569
- setColor(t) {
570
- this.setSelectedColor(w(t));
795
+ setColor(e) {
796
+ this.setSelectedColor(ue(e));
571
797
  }
572
798
  /**
573
799
  * 公共API:聚焦组件
574
800
  */
575
801
  focus() {
576
- var t;
577
- (t = this.colorBtn) == null || t.focus();
578
- }
579
- }
580
- G = Ee(_t);
581
- O = Ie(G, 0, "ColorPicker", xt, O);
582
- Oe(G, 1, O);
583
- const Be = ".reactive-counter{max-width:500px;margin:20px auto;padding:24px;border-radius:12px;box-shadow:0 4px 12px #0000001a;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;transition:all .3s ease}.theme-light{background:#fff;color:#333;border:1px solid #e1e5e9}.theme-dark{background:#1a1a1a;color:#fff;border:1px solid #333333}.theme-blue{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:1px solid #5a67d8}.header{text-align:center;margin-bottom:24px}.header h3{margin:0 0 8px;font-size:24px;font-weight:600}.subtitle{margin:0;opacity:.8;font-size:14px}.counter-display{text-align:center;margin-bottom:32px}.count-value{font-size:48px;font-weight:700;line-height:1;margin-bottom:8px;font-variant-numeric:tabular-nums}.step-info{font-size:14px;opacity:.7}.controls{display:flex;gap:12px;justify-content:center;margin-bottom:24px;flex-wrap:wrap}.btn{padding:10px 20px;border:none;border-radius:8px;font-size:16px;font-weight:500;cursor:pointer;transition:all .2s ease;min-width:60px}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:#4299e1;color:#fff}.btn-primary:hover:not(:disabled){background:#3182ce;transform:translateY(-1px)}.btn-secondary{background:#718096;color:#fff}.btn-secondary:hover:not(:disabled){background:#4a5568;transform:translateY(-1px)}.btn-warning{background:#ed8936;color:#fff}.btn-warning:hover:not(:disabled){background:#dd6b20;transform:translateY(-1px)}.btn-success{background:#48bb78;color:#fff}.btn-success:hover:not(:disabled){background:#38a169;transform:translateY(-1px)}.btn-danger{background:#f56565;color:#fff}.btn-danger:hover:not(:disabled){background:#e53e3e;transform:translateY(-1px)}.btn-sm{padding:6px 12px;font-size:14px;min-width:auto}.step-controls,.auto-controls,.theme-controls,.message-controls{margin-bottom:20px;text-align:center}.step-controls label{display:flex;align-items:center;justify-content:center;gap:12px;font-size:14px}.step-controls input[type=range]{flex:0 0 150px}.step-controls span{font-weight:700;min-width:20px}.theme-controls select,.message-controls input{padding:8px 12px;border:1px solid #cbd5e0;border-radius:6px;font-size:14px;margin-left:8px}.theme-dark .theme-controls select,.theme-dark .message-controls input{background:#2d3748;border-color:#4a5568;color:#fff}.theme-blue .theme-controls select,.theme-blue .message-controls input{background:#ffffff1a;border-color:#fff3;color:#fff}.message-controls input{width:250px;max-width:100%}.history{margin-top:24px;padding:16px;background:#0000000d;border-radius:8px}.theme-dark .history{background:#ffffff0d}.theme-blue .history{background:#ffffff1a}.history h4{margin:0 0 12px;font-size:16px}.history-list{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.history-item{padding:4px 8px;background:#4299e11a;border:1px solid rgba(66,153,225,.2);border-radius:4px;font-size:12px;font-weight:500}.debug-info{margin-top:24px;font-size:12px}.debug-info details{border:1px solid #e2e8f0;border-radius:6px;padding:8px}.theme-dark .debug-info details{border-color:#4a5568}.theme-blue .debug-info details{border-color:#fff3}.debug-info summary{cursor:pointer;font-weight:500;margin-bottom:8px}.debug-info pre{margin:0;padding:8px;background:#0000000d;border-radius:4px;overflow-x:auto;font-size:11px;line-height:1.4}.theme-dark .debug-info pre{background:#ffffff0d}.theme-blue .debug-info pre{background:#ffffff1a}@media (max-width: 600px){.reactive-counter{margin:10px;padding:16px}.count-value{font-size:36px}.controls{flex-direction:column;align-items:center}.btn{width:200px}.step-controls label{flex-direction:column;gap:8px}.message-controls input{width:100%}}";
584
- var Me = Object.create, Y = Object.defineProperty, Re = Object.getOwnPropertyDescriptor, yt = (e, t) => (t = Symbol[e]) ? t : Symbol.for("Symbol." + e), kt = (e) => {
585
- throw TypeError(e);
586
- }, Ct = (e, t, o) => t in e ? Y(e, t, { enumerable: !0, configurable: !0, writable: !0, value: o }) : e[t] = o, Le = (e, t) => Y(e, "name", { value: t, configurable: !0 }), Ne = (e) => [, , , Me((e == null ? void 0 : e[yt("metadata")]) ?? null)], He = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"], wt = (e) => e !== void 0 && typeof e != "function" ? kt("Function expected") : e, je = (e, t, o, s, r) => ({ kind: He[e], name: t, metadata: s, addInitializer: (n) => o._ ? kt("Already initialized") : r.push(wt(n || null)) }), We = (e, t) => Ct(t, yt("metadata"), e[3]), Ge = (e, t, o, s) => {
587
- for (var r = 0, n = e[t >> 1], a = n && n.length; r < a; r++) n[r].call(o);
588
- return s;
589
- }, Ye = (e, t, o, s, r, n) => {
590
- var a, h, u, l = t & 7, p = !1, m = 0, g = e[m] || (e[m] = []), c = l && (r = r.prototype, l < 5 && (l > 3 || !p) && Re(r, o));
591
- Le(r, o);
592
- for (var d = s.length - 1; d >= 0; d--)
593
- u = je(l, o, h = {}, e[3], g), a = (0, s[d])(r, u), h._ = 1, wt(a) && (r = a);
594
- return We(e, r), c && Y(r, o, c), p ? l ^ 4 ? n : c : r;
595
- }, v = (e, t, o) => Ct(e, typeof t != "symbol" ? t + "" : t, o), $t, X, St;
596
- const z = C("ReactiveCounter");
597
- $t = [x({ tagName: "reactive-counter" })];
598
- class I extends (St = ot) {
802
+ var e;
803
+ (e = this.colorBtn) == null || e.focus();
804
+ }
805
+ }
806
+ Me = Qt;
807
+ [Yt, Ue] = Wt(Me, [], He, 0, void 0, X).c;
808
+ Ue();
809
+ const Zt = ".reactive-counter{max-width:500px;margin:20px auto;padding:24px;border-radius:12px;box-shadow:0 4px 12px #0000001a;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;transition:all .3s ease}.theme-light{background:#fff;color:#333;border:1px solid #e1e5e9}.theme-dark{background:#1a1a1a;color:#fff;border:1px solid #333333}.theme-blue{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:1px solid #5a67d8}.header{text-align:center;margin-bottom:24px}.header h3{margin:0 0 8px;font-size:24px;font-weight:600}.subtitle{margin:0;opacity:.8;font-size:14px}.counter-display{text-align:center;margin-bottom:32px}.count-value{font-size:48px;font-weight:700;line-height:1;margin-bottom:8px;font-variant-numeric:tabular-nums}.step-info{font-size:14px;opacity:.7}.controls{display:flex;gap:12px;justify-content:center;margin-bottom:24px;flex-wrap:wrap}.btn{padding:10px 20px;border:none;border-radius:8px;font-size:16px;font-weight:500;cursor:pointer;transition:all .2s ease;min-width:60px}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:#4299e1;color:#fff}.btn-primary:hover:not(:disabled){background:#3182ce;transform:translateY(-1px)}.btn-secondary{background:#718096;color:#fff}.btn-secondary:hover:not(:disabled){background:#4a5568;transform:translateY(-1px)}.btn-warning{background:#ed8936;color:#fff}.btn-warning:hover:not(:disabled){background:#dd6b20;transform:translateY(-1px)}.btn-success{background:#48bb78;color:#fff}.btn-success:hover:not(:disabled){background:#38a169;transform:translateY(-1px)}.btn-danger{background:#f56565;color:#fff}.btn-danger:hover:not(:disabled){background:#e53e3e;transform:translateY(-1px)}.btn-sm{padding:6px 12px;font-size:14px;min-width:auto}.step-controls,.auto-controls,.theme-controls,.message-controls{margin-bottom:20px;text-align:center}.step-controls label{display:flex;align-items:center;justify-content:center;gap:12px;font-size:14px}.step-controls input[type=range]{flex:0 0 150px}.step-controls span{font-weight:700;min-width:20px}.theme-controls select,.message-controls input{padding:8px 12px;border:1px solid #cbd5e0;border-radius:6px;font-size:14px;margin-left:8px}.theme-dark .theme-controls select,.theme-dark .message-controls input{background:#2d3748;border-color:#4a5568;color:#fff}.theme-blue .theme-controls select,.theme-blue .message-controls input{background:#ffffff1a;border-color:#fff3;color:#fff}.message-controls input{width:250px;max-width:100%}.history{margin-top:24px;padding:16px;background:#0000000d;border-radius:8px}.theme-dark .history{background:#ffffff0d}.theme-blue .history{background:#ffffff1a}.history h4{margin:0 0 12px;font-size:16px}.history-list{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.history-item{padding:4px 8px;background:#4299e11a;border:1px solid rgba(66,153,225,.2);border-radius:4px;font-size:12px;font-weight:500}.debug-info{margin-top:24px;font-size:12px}.debug-info details{border:1px solid #e2e8f0;border-radius:6px;padding:8px}.theme-dark .debug-info details{border-color:#4a5568}.theme-blue .debug-info details{border-color:#fff3}.debug-info summary{cursor:pointer;font-weight:500;margin-bottom:8px}.debug-info pre{margin:0;padding:8px;background:#0000000d;border-radius:4px;overflow-x:auto;font-size:11px;line-height:1.4}.theme-dark .debug-info pre{background:#ffffff0d}.theme-blue .debug-info pre{background:#ffffff1a}@media (max-width: 600px){.reactive-counter{margin:10px;padding:16px}.count-value{font-size:36px}.controls{flex-direction:column;align-items:center}.btn{width:200px}.step-controls label{flex-direction:column;gap:8px}.message-controls input{width:100%}}";
810
+ var Ke;
811
+ let Je, We;
812
+ function V(t, e, r) {
813
+ return (e = Ge(e)) in t ? Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }) : t[e] = r, t;
814
+ }
815
+ function Vt(t, e, r, g, S, A) {
816
+ function T(o, l, u) {
817
+ return function(s, a) {
818
+ return u && u(s), o[l].call(s, a);
819
+ };
820
+ }
821
+ function B(o, l) {
822
+ for (var u = 0; u < o.length; u++) o[u].call(l);
823
+ return l;
824
+ }
825
+ function _(o, l, u, s) {
826
+ if (typeof o != "function" && (s || o !== void 0)) throw new TypeError(l + " must " + (u || "be") + " a function" + (s ? "" : " or undefined"));
827
+ return o;
828
+ }
829
+ function M(o, l, u, s, a, j, L, E, P, y, b, f, p) {
830
+ function v(c) {
831
+ if (!p(c)) throw new TypeError("Attempted to access private element on non-instance");
832
+ }
833
+ var d, x = l[0], k = l[3], z = !E;
834
+ if (!z) {
835
+ u || Array.isArray(x) || (x = [x]);
836
+ var i = {}, C = [], m = a === 3 ? "get" : a === 4 || f ? "set" : "value";
837
+ y ? (b || f ? i = { get: we(function() {
838
+ return k(this);
839
+ }, s, "get"), set: function(c) {
840
+ l[4](this, c);
841
+ } } : i[m] = k, b || we(i[m], s, a === 2 ? "" : m)) : b || (i = Object.getOwnPropertyDescriptor(o, s));
842
+ }
843
+ for (var h = o, I = x.length - 1; I >= 0; I -= u ? 2 : 1) {
844
+ var F = x[I], K = u ? x[I - 1] : void 0, J = {}, D = { kind: ["field", "accessor", "method", "getter", "setter", "class"][a], name: s, metadata: j, addInitializer: (function(c, w) {
845
+ if (c.v) throw Error("attempted to call addInitializer after decoration was finished");
846
+ _(w, "An initializer", "be", !0), L.push(w);
847
+ }).bind(null, J) };
848
+ try {
849
+ if (z) (d = _(F.call(K, h, D), "class decorators", "return")) && (h = d);
850
+ else {
851
+ var $, R;
852
+ D.static = P, D.private = y, y ? a === 2 ? $ = function(c) {
853
+ return v(c), i.value;
854
+ } : (a < 4 && ($ = T(i, "get", v)), a !== 3 && (R = T(i, "set", v))) : ($ = function(c) {
855
+ return c[s];
856
+ }, (a < 2 || a === 4) && (R = function(c, w) {
857
+ c[s] = w;
858
+ }));
859
+ var W = D.access = { has: y ? p.bind() : function(c) {
860
+ return s in c;
861
+ } };
862
+ if ($ && (W.get = $), R && (W.set = R), h = F.call(K, f ? { get: i.get, set: i.set } : i[m], D), f) {
863
+ if (typeof h == "object" && h) (d = _(h.get, "accessor.get")) && (i.get = d), (d = _(h.set, "accessor.set")) && (i.set = d), (d = _(h.init, "accessor.init")) && C.push(d);
864
+ else if (h !== void 0) throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0");
865
+ } else _(h, (b ? "field" : "method") + " decorators", "return") && (b ? C.push(h) : i[m] = h);
866
+ }
867
+ } finally {
868
+ J.v = !0;
869
+ }
870
+ }
871
+ return (b || f) && E.push(function(c, w) {
872
+ for (var N = C.length - 1; N >= 0; N--) w = C[N].call(c, w);
873
+ return w;
874
+ }), b || z || (y ? f ? E.push(T(i, "get"), T(i, "set")) : E.push(a === 2 ? i[m] : T.call.bind(i[m])) : Object.defineProperty(o, s, i)), h;
875
+ }
876
+ function U(o, l) {
877
+ return Object.defineProperty(o, Symbol.metadata || Symbol.for("Symbol.metadata"), { configurable: !0, enumerable: !0, value: l });
878
+ }
879
+ if (arguments.length >= 6) var H = A[Symbol.metadata || Symbol.for("Symbol.metadata")];
880
+ var O = Object.create(H ?? null), G = function(o, l, u, s) {
881
+ var a, j, L = [], E = function(m) {
882
+ return tr(m) === o;
883
+ }, P = /* @__PURE__ */ new Map();
884
+ function y(m) {
885
+ m && L.push(B.bind(null, m));
886
+ }
887
+ for (var b = 0; b < l.length; b++) {
888
+ var f = l[b];
889
+ if (Array.isArray(f)) {
890
+ var p = f[1], v = f[2], d = f.length > 3, x = 16 & p, k = !!(8 & p), z = (p &= 7) == 0, i = v + "/" + k;
891
+ if (!z && !d) {
892
+ var C = P.get(i);
893
+ if (C === !0 || C === 3 && p !== 4 || C === 4 && p !== 3) throw Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + v);
894
+ P.set(i, !(p > 2) || p);
895
+ }
896
+ M(k ? o : o.prototype, f, x, d ? "#" + v : Ge(v), p, s, k ? j = j || [] : a = a || [], L, k, d, z, p === 1, k && d ? E : u);
897
+ }
898
+ }
899
+ return y(a), y(j), L;
900
+ }(t, e, S, O);
901
+ return r.length || U(t, O), { e: G, get c() {
902
+ var o = [];
903
+ return r.length && [U(M(t, [r], g, t.name, 5, O, o), O), B.bind(null, o, t)];
904
+ } };
905
+ }
906
+ function Ge(t) {
907
+ var e = er(t, "string");
908
+ return typeof e == "symbol" ? e : e + "";
909
+ }
910
+ function er(t, e) {
911
+ if (typeof t != "object" || !t) return t;
912
+ var r = t[Symbol.toPrimitive];
913
+ if (r !== void 0) {
914
+ var g = r.call(t, e);
915
+ if (typeof g != "object") return g;
916
+ throw new TypeError("@@toPrimitive must return a primitive value.");
917
+ }
918
+ return String(t);
919
+ }
920
+ function we(t, e, r) {
921
+ typeof e == "symbol" && (e = (e = e.description) ? "[" + e + "]" : "");
922
+ try {
923
+ Object.defineProperty(t, "name", { configurable: !0, value: r ? r + " " + e : e });
924
+ } catch {
925
+ }
926
+ return t;
927
+ }
928
+ function tr(t) {
929
+ if (Object(t) !== t) throw TypeError("right-hand side of 'in' should be an object, got " + (t !== null ? typeof t : "null"));
930
+ return t;
931
+ }
932
+ const pe = ne("ReactiveCounter");
933
+ We = [re({
934
+ tagName: "reactive-counter"
935
+ })];
936
+ let rr;
937
+ class or extends X {
599
938
  constructor() {
600
- super({
601
- styles: Be,
602
- debug: !0
603
- // 启用调试模式
604
- }), v(this, "state", this.reactive({
605
- count: 0,
606
- step: 1,
607
- message: "Hello WSX Reactive!",
608
- isRunning: !1
609
- })), v(this, "themeState", this.useState("theme", "light")), v(this, "historyState", this.useState("history", [])), v(this, "getTheme", this.themeState[0]), v(this, "setTheme", this.themeState[1]), v(this, "getHistory", this.historyState[0]), v(this, "setHistory", this.historyState[1]), v(this, "increment", () => {
939
+ super(), V(this, "_autoStyles", Zt), V(this, "state", void 0), V(this, "theme", void 0), V(this, "history", void 0), V(this, "increment", () => {
610
940
  this.state.count += this.state.step, this.addToHistory(this.state.count);
611
- }), v(this, "decrement", () => {
941
+ }), V(this, "decrement", () => {
612
942
  this.state.count -= this.state.step, this.addToHistory(this.state.count);
613
- }), v(this, "reset", () => {
943
+ }), V(this, "reset", () => {
614
944
  this.state.count = 0, this.addToHistory(0);
615
- }), v(this, "handleStepChange", (t) => {
616
- const o = t.target;
617
- this.state.step = parseInt(o.value);
618
- }), v(this, "handleThemeChange", (t) => {
619
- const o = t.target;
620
- this.setTheme(o.value);
621
- }), v(this, "handleMessageChange", (t) => {
622
- const o = t.target;
623
- this.state.message = o.value;
624
- }), v(this, "toggleAutoIncrement", () => {
945
+ }), V(this, "handleStepChange", (A) => {
946
+ const T = A.target;
947
+ this.state.step = parseInt(T.value);
948
+ }), V(this, "handleThemeChange", (A) => {
949
+ const T = A.target;
950
+ this.theme = T.value;
951
+ }), V(this, "handleMessageChange", (A) => {
952
+ const T = A.target;
953
+ this.state.message = T.value;
954
+ }), V(this, "toggleAutoIncrement", () => {
625
955
  this.state.isRunning = !this.state.isRunning, this.state.isRunning && this.startAutoIncrement();
626
- }), v(this, "clearHistory", () => {
627
- this.setHistory([]);
628
- }), z.info("ReactiveCounter initialized");
629
- }
630
- render() {
631
- const t = this.getTheme(), o = this.getHistory();
632
- return /* @__PURE__ */ i("div", { class: `reactive-counter theme-${t}` }, /* @__PURE__ */ i("div", { class: "header" }, /* @__PURE__ */ i("h3", null, "🔄 Reactive Counter"), /* @__PURE__ */ i("p", { class: "subtitle" }, this.state.message)), /* @__PURE__ */ i("div", { class: "counter-display" }, /* @__PURE__ */ i("div", { class: "count-value" }, this.state.count), /* @__PURE__ */ i("div", { class: "step-info" }, "Step: ", this.state.step)), /* @__PURE__ */ i("div", { class: "controls" }, /* @__PURE__ */ i(
633
- "button",
634
- {
635
- class: "btn btn-primary",
636
- onClick: this.increment,
637
- disabled: this.state.isRunning
638
- },
639
- "+",
640
- this.state.step
641
- ), /* @__PURE__ */ i(
642
- "button",
643
- {
644
- class: "btn btn-secondary",
645
- onClick: this.decrement,
646
- disabled: this.state.isRunning
647
- },
648
- "-",
649
- this.state.step
650
- ), /* @__PURE__ */ i(
651
- "button",
652
- {
653
- class: "btn btn-warning",
654
- onClick: this.reset,
655
- disabled: this.state.isRunning
656
- },
657
- "Reset"
658
- )), /* @__PURE__ */ i("div", { class: "step-controls" }, /* @__PURE__ */ i("label", null, "Step Size:", /* @__PURE__ */ i(
659
- "input",
660
- {
661
- type: "range",
662
- min: "1",
663
- max: "10",
664
- value: this.state.step,
665
- onInput: this.handleStepChange
666
- }
667
- ), /* @__PURE__ */ i("span", null, this.state.step))), /* @__PURE__ */ i("div", { class: "auto-controls" }, /* @__PURE__ */ i(
668
- "button",
669
- {
670
- class: `btn ${this.state.isRunning ? "btn-danger" : "btn-success"}`,
671
- onClick: this.toggleAutoIncrement
956
+ }), V(this, "clearHistory", () => {
957
+ this.history = [];
958
+ }), pe.info("ReactiveCounter initialized");
959
+ let e = this.reactive({
960
+ count: 0,
961
+ step: 1,
962
+ message: "Hello WSX Reactive!",
963
+ isRunning: !1
964
+ });
965
+ Object.defineProperty(this, "state", {
966
+ get: () => e,
967
+ set: (A) => {
968
+ e = A !== null && typeof A < "u" && (Array.isArray(A) || typeof A == "object") ? this.reactive(A) : A, this.scheduleRerender();
672
969
  },
673
- this.state.isRunning ? "Stop" : "Start",
674
- " Auto Increment"
675
- )), /* @__PURE__ */ i("div", { class: "theme-controls" }, /* @__PURE__ */ i("label", null, "Theme:", /* @__PURE__ */ i("select", { value: t, onChange: this.handleThemeChange }, /* @__PURE__ */ i("option", { value: "light" }, "Light"), /* @__PURE__ */ i("option", { value: "dark" }, "Dark"), /* @__PURE__ */ i("option", { value: "blue" }, "Blue")))), /* @__PURE__ */ i("div", { class: "message-controls" }, /* @__PURE__ */ i(
676
- "input",
677
- {
678
- type: "text",
679
- value: this.state.message,
680
- onInput: this.handleMessageChange,
681
- placeholder: "Enter a message..."
682
- }
683
- )), o.length > 0 && /* @__PURE__ */ i("div", { class: "history" }, /* @__PURE__ */ i("h4", null, "History (last 10):"), /* @__PURE__ */ i("div", { class: "history-list" }, o.slice(-10).map((s, r) => /* @__PURE__ */ i("span", { key: r, class: "history-item" }, s))), /* @__PURE__ */ i("button", { class: "btn btn-sm", onClick: this.clearHistory }, "Clear History")), /* @__PURE__ */ i("div", { class: "debug-info" }, /* @__PURE__ */ i("details", null, /* @__PURE__ */ i("summary", null, "Debug Info"), /* @__PURE__ */ i("pre", null, JSON.stringify(
684
- {
685
- state: this.state,
686
- theme: this.getTheme(),
687
- historyLength: this.getHistory().length,
688
- stateSnapshot: this.getStateSnapshot()
970
+ enumerable: !0,
971
+ configurable: !0
972
+ });
973
+ const [r, g] = this.useState("theme", "light");
974
+ Object.defineProperty(this, "theme", {
975
+ get: r,
976
+ set: g,
977
+ enumerable: !0,
978
+ configurable: !0
979
+ });
980
+ let S = this.reactive([]);
981
+ Object.defineProperty(this, "history", {
982
+ get: () => S,
983
+ set: (A) => {
984
+ S = A !== null && typeof A < "u" && (Array.isArray(A) || typeof A == "object") ? this.reactive(A) : A, this.scheduleRerender();
689
985
  },
690
- null,
691
- 2
692
- )))));
986
+ enumerable: !0,
987
+ configurable: !0
988
+ });
989
+ }
990
+ render() {
991
+ return /* @__PURE__ */ n("div", { class: `reactive-counter theme-${this.theme}` }, /* @__PURE__ */ n("div", { class: "header" }, /* @__PURE__ */ n("h3", null, "🔄 Reactive Counter"), /* @__PURE__ */ n("p", { class: "subtitle" }, this.state.message)), /* @__PURE__ */ n("div", { class: "counter-display" }, /* @__PURE__ */ n("div", { class: "count-value" }, this.state.count), /* @__PURE__ */ n("div", { class: "step-info" }, "Step: ", this.state.step)), /* @__PURE__ */ n("div", { class: "controls" }, /* @__PURE__ */ n("button", { class: "btn btn-primary", onClick: this.increment, disabled: this.state.isRunning, "data-wsx-key": "ReactiveCounter-button-text-5-1" }, "+", this.state.step), /* @__PURE__ */ n("button", { class: "btn btn-secondary", onClick: this.decrement, disabled: this.state.isRunning, "data-wsx-key": "ReactiveCounter-button-text-5-3" }, "-", this.state.step), /* @__PURE__ */ n("button", { class: "btn btn-warning", onClick: this.reset, disabled: this.state.isRunning, "data-wsx-key": "ReactiveCounter-button-text-5-5" }, "Reset")), /* @__PURE__ */ n("div", { class: "step-controls" }, /* @__PURE__ */ n("label", null, "Step Size:", /* @__PURE__ */ n("input", { type: "range", min: "1", max: "10", value: this.state.step, onInput: this.handleStepChange, "data-wsx-key": "ReactiveCounter-input-range-7-1-1" }), /* @__PURE__ */ n("span", null, this.state.step))), /* @__PURE__ */ n("div", { class: "auto-controls" }, /* @__PURE__ */ n("button", { class: `btn ${this.state.isRunning ? "btn-danger" : "btn-success"}`, onClick: this.toggleAutoIncrement, "data-wsx-key": "ReactiveCounter-button-text-9-1" }, this.state.isRunning ? "Stop" : "Start", " Auto Increment")), /* @__PURE__ */ n("div", { class: "theme-controls" }, /* @__PURE__ */ n("label", null, "Theme:", /* @__PURE__ */ n("select", { value: this.theme, onChange: this.handleThemeChange, "data-wsx-key": "ReactiveCounter-select-text-11-1-1" }, /* @__PURE__ */ n("option", { value: "light" }, "Light"), /* @__PURE__ */ n("option", { value: "dark" }, "Dark"), /* @__PURE__ */ n("option", { value: "blue" }, "Blue")))), /* @__PURE__ */ n("div", { class: "message-controls" }, /* @__PURE__ */ n("input", { type: "text", value: this.state.message, onInput: this.handleMessageChange, placeholder: "Enter a message...", "data-wsx-key": "ReactiveCounter-input-text-13-1" })), this.history.length > 0 && /* @__PURE__ */ n("div", { class: "history" }, /* @__PURE__ */ n("h4", null, "History (last 10):"), /* @__PURE__ */ n("div", { class: "history-list" }, this.history.slice(-10).map((e, r) => /* @__PURE__ */ n("span", { key: r, class: "history-item" }, e))), /* @__PURE__ */ n("button", { class: "btn btn-sm", onClick: this.clearHistory, "data-wsx-key": "ReactiveCounter-button-text-5" }, "Clear History")), /* @__PURE__ */ n("div", { class: "debug-info" }, /* @__PURE__ */ n("details", null, /* @__PURE__ */ n("summary", null, "Debug Info"), /* @__PURE__ */ n("pre", null, JSON.stringify({
992
+ state: this.state,
993
+ theme: this.theme,
994
+ historyLength: this.history.length
995
+ }, null, 2)))));
693
996
  }
694
997
  startAutoIncrement() {
695
- const t = setInterval(() => {
998
+ const e = setInterval(() => {
696
999
  if (!this.state.isRunning) {
697
- clearInterval(t);
1000
+ clearInterval(e);
698
1001
  return;
699
1002
  }
700
1003
  this.increment(), this.state.count % 5 === 0 && (this.state.message = `Count reached ${this.state.count}!`);
701
1004
  }, 200);
702
1005
  }
703
- addToHistory(t) {
704
- const o = this.getHistory();
705
- this.setHistory([...o, t]);
1006
+ addToHistory(e) {
1007
+ this.history = [...this.history, e];
706
1008
  }
707
1009
  onConnected() {
708
- z.info("ReactiveCounter connected to DOM"), setTimeout(() => {
1010
+ pe.info("ReactiveCounter connected to DOM"), setTimeout(() => {
709
1011
  this.state.message = "Ready to count! 🚀";
710
1012
  }, 500);
711
1013
  }
712
1014
  onDisconnected() {
713
- z.info("ReactiveCounter disconnected from DOM"), this.state.isRunning = !1;
714
- }
715
- }
716
- X = Ne(St);
717
- I = Ye(X, 0, "ReactiveCounter", $t, I);
718
- Ge(X, 1, I);
719
- const Xe = ":host{display:block}.theme-switcher-container{position:relative;display:flex;align-items:center}.theme-switcher-btn{width:var(--theme-switcher-width, 2.5rem);height:var(--theme-switcher-height, 2.5rem);padding:var(--theme-switcher-padding, .5rem);border-radius:var(--theme-switcher-border-radius, 8px);background:var(--theme-switcher-bg, #dc2626);border:var(--theme-switcher-border, none);color:var(--theme-switcher-color, white);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--theme-switcher-transition, .3s ease);box-shadow:var(--theme-switcher-shadow, 0 4px 15px rgba(220, 38, 38, .4));font-weight:var(--theme-switcher-font-weight, 600);font-family:var(--theme-switcher-font-family, inherit)}.theme-switcher-btn:hover{background:var(--theme-switcher-hover-bg, #b91c1c);transform:var(--theme-switcher-hover-transform, translateY(-2px));box-shadow:var(--theme-switcher-hover-shadow, 0 8px 25px rgba(220, 38, 38, .5))}.theme-switcher-btn:active{transform:var(--theme-switcher-active-transform, translateY(0))}.theme-switcher-icon{font-size:var(--theme-switcher-icon-size, 1rem);line-height:1;transition:transform var(--theme-switcher-icon-transition, .3s ease)}.theme-switcher-btn:hover .theme-switcher-icon{transform:var(--theme-switcher-icon-hover-transform, rotate(360deg))}.theme-switcher-btn[data-theme=light]{background:var(--theme-switcher-light-bg, #dc2626);color:var(--theme-switcher-light-color, white)}.theme-switcher-btn[data-theme=light]:hover{background:var(--theme-switcher-light-hover-bg, #b91c1c)}.theme-switcher-btn[data-theme=dark]{background:var(--theme-switcher-dark-bg, #dc2626);color:var(--theme-switcher-dark-color, white)}.theme-switcher-btn[data-theme=dark]:hover{background:var(--theme-switcher-dark-hover-bg, #b91c1c)}.theme-switcher-btn[data-theme=auto]{background:var(--theme-switcher-auto-bg, linear-gradient(135deg, #dc2626, #b91c1c));color:var(--theme-switcher-auto-color, white)}.theme-switcher-btn[data-theme=auto]:hover{background:var(--theme-switcher-auto-hover-bg, linear-gradient(135deg, #b91c1c, #991b1b))}@media (max-width: 768px){.theme-switcher-btn{width:var(--theme-switcher-mobile-width, 2rem);height:var(--theme-switcher-mobile-height, 2rem)}.theme-switcher-icon{font-size:var(--theme-switcher-mobile-icon-size, .9rem)}}";
720
- var qe = Object.create, q = Object.defineProperty, Je = Object.getOwnPropertyDescriptor, zt = (e, t) => (t = Symbol[e]) ? t : Symbol.for("Symbol." + e), At = (e) => {
721
- throw TypeError(e);
722
- }, Et = (e, t, o) => t in e ? q(e, t, { enumerable: !0, configurable: !0, writable: !0, value: o }) : e[t] = o, Ke = (e, t) => q(e, "name", { value: t, configurable: !0 }), Ue = (e) => [, , , qe((e == null ? void 0 : e[zt("metadata")]) ?? null)], Qe = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"], Pt = (e) => e !== void 0 && typeof e != "function" ? At("Function expected") : e, Ve = (e, t, o, s, r) => ({ kind: Qe[e], name: t, metadata: s, addInitializer: (n) => o._ ? At("Already initialized") : r.push(Pt(n || null)) }), Ze = (e, t) => Et(t, zt("metadata"), e[3]), to = (e, t, o, s) => {
723
- for (var r = 0, n = e[t >> 1], a = n && n.length; r < a; r++) n[r].call(o);
724
- return s;
725
- }, eo = (e, t, o, s, r, n) => {
726
- var a, h, u, l = t & 7, p = !1, m = 0, g = e[m] || (e[m] = []), c = l && (r = r.prototype, l < 5 && (l > 3 || !p) && Je(r, o));
727
- Ke(r, o);
728
- for (var d = s.length - 1; d >= 0; d--)
729
- u = Ve(l, o, h = {}, e[3], g), a = (0, s[d])(r, u), h._ = 1, Pt(a) && (r = a);
730
- return Ze(e, r), c && q(r, o, c), p ? l ^ 4 ? n : c : r;
731
- }, et = (e, t, o) => Et(e, typeof t != "symbol" ? t + "" : t, o), Dt, J, Tt;
732
- Dt = [x({ tagName: "theme-switcher" })];
733
- class F extends (Tt = y) {
1015
+ pe.info("ReactiveCounter disconnected from DOM"), this.state.isRunning = !1;
1016
+ }
1017
+ }
1018
+ Ke = or;
1019
+ [rr, Je] = Vt(Ke, [], We, 0, void 0, X).c;
1020
+ Je();
1021
+ const ir = ":host{display:block}.theme-switcher-container{position:relative;display:flex;align-items:center}.theme-switcher-btn{width:var(--theme-switcher-width, 2.5rem);height:var(--theme-switcher-height, 2.5rem);padding:var(--theme-switcher-padding, .5rem);border-radius:var(--theme-switcher-border-radius, 8px);background:var(--theme-switcher-bg, #dc2626);border:var(--theme-switcher-border, none);color:var(--theme-switcher-color, white);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--theme-switcher-transition, .3s ease);box-shadow:var(--theme-switcher-shadow, 0 4px 15px rgba(220, 38, 38, .4));font-weight:var(--theme-switcher-font-weight, 600);font-family:var(--theme-switcher-font-family, inherit)}.theme-switcher-btn:hover{background:var(--theme-switcher-hover-bg, #b91c1c);transform:var(--theme-switcher-hover-transform, translateY(-2px));box-shadow:var(--theme-switcher-hover-shadow, 0 8px 25px rgba(220, 38, 38, .5))}.theme-switcher-btn:active{transform:var(--theme-switcher-active-transform, translateY(0))}.theme-switcher-icon{font-size:var(--theme-switcher-icon-size, 1rem);line-height:1;transition:transform var(--theme-switcher-icon-transition, .3s ease)}.theme-switcher-btn:hover .theme-switcher-icon{transform:var(--theme-switcher-icon-hover-transform, rotate(360deg))}.theme-switcher-btn[data-theme=light]{background:var(--theme-switcher-light-bg, #dc2626);color:var(--theme-switcher-light-color, white)}.theme-switcher-btn[data-theme=light]:hover{background:var(--theme-switcher-light-hover-bg, #b91c1c)}.theme-switcher-btn[data-theme=dark]{background:var(--theme-switcher-dark-bg, #dc2626);color:var(--theme-switcher-dark-color, white)}.theme-switcher-btn[data-theme=dark]:hover{background:var(--theme-switcher-dark-hover-bg, #b91c1c)}.theme-switcher-btn[data-theme=auto]{background:var(--theme-switcher-auto-bg, linear-gradient(135deg, #dc2626, #b91c1c));color:var(--theme-switcher-auto-color, white)}.theme-switcher-btn[data-theme=auto]:hover{background:var(--theme-switcher-auto-hover-bg, linear-gradient(135deg, #b91c1c, #991b1b))}@media (max-width: 768px){.theme-switcher-btn{width:var(--theme-switcher-mobile-width, 2rem);height:var(--theme-switcher-mobile-height, 2rem)}.theme-switcher-icon{font-size:var(--theme-switcher-mobile-icon-size, .9rem)}}";
1022
+ var Xe;
1023
+ let qe, Ye;
1024
+ function me(t, e, r) {
1025
+ return (e = Qe(e)) in t ? Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }) : t[e] = r, t;
1026
+ }
1027
+ function nr(t, e, r, g, S, A) {
1028
+ function T(o, l, u) {
1029
+ return function(s, a) {
1030
+ return u && u(s), o[l].call(s, a);
1031
+ };
1032
+ }
1033
+ function B(o, l) {
1034
+ for (var u = 0; u < o.length; u++) o[u].call(l);
1035
+ return l;
1036
+ }
1037
+ function _(o, l, u, s) {
1038
+ if (typeof o != "function" && (s || o !== void 0)) throw new TypeError(l + " must " + (u || "be") + " a function" + (s ? "" : " or undefined"));
1039
+ return o;
1040
+ }
1041
+ function M(o, l, u, s, a, j, L, E, P, y, b, f, p) {
1042
+ function v(c) {
1043
+ if (!p(c)) throw new TypeError("Attempted to access private element on non-instance");
1044
+ }
1045
+ var d, x = l[0], k = l[3], z = !E;
1046
+ if (!z) {
1047
+ u || Array.isArray(x) || (x = [x]);
1048
+ var i = {}, C = [], m = a === 3 ? "get" : a === 4 || f ? "set" : "value";
1049
+ y ? (b || f ? i = { get: Te(function() {
1050
+ return k(this);
1051
+ }, s, "get"), set: function(c) {
1052
+ l[4](this, c);
1053
+ } } : i[m] = k, b || Te(i[m], s, a === 2 ? "" : m)) : b || (i = Object.getOwnPropertyDescriptor(o, s));
1054
+ }
1055
+ for (var h = o, I = x.length - 1; I >= 0; I -= u ? 2 : 1) {
1056
+ var F = x[I], K = u ? x[I - 1] : void 0, J = {}, D = { kind: ["field", "accessor", "method", "getter", "setter", "class"][a], name: s, metadata: j, addInitializer: (function(c, w) {
1057
+ if (c.v) throw Error("attempted to call addInitializer after decoration was finished");
1058
+ _(w, "An initializer", "be", !0), L.push(w);
1059
+ }).bind(null, J) };
1060
+ try {
1061
+ if (z) (d = _(F.call(K, h, D), "class decorators", "return")) && (h = d);
1062
+ else {
1063
+ var $, R;
1064
+ D.static = P, D.private = y, y ? a === 2 ? $ = function(c) {
1065
+ return v(c), i.value;
1066
+ } : (a < 4 && ($ = T(i, "get", v)), a !== 3 && (R = T(i, "set", v))) : ($ = function(c) {
1067
+ return c[s];
1068
+ }, (a < 2 || a === 4) && (R = function(c, w) {
1069
+ c[s] = w;
1070
+ }));
1071
+ var W = D.access = { has: y ? p.bind() : function(c) {
1072
+ return s in c;
1073
+ } };
1074
+ if ($ && (W.get = $), R && (W.set = R), h = F.call(K, f ? { get: i.get, set: i.set } : i[m], D), f) {
1075
+ if (typeof h == "object" && h) (d = _(h.get, "accessor.get")) && (i.get = d), (d = _(h.set, "accessor.set")) && (i.set = d), (d = _(h.init, "accessor.init")) && C.push(d);
1076
+ else if (h !== void 0) throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0");
1077
+ } else _(h, (b ? "field" : "method") + " decorators", "return") && (b ? C.push(h) : i[m] = h);
1078
+ }
1079
+ } finally {
1080
+ J.v = !0;
1081
+ }
1082
+ }
1083
+ return (b || f) && E.push(function(c, w) {
1084
+ for (var N = C.length - 1; N >= 0; N--) w = C[N].call(c, w);
1085
+ return w;
1086
+ }), b || z || (y ? f ? E.push(T(i, "get"), T(i, "set")) : E.push(a === 2 ? i[m] : T.call.bind(i[m])) : Object.defineProperty(o, s, i)), h;
1087
+ }
1088
+ function U(o, l) {
1089
+ return Object.defineProperty(o, Symbol.metadata || Symbol.for("Symbol.metadata"), { configurable: !0, enumerable: !0, value: l });
1090
+ }
1091
+ if (arguments.length >= 6) var H = A[Symbol.metadata || Symbol.for("Symbol.metadata")];
1092
+ var O = Object.create(H ?? null), G = function(o, l, u, s) {
1093
+ var a, j, L = [], E = function(m) {
1094
+ return ar(m) === o;
1095
+ }, P = /* @__PURE__ */ new Map();
1096
+ function y(m) {
1097
+ m && L.push(B.bind(null, m));
1098
+ }
1099
+ for (var b = 0; b < l.length; b++) {
1100
+ var f = l[b];
1101
+ if (Array.isArray(f)) {
1102
+ var p = f[1], v = f[2], d = f.length > 3, x = 16 & p, k = !!(8 & p), z = (p &= 7) == 0, i = v + "/" + k;
1103
+ if (!z && !d) {
1104
+ var C = P.get(i);
1105
+ if (C === !0 || C === 3 && p !== 4 || C === 4 && p !== 3) throw Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + v);
1106
+ P.set(i, !(p > 2) || p);
1107
+ }
1108
+ M(k ? o : o.prototype, f, x, d ? "#" + v : Qe(v), p, s, k ? j = j || [] : a = a || [], L, k, d, z, p === 1, k && d ? E : u);
1109
+ }
1110
+ }
1111
+ return y(a), y(j), L;
1112
+ }(t, e, S, O);
1113
+ return r.length || U(t, O), { e: G, get c() {
1114
+ var o = [];
1115
+ return r.length && [U(M(t, [r], g, t.name, 5, O, o), O), B.bind(null, o, t)];
1116
+ } };
1117
+ }
1118
+ function Qe(t) {
1119
+ var e = sr(t, "string");
1120
+ return typeof e == "symbol" ? e : e + "";
1121
+ }
1122
+ function sr(t, e) {
1123
+ if (typeof t != "object" || !t) return t;
1124
+ var r = t[Symbol.toPrimitive];
1125
+ if (r !== void 0) {
1126
+ var g = r.call(t, e);
1127
+ if (typeof g != "object") return g;
1128
+ throw new TypeError("@@toPrimitive must return a primitive value.");
1129
+ }
1130
+ return String(t);
1131
+ }
1132
+ function Te(t, e, r) {
1133
+ typeof e == "symbol" && (e = (e = e.description) ? "[" + e + "]" : "");
1134
+ try {
1135
+ Object.defineProperty(t, "name", { configurable: !0, value: r ? r + " " + e : e });
1136
+ } catch {
1137
+ }
1138
+ return t;
1139
+ }
1140
+ function ar(t) {
1141
+ if (Object(t) !== t) throw TypeError("right-hand side of 'in' should be an object, got " + (t !== null ? typeof t : "null"));
1142
+ return t;
1143
+ }
1144
+ Ye = [re({
1145
+ tagName: "theme-switcher"
1146
+ })];
1147
+ let lr;
1148
+ class cr extends X {
734
1149
  constructor() {
735
1150
  super({
736
- styles: Xe,
737
1151
  styleName: "theme-switcher"
738
- }), et(this, "currentTheme", "auto"), et(this, "toggleTheme", () => {
739
- const t = ["auto", "light", "dark"], s = (t.indexOf(this.currentTheme) + 1) % t.length;
740
- this.setTheme(t[s]);
1152
+ }), me(this, "_autoStyles", ir), me(this, "currentTheme", "auto"), me(this, "toggleTheme", () => {
1153
+ const e = ["auto", "light", "dark"], g = (e.indexOf(this.currentTheme) + 1) % e.length;
1154
+ this.setTheme(e[g]);
741
1155
  }), this.initTheme();
742
1156
  }
743
1157
  render() {
744
- return /* @__PURE__ */ i("div", { class: "theme-switcher-container" }, /* @__PURE__ */ i(
745
- "button",
746
- {
747
- class: "theme-switcher-btn",
748
- "data-theme": this.currentTheme,
749
- onClick: this.toggleTheme,
750
- title: `当前主题: ${this.getThemeLabel()}`
751
- },
752
- /* @__PURE__ */ i("span", { class: "theme-switcher-icon" }, this.getThemeIcon())
753
- ));
1158
+ return /* @__PURE__ */ n("div", { class: "theme-switcher-container" }, /* @__PURE__ */ n("button", { class: "theme-switcher-btn", "data-theme": this.currentTheme, onClick: this.toggleTheme, title: `当前主题: ${this.getThemeLabel()}`, "data-wsx-key": "ThemeSwitcher-button-text-1" }, /* @__PURE__ */ n("span", { class: "theme-switcher-icon" }, this.getThemeIcon())));
754
1159
  }
755
1160
  getThemeIcon() {
756
- const o = document.documentElement.classList.contains("dark");
757
- return this.currentTheme === "auto" ? o ? "🌙" : "☀️" : this.currentTheme === "light" ? "☀️" : "🌙";
1161
+ const r = document.documentElement.classList.contains("dark");
1162
+ return this.currentTheme === "auto" ? r ? "🌙" : "☀️" : this.currentTheme === "light" ? "☀️" : "🌙";
758
1163
  }
759
1164
  getThemeLabel() {
760
1165
  return {
@@ -763,61 +1168,174 @@ class F extends (Tt = y) {
763
1168
  auto: "自动"
764
1169
  }[this.currentTheme];
765
1170
  }
766
- setTheme(t) {
767
- this.currentTheme = t;
768
- const o = document.documentElement;
769
- t === "auto" ? (o.removeAttribute("class"), this.checkSystemTheme()) : o.className = t, localStorage.setItem("wsx-theme", t), this.rerender();
1171
+ setTheme(e) {
1172
+ this.currentTheme = e;
1173
+ const r = document.documentElement;
1174
+ e === "auto" ? (r.removeAttribute("class"), this.checkSystemTheme()) : r.className = e, localStorage.setItem("wsx-theme", e), this.rerender();
770
1175
  }
771
1176
  checkSystemTheme() {
772
- const t = window.matchMedia("(prefers-color-scheme: dark)").matches;
773
- document.documentElement.className = t ? "dark" : "";
1177
+ const e = window.matchMedia("(prefers-color-scheme: dark)").matches;
1178
+ document.documentElement.className = e ? "dark" : "";
774
1179
  }
775
1180
  initTheme() {
776
- const t = localStorage.getItem("wsx-theme") || "auto";
777
- this.setTheme(t), window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change", (o) => {
778
- this.currentTheme === "auto" && (document.documentElement.className = o.matches ? "dark" : "");
1181
+ const e = localStorage.getItem("wsx-theme") || "auto";
1182
+ this.setTheme(e), window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change", (r) => {
1183
+ this.currentTheme === "auto" && (document.documentElement.className = r.matches ? "dark" : "");
779
1184
  });
780
1185
  }
781
1186
  }
782
- J = Ue(Tt);
783
- F = eo(J, 0, "ThemeSwitcher", Dt, F);
784
- to(J, 1, F);
785
- var oo = Object.create, K = Object.defineProperty, ro = Object.getOwnPropertyDescriptor, Ot = (e, t) => (t = Symbol[e]) ? t : Symbol.for("Symbol." + e), It = (e) => {
786
- throw TypeError(e);
787
- }, Ft = (e, t, o) => t in e ? K(e, t, { enumerable: !0, configurable: !0, writable: !0, value: o }) : e[t] = o, io = (e, t) => K(e, "name", { value: t, configurable: !0 }), so = (e) => [, , , oo((e == null ? void 0 : e[Ot("metadata")]) ?? null)], no = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"], Bt = (e) => e !== void 0 && typeof e != "function" ? It("Function expected") : e, ao = (e, t, o, s, r) => ({ kind: no[e], name: t, metadata: s, addInitializer: (n) => o._ ? It("Already initialized") : r.push(Bt(n || null)) }), lo = (e, t) => Ft(t, Ot("metadata"), e[3]), co = (e, t, o, s) => {
788
- for (var r = 0, n = e[t >> 1], a = n && n.length; r < a; r++) n[r].call(o);
789
- return s;
790
- }, ho = (e, t, o, s, r, n) => {
791
- var a, h, u, l = t & 7, p = !1, m = 0, g = e[m] || (e[m] = []), c = l && (r = r.prototype, l < 5 && (l > 3 || !p) && ro(r, o));
792
- io(r, o);
793
- for (var d = s.length - 1; d >= 0; d--)
794
- u = ao(l, o, h = {}, e[3], g), a = (0, s[d])(r, u), h._ = 1, Bt(a) && (r = a);
795
- return lo(e, r), c && K(r, o, c), p ? l ^ 4 ? n : c : r;
796
- }, A = (e, t, o) => Ft(e, typeof t != "symbol" ? t + "" : t, o), Mt, U, Rt;
797
- const E = C("SvgIcon");
798
- Mt = [x({ tagName: "svg-icon" })];
799
- class B extends (Rt = y) {
1187
+ Xe = cr;
1188
+ [lr, qe] = nr(Xe, [], Ye, 0, void 0, X).c;
1189
+ qe();
1190
+ var Ze;
1191
+ let Ve, et;
1192
+ function ge(t, e, r) {
1193
+ return (e = tt(e)) in t ? Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }) : t[e] = r, t;
1194
+ }
1195
+ function ur(t, e, r, g, S, A) {
1196
+ function T(o, l, u) {
1197
+ return function(s, a) {
1198
+ return u && u(s), o[l].call(s, a);
1199
+ };
1200
+ }
1201
+ function B(o, l) {
1202
+ for (var u = 0; u < o.length; u++) o[u].call(l);
1203
+ return l;
1204
+ }
1205
+ function _(o, l, u, s) {
1206
+ if (typeof o != "function" && (s || o !== void 0)) throw new TypeError(l + " must " + (u || "be") + " a function" + (s ? "" : " or undefined"));
1207
+ return o;
1208
+ }
1209
+ function M(o, l, u, s, a, j, L, E, P, y, b, f, p) {
1210
+ function v(c) {
1211
+ if (!p(c)) throw new TypeError("Attempted to access private element on non-instance");
1212
+ }
1213
+ var d, x = l[0], k = l[3], z = !E;
1214
+ if (!z) {
1215
+ u || Array.isArray(x) || (x = [x]);
1216
+ var i = {}, C = [], m = a === 3 ? "get" : a === 4 || f ? "set" : "value";
1217
+ y ? (b || f ? i = { get: Se(function() {
1218
+ return k(this);
1219
+ }, s, "get"), set: function(c) {
1220
+ l[4](this, c);
1221
+ } } : i[m] = k, b || Se(i[m], s, a === 2 ? "" : m)) : b || (i = Object.getOwnPropertyDescriptor(o, s));
1222
+ }
1223
+ for (var h = o, I = x.length - 1; I >= 0; I -= u ? 2 : 1) {
1224
+ var F = x[I], K = u ? x[I - 1] : void 0, J = {}, D = { kind: ["field", "accessor", "method", "getter", "setter", "class"][a], name: s, metadata: j, addInitializer: (function(c, w) {
1225
+ if (c.v) throw Error("attempted to call addInitializer after decoration was finished");
1226
+ _(w, "An initializer", "be", !0), L.push(w);
1227
+ }).bind(null, J) };
1228
+ try {
1229
+ if (z) (d = _(F.call(K, h, D), "class decorators", "return")) && (h = d);
1230
+ else {
1231
+ var $, R;
1232
+ D.static = P, D.private = y, y ? a === 2 ? $ = function(c) {
1233
+ return v(c), i.value;
1234
+ } : (a < 4 && ($ = T(i, "get", v)), a !== 3 && (R = T(i, "set", v))) : ($ = function(c) {
1235
+ return c[s];
1236
+ }, (a < 2 || a === 4) && (R = function(c, w) {
1237
+ c[s] = w;
1238
+ }));
1239
+ var W = D.access = { has: y ? p.bind() : function(c) {
1240
+ return s in c;
1241
+ } };
1242
+ if ($ && (W.get = $), R && (W.set = R), h = F.call(K, f ? { get: i.get, set: i.set } : i[m], D), f) {
1243
+ if (typeof h == "object" && h) (d = _(h.get, "accessor.get")) && (i.get = d), (d = _(h.set, "accessor.set")) && (i.set = d), (d = _(h.init, "accessor.init")) && C.push(d);
1244
+ else if (h !== void 0) throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0");
1245
+ } else _(h, (b ? "field" : "method") + " decorators", "return") && (b ? C.push(h) : i[m] = h);
1246
+ }
1247
+ } finally {
1248
+ J.v = !0;
1249
+ }
1250
+ }
1251
+ return (b || f) && E.push(function(c, w) {
1252
+ for (var N = C.length - 1; N >= 0; N--) w = C[N].call(c, w);
1253
+ return w;
1254
+ }), b || z || (y ? f ? E.push(T(i, "get"), T(i, "set")) : E.push(a === 2 ? i[m] : T.call.bind(i[m])) : Object.defineProperty(o, s, i)), h;
1255
+ }
1256
+ function U(o, l) {
1257
+ return Object.defineProperty(o, Symbol.metadata || Symbol.for("Symbol.metadata"), { configurable: !0, enumerable: !0, value: l });
1258
+ }
1259
+ if (arguments.length >= 6) var H = A[Symbol.metadata || Symbol.for("Symbol.metadata")];
1260
+ var O = Object.create(H ?? null), G = function(o, l, u, s) {
1261
+ var a, j, L = [], E = function(m) {
1262
+ return hr(m) === o;
1263
+ }, P = /* @__PURE__ */ new Map();
1264
+ function y(m) {
1265
+ m && L.push(B.bind(null, m));
1266
+ }
1267
+ for (var b = 0; b < l.length; b++) {
1268
+ var f = l[b];
1269
+ if (Array.isArray(f)) {
1270
+ var p = f[1], v = f[2], d = f.length > 3, x = 16 & p, k = !!(8 & p), z = (p &= 7) == 0, i = v + "/" + k;
1271
+ if (!z && !d) {
1272
+ var C = P.get(i);
1273
+ if (C === !0 || C === 3 && p !== 4 || C === 4 && p !== 3) throw Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + v);
1274
+ P.set(i, !(p > 2) || p);
1275
+ }
1276
+ M(k ? o : o.prototype, f, x, d ? "#" + v : tt(v), p, s, k ? j = j || [] : a = a || [], L, k, d, z, p === 1, k && d ? E : u);
1277
+ }
1278
+ }
1279
+ return y(a), y(j), L;
1280
+ }(t, e, S, O);
1281
+ return r.length || U(t, O), { e: G, get c() {
1282
+ var o = [];
1283
+ return r.length && [U(M(t, [r], g, t.name, 5, O, o), O), B.bind(null, o, t)];
1284
+ } };
1285
+ }
1286
+ function tt(t) {
1287
+ var e = dr(t, "string");
1288
+ return typeof e == "symbol" ? e : e + "";
1289
+ }
1290
+ function dr(t, e) {
1291
+ if (typeof t != "object" || !t) return t;
1292
+ var r = t[Symbol.toPrimitive];
1293
+ if (r !== void 0) {
1294
+ var g = r.call(t, e);
1295
+ if (typeof g != "object") return g;
1296
+ throw new TypeError("@@toPrimitive must return a primitive value.");
1297
+ }
1298
+ return String(t);
1299
+ }
1300
+ function Se(t, e, r) {
1301
+ typeof e == "symbol" && (e = (e = e.description) ? "[" + e + "]" : "");
1302
+ try {
1303
+ Object.defineProperty(t, "name", { configurable: !0, value: r ? r + " " + e : e });
1304
+ } catch {
1305
+ }
1306
+ return t;
1307
+ }
1308
+ function hr(t) {
1309
+ if (Object(t) !== t) throw TypeError("right-hand side of 'in' should be an object, got " + (t !== null ? typeof t : "null"));
1310
+ return t;
1311
+ }
1312
+ const be = ne("SvgIcon");
1313
+ et = [re({
1314
+ tagName: "svg-icon"
1315
+ })];
1316
+ let fr;
1317
+ class pr extends X {
800
1318
  constructor() {
801
- super(), A(this, "handleClick", (t) => {
802
- E.debug("SVG icon clicked", { name: this.getAttribute("name") }), this.dispatchEvent(
803
- new CustomEvent("icon-click", {
804
- detail: {
805
- name: this.getAttribute("name"),
806
- originalEvent: t
807
- },
808
- bubbles: !0
809
- })
810
- );
811
- }), A(this, "handleMouseEnter", (t) => {
812
- const o = t.target;
813
- o.style.transform = "scale(1.1)";
814
- }), A(this, "handleMouseLeave", (t) => {
815
- const o = t.target;
816
- o.style.transform = "scale(1)";
817
- }), E.info("SvgIcon component initialized");
1319
+ super(), ge(this, "handleClick", (e) => {
1320
+ be.debug("SVG icon clicked", {
1321
+ name: this.getAttribute("name")
1322
+ }), this.dispatchEvent(new CustomEvent("icon-click", {
1323
+ detail: {
1324
+ name: this.getAttribute("name"),
1325
+ originalEvent: e
1326
+ },
1327
+ bubbles: !0
1328
+ }));
1329
+ }), ge(this, "handleMouseEnter", (e) => {
1330
+ const r = e.target;
1331
+ r.style.transform = "scale(1.1)";
1332
+ }), ge(this, "handleMouseLeave", (e) => {
1333
+ const r = e.target;
1334
+ r.style.transform = "scale(1)";
1335
+ }), be.info("SvgIcon component initialized");
818
1336
  }
819
1337
  render() {
820
- const t = this.getAttribute("size") || "24", o = this.getAttribute("color") || "currentColor", s = this.getAttribute("name") || "star", r = {
1338
+ const e = this.getAttribute("size") || "24", r = this.getAttribute("color") || "currentColor", g = this.getAttribute("name") || "star", S = {
821
1339
  star: "M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z",
822
1340
  heart: "M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z",
823
1341
  check: "M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z",
@@ -825,261 +1343,1271 @@ class B extends (Rt = y) {
825
1343
  github: "M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22",
826
1344
  play: "M8 5v14l11-7z",
827
1345
  settings: "M12 15a3 3 0 1 0 0-6 3 3 0 0 0 0 6z M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1 1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z"
828
- }, n = r[s] || r.star;
829
- return /* @__PURE__ */ i(
830
- "svg",
831
- {
832
- width: t,
833
- height: t,
834
- viewBox: "0 0 24 24",
835
- fill: "none",
836
- stroke: o,
837
- strokeWidth: "2",
838
- strokeLinecap: "round",
839
- strokeLinejoin: "round",
840
- className: "svg-icon",
841
- onClick: this.handleClick,
842
- style: "cursor: pointer; transition: transform 0.2s ease; display: inline-block;",
843
- onMouseEnter: this.handleMouseEnter,
844
- onMouseLeave: this.handleMouseLeave
845
- },
846
- /* @__PURE__ */ i("path", { d: n, fill: o })
847
- );
1346
+ }, A = S[g] || S.star;
1347
+ return /* @__PURE__ */ n("svg", { width: e, height: e, viewBox: "0 0 24 24", fill: "none", stroke: r, strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className: "svg-icon", onClick: this.handleClick, style: "cursor: pointer; transition: transform 0.2s ease; display: inline-block;", onMouseEnter: this.handleMouseEnter, onMouseLeave: this.handleMouseLeave }, /* @__PURE__ */ n("path", { d: A, fill: r }));
848
1348
  }
849
1349
  static get observedAttributes() {
850
1350
  return ["name", "size", "color"];
851
1351
  }
852
- onAttributeChanged(t, o, s) {
853
- E.debug(`Attribute ${t} changed from ${o} to ${s}`), this.connected && this.rerender();
854
- }
855
- }
856
- U = so(Rt);
857
- B = ho(U, 0, "SvgIcon", Mt, B);
858
- co(U, 1, B);
859
- var uo = Object.create, Q = Object.defineProperty, po = Object.getOwnPropertyDescriptor, Lt = (e, t) => (t = Symbol[e]) ? t : Symbol.for("Symbol." + e), Nt = (e) => {
860
- throw TypeError(e);
861
- }, Ht = (e, t, o) => t in e ? Q(e, t, { enumerable: !0, configurable: !0, writable: !0, value: o }) : e[t] = o, mo = (e, t) => Q(e, "name", { value: t, configurable: !0 }), bo = (e) => [, , , uo((e == null ? void 0 : e[Lt("metadata")]) ?? null)], go = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"], jt = (e) => e !== void 0 && typeof e != "function" ? Nt("Function expected") : e, fo = (e, t, o, s, r) => ({ kind: go[e], name: t, metadata: s, addInitializer: (n) => o._ ? Nt("Already initialized") : r.push(jt(n || null)) }), vo = (e, t) => Ht(t, Lt("metadata"), e[3]), xo = (e, t, o, s) => {
862
- for (var r = 0, n = e[t >> 1], a = n && n.length; r < a; r++) n[r].call(o);
863
- return s;
864
- }, _o = (e, t, o, s, r, n) => {
865
- var a, h, u, l = t & 7, p = !1, m = 0, g = e[m] || (e[m] = []), c = l && (r = r.prototype, l < 5 && (l > 3 || !p) && po(r, o));
866
- mo(r, o);
867
- for (var d = s.length - 1; d >= 0; d--)
868
- u = fo(l, o, h = {}, e[3], g), a = (0, s[d])(r, u), h._ = 1, jt(a) && (r = a);
869
- return vo(e, r), c && Q(r, o, c), p ? l ^ 4 ? n : c : r;
870
- }, _ = (e, t, o) => Ht(e, typeof t != "symbol" ? t + "" : t, o), Wt, V, Gt;
871
- const $ = C("SvgDemo");
872
- Wt = [x({ tagName: "svg-demo" })];
873
- class M extends (Gt = y) {
1352
+ onAttributeChanged(e, r, g) {
1353
+ be.debug(`Attribute ${e} changed from ${r} to ${g}`), this.connected && this.rerender();
1354
+ }
1355
+ }
1356
+ Ze = pr;
1357
+ [fr, Ve] = ur(Ze, [], et, 0, void 0, X).c;
1358
+ Ve();
1359
+ var rt;
1360
+ let ot, it;
1361
+ function le(t, e, r) {
1362
+ return (e = nt(e)) in t ? Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }) : t[e] = r, t;
1363
+ }
1364
+ function mr(t, e, r, g, S, A) {
1365
+ function T(o, l, u) {
1366
+ return function(s, a) {
1367
+ return u && u(s), o[l].call(s, a);
1368
+ };
1369
+ }
1370
+ function B(o, l) {
1371
+ for (var u = 0; u < o.length; u++) o[u].call(l);
1372
+ return l;
1373
+ }
1374
+ function _(o, l, u, s) {
1375
+ if (typeof o != "function" && (s || o !== void 0)) throw new TypeError(l + " must " + (u || "be") + " a function" + (s ? "" : " or undefined"));
1376
+ return o;
1377
+ }
1378
+ function M(o, l, u, s, a, j, L, E, P, y, b, f, p) {
1379
+ function v(c) {
1380
+ if (!p(c)) throw new TypeError("Attempted to access private element on non-instance");
1381
+ }
1382
+ var d, x = l[0], k = l[3], z = !E;
1383
+ if (!z) {
1384
+ u || Array.isArray(x) || (x = [x]);
1385
+ var i = {}, C = [], m = a === 3 ? "get" : a === 4 || f ? "set" : "value";
1386
+ y ? (b || f ? i = { get: _e(function() {
1387
+ return k(this);
1388
+ }, s, "get"), set: function(c) {
1389
+ l[4](this, c);
1390
+ } } : i[m] = k, b || _e(i[m], s, a === 2 ? "" : m)) : b || (i = Object.getOwnPropertyDescriptor(o, s));
1391
+ }
1392
+ for (var h = o, I = x.length - 1; I >= 0; I -= u ? 2 : 1) {
1393
+ var F = x[I], K = u ? x[I - 1] : void 0, J = {}, D = { kind: ["field", "accessor", "method", "getter", "setter", "class"][a], name: s, metadata: j, addInitializer: (function(c, w) {
1394
+ if (c.v) throw Error("attempted to call addInitializer after decoration was finished");
1395
+ _(w, "An initializer", "be", !0), L.push(w);
1396
+ }).bind(null, J) };
1397
+ try {
1398
+ if (z) (d = _(F.call(K, h, D), "class decorators", "return")) && (h = d);
1399
+ else {
1400
+ var $, R;
1401
+ D.static = P, D.private = y, y ? a === 2 ? $ = function(c) {
1402
+ return v(c), i.value;
1403
+ } : (a < 4 && ($ = T(i, "get", v)), a !== 3 && (R = T(i, "set", v))) : ($ = function(c) {
1404
+ return c[s];
1405
+ }, (a < 2 || a === 4) && (R = function(c, w) {
1406
+ c[s] = w;
1407
+ }));
1408
+ var W = D.access = { has: y ? p.bind() : function(c) {
1409
+ return s in c;
1410
+ } };
1411
+ if ($ && (W.get = $), R && (W.set = R), h = F.call(K, f ? { get: i.get, set: i.set } : i[m], D), f) {
1412
+ if (typeof h == "object" && h) (d = _(h.get, "accessor.get")) && (i.get = d), (d = _(h.set, "accessor.set")) && (i.set = d), (d = _(h.init, "accessor.init")) && C.push(d);
1413
+ else if (h !== void 0) throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0");
1414
+ } else _(h, (b ? "field" : "method") + " decorators", "return") && (b ? C.push(h) : i[m] = h);
1415
+ }
1416
+ } finally {
1417
+ J.v = !0;
1418
+ }
1419
+ }
1420
+ return (b || f) && E.push(function(c, w) {
1421
+ for (var N = C.length - 1; N >= 0; N--) w = C[N].call(c, w);
1422
+ return w;
1423
+ }), b || z || (y ? f ? E.push(T(i, "get"), T(i, "set")) : E.push(a === 2 ? i[m] : T.call.bind(i[m])) : Object.defineProperty(o, s, i)), h;
1424
+ }
1425
+ function U(o, l) {
1426
+ return Object.defineProperty(o, Symbol.metadata || Symbol.for("Symbol.metadata"), { configurable: !0, enumerable: !0, value: l });
1427
+ }
1428
+ if (arguments.length >= 6) var H = A[Symbol.metadata || Symbol.for("Symbol.metadata")];
1429
+ var O = Object.create(H ?? null), G = function(o, l, u, s) {
1430
+ var a, j, L = [], E = function(m) {
1431
+ return br(m) === o;
1432
+ }, P = /* @__PURE__ */ new Map();
1433
+ function y(m) {
1434
+ m && L.push(B.bind(null, m));
1435
+ }
1436
+ for (var b = 0; b < l.length; b++) {
1437
+ var f = l[b];
1438
+ if (Array.isArray(f)) {
1439
+ var p = f[1], v = f[2], d = f.length > 3, x = 16 & p, k = !!(8 & p), z = (p &= 7) == 0, i = v + "/" + k;
1440
+ if (!z && !d) {
1441
+ var C = P.get(i);
1442
+ if (C === !0 || C === 3 && p !== 4 || C === 4 && p !== 3) throw Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + v);
1443
+ P.set(i, !(p > 2) || p);
1444
+ }
1445
+ M(k ? o : o.prototype, f, x, d ? "#" + v : nt(v), p, s, k ? j = j || [] : a = a || [], L, k, d, z, p === 1, k && d ? E : u);
1446
+ }
1447
+ }
1448
+ return y(a), y(j), L;
1449
+ }(t, e, S, O);
1450
+ return r.length || U(t, O), { e: G, get c() {
1451
+ var o = [];
1452
+ return r.length && [U(M(t, [r], g, t.name, 5, O, o), O), B.bind(null, o, t)];
1453
+ } };
1454
+ }
1455
+ function nt(t) {
1456
+ var e = gr(t, "string");
1457
+ return typeof e == "symbol" ? e : e + "";
1458
+ }
1459
+ function gr(t, e) {
1460
+ if (typeof t != "object" || !t) return t;
1461
+ var r = t[Symbol.toPrimitive];
1462
+ if (r !== void 0) {
1463
+ var g = r.call(t, e);
1464
+ if (typeof g != "object") return g;
1465
+ throw new TypeError("@@toPrimitive must return a primitive value.");
1466
+ }
1467
+ return String(t);
1468
+ }
1469
+ function _e(t, e, r) {
1470
+ typeof e == "symbol" && (e = (e = e.description) ? "[" + e + "]" : "");
1471
+ try {
1472
+ Object.defineProperty(t, "name", { configurable: !0, value: r ? r + " " + e : e });
1473
+ } catch {
1474
+ }
1475
+ return t;
1476
+ }
1477
+ function br(t) {
1478
+ if (Object(t) !== t) throw TypeError("right-hand side of 'in' should be an object, got " + (t !== null ? typeof t : "null"));
1479
+ return t;
1480
+ }
1481
+ const de = ne("SvgDemo");
1482
+ it = [re({
1483
+ tagName: "svg-demo"
1484
+ })];
1485
+ let yr;
1486
+ class vr extends X {
874
1487
  constructor() {
875
- super(), _(this, "animationId", null), _(this, "rotationAngle", 0), _(this, "showTooltip", (t, o) => {
876
- t.target.setAttribute("fill", "#e74c3c"), $.debug(`Tooltip value: ${o}`);
877
- }), _(this, "hideTooltip", (t) => {
878
- t.target.setAttribute("fill", "#3498db");
879
- }), _(this, "startAnimation", () => {
1488
+ super(), le(this, "animationId", null), le(this, "rotationAngle", 0), le(this, "showTooltip", (e, r) => {
1489
+ e.target.setAttribute("fill", "#e74c3c"), de.debug(`Tooltip value: ${r}`);
1490
+ }), le(this, "hideTooltip", (e) => {
1491
+ e.target.setAttribute("fill", "#3498db");
1492
+ }), le(this, "startAnimation", () => {
880
1493
  if (this.animationId) return;
881
- const t = () => {
882
- this.rotationAngle += 2, this.rotationAngle >= 360 && (this.rotationAngle = 0), this.rerender(), this.animationId = requestAnimationFrame(t);
1494
+ const e = () => {
1495
+ this.rotationAngle += 2, this.rotationAngle >= 360 && (this.rotationAngle = 0), this.rerender(), this.animationId = requestAnimationFrame(e);
883
1496
  };
884
- this.animationId = requestAnimationFrame(t);
885
- }), _(this, "stopAnimation", () => {
1497
+ this.animationId = requestAnimationFrame(e);
1498
+ }), le(this, "stopAnimation", () => {
886
1499
  this.animationId && (cancelAnimationFrame(this.animationId), this.animationId = null);
887
- }), $.info("SvgDemo component initialized");
1500
+ }), de.info("SvgDemo component initialized");
888
1501
  }
889
1502
  render() {
890
- return /* @__PURE__ */ i("div", { style: "padding: 20px; background: #f5f5f5; border-radius: 8px; margin: 10px 0;" }, /* @__PURE__ */ i("h3", { style: "margin-top: 0; color: #333;" }, "SVG Showcase"), /* @__PURE__ */ i("div", { style: "margin-bottom: 20px;" }, /* @__PURE__ */ i("h4", { style: "margin: 10px 0; color: #666;" }, "Basic Shapes"), /* @__PURE__ */ i(
891
- "svg",
892
- {
893
- width: "300",
894
- height: "100",
895
- style: "border: 1px solid #ddd; background: white;"
896
- },
897
- /* @__PURE__ */ i(
898
- "circle",
899
- {
900
- cx: "50",
901
- cy: "50",
902
- r: "30",
903
- fill: "#e74c3c",
904
- stroke: "#c0392b",
905
- strokeWidth: "2"
1503
+ return /* @__PURE__ */ n("div", { style: "padding: 20px; background: #f5f5f5; border-radius: 8px; margin: 10px 0;" }, /* @__PURE__ */ n("h3", { style: "margin-top: 0; color: #333;" }, "SVG Showcase"), /* @__PURE__ */ n("div", { style: "margin-bottom: 20px;" }, /* @__PURE__ */ n("h4", { style: "margin: 10px 0; color: #666;" }, "Basic Shapes"), /* @__PURE__ */ n("svg", { width: "300", height: "100", style: "border: 1px solid #ddd; background: white;" }, /* @__PURE__ */ n("circle", { cx: "50", cy: "50", r: "30", fill: "#e74c3c", stroke: "#c0392b", strokeWidth: "2" }), /* @__PURE__ */ n("rect", { x: "100", y: "20", width: "60", height: "60", fill: "#3498db", stroke: "#2980b9", strokeWidth: "2", rx: "5" }), /* @__PURE__ */ n("polygon", { points: "200,20 230,80 170,80", fill: "#2ecc71", stroke: "#27ae60", strokeWidth: "2" }), /* @__PURE__ */ n("line", { x1: "250", y1: "20", x2: "290", y2: "80", stroke: "#9b59b6", strokeWidth: "3", strokeLinecap: "round" }))), /* @__PURE__ */ n("div", { style: "margin-bottom: 20px;" }, /* @__PURE__ */ n("h4", { style: "margin: 10px 0; color: #666;" }, "Gradients & Effects"), /* @__PURE__ */ n("svg", { width: "300", height: "100", style: "border: 1px solid #ddd; background: white;" }, /* @__PURE__ */ n("defs", null, /* @__PURE__ */ n("linearGradient", { id: "blueGradient", x1: "0%", y1: "0%", x2: "100%", y2: "0%" }, /* @__PURE__ */ n("stop", { offset: "0%", stopColor: "#3498db" }), /* @__PURE__ */ n("stop", { offset: "100%", stopColor: "#9b59b6" })), /* @__PURE__ */ n("radialGradient", { id: "redGradient", cx: "50%", cy: "50%", r: "50%" }, /* @__PURE__ */ n("stop", { offset: "0%", stopColor: "#e74c3c" }), /* @__PURE__ */ n("stop", { offset: "100%", stopColor: "#c0392b" }))), /* @__PURE__ */ n("rect", { x: "20", y: "20", width: "120", height: "60", fill: "url(#blueGradient)", rx: "10" }), /* @__PURE__ */ n("circle", { cx: "200", cy: "50", r: "35", fill: "url(#redGradient)" }))), /* @__PURE__ */ n("div", { style: "margin-bottom: 20px;" }, /* @__PURE__ */ n("h4", { style: "margin: 10px 0; color: #666;" }, "Animation"), /* @__PURE__ */ n("svg", { width: "300", height: "100", style: "border: 1px solid #ddd; background: white;" }, /* @__PURE__ */ n("g", { transform: `translate(150, 50) rotate(${this.rotationAngle})` }, /* @__PURE__ */ n("polygon", { points: "-30,0 0,-40 30,0 0,40", fill: "#f39c12", stroke: "#e67e22", strokeWidth: "2" }), /* @__PURE__ */ n("circle", { cx: "0", cy: "0", r: "8", fill: "#2c3e50" }))), /* @__PURE__ */ n("div", { style: "margin-top: 10px;" }, /* @__PURE__ */ n("button", { onClick: this.startAnimation, style: "margin-right: 10px; padding: 5px 10px;", "data-wsx-key": "SvgDemo-button-text-13-5-1" }, "Start Animation"), /* @__PURE__ */ n("button", { onClick: this.stopAnimation, style: "padding: 5px 10px;", "data-wsx-key": "SvgDemo-button-text-13-5-3" }, "Stop Animation"))), /* @__PURE__ */ n("div", { style: "margin-bottom: 20px;" }, /* @__PURE__ */ n("h4", { style: "margin: 10px 0; color: #666;" }, "Interactive Chart"), this.renderChart()), /* @__PURE__ */ n("div", null, /* @__PURE__ */ n("h4", { style: "margin: 10px 0; color: #666;" }, "Icon Components"), /* @__PURE__ */ n("div", { style: "display: flex; gap: 15px; align-items: center;" }, /* @__PURE__ */ n("svg-icon", { name: "star", size: "32", color: "#f39c12" }), /* @__PURE__ */ n("svg-icon", { name: "heart", size: "32", color: "#e74c3c" }), /* @__PURE__ */ n("svg-icon", { name: "check", size: "32", color: "#27ae60" }), /* @__PURE__ */ n("svg-icon", { name: "github", size: "32", color: "#333" }), /* @__PURE__ */ n("svg-icon", { name: "play", size: "32", color: "#3498db" }), /* @__PURE__ */ n("svg-icon", { name: "settings", size: "32", color: "#9b59b6" }))));
1504
+ }
1505
+ renderChart() {
1506
+ const e = [30, 80, 45, 60, 20, 90, 55], r = Math.max(...e), g = 30, S = 40, A = 120, T = e.length * S + 40;
1507
+ return /* @__PURE__ */ n("svg", { width: T, height: A + 40, style: "border: 1px solid #ddd; background: white;" }, e.map((B, _) => {
1508
+ const M = B / r * A, U = _ * S + 20, H = A - M + 20;
1509
+ return /* @__PURE__ */ n("g", { key: _ }, /* @__PURE__ */ n("rect", { x: U, y: H, width: g, height: M, fill: "#3498db", stroke: "#2980b9", strokeWidth: "1", onMouseEnter: (O) => this.showTooltip(O, B), onMouseLeave: this.hideTooltip, style: "cursor: pointer; transition: fill 0.2s;" }), /* @__PURE__ */ n("text", { x: U + g / 2, y: A + 35, textAnchor: "middle", fontSize: "12", fill: "#666" }, _ + 1));
1510
+ }));
1511
+ }
1512
+ onConnected() {
1513
+ de.info("SvgDemo connected to DOM");
1514
+ }
1515
+ onDisconnected() {
1516
+ de.info("SvgDemo disconnected from DOM"), this.stopAnimation();
1517
+ }
1518
+ }
1519
+ rt = vr;
1520
+ [yr, ot] = mr(rt, [], it, 0, void 0, X).c;
1521
+ ot();
1522
+ var st;
1523
+ let at, lt;
1524
+ function ye(t, e, r) {
1525
+ return (e = ct(e)) in t ? Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }) : t[e] = r, t;
1526
+ }
1527
+ function xr(t, e, r, g, S, A) {
1528
+ function T(o, l, u) {
1529
+ return function(s, a) {
1530
+ return u && u(s), o[l].call(s, a);
1531
+ };
1532
+ }
1533
+ function B(o, l) {
1534
+ for (var u = 0; u < o.length; u++) o[u].call(l);
1535
+ return l;
1536
+ }
1537
+ function _(o, l, u, s) {
1538
+ if (typeof o != "function" && (s || o !== void 0)) throw new TypeError(l + " must " + (u || "be") + " a function" + (s ? "" : " or undefined"));
1539
+ return o;
1540
+ }
1541
+ function M(o, l, u, s, a, j, L, E, P, y, b, f, p) {
1542
+ function v(c) {
1543
+ if (!p(c)) throw new TypeError("Attempted to access private element on non-instance");
1544
+ }
1545
+ var d, x = l[0], k = l[3], z = !E;
1546
+ if (!z) {
1547
+ u || Array.isArray(x) || (x = [x]);
1548
+ var i = {}, C = [], m = a === 3 ? "get" : a === 4 || f ? "set" : "value";
1549
+ y ? (b || f ? i = { get: Ee(function() {
1550
+ return k(this);
1551
+ }, s, "get"), set: function(c) {
1552
+ l[4](this, c);
1553
+ } } : i[m] = k, b || Ee(i[m], s, a === 2 ? "" : m)) : b || (i = Object.getOwnPropertyDescriptor(o, s));
1554
+ }
1555
+ for (var h = o, I = x.length - 1; I >= 0; I -= u ? 2 : 1) {
1556
+ var F = x[I], K = u ? x[I - 1] : void 0, J = {}, D = { kind: ["field", "accessor", "method", "getter", "setter", "class"][a], name: s, metadata: j, addInitializer: (function(c, w) {
1557
+ if (c.v) throw Error("attempted to call addInitializer after decoration was finished");
1558
+ _(w, "An initializer", "be", !0), L.push(w);
1559
+ }).bind(null, J) };
1560
+ try {
1561
+ if (z) (d = _(F.call(K, h, D), "class decorators", "return")) && (h = d);
1562
+ else {
1563
+ var $, R;
1564
+ D.static = P, D.private = y, y ? a === 2 ? $ = function(c) {
1565
+ return v(c), i.value;
1566
+ } : (a < 4 && ($ = T(i, "get", v)), a !== 3 && (R = T(i, "set", v))) : ($ = function(c) {
1567
+ return c[s];
1568
+ }, (a < 2 || a === 4) && (R = function(c, w) {
1569
+ c[s] = w;
1570
+ }));
1571
+ var W = D.access = { has: y ? p.bind() : function(c) {
1572
+ return s in c;
1573
+ } };
1574
+ if ($ && (W.get = $), R && (W.set = R), h = F.call(K, f ? { get: i.get, set: i.set } : i[m], D), f) {
1575
+ if (typeof h == "object" && h) (d = _(h.get, "accessor.get")) && (i.get = d), (d = _(h.set, "accessor.set")) && (i.set = d), (d = _(h.init, "accessor.init")) && C.push(d);
1576
+ else if (h !== void 0) throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0");
1577
+ } else _(h, (b ? "field" : "method") + " decorators", "return") && (b ? C.push(h) : i[m] = h);
906
1578
  }
907
- ),
908
- /* @__PURE__ */ i(
909
- "rect",
910
- {
911
- x: "100",
912
- y: "20",
913
- width: "60",
914
- height: "60",
915
- fill: "#3498db",
916
- stroke: "#2980b9",
917
- strokeWidth: "2",
918
- rx: "5"
1579
+ } finally {
1580
+ J.v = !0;
1581
+ }
1582
+ }
1583
+ return (b || f) && E.push(function(c, w) {
1584
+ for (var N = C.length - 1; N >= 0; N--) w = C[N].call(c, w);
1585
+ return w;
1586
+ }), b || z || (y ? f ? E.push(T(i, "get"), T(i, "set")) : E.push(a === 2 ? i[m] : T.call.bind(i[m])) : Object.defineProperty(o, s, i)), h;
1587
+ }
1588
+ function U(o, l) {
1589
+ return Object.defineProperty(o, Symbol.metadata || Symbol.for("Symbol.metadata"), { configurable: !0, enumerable: !0, value: l });
1590
+ }
1591
+ if (arguments.length >= 6) var H = A[Symbol.metadata || Symbol.for("Symbol.metadata")];
1592
+ var O = Object.create(H ?? null), G = function(o, l, u, s) {
1593
+ var a, j, L = [], E = function(m) {
1594
+ return Cr(m) === o;
1595
+ }, P = /* @__PURE__ */ new Map();
1596
+ function y(m) {
1597
+ m && L.push(B.bind(null, m));
1598
+ }
1599
+ for (var b = 0; b < l.length; b++) {
1600
+ var f = l[b];
1601
+ if (Array.isArray(f)) {
1602
+ var p = f[1], v = f[2], d = f.length > 3, x = 16 & p, k = !!(8 & p), z = (p &= 7) == 0, i = v + "/" + k;
1603
+ if (!z && !d) {
1604
+ var C = P.get(i);
1605
+ if (C === !0 || C === 3 && p !== 4 || C === 4 && p !== 3) throw Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + v);
1606
+ P.set(i, !(p > 2) || p);
919
1607
  }
920
- ),
921
- /* @__PURE__ */ i(
922
- "polygon",
923
- {
924
- points: "200,20 230,80 170,80",
925
- fill: "#2ecc71",
926
- stroke: "#27ae60",
927
- strokeWidth: "2"
1608
+ M(k ? o : o.prototype, f, x, d ? "#" + v : ct(v), p, s, k ? j = j || [] : a = a || [], L, k, d, z, p === 1, k && d ? E : u);
1609
+ }
1610
+ }
1611
+ return y(a), y(j), L;
1612
+ }(t, e, S, O);
1613
+ return r.length || U(t, O), { e: G, get c() {
1614
+ var o = [];
1615
+ return r.length && [U(M(t, [r], g, t.name, 5, O, o), O), B.bind(null, o, t)];
1616
+ } };
1617
+ }
1618
+ function ct(t) {
1619
+ var e = kr(t, "string");
1620
+ return typeof e == "symbol" ? e : e + "";
1621
+ }
1622
+ function kr(t, e) {
1623
+ if (typeof t != "object" || !t) return t;
1624
+ var r = t[Symbol.toPrimitive];
1625
+ if (r !== void 0) {
1626
+ var g = r.call(t, e);
1627
+ if (typeof g != "object") return g;
1628
+ throw new TypeError("@@toPrimitive must return a primitive value.");
1629
+ }
1630
+ return String(t);
1631
+ }
1632
+ function Ee(t, e, r) {
1633
+ typeof e == "symbol" && (e = (e = e.description) ? "[" + e + "]" : "");
1634
+ try {
1635
+ Object.defineProperty(t, "name", { configurable: !0, value: r ? r + " " + e : e });
1636
+ } catch {
1637
+ }
1638
+ return t;
1639
+ }
1640
+ function Cr(t) {
1641
+ if (Object(t) !== t) throw TypeError("right-hand side of 'in' should be an object, got " + (t !== null ? typeof t : "null"));
1642
+ return t;
1643
+ }
1644
+ const wr = ne("SimpleReactiveDemo");
1645
+ lt = [re({
1646
+ tagName: "simple-reactive-demo"
1647
+ })];
1648
+ let Tr;
1649
+ class Sr extends X {
1650
+ constructor() {
1651
+ super(), ye(this, "state", void 0), ye(this, "increment", () => {
1652
+ this.state.count++, this.state.message = `Clicked ${this.state.count} time${this.state.count === 1 ? "" : "s"}!`;
1653
+ }), ye(this, "reset", () => {
1654
+ this.state.count = 0, this.state.message = "Reset! Click again!";
1655
+ }), wr.info("SimpleReactiveDemo initialized");
1656
+ let e = this.reactive({
1657
+ count: 0,
1658
+ message: "Click the button!"
1659
+ });
1660
+ Object.defineProperty(this, "state", {
1661
+ get: () => e,
1662
+ set: (r) => {
1663
+ e = r !== null && typeof r < "u" && (Array.isArray(r) || typeof r == "object") ? this.reactive(r) : r, this.scheduleRerender();
1664
+ },
1665
+ enumerable: !0,
1666
+ configurable: !0
1667
+ });
1668
+ }
1669
+ render() {
1670
+ return /* @__PURE__ */ n("div", { style: "padding: 20px; border: 1px solid #ccc; border-radius: 8px; margin: 20px;" }, /* @__PURE__ */ n("h3", null, "📱 Simple Reactive Demo"), /* @__PURE__ */ n("p", null, this.state.message), /* @__PURE__ */ n("div", { style: "font-size: 24px; margin: 16px 0;" }, "Count: ", /* @__PURE__ */ n("strong", null, this.state.count)), /* @__PURE__ */ n("div", null, /* @__PURE__ */ n("button", { onClick: this.increment, style: "margin-right: 8px; padding: 8px 16px;", "data-wsx-key": "SimpleReactiveDemo-button-text-7-1" }, "+ Increment"), /* @__PURE__ */ n("button", { onClick: this.reset, style: "padding: 8px 16px;", "data-wsx-key": "SimpleReactiveDemo-button-text-7-3" }, "🔄 Reset")), /* @__PURE__ */ n("div", { style: "margin-top: 16px; font-size: 12px; color: #666;" }, "💡 State changes automatically trigger re-renders!"));
1671
+ }
1672
+ }
1673
+ st = Sr;
1674
+ [Tr, at] = xr(st, [], lt, 0, void 0, X).c;
1675
+ at();
1676
+ const _r = ".todo-list{padding:1.5rem;max-width:600px;margin:0 auto;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.todo-header{margin-bottom:1.5rem;text-align:center}.todo-header h2{margin:0 0 .5rem;color:#333;font-size:1.75rem}.subtitle{margin:0;color:#666;font-size:.9rem}.todo-input-section{display:flex;gap:.5rem;margin-bottom:1rem}.todo-input{flex:1;padding:.75rem;border:2px solid #ddd;border-radius:4px;font-size:1rem;transition:border-color .2s}.todo-input:focus{outline:none;border-color:#4caf50}.todo-filters{display:flex;gap:.5rem;margin-bottom:1rem;justify-content:center}.filter-btn{padding:.5rem 1rem;border:2px solid #ddd;background:#fff;border-radius:4px;cursor:pointer;transition:all .2s;font-size:.9rem}.filter-btn:hover{background:#f5f5f5}.filter-btn.active{background:#4caf50;color:#fff;border-color:#4caf50}.todo-list-container{min-height:200px;margin-bottom:1rem}.empty-state{text-align:center;padding:3rem 1rem;color:#999;font-style:italic}.todo-items{list-style:none;padding:0;margin:0}.todo-item{display:flex;align-items:center;gap:.75rem;padding:.75rem;margin-bottom:.5rem;background:#f9f9f9;border-radius:4px;transition:background .2s}.todo-item:hover{background:#f0f0f0}.todo-item.completed{opacity:.6}.todo-checkbox{width:1.25rem;height:1.25rem;cursor:pointer}.todo-text{flex:1;font-size:1rem}.todo-item.completed .todo-text{text-decoration:line-through;color:#999}.todo-actions{display:flex;gap:.5rem;justify-content:center;margin-top:1rem}.btn{padding:.5rem 1rem;border:none;border-radius:4px;cursor:pointer;font-size:.9rem;transition:all .2s}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:#4caf50;color:#fff}.btn-primary:hover:not(:disabled){background:#45a049}.btn-warning{background:#ff9800;color:#fff}.btn-warning:hover{background:#e68900}.btn-danger{background:#f44336;color:#fff}.btn-danger:hover{background:#da190b}.btn-sm{padding:.25rem .5rem;font-size:.8rem}.debug-info{margin-top:2rem;padding-top:1rem;border-top:1px solid #ddd}.debug-info summary{cursor:pointer;color:#666;font-size:.9rem}.debug-info pre{background:#f5f5f5;padding:1rem;border-radius:4px;overflow-x:auto;font-size:.85rem;margin-top:.5rem}";
1677
+ var ut;
1678
+ let dt, ht;
1679
+ function ee(t, e, r) {
1680
+ return (e = ft(e)) in t ? Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }) : t[e] = r, t;
1681
+ }
1682
+ function Er(t, e, r, g, S, A) {
1683
+ function T(o, l, u) {
1684
+ return function(s, a) {
1685
+ return u && u(s), o[l].call(s, a);
1686
+ };
1687
+ }
1688
+ function B(o, l) {
1689
+ for (var u = 0; u < o.length; u++) o[u].call(l);
1690
+ return l;
1691
+ }
1692
+ function _(o, l, u, s) {
1693
+ if (typeof o != "function" && (s || o !== void 0)) throw new TypeError(l + " must " + (u || "be") + " a function" + (s ? "" : " or undefined"));
1694
+ return o;
1695
+ }
1696
+ function M(o, l, u, s, a, j, L, E, P, y, b, f, p) {
1697
+ function v(c) {
1698
+ if (!p(c)) throw new TypeError("Attempted to access private element on non-instance");
1699
+ }
1700
+ var d, x = l[0], k = l[3], z = !E;
1701
+ if (!z) {
1702
+ u || Array.isArray(x) || (x = [x]);
1703
+ var i = {}, C = [], m = a === 3 ? "get" : a === 4 || f ? "set" : "value";
1704
+ y ? (b || f ? i = { get: ze(function() {
1705
+ return k(this);
1706
+ }, s, "get"), set: function(c) {
1707
+ l[4](this, c);
1708
+ } } : i[m] = k, b || ze(i[m], s, a === 2 ? "" : m)) : b || (i = Object.getOwnPropertyDescriptor(o, s));
1709
+ }
1710
+ for (var h = o, I = x.length - 1; I >= 0; I -= u ? 2 : 1) {
1711
+ var F = x[I], K = u ? x[I - 1] : void 0, J = {}, D = { kind: ["field", "accessor", "method", "getter", "setter", "class"][a], name: s, metadata: j, addInitializer: (function(c, w) {
1712
+ if (c.v) throw Error("attempted to call addInitializer after decoration was finished");
1713
+ _(w, "An initializer", "be", !0), L.push(w);
1714
+ }).bind(null, J) };
1715
+ try {
1716
+ if (z) (d = _(F.call(K, h, D), "class decorators", "return")) && (h = d);
1717
+ else {
1718
+ var $, R;
1719
+ D.static = P, D.private = y, y ? a === 2 ? $ = function(c) {
1720
+ return v(c), i.value;
1721
+ } : (a < 4 && ($ = T(i, "get", v)), a !== 3 && (R = T(i, "set", v))) : ($ = function(c) {
1722
+ return c[s];
1723
+ }, (a < 2 || a === 4) && (R = function(c, w) {
1724
+ c[s] = w;
1725
+ }));
1726
+ var W = D.access = { has: y ? p.bind() : function(c) {
1727
+ return s in c;
1728
+ } };
1729
+ if ($ && (W.get = $), R && (W.set = R), h = F.call(K, f ? { get: i.get, set: i.set } : i[m], D), f) {
1730
+ if (typeof h == "object" && h) (d = _(h.get, "accessor.get")) && (i.get = d), (d = _(h.set, "accessor.set")) && (i.set = d), (d = _(h.init, "accessor.init")) && C.push(d);
1731
+ else if (h !== void 0) throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0");
1732
+ } else _(h, (b ? "field" : "method") + " decorators", "return") && (b ? C.push(h) : i[m] = h);
928
1733
  }
929
- ),
930
- /* @__PURE__ */ i(
931
- "line",
932
- {
933
- x1: "250",
934
- y1: "20",
935
- x2: "290",
936
- y2: "80",
937
- stroke: "#9b59b6",
938
- strokeWidth: "3",
939
- strokeLinecap: "round"
1734
+ } finally {
1735
+ J.v = !0;
1736
+ }
1737
+ }
1738
+ return (b || f) && E.push(function(c, w) {
1739
+ for (var N = C.length - 1; N >= 0; N--) w = C[N].call(c, w);
1740
+ return w;
1741
+ }), b || z || (y ? f ? E.push(T(i, "get"), T(i, "set")) : E.push(a === 2 ? i[m] : T.call.bind(i[m])) : Object.defineProperty(o, s, i)), h;
1742
+ }
1743
+ function U(o, l) {
1744
+ return Object.defineProperty(o, Symbol.metadata || Symbol.for("Symbol.metadata"), { configurable: !0, enumerable: !0, value: l });
1745
+ }
1746
+ if (arguments.length >= 6) var H = A[Symbol.metadata || Symbol.for("Symbol.metadata")];
1747
+ var O = Object.create(H ?? null), G = function(o, l, u, s) {
1748
+ var a, j, L = [], E = function(m) {
1749
+ return Ar(m) === o;
1750
+ }, P = /* @__PURE__ */ new Map();
1751
+ function y(m) {
1752
+ m && L.push(B.bind(null, m));
1753
+ }
1754
+ for (var b = 0; b < l.length; b++) {
1755
+ var f = l[b];
1756
+ if (Array.isArray(f)) {
1757
+ var p = f[1], v = f[2], d = f.length > 3, x = 16 & p, k = !!(8 & p), z = (p &= 7) == 0, i = v + "/" + k;
1758
+ if (!z && !d) {
1759
+ var C = P.get(i);
1760
+ if (C === !0 || C === 3 && p !== 4 || C === 4 && p !== 3) throw Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + v);
1761
+ P.set(i, !(p > 2) || p);
940
1762
  }
941
- )
942
- )), /* @__PURE__ */ i("div", { style: "margin-bottom: 20px;" }, /* @__PURE__ */ i("h4", { style: "margin: 10px 0; color: #666;" }, "Gradients & Effects"), /* @__PURE__ */ i(
943
- "svg",
944
- {
945
- width: "300",
946
- height: "100",
947
- style: "border: 1px solid #ddd; background: white;"
948
- },
949
- /* @__PURE__ */ i("defs", null, /* @__PURE__ */ i("linearGradient", { id: "blueGradient", x1: "0%", y1: "0%", x2: "100%", y2: "0%" }, /* @__PURE__ */ i("stop", { offset: "0%", stopColor: "#3498db" }), /* @__PURE__ */ i("stop", { offset: "100%", stopColor: "#9b59b6" })), /* @__PURE__ */ i("radialGradient", { id: "redGradient", cx: "50%", cy: "50%", r: "50%" }, /* @__PURE__ */ i("stop", { offset: "0%", stopColor: "#e74c3c" }), /* @__PURE__ */ i("stop", { offset: "100%", stopColor: "#c0392b" }))),
950
- /* @__PURE__ */ i(
951
- "rect",
952
- {
953
- x: "20",
954
- y: "20",
955
- width: "120",
956
- height: "60",
957
- fill: "url(#blueGradient)",
958
- rx: "10"
1763
+ M(k ? o : o.prototype, f, x, d ? "#" + v : ft(v), p, s, k ? j = j || [] : a = a || [], L, k, d, z, p === 1, k && d ? E : u);
1764
+ }
1765
+ }
1766
+ return y(a), y(j), L;
1767
+ }(t, e, S, O);
1768
+ return r.length || U(t, O), { e: G, get c() {
1769
+ var o = [];
1770
+ return r.length && [U(M(t, [r], g, t.name, 5, O, o), O), B.bind(null, o, t)];
1771
+ } };
1772
+ }
1773
+ function ft(t) {
1774
+ var e = zr(t, "string");
1775
+ return typeof e == "symbol" ? e : e + "";
1776
+ }
1777
+ function zr(t, e) {
1778
+ if (typeof t != "object" || !t) return t;
1779
+ var r = t[Symbol.toPrimitive];
1780
+ if (r !== void 0) {
1781
+ var g = r.call(t, e);
1782
+ if (typeof g != "object") return g;
1783
+ throw new TypeError("@@toPrimitive must return a primitive value.");
1784
+ }
1785
+ return String(t);
1786
+ }
1787
+ function ze(t, e, r) {
1788
+ typeof e == "symbol" && (e = (e = e.description) ? "[" + e + "]" : "");
1789
+ try {
1790
+ Object.defineProperty(t, "name", { configurable: !0, value: r ? r + " " + e : e });
1791
+ } catch {
1792
+ }
1793
+ return t;
1794
+ }
1795
+ function Ar(t) {
1796
+ if (Object(t) !== t) throw TypeError("right-hand side of 'in' should be an object, got " + (t !== null ? typeof t : "null"));
1797
+ return t;
1798
+ }
1799
+ const se = ne("TodoList");
1800
+ ht = [re({
1801
+ tagName: "todo-list"
1802
+ })];
1803
+ let jr;
1804
+ class Lr extends X {
1805
+ constructor() {
1806
+ super(), ee(this, "_autoStyles", _r), ee(this, "todos", void 0), ee(this, "_newTodoText", ""), ee(this, "filter", void 0), ee(this, "nextId", 1), ee(this, "handleInputChange", (S) => {
1807
+ var B;
1808
+ const A = S.target;
1809
+ this._newTodoText = A.value;
1810
+ const T = (B = this.shadowRoot) == null ? void 0 : B.querySelector(".todo-input-section .btn-primary");
1811
+ T && (T.disabled = !this._newTodoText.trim());
1812
+ }), ee(this, "handleKeyDown", (S) => {
1813
+ S.key === "Enter" && this._newTodoText.trim() && this.addTodo();
1814
+ }), ee(this, "addTodo", () => {
1815
+ var T, B;
1816
+ const S = (T = this.shadowRoot) == null ? void 0 : T.querySelector(".todo-input"), A = (S == null ? void 0 : S.value.trim()) || this._newTodoText.trim();
1817
+ if (A) {
1818
+ if (this.todos = [...this.todos, {
1819
+ id: this.nextId++,
1820
+ text: A,
1821
+ completed: !1,
1822
+ createdAt: Date.now()
1823
+ }], this._newTodoText = "", S) {
1824
+ S.value = "";
1825
+ const _ = (B = this.shadowRoot) == null ? void 0 : B.querySelector(".todo-input-section .btn-primary");
1826
+ _ && (_.disabled = !0);
959
1827
  }
960
- ),
961
- /* @__PURE__ */ i("circle", { cx: "200", cy: "50", r: "35", fill: "url(#redGradient)" })
962
- )), /* @__PURE__ */ i("div", { style: "margin-bottom: 20px;" }, /* @__PURE__ */ i("h4", { style: "margin: 10px 0; color: #666;" }, "Animation"), /* @__PURE__ */ i(
963
- "svg",
964
- {
965
- width: "300",
966
- height: "100",
967
- style: "border: 1px solid #ddd; background: white;"
1828
+ se.debug("Todo added", {
1829
+ count: this.todos.length
1830
+ });
1831
+ }
1832
+ }), ee(this, "removeTodo", (S) => {
1833
+ this.todos = this.todos.filter((A) => A.id !== S), se.debug("Todo removed", {
1834
+ id: S,
1835
+ remaining: this.todos.length
1836
+ });
1837
+ }), ee(this, "toggleTodo", (S) => {
1838
+ this.todos = this.todos.map((A) => A.id === S ? {
1839
+ ...A,
1840
+ completed: !A.completed
1841
+ } : A), se.debug("Todo toggled", {
1842
+ id: S
1843
+ });
1844
+ }), ee(this, "clearCompleted", () => {
1845
+ this.todos = this.todos.filter((S) => !S.completed), se.debug("Completed todos cleared");
1846
+ }), ee(this, "clearAll", () => {
1847
+ this.todos = [], se.debug("All todos cleared");
1848
+ }), se.info("TodoList initialized");
1849
+ let e = this.reactive([]);
1850
+ Object.defineProperty(this, "todos", {
1851
+ get: () => e,
1852
+ set: (S) => {
1853
+ e = S !== null && typeof S < "u" && (Array.isArray(S) || typeof S == "object") ? this.reactive(S) : S, this.scheduleRerender();
968
1854
  },
969
- /* @__PURE__ */ i("g", { transform: `translate(150, 50) rotate(${this.rotationAngle})` }, /* @__PURE__ */ i(
970
- "polygon",
971
- {
972
- points: "-30,0 0,-40 30,0 0,40",
973
- fill: "#f39c12",
974
- stroke: "#e67e22",
975
- strokeWidth: "2"
1855
+ enumerable: !0,
1856
+ configurable: !0
1857
+ });
1858
+ const [r, g] = this.useState("filter", "all");
1859
+ Object.defineProperty(this, "filter", {
1860
+ get: r,
1861
+ set: g,
1862
+ enumerable: !0,
1863
+ configurable: !0
1864
+ });
1865
+ }
1866
+ render() {
1867
+ const e = this.getFilteredTodos();
1868
+ return /* @__PURE__ */ n("div", { class: "todo-list" }, /* @__PURE__ */ n("div", { class: "todo-header" }, /* @__PURE__ */ n("h2", null, "📝 Todo List (WebComponent)"), /* @__PURE__ */ n("p", { class: "subtitle" }, this.todos.length, " total, ", this.getActiveCount(), " active,", " ", this.getCompletedCount(), " completed")), /* @__PURE__ */ n("div", { class: "todo-input-section" }, /* @__PURE__ */ n("input", { type: "text", class: "todo-input", placeholder: "Add a new todo...", value: this._newTodoText, onInput: this.handleInputChange, onKeyDown: this.handleKeyDown, "data-wsx-key": "TodoList-input-text-3-1" }), /* @__PURE__ */ n("button", { class: "btn btn-primary", onClick: this.addTodo, disabled: !this._newTodoText.trim(), "data-wsx-key": "TodoList-button-text-3-3" }, "Add")), /* @__PURE__ */ n("div", { class: "todo-filters" }, /* @__PURE__ */ n("button", { class: `filter-btn ${this.filter === "all" ? "active" : ""}`, onClick: () => this.filter = "all", "data-wsx-key": "TodoList-button-text-5-1" }, "All (", this.todos.length, ")"), /* @__PURE__ */ n("button", { class: `filter-btn ${this.filter === "active" ? "active" : ""}`, onClick: () => this.filter = "active", "data-wsx-key": "TodoList-button-text-5-3" }, "Active (", this.getActiveCount(), ")"), /* @__PURE__ */ n("button", { class: `filter-btn ${this.filter === "completed" ? "active" : ""}`, onClick: () => this.filter = "completed", "data-wsx-key": "TodoList-button-text-5-5" }, "Completed (", this.getCompletedCount(), ")")), /* @__PURE__ */ n("div", { class: "todo-list-container" }, e.length === 0 ? /* @__PURE__ */ n("div", { class: "empty-state" }, this.filter === "all" ? "No todos yet. Add one above! 🎉" : `No ${this.filter} todos.`) : /* @__PURE__ */ n("ul", { class: "todo-items" }, e.map((r) => /* @__PURE__ */ n("li", { key: r.id, class: `todo-item ${r.completed ? "completed" : ""}` }, /* @__PURE__ */ n("input", { type: "checkbox", checked: r.completed, onChange: () => this.toggleTodo(r.id), class: "todo-checkbox", "data-wsx-key": "TodoList-input-checkbox-7-1" }), /* @__PURE__ */ n("span", { class: "todo-text" }, r.text), /* @__PURE__ */ n("button", { class: "btn btn-sm btn-danger", onClick: () => this.removeTodo(r.id), "data-wsx-key": "TodoList-button-text-7-5" }, "Delete"))))), this.todos.length > 0 && /* @__PURE__ */ n("div", { class: "todo-actions" }, /* @__PURE__ */ n("button", { class: "btn btn-warning", onClick: this.clearCompleted, "data-wsx-key": "TodoList-button-text-1" }, "Clear Completed"), /* @__PURE__ */ n("button", { class: "btn btn-danger", onClick: this.clearAll, "data-wsx-key": "TodoList-button-text-3" }, "Clear All")), /* @__PURE__ */ n("div", { class: "debug-info" }, /* @__PURE__ */ n("details", null, /* @__PURE__ */ n("summary", null, "Debug Info"), /* @__PURE__ */ n("pre", null, JSON.stringify({
1869
+ todosCount: this.todos.length,
1870
+ filter: this.filter,
1871
+ newTodoText: this._newTodoText,
1872
+ todos: this.todos
1873
+ }, null, 2)))));
1874
+ }
1875
+ getFilteredTodos() {
1876
+ switch (this.filter) {
1877
+ case "active":
1878
+ return this.todos.filter((e) => !e.completed);
1879
+ case "completed":
1880
+ return this.todos.filter((e) => e.completed);
1881
+ default:
1882
+ return this.todos;
1883
+ }
1884
+ }
1885
+ getActiveCount() {
1886
+ return this.todos.filter((e) => !e.completed).length;
1887
+ }
1888
+ getCompletedCount() {
1889
+ return this.todos.filter((e) => e.completed).length;
1890
+ }
1891
+ onConnected() {
1892
+ se.info("TodoList connected to DOM");
1893
+ }
1894
+ onDisconnected() {
1895
+ se.info("TodoList disconnected from DOM");
1896
+ }
1897
+ }
1898
+ ut = Lr;
1899
+ [jr, dt] = Er(ut, [], ht, 0, void 0, X).c;
1900
+ dt();
1901
+ const Dr = ".todo-list-light{padding:1.5rem;max-width:600px;margin:0 auto;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.todo-header{margin-bottom:1.5rem;text-align:center}.todo-header h2{margin:0 0 .5rem;color:#2196f3;font-size:1.75rem}.subtitle{margin:0;color:#666;font-size:.9rem}.todo-input-section{display:flex;gap:.5rem;margin-bottom:1rem}.todo-input{flex:1;padding:.75rem;border:2px solid #ddd;border-radius:4px;font-size:1rem;transition:border-color .2s}.todo-input:focus{outline:none;border-color:#2196f3}.todo-filters{display:flex;gap:.5rem;margin-bottom:1rem;justify-content:center}.filter-btn{padding:.5rem 1rem;border:2px solid #ddd;background:#fff;border-radius:4px;cursor:pointer;transition:all .2s;font-size:.9rem}.filter-btn:hover{background:#f5f5f5}.filter-btn.active{background:#2196f3;color:#fff;border-color:#2196f3}.todo-list-container{min-height:200px;margin-bottom:1rem}.empty-state{text-align:center;padding:3rem 1rem;color:#999;font-style:italic}.todo-items{list-style:none;padding:0;margin:0}.todo-item{display:flex;align-items:center;gap:.75rem;padding:.75rem;margin-bottom:.5rem;background:#f0f7ff;border-radius:4px;transition:background .2s}.todo-item:hover{background:#e3f2fd}.todo-item.completed{opacity:.6}.todo-checkbox{width:1.25rem;height:1.25rem;cursor:pointer}.todo-text{flex:1;font-size:1rem}.todo-item.completed .todo-text{text-decoration:line-through;color:#999}.todo-actions{display:flex;gap:.5rem;justify-content:center;margin-top:1rem}.btn{padding:.5rem 1rem;border:none;border-radius:4px;cursor:pointer;font-size:.9rem;transition:all .2s}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:#2196f3;color:#fff}.btn-primary:hover:not(:disabled){background:#1976d2}.btn-warning{background:#ff9800;color:#fff}.btn-warning:hover{background:#e68900}.btn-danger{background:#f44336;color:#fff}.btn-danger:hover{background:#da190b}.btn-sm{padding:.25rem .5rem;font-size:.8rem}.debug-info{margin-top:2rem;padding-top:1rem;border-top:1px solid #ddd}.debug-info summary{cursor:pointer;color:#666;font-size:.9rem}.debug-info pre{background:#f5f5f5;padding:1rem;border-radius:4px;overflow-x:auto;font-size:.85rem;margin-top:.5rem}";
1902
+ var pt;
1903
+ let mt, gt;
1904
+ function te(t, e, r) {
1905
+ return (e = bt(e)) in t ? Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }) : t[e] = r, t;
1906
+ }
1907
+ function $r(t, e, r, g, S, A) {
1908
+ function T(o, l, u) {
1909
+ return function(s, a) {
1910
+ return u && u(s), o[l].call(s, a);
1911
+ };
1912
+ }
1913
+ function B(o, l) {
1914
+ for (var u = 0; u < o.length; u++) o[u].call(l);
1915
+ return l;
1916
+ }
1917
+ function _(o, l, u, s) {
1918
+ if (typeof o != "function" && (s || o !== void 0)) throw new TypeError(l + " must " + (u || "be") + " a function" + (s ? "" : " or undefined"));
1919
+ return o;
1920
+ }
1921
+ function M(o, l, u, s, a, j, L, E, P, y, b, f, p) {
1922
+ function v(c) {
1923
+ if (!p(c)) throw new TypeError("Attempted to access private element on non-instance");
1924
+ }
1925
+ var d, x = l[0], k = l[3], z = !E;
1926
+ if (!z) {
1927
+ u || Array.isArray(x) || (x = [x]);
1928
+ var i = {}, C = [], m = a === 3 ? "get" : a === 4 || f ? "set" : "value";
1929
+ y ? (b || f ? i = { get: Ae(function() {
1930
+ return k(this);
1931
+ }, s, "get"), set: function(c) {
1932
+ l[4](this, c);
1933
+ } } : i[m] = k, b || Ae(i[m], s, a === 2 ? "" : m)) : b || (i = Object.getOwnPropertyDescriptor(o, s));
1934
+ }
1935
+ for (var h = o, I = x.length - 1; I >= 0; I -= u ? 2 : 1) {
1936
+ var F = x[I], K = u ? x[I - 1] : void 0, J = {}, D = { kind: ["field", "accessor", "method", "getter", "setter", "class"][a], name: s, metadata: j, addInitializer: (function(c, w) {
1937
+ if (c.v) throw Error("attempted to call addInitializer after decoration was finished");
1938
+ _(w, "An initializer", "be", !0), L.push(w);
1939
+ }).bind(null, J) };
1940
+ try {
1941
+ if (z) (d = _(F.call(K, h, D), "class decorators", "return")) && (h = d);
1942
+ else {
1943
+ var $, R;
1944
+ D.static = P, D.private = y, y ? a === 2 ? $ = function(c) {
1945
+ return v(c), i.value;
1946
+ } : (a < 4 && ($ = T(i, "get", v)), a !== 3 && (R = T(i, "set", v))) : ($ = function(c) {
1947
+ return c[s];
1948
+ }, (a < 2 || a === 4) && (R = function(c, w) {
1949
+ c[s] = w;
1950
+ }));
1951
+ var W = D.access = { has: y ? p.bind() : function(c) {
1952
+ return s in c;
1953
+ } };
1954
+ if ($ && (W.get = $), R && (W.set = R), h = F.call(K, f ? { get: i.get, set: i.set } : i[m], D), f) {
1955
+ if (typeof h == "object" && h) (d = _(h.get, "accessor.get")) && (i.get = d), (d = _(h.set, "accessor.set")) && (i.set = d), (d = _(h.init, "accessor.init")) && C.push(d);
1956
+ else if (h !== void 0) throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0");
1957
+ } else _(h, (b ? "field" : "method") + " decorators", "return") && (b ? C.push(h) : i[m] = h);
976
1958
  }
977
- ), /* @__PURE__ */ i("circle", { cx: "0", cy: "0", r: "8", fill: "#2c3e50" }))
978
- ), /* @__PURE__ */ i("div", { style: "margin-top: 10px;" }, /* @__PURE__ */ i(
979
- "button",
980
- {
981
- onClick: this.startAnimation,
982
- style: "margin-right: 10px; padding: 5px 10px;"
983
- },
984
- "Start Animation"
985
- ), /* @__PURE__ */ i("button", { onClick: this.stopAnimation, style: "padding: 5px 10px;" }, "Stop Animation"))), /* @__PURE__ */ i("div", { style: "margin-bottom: 20px;" }, /* @__PURE__ */ i("h4", { style: "margin: 10px 0; color: #666;" }, "Interactive Chart"), this.renderChart()), /* @__PURE__ */ i("div", null, /* @__PURE__ */ i("h4", { style: "margin: 10px 0; color: #666;" }, "Icon Components"), /* @__PURE__ */ i("div", { style: "display: flex; gap: 15px; align-items: center;" }, /* @__PURE__ */ i("svg-icon", { name: "star", size: "32", color: "#f39c12" }), /* @__PURE__ */ i("svg-icon", { name: "heart", size: "32", color: "#e74c3c" }), /* @__PURE__ */ i("svg-icon", { name: "check", size: "32", color: "#27ae60" }), /* @__PURE__ */ i("svg-icon", { name: "github", size: "32", color: "#333" }), /* @__PURE__ */ i("svg-icon", { name: "play", size: "32", color: "#3498db" }), /* @__PURE__ */ i("svg-icon", { name: "settings", size: "32", color: "#9b59b6" }))));
1959
+ } finally {
1960
+ J.v = !0;
1961
+ }
1962
+ }
1963
+ return (b || f) && E.push(function(c, w) {
1964
+ for (var N = C.length - 1; N >= 0; N--) w = C[N].call(c, w);
1965
+ return w;
1966
+ }), b || z || (y ? f ? E.push(T(i, "get"), T(i, "set")) : E.push(a === 2 ? i[m] : T.call.bind(i[m])) : Object.defineProperty(o, s, i)), h;
1967
+ }
1968
+ function U(o, l) {
1969
+ return Object.defineProperty(o, Symbol.metadata || Symbol.for("Symbol.metadata"), { configurable: !0, enumerable: !0, value: l });
1970
+ }
1971
+ if (arguments.length >= 6) var H = A[Symbol.metadata || Symbol.for("Symbol.metadata")];
1972
+ var O = Object.create(H ?? null), G = function(o, l, u, s) {
1973
+ var a, j, L = [], E = function(m) {
1974
+ return Pr(m) === o;
1975
+ }, P = /* @__PURE__ */ new Map();
1976
+ function y(m) {
1977
+ m && L.push(B.bind(null, m));
1978
+ }
1979
+ for (var b = 0; b < l.length; b++) {
1980
+ var f = l[b];
1981
+ if (Array.isArray(f)) {
1982
+ var p = f[1], v = f[2], d = f.length > 3, x = 16 & p, k = !!(8 & p), z = (p &= 7) == 0, i = v + "/" + k;
1983
+ if (!z && !d) {
1984
+ var C = P.get(i);
1985
+ if (C === !0 || C === 3 && p !== 4 || C === 4 && p !== 3) throw Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + v);
1986
+ P.set(i, !(p > 2) || p);
1987
+ }
1988
+ M(k ? o : o.prototype, f, x, d ? "#" + v : bt(v), p, s, k ? j = j || [] : a = a || [], L, k, d, z, p === 1, k && d ? E : u);
1989
+ }
1990
+ }
1991
+ return y(a), y(j), L;
1992
+ }(t, e, S, O);
1993
+ return r.length || U(t, O), { e: G, get c() {
1994
+ var o = [];
1995
+ return r.length && [U(M(t, [r], g, t.name, 5, O, o), O), B.bind(null, o, t)];
1996
+ } };
1997
+ }
1998
+ function bt(t) {
1999
+ var e = Or(t, "string");
2000
+ return typeof e == "symbol" ? e : e + "";
2001
+ }
2002
+ function Or(t, e) {
2003
+ if (typeof t != "object" || !t) return t;
2004
+ var r = t[Symbol.toPrimitive];
2005
+ if (r !== void 0) {
2006
+ var g = r.call(t, e);
2007
+ if (typeof g != "object") return g;
2008
+ throw new TypeError("@@toPrimitive must return a primitive value.");
2009
+ }
2010
+ return String(t);
2011
+ }
2012
+ function Ae(t, e, r) {
2013
+ typeof e == "symbol" && (e = (e = e.description) ? "[" + e + "]" : "");
2014
+ try {
2015
+ Object.defineProperty(t, "name", { configurable: !0, value: r ? r + " " + e : e });
2016
+ } catch {
986
2017
  }
987
- renderChart() {
988
- const t = [30, 80, 45, 60, 20, 90, 55], o = Math.max(...t), s = 30, r = 40, n = 120, a = t.length * r + 40;
989
- return /* @__PURE__ */ i(
990
- "svg",
991
- {
992
- width: a,
993
- height: n + 40,
994
- style: "border: 1px solid #ddd; background: white;"
2018
+ return t;
2019
+ }
2020
+ function Pr(t) {
2021
+ if (Object(t) !== t) throw TypeError("right-hand side of 'in' should be an object, got " + (t !== null ? typeof t : "null"));
2022
+ return t;
2023
+ }
2024
+ const ae = ne("TodoListLight");
2025
+ gt = [re({
2026
+ tagName: "todo-list-light"
2027
+ })];
2028
+ let Ir;
2029
+ class Rr extends he {
2030
+ constructor() {
2031
+ super(), te(this, "_autoStyles", Dr), te(this, "todos", void 0), te(this, "_newTodoText", ""), te(this, "filter", void 0), te(this, "nextId", 1), te(this, "handleInputChange", (S) => {
2032
+ const A = S.target;
2033
+ this._newTodoText = A.value;
2034
+ const T = this.querySelector(".todo-input-section .btn-primary");
2035
+ T && (T.disabled = !this._newTodoText.trim());
2036
+ }), te(this, "handleKeyDown", (S) => {
2037
+ S.key === "Enter" && this._newTodoText.trim() && this.addTodo();
2038
+ }), te(this, "addTodo", () => {
2039
+ const S = this.querySelector(".todo-input"), A = (S == null ? void 0 : S.value.trim()) || this._newTodoText.trim();
2040
+ if (A) {
2041
+ if (this.todos = [...this.todos, {
2042
+ id: this.nextId++,
2043
+ text: A,
2044
+ completed: !1,
2045
+ createdAt: Date.now()
2046
+ }], this._newTodoText = "", S) {
2047
+ S.value = "";
2048
+ const T = this.querySelector(".todo-input-section .btn-primary");
2049
+ T && (T.disabled = !0);
2050
+ }
2051
+ ae.debug("Todo added", {
2052
+ count: this.todos.length
2053
+ });
2054
+ }
2055
+ }), te(this, "removeTodo", (S) => {
2056
+ this.todos = this.todos.filter((A) => A.id !== S), ae.debug("Todo removed", {
2057
+ id: S,
2058
+ remaining: this.todos.length
2059
+ });
2060
+ }), te(this, "toggleTodo", (S) => {
2061
+ this.todos = this.todos.map((A) => A.id === S ? {
2062
+ ...A,
2063
+ completed: !A.completed
2064
+ } : A), ae.debug("Todo toggled", {
2065
+ id: S
2066
+ });
2067
+ }), te(this, "clearCompleted", () => {
2068
+ this.todos = this.todos.filter((S) => !S.completed), ae.debug("Completed todos cleared");
2069
+ }), te(this, "clearAll", () => {
2070
+ this.todos = [], ae.debug("All todos cleared");
2071
+ }), ae.info("TodoListLight initialized");
2072
+ let e = this.reactive([]);
2073
+ Object.defineProperty(this, "todos", {
2074
+ get: () => e,
2075
+ set: (S) => {
2076
+ e = S !== null && typeof S < "u" && (Array.isArray(S) || typeof S == "object") ? this.reactive(S) : S, this.scheduleRerender();
995
2077
  },
996
- t.map((h, u) => {
997
- const l = h / o * n, p = u * r + 20, m = n - l + 20;
998
- return /* @__PURE__ */ i("g", { key: u }, /* @__PURE__ */ i(
999
- "rect",
1000
- {
1001
- x: p,
1002
- y: m,
1003
- width: s,
1004
- height: l,
1005
- fill: "#3498db",
1006
- stroke: "#2980b9",
1007
- strokeWidth: "1",
1008
- onMouseEnter: (g) => this.showTooltip(g, h),
1009
- onMouseLeave: this.hideTooltip,
1010
- style: "cursor: pointer; transition: fill 0.2s;"
1011
- }
1012
- ), /* @__PURE__ */ i(
1013
- "text",
1014
- {
1015
- x: p + s / 2,
1016
- y: n + 35,
1017
- textAnchor: "middle",
1018
- fontSize: "12",
1019
- fill: "#666"
1020
- },
1021
- u + 1
1022
- ));
1023
- })
1024
- );
2078
+ enumerable: !0,
2079
+ configurable: !0
2080
+ });
2081
+ const [r, g] = this.useState("filter", "all");
2082
+ Object.defineProperty(this, "filter", {
2083
+ get: r,
2084
+ set: g,
2085
+ enumerable: !0,
2086
+ configurable: !0
2087
+ });
2088
+ }
2089
+ render() {
2090
+ const e = this.getFilteredTodos();
2091
+ return /* @__PURE__ */ n("div", { class: "todo-list-light" }, /* @__PURE__ */ n("div", { class: "todo-header" }, /* @__PURE__ */ n("h2", null, "📝 Todo List (LightComponent)"), /* @__PURE__ */ n("p", { class: "subtitle" }, this.todos.length, " total, ", this.getActiveCount(), " active,", " ", this.getCompletedCount(), " completed")), /* @__PURE__ */ n("div", { class: "todo-input-section" }, /* @__PURE__ */ n("input", { type: "text", class: "todo-input", placeholder: "Add a new todo...", value: this._newTodoText, onInput: this.handleInputChange, onKeyDown: this.handleKeyDown, "data-wsx-key": "TodoListLight-input-text-3-1" }), /* @__PURE__ */ n("button", { class: "btn btn-primary", onClick: this.addTodo, disabled: !this._newTodoText.trim(), "data-wsx-key": "TodoListLight-button-text-3-3" }, "Add")), /* @__PURE__ */ n("div", { class: "todo-filters" }, /* @__PURE__ */ n("button", { class: `filter-btn ${this.filter === "all" ? "active" : ""}`, onClick: () => this.filter = "all", "data-wsx-key": "TodoListLight-button-text-5-1" }, "All (", this.todos.length, ")"), /* @__PURE__ */ n("button", { class: `filter-btn ${this.filter === "active" ? "active" : ""}`, onClick: () => this.filter = "active", "data-wsx-key": "TodoListLight-button-text-5-3" }, "Active (", this.getActiveCount(), ")"), /* @__PURE__ */ n("button", { class: `filter-btn ${this.filter === "completed" ? "active" : ""}`, onClick: () => this.filter = "completed", "data-wsx-key": "TodoListLight-button-text-5-5" }, "Completed (", this.getCompletedCount(), ")")), /* @__PURE__ */ n("div", { class: "todo-list-container" }, e.length === 0 ? /* @__PURE__ */ n("div", { class: "empty-state" }, this.filter === "all" ? "No todos yet. Add one above! 🎉" : `No ${this.filter} todos.`) : /* @__PURE__ */ n("ul", { class: "todo-items" }, e.map((r) => /* @__PURE__ */ n("li", { key: r.id, class: `todo-item ${r.completed ? "completed" : ""}` }, /* @__PURE__ */ n("input", { type: "checkbox", checked: r.completed, onChange: () => this.toggleTodo(r.id), class: "todo-checkbox", "data-wsx-key": "TodoListLight-input-checkbox-7-1" }), /* @__PURE__ */ n("span", { class: "todo-text" }, r.text), /* @__PURE__ */ n("button", { class: "btn btn-sm btn-danger", onClick: () => this.removeTodo(r.id), "data-wsx-key": "TodoListLight-button-text-7-5" }, "Delete"))))), this.todos.length > 0 && /* @__PURE__ */ n("div", { class: "todo-actions" }, /* @__PURE__ */ n("button", { class: "btn btn-warning", onClick: this.clearCompleted, "data-wsx-key": "TodoListLight-button-text-1" }, "Clear Completed"), /* @__PURE__ */ n("button", { class: "btn btn-danger", onClick: this.clearAll, "data-wsx-key": "TodoListLight-button-text-3" }, "Clear All")), /* @__PURE__ */ n("div", { class: "debug-info" }, /* @__PURE__ */ n("details", null, /* @__PURE__ */ n("summary", null, "Debug Info"), /* @__PURE__ */ n("pre", null, JSON.stringify({
2092
+ todosCount: this.todos.length,
2093
+ filter: this.filter,
2094
+ newTodoText: this._newTodoText,
2095
+ todos: this.todos
2096
+ }, null, 2)))));
2097
+ }
2098
+ getFilteredTodos() {
2099
+ switch (this.filter) {
2100
+ case "active":
2101
+ return this.todos.filter((e) => !e.completed);
2102
+ case "completed":
2103
+ return this.todos.filter((e) => e.completed);
2104
+ default:
2105
+ return this.todos;
2106
+ }
2107
+ }
2108
+ getActiveCount() {
2109
+ return this.todos.filter((e) => !e.completed).length;
2110
+ }
2111
+ getCompletedCount() {
2112
+ return this.todos.filter((e) => e.completed).length;
1025
2113
  }
1026
2114
  onConnected() {
1027
- $.info("SvgDemo connected to DOM");
2115
+ ae.info("TodoListLight connected to DOM");
1028
2116
  }
1029
2117
  onDisconnected() {
1030
- $.info("SvgDemo disconnected from DOM"), this.stopAnimation();
1031
- }
1032
- }
1033
- V = bo(Gt);
1034
- M = _o(V, 0, "SvgDemo", Wt, M);
1035
- xo(V, 1, M);
1036
- var yo = Object.create, Z = Object.defineProperty, ko = Object.getOwnPropertyDescriptor, Yt = (e, t) => (t = Symbol[e]) ? t : Symbol.for("Symbol." + e), Xt = (e) => {
1037
- throw TypeError(e);
1038
- }, qt = (e, t, o) => t in e ? Z(e, t, { enumerable: !0, configurable: !0, writable: !0, value: o }) : e[t] = o, Co = (e, t) => Z(e, "name", { value: t, configurable: !0 }), wo = (e) => [, , , yo((e == null ? void 0 : e[Yt("metadata")]) ?? null)], $o = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"], Jt = (e) => e !== void 0 && typeof e != "function" ? Xt("Function expected") : e, So = (e, t, o, s, r) => ({ kind: $o[e], name: t, metadata: s, addInitializer: (n) => o._ ? Xt("Already initialized") : r.push(Jt(n || null)) }), zo = (e, t) => qt(t, Yt("metadata"), e[3]), Ao = (e, t, o, s) => {
1039
- for (var r = 0, n = e[t >> 1], a = n && n.length; r < a; r++) n[r].call(o);
1040
- return s;
1041
- }, Eo = (e, t, o, s, r, n) => {
1042
- var a, h, u, l = t & 7, p = !1, m = 0, g = e[m] || (e[m] = []), c = l && (r = r.prototype, l < 5 && (l > 3 || !p) && ko(r, o));
1043
- Co(r, o);
1044
- for (var d = s.length - 1; d >= 0; d--)
1045
- u = So(l, o, h = {}, e[3], g), a = (0, s[d])(r, u), h._ = 1, Jt(a) && (r = a);
1046
- return zo(e, r), c && Z(r, o, c), p ? l ^ 4 ? n : c : r;
1047
- }, P = (e, t, o) => qt(e, typeof t != "symbol" ? t + "" : t, o), Kt, tt, Ut;
1048
- const Po = C("SimpleReactiveDemo");
1049
- Kt = [x({ tagName: "simple-reactive-demo" })];
1050
- class R extends (Ut = ot) {
2118
+ ae.info("TodoListLight disconnected from DOM");
2119
+ }
2120
+ }
2121
+ pt = Rr;
2122
+ [Ir, mt] = $r(pt, [], gt, 0, void 0, he).c;
2123
+ mt();
2124
+ const Br = ".user-profile{padding:1.5rem;max-width:800px;margin:0 auto;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.profile-header{margin-bottom:2rem;text-align:center}.profile-header h2{margin:0 0 .5rem;color:#333;font-size:1.75rem}.profile-header .subtitle{color:#666;font-size:.9rem;margin:0}.profile-content{display:flex;flex-direction:column;gap:2rem}.profile-section{background:#f8f9fa;padding:1.5rem;border-radius:8px;border:1px solid #e0e0e0}.profile-section h3{margin:0 0 1rem;color:#333;font-size:1.25rem;border-bottom:2px solid #007bff;padding-bottom:.5rem}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.5rem;color:#555;font-weight:500;font-size:.9rem}.form-group input[type=checkbox]{margin-right:.5rem}.input-field{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:1rem;transition:border-color .2s;box-sizing:border-box}.input-field:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 3px #007bff1a}.profile-actions{display:flex;gap:1rem;flex-wrap:wrap}.btn{padding:.75rem 1.5rem;border:none;border-radius:4px;font-size:1rem;cursor:pointer;transition:all .2s;font-weight:500}.btn-primary{background:#007bff;color:#fff}.btn-primary:hover{background:#0056b3}.btn-secondary{background:#6c757d;color:#fff}.btn-secondary:hover{background:#545b62}.btn-warning{background:#ffc107;color:#212529}.btn-warning:hover{background:#e0a800}.profile-display{background:#f8f9fa;padding:1.5rem;border-radius:8px;border:1px solid #e0e0e0}.profile-display h3{margin:0 0 1rem;color:#333;font-size:1.25rem}.json-display{background:#2d2d2d;color:#f8f8f2;padding:1rem;border-radius:4px;overflow-x:auto;font-family:Courier New,monospace;font-size:.875rem;line-height:1.5;margin:0;white-space:pre-wrap;word-wrap:break-word}";
2125
+ var yt;
2126
+ let vt, xt;
2127
+ function Q(t, e, r) {
2128
+ return (e = kt(e)) in t ? Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }) : t[e] = r, t;
2129
+ }
2130
+ function Nr(t, e, r, g, S, A) {
2131
+ function T(o, l, u) {
2132
+ return function(s, a) {
2133
+ return u && u(s), o[l].call(s, a);
2134
+ };
2135
+ }
2136
+ function B(o, l) {
2137
+ for (var u = 0; u < o.length; u++) o[u].call(l);
2138
+ return l;
2139
+ }
2140
+ function _(o, l, u, s) {
2141
+ if (typeof o != "function" && (s || o !== void 0)) throw new TypeError(l + " must " + (u || "be") + " a function" + (s ? "" : " or undefined"));
2142
+ return o;
2143
+ }
2144
+ function M(o, l, u, s, a, j, L, E, P, y, b, f, p) {
2145
+ function v(c) {
2146
+ if (!p(c)) throw new TypeError("Attempted to access private element on non-instance");
2147
+ }
2148
+ var d, x = l[0], k = l[3], z = !E;
2149
+ if (!z) {
2150
+ u || Array.isArray(x) || (x = [x]);
2151
+ var i = {}, C = [], m = a === 3 ? "get" : a === 4 || f ? "set" : "value";
2152
+ y ? (b || f ? i = { get: je(function() {
2153
+ return k(this);
2154
+ }, s, "get"), set: function(c) {
2155
+ l[4](this, c);
2156
+ } } : i[m] = k, b || je(i[m], s, a === 2 ? "" : m)) : b || (i = Object.getOwnPropertyDescriptor(o, s));
2157
+ }
2158
+ for (var h = o, I = x.length - 1; I >= 0; I -= u ? 2 : 1) {
2159
+ var F = x[I], K = u ? x[I - 1] : void 0, J = {}, D = { kind: ["field", "accessor", "method", "getter", "setter", "class"][a], name: s, metadata: j, addInitializer: (function(c, w) {
2160
+ if (c.v) throw Error("attempted to call addInitializer after decoration was finished");
2161
+ _(w, "An initializer", "be", !0), L.push(w);
2162
+ }).bind(null, J) };
2163
+ try {
2164
+ if (z) (d = _(F.call(K, h, D), "class decorators", "return")) && (h = d);
2165
+ else {
2166
+ var $, R;
2167
+ D.static = P, D.private = y, y ? a === 2 ? $ = function(c) {
2168
+ return v(c), i.value;
2169
+ } : (a < 4 && ($ = T(i, "get", v)), a !== 3 && (R = T(i, "set", v))) : ($ = function(c) {
2170
+ return c[s];
2171
+ }, (a < 2 || a === 4) && (R = function(c, w) {
2172
+ c[s] = w;
2173
+ }));
2174
+ var W = D.access = { has: y ? p.bind() : function(c) {
2175
+ return s in c;
2176
+ } };
2177
+ if ($ && (W.get = $), R && (W.set = R), h = F.call(K, f ? { get: i.get, set: i.set } : i[m], D), f) {
2178
+ if (typeof h == "object" && h) (d = _(h.get, "accessor.get")) && (i.get = d), (d = _(h.set, "accessor.set")) && (i.set = d), (d = _(h.init, "accessor.init")) && C.push(d);
2179
+ else if (h !== void 0) throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0");
2180
+ } else _(h, (b ? "field" : "method") + " decorators", "return") && (b ? C.push(h) : i[m] = h);
2181
+ }
2182
+ } finally {
2183
+ J.v = !0;
2184
+ }
2185
+ }
2186
+ return (b || f) && E.push(function(c, w) {
2187
+ for (var N = C.length - 1; N >= 0; N--) w = C[N].call(c, w);
2188
+ return w;
2189
+ }), b || z || (y ? f ? E.push(T(i, "get"), T(i, "set")) : E.push(a === 2 ? i[m] : T.call.bind(i[m])) : Object.defineProperty(o, s, i)), h;
2190
+ }
2191
+ function U(o, l) {
2192
+ return Object.defineProperty(o, Symbol.metadata || Symbol.for("Symbol.metadata"), { configurable: !0, enumerable: !0, value: l });
2193
+ }
2194
+ if (arguments.length >= 6) var H = A[Symbol.metadata || Symbol.for("Symbol.metadata")];
2195
+ var O = Object.create(H ?? null), G = function(o, l, u, s) {
2196
+ var a, j, L = [], E = function(m) {
2197
+ return Ur(m) === o;
2198
+ }, P = /* @__PURE__ */ new Map();
2199
+ function y(m) {
2200
+ m && L.push(B.bind(null, m));
2201
+ }
2202
+ for (var b = 0; b < l.length; b++) {
2203
+ var f = l[b];
2204
+ if (Array.isArray(f)) {
2205
+ var p = f[1], v = f[2], d = f.length > 3, x = 16 & p, k = !!(8 & p), z = (p &= 7) == 0, i = v + "/" + k;
2206
+ if (!z && !d) {
2207
+ var C = P.get(i);
2208
+ if (C === !0 || C === 3 && p !== 4 || C === 4 && p !== 3) throw Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + v);
2209
+ P.set(i, !(p > 2) || p);
2210
+ }
2211
+ M(k ? o : o.prototype, f, x, d ? "#" + v : kt(v), p, s, k ? j = j || [] : a = a || [], L, k, d, z, p === 1, k && d ? E : u);
2212
+ }
2213
+ }
2214
+ return y(a), y(j), L;
2215
+ }(t, e, S, O);
2216
+ return r.length || U(t, O), { e: G, get c() {
2217
+ var o = [];
2218
+ return r.length && [U(M(t, [r], g, t.name, 5, O, o), O), B.bind(null, o, t)];
2219
+ } };
2220
+ }
2221
+ function kt(t) {
2222
+ var e = Mr(t, "string");
2223
+ return typeof e == "symbol" ? e : e + "";
2224
+ }
2225
+ function Mr(t, e) {
2226
+ if (typeof t != "object" || !t) return t;
2227
+ var r = t[Symbol.toPrimitive];
2228
+ if (r !== void 0) {
2229
+ var g = r.call(t, e);
2230
+ if (typeof g != "object") return g;
2231
+ throw new TypeError("@@toPrimitive must return a primitive value.");
2232
+ }
2233
+ return String(t);
2234
+ }
2235
+ function je(t, e, r) {
2236
+ typeof e == "symbol" && (e = (e = e.description) ? "[" + e + "]" : "");
2237
+ try {
2238
+ Object.defineProperty(t, "name", { configurable: !0, value: r ? r + " " + e : e });
2239
+ } catch {
2240
+ }
2241
+ return t;
2242
+ }
2243
+ function Ur(t) {
2244
+ if (Object(t) !== t) throw TypeError("right-hand side of 'in' should be an object, got " + (t !== null ? typeof t : "null"));
2245
+ return t;
2246
+ }
2247
+ const oe = ne("UserProfile");
2248
+ xt = [re({
2249
+ tagName: "user-profile"
2250
+ })];
2251
+ let Hr;
2252
+ class Fr extends X {
1051
2253
  constructor() {
1052
- super(), P(this, "state", this.reactive({
1053
- count: 0,
1054
- message: "Click the button!"
1055
- })), P(this, "increment", () => {
1056
- this.state.count++, this.state.message = `Clicked ${this.state.count} time${this.state.count === 1 ? "" : "s"}!`;
1057
- }), P(this, "reset", () => {
1058
- this.state.count = 0, this.state.message = "Reset! Click again!";
1059
- }), Po.info("SimpleReactiveDemo initialized");
2254
+ super(), Q(this, "_autoStyles", Br), Q(this, "profile", void 0), Q(this, "handleNameChange", (r) => {
2255
+ const g = r.target;
2256
+ this.profile.name = g.value;
2257
+ }), Q(this, "handleNameBlur", () => {
2258
+ this.profile = {
2259
+ ...this.profile,
2260
+ name: this.profile.name
2261
+ }, oe.debug("Name updated", {
2262
+ name: this.profile.name
2263
+ });
2264
+ }), Q(this, "handleEmailChange", (r) => {
2265
+ const g = r.target;
2266
+ this.profile.email = g.value;
2267
+ }), Q(this, "handleEmailBlur", () => {
2268
+ this.profile = {
2269
+ ...this.profile,
2270
+ email: this.profile.email
2271
+ }, oe.debug("Email updated", {
2272
+ email: this.profile.email
2273
+ });
2274
+ }), Q(this, "handleAgeChange", (r) => {
2275
+ const g = r.target;
2276
+ this.profile.age = parseInt(g.value, 10) || 0;
2277
+ }), Q(this, "handleAgeBlur", () => {
2278
+ this.profile = {
2279
+ ...this.profile,
2280
+ age: this.profile.age
2281
+ }, oe.debug("Age updated", {
2282
+ age: this.profile.age
2283
+ });
2284
+ }), Q(this, "handleThemeChange", (r) => {
2285
+ const g = r.target;
2286
+ this.profile.preferences.theme = g.value, oe.debug("Theme updated", {
2287
+ theme: g.value
2288
+ });
2289
+ }), Q(this, "handleLanguageChange", (r) => {
2290
+ const g = r.target;
2291
+ this.profile.preferences.language = g.value, oe.debug("Language updated", {
2292
+ language: g.value
2293
+ });
2294
+ }), Q(this, "handleNotificationsChange", (r) => {
2295
+ const g = r.target;
2296
+ this.profile.preferences.notifications = g.checked, oe.debug("Notifications updated", {
2297
+ notifications: g.checked
2298
+ });
2299
+ }), Q(this, "resetProfile", () => {
2300
+ this.profile = {
2301
+ name: "John Doe",
2302
+ email: "john@example.com",
2303
+ age: 30,
2304
+ preferences: {
2305
+ theme: "light",
2306
+ language: "en",
2307
+ notifications: !0
2308
+ },
2309
+ lastLogin: Date.now()
2310
+ }, oe.debug("Profile reset to default");
2311
+ }), Q(this, "updateLastLogin", () => {
2312
+ this.profile = {
2313
+ ...this.profile,
2314
+ lastLogin: Date.now()
2315
+ }, oe.debug("Last login updated", {
2316
+ lastLogin: this.profile.lastLogin
2317
+ });
2318
+ }), Q(this, "replaceEntireProfile", () => {
2319
+ this.profile = {
2320
+ name: "Jane Smith",
2321
+ email: "jane@example.com",
2322
+ age: 25,
2323
+ preferences: {
2324
+ theme: "dark",
2325
+ language: "zh",
2326
+ notifications: !1
2327
+ },
2328
+ lastLogin: Date.now()
2329
+ }, oe.debug("Entire profile replaced");
2330
+ }), oe.info("UserProfile initialized");
2331
+ let e = this.reactive({
2332
+ name: "John Doe",
2333
+ email: "john@example.com",
2334
+ age: 30,
2335
+ preferences: {
2336
+ theme: "light",
2337
+ language: "en",
2338
+ notifications: !0
2339
+ },
2340
+ lastLogin: Date.now()
2341
+ });
2342
+ Object.defineProperty(this, "profile", {
2343
+ get: () => e,
2344
+ set: (r) => {
2345
+ e = r !== null && typeof r < "u" && (Array.isArray(r) || typeof r == "object") ? this.reactive(r) : r, this.scheduleRerender();
2346
+ },
2347
+ enumerable: !0,
2348
+ configurable: !0
2349
+ });
2350
+ }
2351
+ render() {
2352
+ return /* @__PURE__ */ n("div", { class: "user-profile" }, /* @__PURE__ */ n("div", { class: "profile-header" }, /* @__PURE__ */ n("h2", null, "👤 User Profile (WebComponent)"), /* @__PURE__ */ n("p", { class: "subtitle" }, "Demonstrates @state decorator with objects")), /* @__PURE__ */ n("div", { class: "profile-content" }, /* @__PURE__ */ n("div", { class: "profile-section" }, /* @__PURE__ */ n("h3", null, "Basic Information"), /* @__PURE__ */ n("div", { class: "form-group" }, /* @__PURE__ */ n("label", null, "Name:"), /* @__PURE__ */ n("input", { type: "text", value: this.profile.name, onInput: this.handleNameChange, onBlur: this.handleNameBlur, class: "input-field", "data-wsx-key": "UserProfile-input-text-3-1-3-3" })), /* @__PURE__ */ n("div", { class: "form-group" }, /* @__PURE__ */ n("label", null, "Email:"), /* @__PURE__ */ n("input", { type: "email", value: this.profile.email, onInput: this.handleEmailChange, onBlur: this.handleEmailBlur, class: "input-field", "data-wsx-key": "UserProfile-input-email-3-1-5-3" })), /* @__PURE__ */ n("div", { class: "form-group" }, /* @__PURE__ */ n("label", null, "Age:"), /* @__PURE__ */ n("input", { type: "number", value: this.profile.age.toString(), onInput: this.handleAgeChange, onBlur: this.handleAgeBlur, class: "input-field", "data-wsx-key": "UserProfile-input-number-3-1-7-3" }))), /* @__PURE__ */ n("div", { class: "profile-section" }, /* @__PURE__ */ n("h3", null, "Preferences"), /* @__PURE__ */ n("div", { class: "form-group" }, /* @__PURE__ */ n("label", null, "Theme:"), /* @__PURE__ */ n("select", { value: this.profile.preferences.theme, onChange: this.handleThemeChange, class: "input-field", "data-wsx-key": "UserProfile-select-text-3-3-3-3" }, /* @__PURE__ */ n("option", { value: "light" }, "Light"), /* @__PURE__ */ n("option", { value: "dark" }, "Dark"))), /* @__PURE__ */ n("div", { class: "form-group" }, /* @__PURE__ */ n("label", null, "Language:"), /* @__PURE__ */ n("select", { value: this.profile.preferences.language, onChange: this.handleLanguageChange, class: "input-field", "data-wsx-key": "UserProfile-select-text-3-3-5-3" }, /* @__PURE__ */ n("option", { value: "en" }, "English"), /* @__PURE__ */ n("option", { value: "zh" }, "中文"), /* @__PURE__ */ n("option", { value: "es" }, "Español"), /* @__PURE__ */ n("option", { value: "fr" }, "Français"))), /* @__PURE__ */ n("div", { class: "form-group" }, /* @__PURE__ */ n("label", null, /* @__PURE__ */ n("input", { type: "checkbox", checked: this.profile.preferences.notifications, onChange: this.handleNotificationsChange, "data-wsx-key": "UserProfile-input-checkbox-3-3-7-1-1" }), "Enable Notifications"))), /* @__PURE__ */ n("div", { class: "profile-actions" }, /* @__PURE__ */ n("button", { class: "btn btn-primary", onClick: this.resetProfile, "data-wsx-key": "UserProfile-button-text-3-5-1" }, "Reset to Default"), /* @__PURE__ */ n("button", { class: "btn btn-secondary", onClick: this.updateLastLogin, "data-wsx-key": "UserProfile-button-text-3-5-3" }, "Update Last Login"), /* @__PURE__ */ n("button", { class: "btn btn-warning", onClick: this.replaceEntireProfile, "data-wsx-key": "UserProfile-button-text-3-5-5" }, "Replace Entire Profile")), /* @__PURE__ */ n("div", { class: "profile-display" }, /* @__PURE__ */ n("h3", null, "Current Profile Data"), /* @__PURE__ */ n("pre", { class: "json-display" }, JSON.stringify(this.profile, null, 2)))));
2353
+ }
2354
+ }
2355
+ yt = Fr;
2356
+ [Hr, vt] = Nr(yt, [], xt, 0, void 0, X).c;
2357
+ vt();
2358
+ const Kr = ".user-profile{padding:1.5rem;max-width:800px;margin:0 auto;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.profile-header{margin-bottom:2rem;text-align:center}.profile-header h2{margin:0 0 .5rem;color:#333;font-size:1.75rem}.profile-header .subtitle{color:#666;font-size:.9rem;margin:0}.profile-content{display:flex;flex-direction:column;gap:2rem}.profile-section{background:#f8f9fa;padding:1.5rem;border-radius:8px;border:1px solid #e0e0e0}.profile-section h3{margin:0 0 1rem;color:#333;font-size:1.25rem;border-bottom:2px solid #007bff;padding-bottom:.5rem}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.5rem;color:#555;font-weight:500;font-size:.9rem}.form-group input[type=checkbox]{margin-right:.5rem}.input-field{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:1rem;transition:border-color .2s;box-sizing:border-box}.input-field:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 3px #007bff1a}.profile-actions{display:flex;gap:1rem;flex-wrap:wrap}.btn{padding:.75rem 1.5rem;border:none;border-radius:4px;font-size:1rem;cursor:pointer;transition:all .2s;font-weight:500}.btn-primary{background:#007bff;color:#fff}.btn-primary:hover{background:#0056b3}.btn-secondary{background:#6c757d;color:#fff}.btn-secondary:hover{background:#545b62}.btn-warning{background:#ffc107;color:#212529}.btn-warning:hover{background:#e0a800}.profile-display{background:#f8f9fa;padding:1.5rem;border-radius:8px;border:1px solid #e0e0e0}.profile-display h3{margin:0 0 1rem;color:#333;font-size:1.25rem}.json-display{background:#2d2d2d;color:#f8f8f2;padding:1rem;border-radius:4px;overflow-x:auto;font-family:Courier New,monospace;font-size:.875rem;line-height:1.5;margin:0;white-space:pre-wrap;word-wrap:break-word}";
2359
+ var Ct;
2360
+ let wt, Tt;
2361
+ function Z(t, e, r) {
2362
+ return (e = St(e)) in t ? Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }) : t[e] = r, t;
2363
+ }
2364
+ function Jr(t, e, r, g, S, A) {
2365
+ function T(o, l, u) {
2366
+ return function(s, a) {
2367
+ return u && u(s), o[l].call(s, a);
2368
+ };
2369
+ }
2370
+ function B(o, l) {
2371
+ for (var u = 0; u < o.length; u++) o[u].call(l);
2372
+ return l;
2373
+ }
2374
+ function _(o, l, u, s) {
2375
+ if (typeof o != "function" && (s || o !== void 0)) throw new TypeError(l + " must " + (u || "be") + " a function" + (s ? "" : " or undefined"));
2376
+ return o;
2377
+ }
2378
+ function M(o, l, u, s, a, j, L, E, P, y, b, f, p) {
2379
+ function v(c) {
2380
+ if (!p(c)) throw new TypeError("Attempted to access private element on non-instance");
2381
+ }
2382
+ var d, x = l[0], k = l[3], z = !E;
2383
+ if (!z) {
2384
+ u || Array.isArray(x) || (x = [x]);
2385
+ var i = {}, C = [], m = a === 3 ? "get" : a === 4 || f ? "set" : "value";
2386
+ y ? (b || f ? i = { get: Le(function() {
2387
+ return k(this);
2388
+ }, s, "get"), set: function(c) {
2389
+ l[4](this, c);
2390
+ } } : i[m] = k, b || Le(i[m], s, a === 2 ? "" : m)) : b || (i = Object.getOwnPropertyDescriptor(o, s));
2391
+ }
2392
+ for (var h = o, I = x.length - 1; I >= 0; I -= u ? 2 : 1) {
2393
+ var F = x[I], K = u ? x[I - 1] : void 0, J = {}, D = { kind: ["field", "accessor", "method", "getter", "setter", "class"][a], name: s, metadata: j, addInitializer: (function(c, w) {
2394
+ if (c.v) throw Error("attempted to call addInitializer after decoration was finished");
2395
+ _(w, "An initializer", "be", !0), L.push(w);
2396
+ }).bind(null, J) };
2397
+ try {
2398
+ if (z) (d = _(F.call(K, h, D), "class decorators", "return")) && (h = d);
2399
+ else {
2400
+ var $, R;
2401
+ D.static = P, D.private = y, y ? a === 2 ? $ = function(c) {
2402
+ return v(c), i.value;
2403
+ } : (a < 4 && ($ = T(i, "get", v)), a !== 3 && (R = T(i, "set", v))) : ($ = function(c) {
2404
+ return c[s];
2405
+ }, (a < 2 || a === 4) && (R = function(c, w) {
2406
+ c[s] = w;
2407
+ }));
2408
+ var W = D.access = { has: y ? p.bind() : function(c) {
2409
+ return s in c;
2410
+ } };
2411
+ if ($ && (W.get = $), R && (W.set = R), h = F.call(K, f ? { get: i.get, set: i.set } : i[m], D), f) {
2412
+ if (typeof h == "object" && h) (d = _(h.get, "accessor.get")) && (i.get = d), (d = _(h.set, "accessor.set")) && (i.set = d), (d = _(h.init, "accessor.init")) && C.push(d);
2413
+ else if (h !== void 0) throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0");
2414
+ } else _(h, (b ? "field" : "method") + " decorators", "return") && (b ? C.push(h) : i[m] = h);
2415
+ }
2416
+ } finally {
2417
+ J.v = !0;
2418
+ }
2419
+ }
2420
+ return (b || f) && E.push(function(c, w) {
2421
+ for (var N = C.length - 1; N >= 0; N--) w = C[N].call(c, w);
2422
+ return w;
2423
+ }), b || z || (y ? f ? E.push(T(i, "get"), T(i, "set")) : E.push(a === 2 ? i[m] : T.call.bind(i[m])) : Object.defineProperty(o, s, i)), h;
2424
+ }
2425
+ function U(o, l) {
2426
+ return Object.defineProperty(o, Symbol.metadata || Symbol.for("Symbol.metadata"), { configurable: !0, enumerable: !0, value: l });
2427
+ }
2428
+ if (arguments.length >= 6) var H = A[Symbol.metadata || Symbol.for("Symbol.metadata")];
2429
+ var O = Object.create(H ?? null), G = function(o, l, u, s) {
2430
+ var a, j, L = [], E = function(m) {
2431
+ return Gr(m) === o;
2432
+ }, P = /* @__PURE__ */ new Map();
2433
+ function y(m) {
2434
+ m && L.push(B.bind(null, m));
2435
+ }
2436
+ for (var b = 0; b < l.length; b++) {
2437
+ var f = l[b];
2438
+ if (Array.isArray(f)) {
2439
+ var p = f[1], v = f[2], d = f.length > 3, x = 16 & p, k = !!(8 & p), z = (p &= 7) == 0, i = v + "/" + k;
2440
+ if (!z && !d) {
2441
+ var C = P.get(i);
2442
+ if (C === !0 || C === 3 && p !== 4 || C === 4 && p !== 3) throw Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + v);
2443
+ P.set(i, !(p > 2) || p);
2444
+ }
2445
+ M(k ? o : o.prototype, f, x, d ? "#" + v : St(v), p, s, k ? j = j || [] : a = a || [], L, k, d, z, p === 1, k && d ? E : u);
2446
+ }
2447
+ }
2448
+ return y(a), y(j), L;
2449
+ }(t, e, S, O);
2450
+ return r.length || U(t, O), { e: G, get c() {
2451
+ var o = [];
2452
+ return r.length && [U(M(t, [r], g, t.name, 5, O, o), O), B.bind(null, o, t)];
2453
+ } };
2454
+ }
2455
+ function St(t) {
2456
+ var e = Wr(t, "string");
2457
+ return typeof e == "symbol" ? e : e + "";
2458
+ }
2459
+ function Wr(t, e) {
2460
+ if (typeof t != "object" || !t) return t;
2461
+ var r = t[Symbol.toPrimitive];
2462
+ if (r !== void 0) {
2463
+ var g = r.call(t, e);
2464
+ if (typeof g != "object") return g;
2465
+ throw new TypeError("@@toPrimitive must return a primitive value.");
2466
+ }
2467
+ return String(t);
2468
+ }
2469
+ function Le(t, e, r) {
2470
+ typeof e == "symbol" && (e = (e = e.description) ? "[" + e + "]" : "");
2471
+ try {
2472
+ Object.defineProperty(t, "name", { configurable: !0, value: r ? r + " " + e : e });
2473
+ } catch {
2474
+ }
2475
+ return t;
2476
+ }
2477
+ function Gr(t) {
2478
+ if (Object(t) !== t) throw TypeError("right-hand side of 'in' should be an object, got " + (t !== null ? typeof t : "null"));
2479
+ return t;
2480
+ }
2481
+ const ie = ne("UserProfileLight");
2482
+ Tt = [re({
2483
+ tagName: "user-profile-light"
2484
+ })];
2485
+ let Xr;
2486
+ class qr extends he {
2487
+ constructor() {
2488
+ super(), Z(this, "_autoStyles", Kr), Z(this, "profile", void 0), Z(this, "handleNameChange", (r) => {
2489
+ const g = r.target;
2490
+ this.profile.name = g.value;
2491
+ }), Z(this, "handleNameBlur", () => {
2492
+ this.profile = {
2493
+ ...this.profile,
2494
+ name: this.profile.name
2495
+ }, ie.debug("Name updated", {
2496
+ name: this.profile.name
2497
+ });
2498
+ }), Z(this, "handleEmailChange", (r) => {
2499
+ const g = r.target;
2500
+ this.profile.email = g.value;
2501
+ }), Z(this, "handleEmailBlur", () => {
2502
+ this.profile = {
2503
+ ...this.profile,
2504
+ email: this.profile.email
2505
+ }, ie.debug("Email updated", {
2506
+ email: this.profile.email
2507
+ });
2508
+ }), Z(this, "handleAgeChange", (r) => {
2509
+ const g = r.target;
2510
+ this.profile.age = parseInt(g.value, 10) || 0;
2511
+ }), Z(this, "handleAgeBlur", () => {
2512
+ this.profile = {
2513
+ ...this.profile,
2514
+ age: this.profile.age
2515
+ }, ie.debug("Age updated", {
2516
+ age: this.profile.age
2517
+ });
2518
+ }), Z(this, "handleThemeChange", (r) => {
2519
+ const g = r.target;
2520
+ this.profile.preferences.theme = g.value, ie.debug("Theme updated", {
2521
+ theme: g.value
2522
+ });
2523
+ }), Z(this, "handleLanguageChange", (r) => {
2524
+ const g = r.target;
2525
+ this.profile.preferences.language = g.value, ie.debug("Language updated", {
2526
+ language: g.value
2527
+ });
2528
+ }), Z(this, "handleNotificationsChange", (r) => {
2529
+ const g = r.target;
2530
+ this.profile.preferences.notifications = g.checked, ie.debug("Notifications updated", {
2531
+ notifications: g.checked
2532
+ });
2533
+ }), Z(this, "resetProfile", () => {
2534
+ this.profile = {
2535
+ name: "John Doe",
2536
+ email: "john@example.com",
2537
+ age: 30,
2538
+ preferences: {
2539
+ theme: "light",
2540
+ language: "en",
2541
+ notifications: !0
2542
+ },
2543
+ lastLogin: Date.now()
2544
+ }, this._name = "John Doe", this._email = "john@example.com", this._age = 30, ie.debug("Profile reset to default");
2545
+ }), Z(this, "updateLastLogin", () => {
2546
+ this.profile = {
2547
+ ...this.profile,
2548
+ lastLogin: Date.now()
2549
+ }, ie.debug("Last login updated", {
2550
+ lastLogin: this.profile.lastLogin
2551
+ });
2552
+ }), Z(this, "replaceEntireProfile", () => {
2553
+ this.profile = {
2554
+ name: "Jane Smith",
2555
+ email: "jane@example.com",
2556
+ age: 25,
2557
+ preferences: {
2558
+ theme: "dark",
2559
+ language: "zh",
2560
+ notifications: !1
2561
+ },
2562
+ lastLogin: Date.now()
2563
+ }, this._name = "Jane Smith", this._email = "jane@example.com", this._age = 25, ie.debug("Entire profile replaced");
2564
+ }), ie.info("UserProfileLight initialized");
2565
+ let e = this.reactive({
2566
+ name: "John Doe",
2567
+ email: "john@example.com",
2568
+ age: 30,
2569
+ preferences: {
2570
+ theme: "light",
2571
+ language: "en",
2572
+ notifications: !0
2573
+ },
2574
+ lastLogin: Date.now()
2575
+ });
2576
+ Object.defineProperty(this, "profile", {
2577
+ get: () => e,
2578
+ set: (r) => {
2579
+ e = r !== null && typeof r < "u" && (Array.isArray(r) || typeof r == "object") ? this.reactive(r) : r, this.scheduleRerender();
2580
+ },
2581
+ enumerable: !0,
2582
+ configurable: !0
2583
+ });
1060
2584
  }
1061
2585
  render() {
1062
- return /* @__PURE__ */ i("div", { style: "padding: 20px; border: 1px solid #ccc; border-radius: 8px; margin: 20px;" }, /* @__PURE__ */ i("h3", null, "📱 Simple Reactive Demo"), /* @__PURE__ */ i("p", null, this.state.message), /* @__PURE__ */ i("div", { style: "font-size: 24px; margin: 16px 0;" }, "Count: ", /* @__PURE__ */ i("strong", null, this.state.count)), /* @__PURE__ */ i("div", null, /* @__PURE__ */ i("button", { onClick: this.increment, style: "margin-right: 8px; padding: 8px 16px;" }, "+ Increment"), /* @__PURE__ */ i("button", { onClick: this.reset, style: "padding: 8px 16px;" }, "🔄 Reset")), /* @__PURE__ */ i("div", { style: "margin-top: 16px; font-size: 12px; color: #666;" }, "💡 State changes automatically trigger re-renders!"));
2586
+ return /* @__PURE__ */ n("div", { class: "user-profile" }, /* @__PURE__ */ n("div", { class: "profile-header" }, /* @__PURE__ */ n("h2", null, "👤 User Profile (LightComponent)"), /* @__PURE__ */ n("p", { class: "subtitle" }, "Demonstrates @state decorator with objects")), /* @__PURE__ */ n("div", { class: "profile-content" }, /* @__PURE__ */ n("div", { class: "profile-section" }, /* @__PURE__ */ n("h3", null, "Basic Information"), /* @__PURE__ */ n("div", { class: "form-group" }, /* @__PURE__ */ n("label", null, "Name:"), /* @__PURE__ */ n("input", { type: "text", value: this.profile.name, onInput: this.handleNameChange, onBlur: this.handleNameBlur, class: "input-field", "data-wsx-key": "UserProfileLight-input-text-3-1-3-3" })), /* @__PURE__ */ n("div", { class: "form-group" }, /* @__PURE__ */ n("label", null, "Email:"), /* @__PURE__ */ n("input", { type: "email", value: this.profile.email, onInput: this.handleEmailChange, onBlur: this.handleEmailBlur, class: "input-field", "data-wsx-key": "UserProfileLight-input-email-3-1-5-3" })), /* @__PURE__ */ n("div", { class: "form-group" }, /* @__PURE__ */ n("label", null, "Age:"), /* @__PURE__ */ n("input", { type: "number", value: this.profile.age.toString(), onInput: this.handleAgeChange, onBlur: this.handleAgeBlur, class: "input-field", "data-wsx-key": "UserProfileLight-input-number-3-1-7-3" }))), /* @__PURE__ */ n("div", { class: "profile-section" }, /* @__PURE__ */ n("h3", null, "Preferences"), /* @__PURE__ */ n("div", { class: "form-group" }, /* @__PURE__ */ n("label", null, "Theme:"), /* @__PURE__ */ n("select", { value: this.profile.preferences.theme, onChange: this.handleThemeChange, class: "input-field", "data-wsx-key": "UserProfileLight-select-text-3-3-3-3" }, /* @__PURE__ */ n("option", { value: "light" }, "Light"), /* @__PURE__ */ n("option", { value: "dark" }, "Dark"))), /* @__PURE__ */ n("div", { class: "form-group" }, /* @__PURE__ */ n("label", null, "Language:"), /* @__PURE__ */ n("select", { value: this.profile.preferences.language, onChange: this.handleLanguageChange, class: "input-field", "data-wsx-key": "UserProfileLight-select-text-3-3-5-3" }, /* @__PURE__ */ n("option", { value: "en" }, "English"), /* @__PURE__ */ n("option", { value: "zh" }, "中文"), /* @__PURE__ */ n("option", { value: "es" }, "Español"), /* @__PURE__ */ n("option", { value: "fr" }, "Français"))), /* @__PURE__ */ n("div", { class: "form-group" }, /* @__PURE__ */ n("label", null, /* @__PURE__ */ n("input", { type: "checkbox", checked: this.profile.preferences.notifications, onChange: this.handleNotificationsChange, "data-wsx-key": "UserProfileLight-input-checkbox-3-3-7-1-1" }), "Enable Notifications"))), /* @__PURE__ */ n("div", { class: "profile-actions" }, /* @__PURE__ */ n("button", { class: "btn btn-primary", onClick: this.resetProfile, "data-wsx-key": "UserProfileLight-button-text-3-5-1" }, "Reset to Default"), /* @__PURE__ */ n("button", { class: "btn btn-secondary", onClick: this.updateLastLogin, "data-wsx-key": "UserProfileLight-button-text-3-5-3" }, "Update Last Login"), /* @__PURE__ */ n("button", { class: "btn btn-warning", onClick: this.replaceEntireProfile, "data-wsx-key": "UserProfileLight-button-text-3-5-5" }, "Replace Entire Profile")), /* @__PURE__ */ n("div", { class: "profile-display" }, /* @__PURE__ */ n("h3", null, "Current Profile Data"), /* @__PURE__ */ n("pre", { class: "json-display" }, JSON.stringify(this.profile, null, 2)))));
1063
2587
  }
1064
2588
  }
1065
- tt = wo(Ut);
1066
- R = Eo(tt, 0, "SimpleReactiveDemo", Kt, R);
1067
- Ao(tt, 1, R);
2589
+ Ct = qr;
2590
+ [Xr, wt] = Jr(Ct, [], Tt, 0, void 0, he).c;
2591
+ wt();
1068
2592
  export {
1069
- Oo as CONVERTER_BTN,
1070
- Io as CONVERTER_PANEL,
1071
- O as ColorPicker,
1072
- I as ReactiveCounter,
1073
- R as SimpleReactiveDemo,
1074
- M as SvgDemo,
1075
- B as SvgIcon,
1076
- F as ThemeSwitcher,
1077
- D as XyButton,
1078
- T as XyButtonGroup,
1079
- we as getCustomColorCache,
1080
- To as getDefaultColorCache,
1081
- w as handleCSSVariables,
1082
- Ce as setCustomColorCache,
1083
- ke as setDefaultColorCache,
1084
- $e as throttle
2593
+ Zr as CONVERTER_BTN,
2594
+ Vr as CONVERTER_PANEL,
2595
+ Yt as ColorPicker,
2596
+ rr as ReactiveCounter,
2597
+ Tr as SimpleReactiveDemo,
2598
+ yr as SvgDemo,
2599
+ fr as SvgIcon,
2600
+ lr as ThemeSwitcher,
2601
+ jr as TodoList,
2602
+ Ir as TodoListLight,
2603
+ Hr as UserProfile,
2604
+ Xr as UserProfileLight,
2605
+ jt as XyButton,
2606
+ It as XyButtonGroup,
2607
+ Ft as getCustomColorCache,
2608
+ Qr as getDefaultColorCache,
2609
+ ue as handleCSSVariables,
2610
+ Ht as setCustomColorCache,
2611
+ Ut as setDefaultColorCache,
2612
+ Kt as throttle
1085
2613
  };