PluginProbe
Gutenberg / 23.7.2
Gutenberg v23.7.2
23.9.1 23.9.0 23.8.0 23.7.2 23.7.1 23.7.0 23.6.1 23.6.2 23.6.0 23.5.3 23.5.2 23.5.1 23.5.0 23.4.0 23.3.2 23.3.1 23.3.0 23.2.0 23.2.1 23.2.2 23.1.1 23.1.0 23.0.1 12.6.0 7.4.0 All 402 releases
gutenberg / build / modules / interactivity / index.js

index.js in Gutenberg 23.7.2, at build/modules/interactivity/index.js

3,187 lines 101.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 var __defProp = Object.defineProperty;
2 var __getOwnPropNames = Object.getOwnPropertyNames;
3 var __esm = (fn, res) => function __init() {
4 return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
5 };
6 var __export = (target, all) => {
7 for (var name in all)
8 __defProp(target, name, { get: all[name], enumerable: true });
9 };
10
11 // node_modules/preact/dist/preact.module.js
12 function m(n3, l6) {
13 for (var u5 in l6) n3[u5] = l6[u5];
14 return n3;
15 }
16 function b(n3) {
17 n3 && n3.parentNode && n3.parentNode.removeChild(n3);
18 }
19 function k(l6, u5, t5) {
20 var i6, r5, o4, e4 = {};
21 for (o4 in u5) "key" == o4 ? i6 = u5[o4] : "ref" == o4 ? r5 = u5[o4] : e4[o4] = u5[o4];
22 if (arguments.length > 2 && (e4.children = arguments.length > 3 ? n.call(arguments, 2) : t5), "function" == typeof l6 && null != l6.defaultProps) for (o4 in l6.defaultProps) void 0 === e4[o4] && (e4[o4] = l6.defaultProps[o4]);
23 return x(l6, e4, i6, r5, null);
24 }
25 function x(n3, t5, i6, r5, o4) {
26 var e4 = { type: n3, props: t5, key: i6, ref: r5, __k: null, __: null, __b: 0, __e: null, __c: null, constructor: void 0, __v: null == o4 ? ++u : o4, __i: -1, __u: 0 };
27 return null == o4 && null != l.vnode && l.vnode(e4), e4;
28 }
29 function S(n3) {
30 return n3.children;
31 }
32 function C(n3, l6) {
33 this.props = n3, this.context = l6;
34 }
35 function $(n3, l6) {
36 if (null == l6) return n3.__ ? $(n3.__, n3.__i + 1) : null;
37 for (var u5; l6 < n3.__k.length; l6++) if (null != (u5 = n3.__k[l6]) && null != u5.__e) return u5.__e;
38 return "function" == typeof n3.type ? $(n3) : null;
39 }
40 function I(n3) {
41 if (n3.__P && n3.__d) {
42 var u5 = n3.__v, t5 = u5.__e, i6 = [], r5 = [], o4 = m({}, u5);
43 o4.__v = u5.__v + 1, l.vnode && l.vnode(o4), q(n3.__P, o4, u5, n3.__n, n3.__P.namespaceURI, 32 & u5.__u ? [t5] : null, i6, null == t5 ? $(u5) : t5, !!(32 & u5.__u), r5), o4.__v = u5.__v, o4.__.__k[o4.__i] = o4, D(i6, o4, r5), u5.__e = u5.__ = null, o4.__e != t5 && P(o4);
44 }
45 }
46 function P(n3) {
47 if (null != (n3 = n3.__) && null != n3.__c) return n3.__e = n3.__c.base = null, n3.__k.some(function(l6) {
48 if (null != l6 && null != l6.__e) return n3.__e = n3.__c.base = l6.__e;
49 }), P(n3);
50 }
51 function A(n3) {
52 (!n3.__d && (n3.__d = true) && i.push(n3) && !H.__r++ || r != l.debounceRendering) && ((r = l.debounceRendering) || o)(H);
53 }
54 function H() {
55 try {
56 for (var n3, l6 = 1; i.length; ) i.length > l6 && i.sort(e), n3 = i.shift(), l6 = i.length, I(n3);
57 } finally {
58 i.length = H.__r = 0;
59 }
60 }
61 function L(n3, l6, u5, t5, i6, r5, o4, e4, f5, c5, s6) {
62 var a5, h5, p6, v6, y5, _5, g3, m4 = t5 && t5.__k || w, b4 = l6.length;
63 for (f5 = T(u5, l6, m4, f5, b4), a5 = 0; a5 < b4; a5++) null != (p6 = u5.__k[a5]) && (h5 = -1 != p6.__i && m4[p6.__i] || d, p6.__i = a5, _5 = q(n3, p6, h5, i6, r5, o4, e4, f5, c5, s6), v6 = p6.__e, p6.ref && h5.ref != p6.ref && (h5.ref && J(h5.ref, null, p6), s6.push(p6.ref, p6.__c || v6, p6)), null == y5 && null != v6 && (y5 = v6), (g3 = !!(4 & p6.__u)) || h5.__k === p6.__k ? (f5 = j(p6, f5, n3, g3), g3 && h5.__e && (h5.__e = null)) : "function" == typeof p6.type && void 0 !== _5 ? f5 = _5 : v6 && (f5 = v6.nextSibling), p6.__u &= -7);
64 return u5.__e = y5, f5;
65 }
66 function T(n3, l6, u5, t5, i6) {
67 var r5, o4, e4, f5, c5, s6 = u5.length, a5 = s6, h5 = 0;
68 for (n3.__k = new Array(i6), r5 = 0; r5 < i6; r5++) null != (o4 = l6[r5]) && "boolean" != typeof o4 && "function" != typeof o4 ? ("string" == typeof o4 || "number" == typeof o4 || "bigint" == typeof o4 || o4.constructor == String ? o4 = n3.__k[r5] = x(null, o4, null, null, null) : g(o4) ? o4 = n3.__k[r5] = x(S, { children: o4 }, null, null, null) : void 0 === o4.constructor && o4.__b > 0 ? o4 = n3.__k[r5] = x(o4.type, o4.props, o4.key, o4.ref ? o4.ref : null, o4.__v) : n3.__k[r5] = o4, f5 = r5 + h5, o4.__ = n3, o4.__b = n3.__b + 1, e4 = null, -1 != (c5 = o4.__i = O(o4, u5, f5, a5)) && (a5--, (e4 = u5[c5]) && (e4.__u |= 2)), null == e4 || null == e4.__v ? (-1 == c5 && (i6 > s6 ? h5-- : i6 < s6 && h5++), "function" != typeof o4.type && (o4.__u |= 4)) : c5 != f5 && (c5 == f5 - 1 ? h5-- : c5 == f5 + 1 ? h5++ : (c5 > f5 ? h5-- : h5++, o4.__u |= 4))) : n3.__k[r5] = null;
69 if (a5) for (r5 = 0; r5 < s6; r5++) null != (e4 = u5[r5]) && 0 == (2 & e4.__u) && (e4.__e == t5 && (t5 = $(e4)), K(e4, e4));
70 return t5;
71 }
72 function j(n3, l6, u5, t5) {
73 var i6, r5;
74 if ("function" == typeof n3.type) {
75 for (i6 = n3.__k, r5 = 0; i6 && r5 < i6.length; r5++) i6[r5] && (i6[r5].__ = n3, l6 = j(i6[r5], l6, u5, t5));
76 return l6;
77 }
78 n3.__e != l6 && (t5 && (l6 && n3.type && !l6.parentNode && (l6 = $(n3)), u5.insertBefore(n3.__e, l6 || null)), l6 = n3.__e);
79 do {
80 l6 = l6 && l6.nextSibling;
81 } while (null != l6 && 8 == l6.nodeType);
82 return l6;
83 }
84 function O(n3, l6, u5, t5) {
85 var i6, r5, o4, e4 = n3.key, f5 = n3.type, c5 = l6[u5], s6 = null != c5 && 0 == (2 & c5.__u);
86 if (null === c5 && null == e4 || s6 && e4 == c5.key && f5 == c5.type) return u5;
87 if (t5 > (s6 ? 1 : 0)) {
88 for (i6 = u5 - 1, r5 = u5 + 1; i6 >= 0 || r5 < l6.length; ) if (null != (c5 = l6[o4 = i6 >= 0 ? i6-- : r5++]) && 0 == (2 & c5.__u) && e4 == c5.key && f5 == c5.type) return o4;
89 }
90 return -1;
91 }
92 function z(n3, l6, u5) {
93 "-" == l6[0] ? n3.setProperty(l6, null == u5 ? "" : u5) : n3[l6] = null == u5 ? "" : "number" != typeof u5 || _.test(l6) ? u5 : u5 + "px";
94 }
95 function N(n3, l6, u5, t5, i6) {
96 var r5, o4;
97 n: if ("style" == l6) if ("string" == typeof u5) n3.style.cssText = u5;
98 else {
99 if ("string" == typeof t5 && (n3.style.cssText = t5 = ""), t5) for (l6 in t5) u5 && l6 in u5 || z(n3.style, l6, "");
100 if (u5) for (l6 in u5) t5 && u5[l6] == t5[l6] || z(n3.style, l6, u5[l6]);
101 }
102 else if ("o" == l6[0] && "n" == l6[1]) r5 = l6 != (l6 = l6.replace(a, "$1")), o4 = l6.toLowerCase(), l6 = o4 in n3 || "onFocusOut" == l6 || "onFocusIn" == l6 ? o4.slice(2) : l6.slice(2), n3.l || (n3.l = {}), n3.l[l6 + r5] = u5, u5 ? t5 ? u5[s] = t5[s] : (u5[s] = h, n3.addEventListener(l6, r5 ? v : p, r5)) : n3.removeEventListener(l6, r5 ? v : p, r5);
103 else {
104 if ("http://www.w3.org/2000/svg" == i6) l6 = l6.replace(/xlink(H|:h)/, "h").replace(/sName$/, "s");
105 else if ("width" != l6 && "height" != l6 && "href" != l6 && "list" != l6 && "form" != l6 && "tabIndex" != l6 && "download" != l6 && "rowSpan" != l6 && "colSpan" != l6 && "role" != l6 && "popover" != l6 && l6 in n3) try {
106 n3[l6] = null == u5 ? "" : u5;
107 break n;
108 } catch (n4) {
109 }
110 "function" == typeof u5 || (null == u5 || false === u5 && "-" != l6[4] ? n3.removeAttribute(l6) : n3.setAttribute(l6, "popover" == l6 && 1 == u5 ? "" : u5));
111 }
112 }
113 function V(n3) {
114 return function(u5) {
115 if (this.l) {
116 var t5 = this.l[u5.type + n3];
117 if (null == u5[c]) u5[c] = h++;
118 else if (u5[c] < t5[s]) return;
119 return t5(l.event ? l.event(u5) : u5);
120 }
121 };
122 }
123 function q(n3, u5, t5, i6, r5, o4, e4, f5, c5, s6) {
124 var a5, h5, p6, v6, y5, d6, _5, k3, x3, M, $2, I2, P2, A3, H2, T3 = u5.type;
125 if (void 0 !== u5.constructor) return null;
126 128 & t5.__u && (c5 = !!(32 & t5.__u), o4 = [f5 = u5.__e = t5.__e]), (a5 = l.__b) && a5(u5);
127 n: if ("function" == typeof T3) try {
128 if (k3 = u5.props, x3 = T3.prototype && T3.prototype.render, M = (a5 = T3.contextType) && i6[a5.__c], $2 = a5 ? M ? M.props.value : a5.__ : i6, t5.__c ? _5 = (h5 = u5.__c = t5.__c).__ = h5.__E : (x3 ? u5.__c = h5 = new T3(k3, $2) : (u5.__c = h5 = new C(k3, $2), h5.constructor = T3, h5.render = Q), M && M.sub(h5), h5.state || (h5.state = {}), h5.__n = i6, p6 = h5.__d = true, h5.__h = [], h5._sb = []), x3 && null == h5.__s && (h5.__s = h5.state), x3 && null != T3.getDerivedStateFromProps && (h5.__s == h5.state && (h5.__s = m({}, h5.__s)), m(h5.__s, T3.getDerivedStateFromProps(k3, h5.__s))), v6 = h5.props, y5 = h5.state, h5.__v = u5, p6) x3 && null == T3.getDerivedStateFromProps && null != h5.componentWillMount && h5.componentWillMount(), x3 && null != h5.componentDidMount && h5.__h.push(h5.componentDidMount);
129 else {
130 if (x3 && null == T3.getDerivedStateFromProps && k3 !== v6 && null != h5.componentWillReceiveProps && h5.componentWillReceiveProps(k3, $2), u5.__v == t5.__v || !h5.__e && null != h5.shouldComponentUpdate && false === h5.shouldComponentUpdate(k3, h5.__s, $2)) {
131 u5.__v != t5.__v && (h5.props = k3, h5.state = h5.__s, h5.__d = false), u5.__e = t5.__e, u5.__k = t5.__k, u5.__k.some(function(n4) {
132 n4 && (n4.__ = u5);
133 }), w.push.apply(h5.__h, h5._sb), h5._sb = [], h5.__h.length && e4.push(h5);
134 break n;
135 }
136 null != h5.componentWillUpdate && h5.componentWillUpdate(k3, h5.__s, $2), x3 && null != h5.componentDidUpdate && h5.__h.push(function() {
137 h5.componentDidUpdate(v6, y5, d6);
138 });
139 }
140 if (h5.context = $2, h5.props = k3, h5.__P = n3, h5.__e = false, I2 = l.__r, P2 = 0, x3) h5.state = h5.__s, h5.__d = false, I2 && I2(u5), a5 = h5.render(h5.props, h5.state, h5.context), w.push.apply(h5.__h, h5._sb), h5._sb = [];
141 else do {
142 h5.__d = false, I2 && I2(u5), a5 = h5.render(h5.props, h5.state, h5.context), h5.state = h5.__s;
143 } while (h5.__d && ++P2 < 25);
144 h5.state = h5.__s, null != h5.getChildContext && (i6 = m(m({}, i6), h5.getChildContext())), x3 && !p6 && null != h5.getSnapshotBeforeUpdate && (d6 = h5.getSnapshotBeforeUpdate(v6, y5)), A3 = null != a5 && a5.type === S && null == a5.key ? E(a5.props.children) : a5, f5 = L(n3, g(A3) ? A3 : [A3], u5, t5, i6, r5, o4, e4, f5, c5, s6), h5.base = u5.__e, u5.__u &= -161, h5.__h.length && e4.push(h5), _5 && (h5.__E = h5.__ = null);
145 } catch (n4) {
146 if (u5.__v = null, c5 || null != o4) if (n4.then) {
147 for (u5.__u |= c5 ? 160 : 128; f5 && 8 == f5.nodeType && f5.nextSibling; ) f5 = f5.nextSibling;
148 o4[o4.indexOf(f5)] = null, u5.__e = f5;
149 } else {
150 for (H2 = o4.length; H2--; ) b(o4[H2]);
151 B(u5);
152 }
153 else u5.__e = t5.__e, u5.__k = t5.__k, n4.then || B(u5);
154 l.__e(n4, u5, t5);
155 }
156 else null == o4 && u5.__v == t5.__v ? (u5.__k = t5.__k, u5.__e = t5.__e) : f5 = u5.__e = G(t5.__e, u5, t5, i6, r5, o4, e4, c5, s6);
157 return (a5 = l.diffed) && a5(u5), 128 & u5.__u ? void 0 : f5;
158 }
159 function B(n3) {
160 n3 && (n3.__c && (n3.__c.__e = true), n3.__k && n3.__k.some(B));
161 }
162 function D(n3, u5, t5) {
163 for (var i6 = 0; i6 < t5.length; i6++) J(t5[i6], t5[++i6], t5[++i6]);
164 l.__c && l.__c(u5, n3), n3.some(function(u6) {
165 try {
166 n3 = u6.__h, u6.__h = [], n3.some(function(n4) {
167 n4.call(u6);
168 });
169 } catch (n4) {
170 l.__e(n4, u6.__v);
171 }
172 });
173 }
174 function E(n3) {
175 return "object" != typeof n3 || null == n3 || n3.__b > 0 ? n3 : g(n3) ? n3.map(E) : m({}, n3);
176 }
177 function G(u5, t5, i6, r5, o4, e4, f5, c5, s6) {
178 var a5, h5, p6, v6, y5, w5, _5, m4 = i6.props || d, k3 = t5.props, x3 = t5.type;
179 if ("svg" == x3 ? o4 = "http://www.w3.org/2000/svg" : "math" == x3 ? o4 = "http://www.w3.org/1998/Math/MathML" : o4 || (o4 = "http://www.w3.org/1999/xhtml"), null != e4) {
180 for (a5 = 0; a5 < e4.length; a5++) if ((y5 = e4[a5]) && "setAttribute" in y5 == !!x3 && (x3 ? y5.localName == x3 : 3 == y5.nodeType)) {
181 u5 = y5, e4[a5] = null;
182 break;
183 }
184 }
185 if (null == u5) {
186 if (null == x3) return document.createTextNode(k3);
187 u5 = document.createElementNS(o4, x3, k3.is && k3), c5 && (l.__m && l.__m(t5, e4), c5 = false), e4 = null;
188 }
189 if (null == x3) m4 === k3 || c5 && u5.data == k3 || (u5.data = k3);
190 else {
191 if (e4 = e4 && n.call(u5.childNodes), !c5 && null != e4) for (m4 = {}, a5 = 0; a5 < u5.attributes.length; a5++) m4[(y5 = u5.attributes[a5]).name] = y5.value;
192 for (a5 in m4) y5 = m4[a5], "dangerouslySetInnerHTML" == a5 ? p6 = y5 : "children" == a5 || a5 in k3 || "value" == a5 && "defaultValue" in k3 || "checked" == a5 && "defaultChecked" in k3 || N(u5, a5, null, y5, o4);
193 for (a5 in k3) y5 = k3[a5], "children" == a5 ? v6 = y5 : "dangerouslySetInnerHTML" == a5 ? h5 = y5 : "value" == a5 ? w5 = y5 : "checked" == a5 ? _5 = y5 : c5 && "function" != typeof y5 || m4[a5] === y5 || N(u5, a5, y5, m4[a5], o4);
194 if (h5) c5 || p6 && (h5.__html == p6.__html || h5.__html == u5.innerHTML) || (u5.innerHTML = h5.__html), t5.__k = [];
195 else if (p6 && (u5.innerHTML = ""), L("template" == t5.type ? u5.content : u5, g(v6) ? v6 : [v6], t5, i6, r5, "foreignObject" == x3 ? "http://www.w3.org/1999/xhtml" : o4, e4, f5, e4 ? e4[0] : i6.__k && $(i6, 0), c5, s6), null != e4) for (a5 = e4.length; a5--; ) b(e4[a5]);
196 c5 || (a5 = "value", "progress" == x3 && null == w5 ? u5.removeAttribute("value") : null != w5 && (w5 !== u5[a5] || "progress" == x3 && !w5 || "option" == x3 && w5 != m4[a5]) && N(u5, a5, w5, m4[a5], o4), a5 = "checked", null != _5 && _5 != u5[a5] && N(u5, a5, _5, m4[a5], o4));
197 }
198 return u5;
199 }
200 function J(n3, u5, t5) {
201 try {
202 if ("function" == typeof n3) {
203 var i6 = "function" == typeof n3.__u;
204 i6 && n3.__u(), i6 && null == u5 || (n3.__u = n3(u5));
205 } else n3.current = u5;
206 } catch (n4) {
207 l.__e(n4, t5);
208 }
209 }
210 function K(n3, u5, t5) {
211 var i6, r5;
212 if (l.unmount && l.unmount(n3), (i6 = n3.ref) && (i6.current && i6.current != n3.__e || J(i6, null, u5)), null != (i6 = n3.__c)) {
213 if (i6.componentWillUnmount) try {
214 i6.componentWillUnmount();
215 } catch (n4) {
216 l.__e(n4, u5);
217 }
218 i6.base = i6.__P = null;
219 }
220 if (i6 = n3.__k) for (r5 = 0; r5 < i6.length; r5++) i6[r5] && K(i6[r5], u5, t5 || "function" != typeof n3.type);
221 t5 || b(n3.__e), n3.__c = n3.__ = n3.__e = void 0;
222 }
223 function Q(n3, l6, u5) {
224 return this.constructor(n3, u5);
225 }
226 function R(u5, t5, i6) {
227 var r5, o4, e4, f5;
228 t5 == document && (t5 = document.documentElement), l.__ && l.__(u5, t5), o4 = (r5 = "function" == typeof i6) ? null : i6 && i6.__k || t5.__k, e4 = [], f5 = [], q(t5, u5 = (!r5 && i6 || t5).__k = k(S, null, [u5]), o4 || d, d, t5.namespaceURI, !r5 && i6 ? [i6] : o4 ? null : t5.firstChild ? n.call(t5.childNodes) : null, e4, !r5 && i6 ? i6 : o4 ? o4.__e : t5.firstChild, r5, f5), D(e4, u5, f5);
229 }
230 function U(n3, l6) {
231 R(n3, l6, U);
232 }
233 function W(l6, u5, t5) {
234 var i6, r5, o4, e4, f5 = m({}, l6.props);
235 for (o4 in l6.type && l6.type.defaultProps && (e4 = l6.type.defaultProps), u5) "key" == o4 ? i6 = u5[o4] : "ref" == o4 ? r5 = u5[o4] : f5[o4] = void 0 === u5[o4] && null != e4 ? e4[o4] : u5[o4];
236 return arguments.length > 2 && (f5.children = arguments.length > 3 ? n.call(arguments, 2) : t5), x(l6.type, f5, i6 || l6.key, r5 || l6.ref, null);
237 }
238 function X(n3) {
239 function l6(n4) {
240 var u5, t5;
241 return this.getChildContext || (u5 = /* @__PURE__ */ new Set(), (t5 = {})[l6.__c] = this, this.getChildContext = function() {
242 return t5;
243 }, this.componentWillUnmount = function() {
244 u5 = null;
245 }, this.shouldComponentUpdate = function(n5) {
246 this.props.value != n5.value && u5.forEach(function(n6) {
247 n6.__e = true, A(n6);
248 });
249 }, this.sub = function(n5) {
250 u5.add(n5);
251 var l7 = n5.componentWillUnmount;
252 n5.componentWillUnmount = function() {
253 u5 && u5.delete(n5), l7 && l7.call(n5);
254 };
255 }), n4.children;
256 }
257 return l6.__c = "__cC" + y++, l6.__ = n3, l6.Provider = l6.__l = (l6.Consumer = function(n4, l7) {
258 return n4.children(l7);
259 }).contextType = l6, l6;
260 }
261 var n, l, u, t, i, r, o, e, f, c, s, a, h, p, v, y, d, w, _, g;
262 var init_preact_module = __esm({
263 "node_modules/preact/dist/preact.module.js"() {
264 d = {};
265 w = [];
266 _ = /acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;
267 g = Array.isArray;
268 n = w.slice, l = { __e: function(n3, l6, u5, t5) {
269 for (var i6, r5, o4; l6 = l6.__; ) if ((i6 = l6.__c) && !i6.__) try {
270 if ((r5 = i6.constructor) && null != r5.getDerivedStateFromError && (i6.setState(r5.getDerivedStateFromError(n3)), o4 = i6.__d), null != i6.componentDidCatch && (i6.componentDidCatch(n3, t5 || {}), o4 = i6.__d), o4) return i6.__E = i6;
271 } catch (l7) {
272 n3 = l7;
273 }
274 throw n3;
275 } }, u = 0, t = function(n3) {
276 return null != n3 && void 0 === n3.constructor;
277 }, C.prototype.setState = function(n3, l6) {
278 var u5;
279 u5 = null != this.__s && this.__s != this.state ? this.__s : this.__s = m({}, this.state), "function" == typeof n3 && (n3 = n3(m({}, u5), this.props)), n3 && m(u5, n3), null != n3 && this.__v && (l6 && this._sb.push(l6), A(this));
280 }, C.prototype.forceUpdate = function(n3) {
281 this.__v && (this.__e = true, n3 && this.__h.push(n3), A(this));
282 }, C.prototype.render = S, i = [], o = "function" == typeof Promise ? Promise.prototype.then.bind(Promise.resolve()) : setTimeout, e = function(n3, l6) {
283 return n3.__v.__b - l6.__v.__b;
284 }, H.__r = 0, f = Math.random().toString(8), c = "__d" + f, s = "__a" + f, a = /(PointerCapture)$|Capture$/i, h = 0, p = V(false), v = V(true), y = 0;
285 }
286 });
287
288 // node_modules/preact/devtools/dist/devtools.module.js
289 var i4;
290 var init_devtools_module = __esm({
291 "node_modules/preact/devtools/dist/devtools.module.js"() {
292 init_preact_module();
293 null != (i4 = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof window ? window : void 0) && i4.__PREACT_DEVTOOLS__ && i4.__PREACT_DEVTOOLS__.attachPreact("10.29.1", l, { Fragment: S, Component: C });
294 }
295 });
296
297 // node_modules/preact/debug/dist/debug.module.js
298 var debug_module_exports = {};
299 __export(debug_module_exports, {
300 getCurrentVNode: () => c4,
301 getDisplayName: () => a4,
302 getOwnerStack: () => f4,
303 resetPropWarnings: () => r4
304 });
305 function r4() {
306 t4 = {};
307 }
308 function a4(e4) {
309 return e4.type === S ? "Fragment" : "function" == typeof e4.type ? e4.type.displayName || e4.type.name : "string" == typeof e4.type ? e4.type : "#text";
310 }
311 function c4() {
312 return i5.length > 0 ? i5[i5.length - 1] : null;
313 }
314 function u4(e4) {
315 return "function" == typeof e4.type && e4.type != S;
316 }
317 function f4(n3) {
318 for (var e4 = [n3], o4 = n3; null != o4.__o; ) e4.push(o4.__o), o4 = o4.__o;
319 return e4.reduce(function(n4, e5) {
320 n4 += " in " + a4(e5);
321 var o5 = e5.__source;
322 return o5 ? n4 += " (at " + o5.fileName + ":" + o5.lineNumber + ")" : l5 && console.warn("Add @babel/plugin-transform-react-jsx-source to get a more detailed component stack. Note that you should not add it to production builds of your App for bundle size reasons."), l5 = false, n4 + "\n";
323 }, "");
324 }
325 function p5(n3) {
326 var e4 = [];
327 return n3.__k ? (n3.__k.forEach(function(n4) {
328 n4 && "function" == typeof n4.type ? e4.push.apply(e4, p5(n4)) : n4 && "string" == typeof n4.type && e4.push(n4.type);
329 }), e4) : e4;
330 }
331 function h4(n3) {
332 return n3 ? "function" == typeof n3.type ? null == n3.__ ? null != n3.__e && null != n3.__e.parentNode ? n3.__e.parentNode.localName : "" : h4(n3.__) : n3.type : "";
333 }
334 function y4(n3) {
335 return "table" === n3 || "tfoot" === n3 || "tbody" === n3 || "thead" === n3 || "td" === n3 || "tr" === n3 || "th" === n3;
336 }
337 function w4(n3) {
338 var e4 = n3.props, o4 = a4(n3), t5 = "";
339 for (var r5 in e4) if (e4.hasOwnProperty(r5) && "children" !== r5) {
340 var i6 = e4[r5];
341 "function" == typeof i6 && (i6 = "function " + (i6.displayName || i6.name) + "() {}"), i6 = Object(i6) !== i6 || i6.toString ? i6 + "" : Object.prototype.toString.call(i6), t5 += " " + r5 + "=" + JSON.stringify(i6);
342 }
343 var s6 = e4.children;
344 return "<" + o4 + t5 + (s6 && s6.length ? ">..</" + o4 + ">" : " />");
345 }
346 var t4, i5, s5, l5, d5, v5, m3, b3;
347 var init_debug_module = __esm({
348 "node_modules/preact/debug/dist/debug.module.js"() {
349 init_preact_module();
350 init_devtools_module();
351 t4 = {};
352 i5 = [];
353 s5 = [];
354 l5 = true;
355 d5 = "function" == typeof WeakMap;
356 v5 = C.prototype.setState;
357 C.prototype.setState = function(n3, e4) {
358 return null == this.__v && null == this.state && console.warn('Calling "this.setState" inside the constructor of a component is a no-op and might be a bug in your application. Instead, set "this.state = {}" directly.\n\n' + f4(c4())), v5.call(this, n3, e4);
359 };
360 m3 = /^(address|article|aside|blockquote|details|div|dl|fieldset|figcaption|figure|footer|form|h1|h2|h3|h4|h5|h6|header|hgroup|hr|main|menu|nav|ol|p|pre|search|section|table|ul)$/;
361 b3 = C.prototype.forceUpdate;
362 C.prototype.forceUpdate = function(n3) {
363 return null == this.__v ? console.warn('Calling "this.forceUpdate" inside the constructor of a component is a no-op and might be a bug in your application.\n\n' + f4(c4())) : null == this.__P && console.warn(`Can't call "this.forceUpdate" on an unmounted component. This is a no-op, but it indicates a memory leak in your application. To fix, cancel all subscriptions and asynchronous tasks in the componentWillUnmount method.
364
365 ` + f4(this.__v)), b3.call(this, n3);
366 }, l.__m = function(n3, e4) {
367 var o4 = n3.type, t5 = e4.map(function(n4) {
368 return n4 && n4.localName;
369 }).filter(Boolean);
370 console.error('Expected a DOM node of type "' + o4 + '" but found "' + t5.join(", ") + `" as available DOM-node(s), this is caused by the SSR'd HTML containing different DOM-nodes compared to the hydrated one.
371
372 ` + f4(n3));
373 }, (function() {
374 !(function() {
375 var n4 = l.__b, o5 = l.diffed, t5 = l.__, r6 = l.vnode, a5 = l.__r;
376 l.diffed = function(n5) {
377 u4(n5) && s5.pop(), i5.pop(), o5 && o5(n5);
378 }, l.__b = function(e4) {
379 u4(e4) && i5.push(e4), n4 && n4(e4);
380 }, l.__ = function(n5, e4) {
381 s5 = [], t5 && t5(n5, e4);
382 }, l.vnode = function(n5) {
383 n5.__o = s5.length > 0 ? s5[s5.length - 1] : null, r6 && r6(n5);
384 }, l.__r = function(n5) {
385 u4(n5) && s5.push(n5), a5 && a5(n5);
386 };
387 })();
388 var n3 = false, o4 = l.__b, r5 = l.diffed, c5 = l.vnode, l6 = l.__r, v6 = l.__e, b4 = l.__, g3 = l.__h, E3 = d5 ? { useEffect: /* @__PURE__ */ new WeakMap(), useLayoutEffect: /* @__PURE__ */ new WeakMap(), lazyPropTypes: /* @__PURE__ */ new WeakMap() } : null, k3 = [];
389 l.__e = function(n4, e4, o5, t5) {
390 if (e4 && e4.__c && "function" == typeof n4.then) {
391 var r6 = n4;
392 n4 = new Error("Missing Suspense. The throwing component was: " + a4(e4));
393 for (var i6 = e4; i6; i6 = i6.__) if (i6.__c && i6.__c.__c) {
394 n4 = r6;
395 break;
396 }
397 if (n4 instanceof Error) throw n4;
398 }
399 try {
400 (t5 = t5 || {}).componentStack = f4(e4), v6(n4, e4, o5, t5), "function" != typeof n4.then && setTimeout(function() {
401 throw n4;
402 });
403 } catch (n5) {
404 throw n5;
405 }
406 }, l.__ = function(n4, e4) {
407 if (!e4) throw new Error("Undefined parent passed to render(), this is the second argument.\nCheck if the element is available in the DOM/has the correct id.");
408 var o5;
409 switch (e4.nodeType) {
410 case 1:
411 case 11:
412 case 9:
413 o5 = true;
414 break;
415 default:
416 o5 = false;
417 }
418 if (!o5) {
419 var t5 = a4(n4);
420 throw new Error("Expected a valid HTML node as a second argument to render. Received " + e4 + " instead: render(<" + t5 + " />, " + e4 + ");");
421 }
422 b4 && b4(n4, e4);
423 }, l.__b = function(e4) {
424 var r6 = e4.type;
425 if (n3 = true, void 0 === r6) throw new Error("Undefined component passed to createElement()\n\nYou likely forgot to export your component or might have mixed up default and named imports" + w4(e4) + "\n\n" + f4(e4));
426 if (null != r6 && "object" == typeof r6) {
427 if (void 0 !== r6.__k && void 0 !== r6.__e) throw new Error("Invalid type passed to createElement(): " + r6 + "\n\nDid you accidentally pass a JSX literal as JSX twice?\n\n let My" + a4(e4) + " = " + w4(r6) + ";\n let vnode = <My" + a4(e4) + " />;\n\nThis usually happens when you export a JSX literal and not the component.\n\n" + f4(e4));
428 throw new Error("Invalid type passed to createElement(): " + (Array.isArray(r6) ? "array" : r6));
429 }
430 if (void 0 !== e4.ref && "function" != typeof e4.ref && "object" != typeof e4.ref && !("$$typeof" in e4)) throw new Error(`Component's "ref" property should be a function, or an object created by createRef(), but got [` + typeof e4.ref + "] instead\n" + w4(e4) + "\n\n" + f4(e4));
431 if ("string" == typeof e4.type) {
432 for (var i6 in e4.props) if ("o" === i6[0] && "n" === i6[1] && "function" != typeof e4.props[i6] && null != e4.props[i6]) throw new Error(`Component's "` + i6 + '" property should be a function, but got [' + typeof e4.props[i6] + "] instead\n" + w4(e4) + "\n\n" + f4(e4));
433 }
434 if ("function" == typeof e4.type && e4.type.propTypes) {
435 if ("Lazy" === e4.type.displayName && E3 && !E3.lazyPropTypes.has(e4.type)) {
436 var s6 = "PropTypes are not supported on lazy(). Use propTypes on the wrapped component itself. ";
437 try {
438 var c6 = e4.type();
439 E3.lazyPropTypes.set(e4.type, true), console.warn(s6 + "Component wrapped in lazy() is " + a4(c6));
440 } catch (n4) {
441 console.warn(s6 + "We will log the wrapped component's name once it is loaded.");
442 }
443 }
444 var l7 = e4.props;
445 e4.type.__f && delete (l7 = (function(n4, e5) {
446 for (var o5 in e5) n4[o5] = e5[o5];
447 return n4;
448 })({}, l7)).ref, (function(n4, e5, o5, r7, a5) {
449 Object.keys(n4).forEach(function(o6) {
450 var i7;
451 try {
452 i7 = n4[o6](e5, o6, r7, "prop", null, "SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED");
453 } catch (n5) {
454 i7 = n5;
455 }
456 i7 && !(i7.message in t4) && (t4[i7.message] = true, console.error("Failed prop type: " + i7.message + (a5 && "\n" + a5() || "")));
457 });
458 })(e4.type.propTypes, l7, 0, a4(e4), function() {
459 return f4(e4);
460 });
461 }
462 o4 && o4(e4);
463 };
464 var T3, _5 = 0;
465 l.__r = function(e4) {
466 l6 && l6(e4), n3 = true;
467 var o5 = e4.__c;
468 if (o5 === T3 ? _5++ : _5 = 1, _5 >= 25) throw new Error("Too many re-renders. This is limited to prevent an infinite loop which may lock up your browser. The component causing this is: " + a4(e4));
469 T3 = o5;
470 }, l.__h = function(e4, o5, t5) {
471 if (!e4 || !n3) throw new Error("Hook can only be invoked from render methods.");
472 g3 && g3(e4, o5, t5);
473 };
474 var O2 = function(n4, e4) {
475 return { get: function() {
476 var o5 = "get" + n4 + e4;
477 k3 && k3.indexOf(o5) < 0 && (k3.push(o5), console.warn("getting vnode." + n4 + " is deprecated, " + e4));
478 }, set: function() {
479 var o5 = "set" + n4 + e4;
480 k3 && k3.indexOf(o5) < 0 && (k3.push(o5), console.warn("setting vnode." + n4 + " is not allowed, " + e4));
481 } };
482 }, I2 = { nodeName: O2("nodeName", "use vnode.type"), attributes: O2("attributes", "use vnode.props"), children: O2("children", "use vnode.props.children") }, M = Object.create({}, I2);
483 l.vnode = function(n4) {
484 var e4 = n4.props;
485 if (null !== n4.type && null != e4 && ("__source" in e4 || "__self" in e4)) {
486 var o5 = n4.props = {};
487 for (var t5 in e4) {
488 var r6 = e4[t5];
489 "__source" === t5 ? n4.__source = r6 : "__self" === t5 ? n4.__self = r6 : o5[t5] = r6;
490 }
491 }
492 n4.__proto__ = M, c5 && c5(n4);
493 }, l.diffed = function(e4) {
494 var o5, t5 = e4.type, i6 = e4.__;
495 if (e4.__k && e4.__k.forEach(function(n4) {
496 if ("object" == typeof n4 && n4 && void 0 === n4.type) {
497 var o6 = Object.keys(n4).join(",");
498 throw new Error("Objects are not valid as a child. Encountered an object with the keys {" + o6 + "}.\n\n" + f4(e4));
499 }
500 }), e4.__c === T3 && (_5 = 0), "string" == typeof t5 && (y4(t5) || "p" === t5 || "a" === t5 || "button" === t5)) {
501 var s6 = h4(i6);
502 if ("" !== s6 && y4(t5)) "table" === t5 && "td" !== s6 && y4(s6) ? console.error("Improper nesting of table. Your <table> should not have a table-node parent." + w4(e4) + "\n\n" + f4(e4)) : "thead" !== t5 && "tfoot" !== t5 && "tbody" !== t5 || "table" === s6 ? "tr" === t5 && "thead" !== s6 && "tfoot" !== s6 && "tbody" !== s6 ? console.error("Improper nesting of table. Your <tr> should have a <thead/tbody/tfoot> parent." + w4(e4) + "\n\n" + f4(e4)) : "td" === t5 && "tr" !== s6 ? console.error("Improper nesting of table. Your <td> should have a <tr> parent." + w4(e4) + "\n\n" + f4(e4)) : "th" === t5 && "tr" !== s6 && console.error("Improper nesting of table. Your <th> should have a <tr>." + w4(e4) + "\n\n" + f4(e4)) : console.error("Improper nesting of table. Your <thead/tbody/tfoot> should have a <table> parent." + w4(e4) + "\n\n" + f4(e4));
503 else if ("p" === t5) {
504 var c6 = p5(e4).filter(function(n4) {
505 return m3.test(n4);
506 });
507 c6.length && console.error("Improper nesting of paragraph. Your <p> should not have " + c6.join(", ") + " as child-elements." + w4(e4) + "\n\n" + f4(e4));
508 } else "a" !== t5 && "button" !== t5 || -1 !== p5(e4).indexOf(t5) && console.error("Improper nesting of interactive content. Your <" + t5 + "> should not have other " + ("a" === t5 ? "anchor" : "button") + " tags as child-elements." + w4(e4) + "\n\n" + f4(e4));
509 }
510 if (n3 = false, r5 && r5(e4), null != e4.__k) for (var l7 = [], u5 = 0; u5 < e4.__k.length; u5++) {
511 var d6 = e4.__k[u5];
512 if (d6 && null != d6.key) {
513 var v7 = d6.key;
514 if (-1 !== l7.indexOf(v7)) {
515 console.error('Following component has two or more children with the same key attribute: "' + v7 + '". This may cause glitches and misbehavior in rendering process. Component: \n\n' + w4(e4) + "\n\n" + f4(e4));
516 break;
517 }
518 l7.push(v7);
519 }
520 }
521 if (null != e4.__c && null != e4.__c.__H) {
522 var b5 = e4.__c.__H.__;
523 if (b5) for (var g4 = 0; g4 < b5.length; g4 += 1) {
524 var E4 = b5[g4];
525 if (E4.__H) {
526 for (var k4 = 0; k4 < E4.__H.length; k4++) if ((o5 = E4.__H[k4]) != o5) {
527 var O3 = a4(e4);
528 console.warn("Invalid argument passed to hook. Hooks should not be called with NaN in the dependency array. Hook index " + g4 + " in component " + O3 + " was called with NaN.");
529 }
530 }
531 }
532 }
533 };
534 })();
535 }
536 });
537
538 // packages/interactivity/build-module/index.mjs
539 init_preact_module();
540
541 // node_modules/@preact/signals/dist/signals.module.js
542 init_preact_module();
543
544 // node_modules/preact/hooks/dist/hooks.module.js
545 init_preact_module();
546 var t2;
547 var r2;
548 var u2;
549 var i2;
550 var o2 = 0;
551 var f2 = [];
552 var c2 = l;
553 var e2 = c2.__b;
554 var a2 = c2.__r;
555 var v2 = c2.diffed;
556 var l2 = c2.__c;
557 var m2 = c2.unmount;
558 var s2 = c2.__;
559 function p2(n3, t5) {
560 c2.__h && c2.__h(r2, n3, o2 || t5), o2 = 0;
561 var u5 = r2.__H || (r2.__H = { __: [], __h: [] });
562 return n3 >= u5.__.length && u5.__.push({}), u5.__[n3];
563 }
564 function d2(n3) {
565 return o2 = 1, h2(D2, n3);
566 }
567 function h2(n3, u5, i6) {
568 var o4 = p2(t2++, 2);
569 if (o4.t = n3, !o4.__c && (o4.__ = [i6 ? i6(u5) : D2(void 0, u5), function(n4) {
570 var t5 = o4.__N ? o4.__N[0] : o4.__[0], r5 = o4.t(t5, n4);
571 t5 !== r5 && (o4.__N = [r5, o4.__[1]], o4.__c.setState({}));
572 }], o4.__c = r2, !r2.__f)) {
573 var f5 = function(n4, t5, r5) {
574 if (!o4.__c.__H) return true;
575 var u6 = o4.__c.__H.__.filter(function(n5) {
576 return n5.__c;
577 });
578 if (u6.every(function(n5) {
579 return !n5.__N;
580 })) return !c5 || c5.call(this, n4, t5, r5);
581 var i7 = o4.__c.props !== n4;
582 return u6.some(function(n5) {
583 if (n5.__N) {
584 var t6 = n5.__[0];
585 n5.__ = n5.__N, n5.__N = void 0, t6 !== n5.__[0] && (i7 = true);
586 }
587 }), c5 && c5.call(this, n4, t5, r5) || i7;
588 };
589 r2.__f = true;
590 var c5 = r2.shouldComponentUpdate, e4 = r2.componentWillUpdate;
591 r2.componentWillUpdate = function(n4, t5, r5) {
592 if (this.__e) {
593 var u6 = c5;
594 c5 = void 0, f5(n4, t5, r5), c5 = u6;
595 }
596 e4 && e4.call(this, n4, t5, r5);
597 }, r2.shouldComponentUpdate = f5;
598 }
599 return o4.__N || o4.__;
600 }
601 function y2(n3, u5) {
602 var i6 = p2(t2++, 3);
603 !c2.__s && C2(i6.__H, u5) && (i6.__ = n3, i6.u = u5, r2.__H.__h.push(i6));
604 }
605 function _2(n3, u5) {
606 var i6 = p2(t2++, 4);
607 !c2.__s && C2(i6.__H, u5) && (i6.__ = n3, i6.u = u5, r2.__h.push(i6));
608 }
609 function A2(n3) {
610 return o2 = 5, T2(function() {
611 return { current: n3 };
612 }, []);
613 }
614 function T2(n3, r5) {
615 var u5 = p2(t2++, 7);
616 return C2(u5.__H, r5) && (u5.__ = n3(), u5.__H = r5, u5.__h = n3), u5.__;
617 }
618 function q2(n3, t5) {
619 return o2 = 8, T2(function() {
620 return n3;
621 }, t5);
622 }
623 function x2(n3) {
624 var u5 = r2.context[n3.__c], i6 = p2(t2++, 9);
625 return i6.c = n3, u5 ? (null == i6.__ && (i6.__ = true, u5.sub(r2)), u5.props.value) : n3.__;
626 }
627 function j2() {
628 for (var n3; n3 = f2.shift(); ) {
629 var t5 = n3.__H;
630 if (n3.__P && t5) try {
631 t5.__h.some(z2), t5.__h.some(B2), t5.__h = [];
632 } catch (r5) {
633 t5.__h = [], c2.__e(r5, n3.__v);
634 }
635 }
636 }
637 c2.__b = function(n3) {
638 r2 = null, e2 && e2(n3);
639 }, c2.__ = function(n3, t5) {
640 n3 && t5.__k && t5.__k.__m && (n3.__m = t5.__k.__m), s2 && s2(n3, t5);
641 }, c2.__r = function(n3) {
642 a2 && a2(n3), t2 = 0;
643 var i6 = (r2 = n3.__c).__H;
644 i6 && (u2 === r2 ? (i6.__h = [], r2.__h = [], i6.__.some(function(n4) {
645 n4.__N && (n4.__ = n4.__N), n4.u = n4.__N = void 0;
646 })) : (i6.__h.some(z2), i6.__h.some(B2), i6.__h = [], t2 = 0)), u2 = r2;
647 }, c2.diffed = function(n3) {
648 v2 && v2(n3);
649 var t5 = n3.__c;
650 t5 && t5.__H && (t5.__H.__h.length && (1 !== f2.push(t5) && i2 === c2.requestAnimationFrame || ((i2 = c2.requestAnimationFrame) || w2)(j2)), t5.__H.__.some(function(n4) {
651 n4.u && (n4.__H = n4.u), n4.u = void 0;
652 })), u2 = r2 = null;
653 }, c2.__c = function(n3, t5) {
654 t5.some(function(n4) {
655 try {
656 n4.__h.some(z2), n4.__h = n4.__h.filter(function(n5) {
657 return !n5.__ || B2(n5);
658 });
659 } catch (r5) {
660 t5.some(function(n5) {
661 n5.__h && (n5.__h = []);
662 }), t5 = [], c2.__e(r5, n4.__v);
663 }
664 }), l2 && l2(n3, t5);
665 }, c2.unmount = function(n3) {
666 m2 && m2(n3);
667 var t5, r5 = n3.__c;
668 r5 && r5.__H && (r5.__H.__.some(function(n4) {
669 try {
670 z2(n4);
671 } catch (n5) {
672 t5 = n5;
673 }
674 }), r5.__H = void 0, t5 && c2.__e(t5, r5.__v));
675 };
676 var k2 = "function" == typeof requestAnimationFrame;
677 function w2(n3) {
678 var t5, r5 = function() {
679 clearTimeout(u5), k2 && cancelAnimationFrame(t5), setTimeout(n3);
680 }, u5 = setTimeout(r5, 35);
681 k2 && (t5 = requestAnimationFrame(r5));
682 }
683 function z2(n3) {
684 var t5 = r2, u5 = n3.__c;
685 "function" == typeof u5 && (n3.__c = void 0, u5()), r2 = t5;
686 }
687 function B2(n3) {
688 var t5 = r2;
689 n3.__c = n3.__(), r2 = t5;
690 }
691 function C2(n3, t5) {
692 return !n3 || n3.length !== t5.length || t5.some(function(t6, r5) {
693 return t6 !== n3[r5];
694 });
695 }
696 function D2(n3, t5) {
697 return "function" == typeof t5 ? t5(n3) : t5;
698 }
699
700 // node_modules/@preact/signals-core/dist/signals-core.module.js
701 var i3 = /* @__PURE__ */ Symbol.for("preact-signals");
702 function t3() {
703 if (!(s3 > 1)) {
704 var i6, t5 = false;
705 while (void 0 !== h3) {
706 var r5 = h3;
707 h3 = void 0;
708 f3++;
709 while (void 0 !== r5) {
710 var o4 = r5.o;
711 r5.o = void 0;
712 r5.f &= -3;
713 if (!(8 & r5.f) && c3(r5)) try {
714 r5.c();
715 } catch (r6) {
716 if (!t5) {
717 i6 = r6;
718 t5 = true;
719 }
720 }
721 r5 = o4;
722 }
723 }
724 f3 = 0;
725 s3--;
726 if (t5) throw i6;
727 } else s3--;
728 }
729 function r3(i6) {
730 if (s3 > 0) return i6();
731 s3++;
732 try {
733 return i6();
734 } finally {
735 t3();
736 }
737 }
738 var o3 = void 0;
739 var h3 = void 0;
740 var s3 = 0;
741 var f3 = 0;
742 var v3 = 0;
743 function e3(i6) {
744 if (void 0 !== o3) {
745 var t5 = i6.n;
746 if (void 0 === t5 || t5.t !== o3) {
747 t5 = { i: 0, S: i6, p: o3.s, n: void 0, t: o3, e: void 0, x: void 0, r: t5 };
748 if (void 0 !== o3.s) o3.s.n = t5;
749 o3.s = t5;
750 i6.n = t5;
751 if (32 & o3.f) i6.S(t5);
752 return t5;
753 } else if (-1 === t5.i) {
754 t5.i = 0;
755 if (void 0 !== t5.n) {
756 t5.n.p = t5.p;
757 if (void 0 !== t5.p) t5.p.n = t5.n;
758 t5.p = o3.s;
759 t5.n = void 0;
760 o3.s.n = t5;
761 o3.s = t5;
762 }
763 return t5;
764 }
765 }
766 }
767 function u3(i6) {
768 this.v = i6;
769 this.i = 0;
770 this.n = void 0;
771 this.t = void 0;
772 }
773 u3.prototype.brand = i3;
774 u3.prototype.h = function() {
775 return true;
776 };
777 u3.prototype.S = function(i6) {
778 if (this.t !== i6 && void 0 === i6.e) {
779 i6.x = this.t;
780 if (void 0 !== this.t) this.t.e = i6;
781 this.t = i6;
782 }
783 };
784 u3.prototype.U = function(i6) {
785 if (void 0 !== this.t) {
786 var t5 = i6.e, r5 = i6.x;
787 if (void 0 !== t5) {
788 t5.x = r5;
789 i6.e = void 0;
790 }
791 if (void 0 !== r5) {
792 r5.e = t5;
793 i6.x = void 0;
794 }
795 if (i6 === this.t) this.t = r5;
796 }
797 };
798 u3.prototype.subscribe = function(i6) {
799 var t5 = this;
800 return E2(function() {
801 var r5 = t5.value, n3 = o3;
802 o3 = void 0;
803 try {
804 i6(r5);
805 } finally {
806 o3 = n3;
807 }
808 });
809 };
810 u3.prototype.valueOf = function() {
811 return this.value;
812 };
813 u3.prototype.toString = function() {
814 return this.value + "";
815 };
816 u3.prototype.toJSON = function() {
817 return this.value;
818 };
819 u3.prototype.peek = function() {
820 var i6 = o3;
821 o3 = void 0;
822 try {
823 return this.value;
824 } finally {
825 o3 = i6;
826 }
827 };
828 Object.defineProperty(u3.prototype, "value", { get: function() {
829 var i6 = e3(this);
830 if (void 0 !== i6) i6.i = this.i;
831 return this.v;
832 }, set: function(i6) {
833 if (i6 !== this.v) {
834 if (f3 > 100) throw new Error("Cycle detected");
835 this.v = i6;
836 this.i++;
837 v3++;
838 s3++;
839 try {
840 for (var r5 = this.t; void 0 !== r5; r5 = r5.x) r5.t.N();
841 } finally {
842 t3();
843 }
844 }
845 } });
846 function d3(i6) {
847 return new u3(i6);
848 }
849 function c3(i6) {
850 for (var t5 = i6.s; void 0 !== t5; t5 = t5.n) if (t5.S.i !== t5.i || !t5.S.h() || t5.S.i !== t5.i) return true;
851 return false;
852 }
853 function a3(i6) {
854 for (var t5 = i6.s; void 0 !== t5; t5 = t5.n) {
855 var r5 = t5.S.n;
856 if (void 0 !== r5) t5.r = r5;
857 t5.S.n = t5;
858 t5.i = -1;
859 if (void 0 === t5.n) {
860 i6.s = t5;
861 break;
862 }
863 }
864 }
865 function l3(i6) {
866 var t5 = i6.s, r5 = void 0;
867 while (void 0 !== t5) {
868 var o4 = t5.p;
869 if (-1 === t5.i) {
870 t5.S.U(t5);
871 if (void 0 !== o4) o4.n = t5.n;
872 if (void 0 !== t5.n) t5.n.p = o4;
873 } else r5 = t5;
874 t5.S.n = t5.r;
875 if (void 0 !== t5.r) t5.r = void 0;
876 t5 = o4;
877 }
878 i6.s = r5;
879 }
880 function y3(i6) {
881 u3.call(this, void 0);
882 this.x = i6;
883 this.s = void 0;
884 this.g = v3 - 1;
885 this.f = 4;
886 }
887 (y3.prototype = new u3()).h = function() {
888 this.f &= -3;
889 if (1 & this.f) return false;
890 if (32 == (36 & this.f)) return true;
891 this.f &= -5;
892 if (this.g === v3) return true;
893 this.g = v3;
894 this.f |= 1;
895 if (this.i > 0 && !c3(this)) {
896 this.f &= -2;
897 return true;
898 }
899 var i6 = o3;
900 try {
901 a3(this);
902 o3 = this;
903 var t5 = this.x();
904 if (16 & this.f || this.v !== t5 || 0 === this.i) {
905 this.v = t5;
906 this.f &= -17;
907 this.i++;
908 }
909 } catch (i7) {
910 this.v = i7;
911 this.f |= 16;
912 this.i++;
913 }
914 o3 = i6;
915 l3(this);
916 this.f &= -2;
917 return true;
918 };
919 y3.prototype.S = function(i6) {
920 if (void 0 === this.t) {
921 this.f |= 36;
922 for (var t5 = this.s; void 0 !== t5; t5 = t5.n) t5.S.S(t5);
923 }
924 u3.prototype.S.call(this, i6);
925 };
926 y3.prototype.U = function(i6) {
927 if (void 0 !== this.t) {
928 u3.prototype.U.call(this, i6);
929 if (void 0 === this.t) {
930 this.f &= -33;
931 for (var t5 = this.s; void 0 !== t5; t5 = t5.n) t5.S.U(t5);
932 }
933 }
934 };
935 y3.prototype.N = function() {
936 if (!(2 & this.f)) {
937 this.f |= 6;
938 for (var i6 = this.t; void 0 !== i6; i6 = i6.x) i6.t.N();
939 }
940 };
941 Object.defineProperty(y3.prototype, "value", { get: function() {
942 if (1 & this.f) throw new Error("Cycle detected");
943 var i6 = e3(this);
944 this.h();
945 if (void 0 !== i6) i6.i = this.i;
946 if (16 & this.f) throw this.v;
947 return this.v;
948 } });
949 function w3(i6) {
950 return new y3(i6);
951 }
952 function _3(i6) {
953 var r5 = i6.u;
954 i6.u = void 0;
955 if ("function" == typeof r5) {
956 s3++;
957 var n3 = o3;
958 o3 = void 0;
959 try {
960 r5();
961 } catch (t5) {
962 i6.f &= -2;
963 i6.f |= 8;
964 g2(i6);
965 throw t5;
966 } finally {
967 o3 = n3;
968 t3();
969 }
970 }
971 }
972 function g2(i6) {
973 for (var t5 = i6.s; void 0 !== t5; t5 = t5.n) t5.S.U(t5);
974 i6.x = void 0;
975 i6.s = void 0;
976 _3(i6);
977 }
978 function p3(i6) {
979 if (o3 !== this) throw new Error("Out-of-order effect");
980 l3(this);
981 o3 = i6;
982 this.f &= -2;
983 if (8 & this.f) g2(this);
984 t3();
985 }
986 function b2(i6) {
987 this.x = i6;
988 this.u = void 0;
989 this.s = void 0;
990 this.o = void 0;
991 this.f = 32;
992 }
993 b2.prototype.c = function() {
994 var i6 = this.S();
995 try {
996 if (8 & this.f) return;
997 if (void 0 === this.x) return;
998 var t5 = this.x();
999 if ("function" == typeof t5) this.u = t5;
1000 } finally {
1001 i6();
1002 }
1003 };
1004 b2.prototype.S = function() {
1005 if (1 & this.f) throw new Error("Cycle detected");
1006 this.f |= 1;
1007 this.f &= -9;
1008 _3(this);
1009 a3(this);
1010 s3++;
1011 var i6 = o3;
1012 o3 = this;
1013 return p3.bind(this, i6);
1014 };
1015 b2.prototype.N = function() {
1016 if (!(2 & this.f)) {
1017 this.f |= 2;
1018 this.o = h3;
1019 h3 = this;
1020 }
1021 };
1022 b2.prototype.d = function() {
1023 this.f |= 8;
1024 if (!(1 & this.f)) g2(this);
1025 };
1026 function E2(i6) {
1027 var t5 = new b2(i6);
1028 try {
1029 t5.c();
1030 } catch (i7) {
1031 t5.d();
1032 throw i7;
1033 }
1034 return t5.d.bind(t5);
1035 }
1036
1037 // node_modules/@preact/signals/dist/signals.module.js
1038 var v4;
1039 var s4;
1040 function l4(n3, i6) {
1041 l[n3] = i6.bind(null, l[n3] || function() {
1042 });
1043 }
1044 function d4(n3) {
1045 if (s4) s4();
1046 s4 = n3 && n3.S();
1047 }
1048 function p4(n3) {
1049 var r5 = this, f5 = n3.data, o4 = useSignal(f5);
1050 o4.value = f5;
1051 var e4 = T2(function() {
1052 var n4 = r5.__v;
1053 while (n4 = n4.__) if (n4.__c) {
1054 n4.__c.__$f |= 4;
1055 break;
1056 }
1057 r5.__$u.c = function() {
1058 var n5;
1059 if (!t(e4.peek()) && 3 === (null == (n5 = r5.base) ? void 0 : n5.nodeType)) r5.base.data = e4.peek();
1060 else {
1061 r5.__$f |= 1;
1062 r5.setState({});
1063 }
1064 };
1065 return w3(function() {
1066 var n5 = o4.value.value;
1067 return 0 === n5 ? 0 : true === n5 ? "" : n5 || "";
1068 });
1069 }, []);
1070 return e4.value;
1071 }
1072 p4.displayName = "_st";
1073 Object.defineProperties(u3.prototype, { constructor: { configurable: true, value: void 0 }, type: { configurable: true, value: p4 }, props: { configurable: true, get: function() {
1074 return { data: this };
1075 } }, __b: { configurable: true, value: 1 } });
1076 l4("__b", function(n3, r5) {
1077 if ("string" == typeof r5.type) {
1078 var i6, t5 = r5.props;
1079 for (var f5 in t5) if ("children" !== f5) {
1080 var o4 = t5[f5];
1081 if (o4 instanceof u3) {
1082 if (!i6) r5.__np = i6 = {};
1083 i6[f5] = o4;
1084 t5[f5] = o4.peek();
1085 }
1086 }
1087 }
1088 n3(r5);
1089 });
1090 l4("__r", function(n3, r5) {
1091 d4();
1092 var i6, t5 = r5.__c;
1093 if (t5) {
1094 t5.__$f &= -2;
1095 if (void 0 === (i6 = t5.__$u)) t5.__$u = i6 = (function(n4) {
1096 var r6;
1097 E2(function() {
1098 r6 = this;
1099 });
1100 r6.c = function() {
1101 t5.__$f |= 1;
1102 t5.setState({});
1103 };
1104 return r6;
1105 })();
1106 }
1107 v4 = t5;
1108 d4(i6);
1109 n3(r5);
1110 });
1111 l4("__e", function(n3, r5, i6, t5) {
1112 d4();
1113 v4 = void 0;
1114 n3(r5, i6, t5);
1115 });
1116 l4("diffed", function(n3, r5) {
1117 d4();
1118 v4 = void 0;
1119 var i6;
1120 if ("string" == typeof r5.type && (i6 = r5.__e)) {
1121 var t5 = r5.__np, f5 = r5.props;
1122 if (t5) {
1123 var o4 = i6.U;
1124 if (o4) for (var e4 in o4) {
1125 var u5 = o4[e4];
1126 if (void 0 !== u5 && !(e4 in t5)) {
1127 u5.d();
1128 o4[e4] = void 0;
1129 }
1130 }
1131 else i6.U = o4 = {};
1132 for (var a5 in t5) {
1133 var c5 = o4[a5], s6 = t5[a5];
1134 if (void 0 === c5) {
1135 c5 = _4(i6, a5, s6, f5);
1136 o4[a5] = c5;
1137 } else c5.o(s6, f5);
1138 }
1139 }
1140 }
1141 n3(r5);
1142 });
1143 function _4(n3, r5, i6, t5) {
1144 var f5 = r5 in n3 && void 0 === n3.ownerSVGElement, o4 = d3(i6);
1145 return { o: function(n4, r6) {
1146 o4.value = n4;
1147 t5 = r6;
1148 }, d: E2(function() {
1149 var i7 = o4.value.value;
1150 if (t5[r5] !== i7) {
1151 t5[r5] = i7;
1152 if (f5) n3[r5] = i7;
1153 else if (i7) n3.setAttribute(r5, i7);
1154 else n3.removeAttribute(r5);
1155 }
1156 }) };
1157 }
1158 l4("unmount", function(n3, r5) {
1159 if ("string" == typeof r5.type) {
1160 var i6 = r5.__e;
1161 if (i6) {
1162 var t5 = i6.U;
1163 if (t5) {
1164 i6.U = void 0;
1165 for (var f5 in t5) {
1166 var o4 = t5[f5];
1167 if (o4) o4.d();
1168 }
1169 }
1170 }
1171 } else {
1172 var e4 = r5.__c;
1173 if (e4) {
1174 var u5 = e4.__$u;
1175 if (u5) {
1176 e4.__$u = void 0;
1177 u5.d();
1178 }
1179 }
1180 }
1181 n3(r5);
1182 });
1183 l4("__h", function(n3, r5, i6, t5) {
1184 if (t5 < 3 || 9 === t5) r5.__$f |= 2;
1185 n3(r5, i6, t5);
1186 });
1187 C.prototype.shouldComponentUpdate = function(n3, r5) {
1188 var i6 = this.__$u;
1189 if (!(i6 && void 0 !== i6.s || 4 & this.__$f)) return true;
1190 if (3 & this.__$f) return true;
1191 for (var t5 in r5) return true;
1192 for (var f5 in n3) if ("__source" !== f5 && n3[f5] !== this.props[f5]) return true;
1193 for (var o4 in this.props) if (!(o4 in n3)) return true;
1194 return false;
1195 };
1196 function useSignal(n3) {
1197 return T2(function() {
1198 return d3(n3);
1199 }, []);
1200 }
1201
1202 // packages/interactivity/build-module/hooks.mjs
1203 init_preact_module();
1204
1205 // packages/interactivity/build-module/proxies/registry.mjs
1206 var objToProxy = /* @__PURE__ */ new WeakMap();
1207 var proxyToObj = /* @__PURE__ */ new WeakMap();
1208 var proxyToNs = /* @__PURE__ */ new WeakMap();
1209 var supported = /* @__PURE__ */ new Set([Object, Array]);
1210 var createProxy = (namespace, obj, handlers) => {
1211 if (!shouldProxy(obj)) {
1212 throw Error("This object cannot be proxified.");
1213 }
1214 if (!objToProxy.has(obj)) {
1215 const proxy = new Proxy(obj, handlers);
1216 objToProxy.set(obj, proxy);
1217 proxyToObj.set(proxy, obj);
1218 proxyToNs.set(proxy, namespace);
1219 }
1220 return objToProxy.get(obj);
1221 };
1222 var getProxyFromObject = (obj) => objToProxy.get(obj);
1223 var getNamespaceFromProxy = (proxy) => proxyToNs.get(proxy);
1224 var shouldProxy = (candidate) => {
1225 if (typeof candidate !== "object" || candidate === null) {
1226 return false;
1227 }
1228 return !proxyToNs.has(candidate) && supported.has(candidate.constructor);
1229 };
1230 var getObjectFromProxy = (proxy) => proxyToObj.get(proxy);
1231
1232 // packages/interactivity/build-module/namespaces.mjs
1233 var namespaceStack = [];
1234 var getNamespace = () => namespaceStack.slice(-1)[0];
1235 var setNamespace = (namespace) => {
1236 namespaceStack.push(namespace);
1237 };
1238 var resetNamespace = () => {
1239 namespaceStack.pop();
1240 };
1241
1242 // packages/interactivity/build-module/utils.mjs
1243 var afterNextFrame = (callback) => {
1244 return new Promise((resolve2) => {
1245 const done = () => {
1246 clearTimeout(timeout);
1247 window.cancelAnimationFrame(raf);
1248 setTimeout(() => {
1249 callback();
1250 resolve2();
1251 });
1252 };
1253 const timeout = setTimeout(done, 100);
1254 const raf = window.requestAnimationFrame(done);
1255 });
1256 };
1257 var splitTask = typeof window.scheduler?.yield === "function" ? window.scheduler.yield.bind(window.scheduler) : () => {
1258 return new Promise((resolve2) => {
1259 setTimeout(resolve2, 0);
1260 });
1261 };
1262 var onDOMReady = (callback) => {
1263 const [navigation] = performance.getEntriesByType("navigation");
1264 if (navigation.domContentLoadedEventStart > 0) {
1265 callback();
1266 } else {
1267 document.addEventListener("DOMContentLoaded", callback);
1268 }
1269 };
1270 function createFlusher(compute, notify) {
1271 let flush = () => void 0;
1272 const dispose = E2(function() {
1273 flush = this.c.bind(this);
1274 this.x = compute;
1275 this.c = notify;
1276 return compute();
1277 });
1278 return { flush, dispose };
1279 }
1280 function useSignalEffect(callback) {
1281 y2(() => {
1282 let eff = null;
1283 let isExecuting = false;
1284 const notify = async () => {
1285 if (eff && !isExecuting) {
1286 isExecuting = true;
1287 await afterNextFrame(eff.flush);
1288 isExecuting = false;
1289 }
1290 };
1291 eff = createFlusher(callback, notify);
1292 return eff.dispose;
1293 }, []);
1294 }
1295 function withScope(func) {
1296 const scope = getScope();
1297 const ns = getNamespace();
1298 let wrapped;
1299 if (func?.constructor?.name === "GeneratorFunction") {
1300 wrapped = async (...args) => {
1301 const gen = func(...args);
1302 let value;
1303 let it;
1304 let error;
1305 while (true) {
1306 setNamespace(ns);
1307 setScope(scope);
1308 try {
1309 it = error ? gen.throw(error) : gen.next(value);
1310 error = void 0;
1311 } catch (e4) {
1312 throw e4;
1313 } finally {
1314 resetScope();
1315 resetNamespace();
1316 }
1317 try {
1318 value = await it.value;
1319 } catch (e4) {
1320 error = e4;
1321 }
1322 if (it.done) {
1323 if (error) {
1324 throw error;
1325 } else {
1326 break;
1327 }
1328 }
1329 }
1330 return value;
1331 };
1332 } else {
1333 wrapped = (...args) => {
1334 setNamespace(ns);
1335 setScope(scope);
1336 try {
1337 return func(...args);
1338 } finally {
1339 resetNamespace();
1340 resetScope();
1341 }
1342 };
1343 }
1344 const syncAware = func;
1345 if (syncAware.sync) {
1346 const syncAwareWrapped = wrapped;
1347 syncAwareWrapped.sync = true;
1348 return syncAwareWrapped;
1349 }
1350 return wrapped;
1351 }
1352 function useWatch(callback) {
1353 useSignalEffect(withScope(callback));
1354 }
1355 function useInit(callback) {
1356 y2(withScope(callback), []);
1357 }
1358 function useEffect(callback, inputs) {
1359 y2(withScope(callback), inputs);
1360 }
1361 function useLayoutEffect(callback, inputs) {
1362 _2(withScope(callback), inputs);
1363 }
1364 function useCallback(callback, inputs) {
1365 return q2(withScope(callback), inputs);
1366 }
1367 function useMemo(factory, inputs) {
1368 return T2(withScope(factory), inputs);
1369 }
1370 var createRootFragment = (parent, replaceNode) => {
1371 replaceNode = [].concat(replaceNode);
1372 const sibling = replaceNode[replaceNode.length - 1].nextSibling;
1373 function insert(child, root) {
1374 parent.insertBefore(child, root || sibling);
1375 }
1376 return parent.__k = {
1377 nodeType: 1,
1378 parentNode: parent,
1379 firstChild: replaceNode[0],
1380 childNodes: replaceNode,
1381 insertBefore: insert,
1382 appendChild: insert,
1383 removeChild(c5) {
1384 parent.removeChild(c5);
1385 },
1386 contains(c5) {
1387 parent.contains(c5);
1388 }
1389 };
1390 };
1391 function kebabToCamelCase(str) {
1392 return str.replace(/^-+|-+$/g, "").toLowerCase().replace(/-([a-z])/g, function(_match, group1) {
1393 return group1.toUpperCase();
1394 });
1395 }
1396 var logged = /* @__PURE__ */ new Set();
1397 var warn = (message) => {
1398 if (true) {
1399 if (logged.has(message)) {
1400 return;
1401 }
1402 console.warn(message);
1403 try {
1404 throw Error(message);
1405 } catch {
1406 }
1407 logged.add(message);
1408 }
1409 };
1410 var isPlainObject = (candidate) => Boolean(
1411 candidate && typeof candidate === "object" && candidate.constructor === Object
1412 );
1413 function withSyncEvent(callback) {
1414 const syncAware = callback;
1415 syncAware.sync = true;
1416 return syncAware;
1417 }
1418 var readOnlyMap = /* @__PURE__ */ new WeakMap();
1419 var createDeepReadOnlyHandlers = (errorMessage) => {
1420 const handleError = () => {
1421 if (true) {
1422 warn(errorMessage);
1423 }
1424 return false;
1425 };
1426 return {
1427 get(target, prop) {
1428 const value = target[prop];
1429 if (value && typeof value === "object") {
1430 return deepReadOnly(value, { errorMessage });
1431 }
1432 return value;
1433 },
1434 set: handleError,
1435 deleteProperty: handleError,
1436 defineProperty: handleError
1437 };
1438 };
1439 function deepReadOnly(obj, options) {
1440 const errorMessage = options?.errorMessage ?? "Cannot modify read-only object";
1441 if (!readOnlyMap.has(obj)) {
1442 const handlers = createDeepReadOnlyHandlers(errorMessage);
1443 readOnlyMap.set(obj, new Proxy(obj, handlers));
1444 }
1445 return readOnlyMap.get(obj);
1446 }
1447 var navigationSignal = d3(0);
1448 var sessionId = Math.random().toString(36).slice(2);
1449 function deepClone(source) {
1450 if (isPlainObject(source)) {
1451 return Object.fromEntries(
1452 Object.entries(source).map(([key, value]) => [
1453 key,
1454 deepClone(value)
1455 ])
1456 );
1457 }
1458 if (Array.isArray(source)) {
1459 return source.map((i6) => deepClone(i6));
1460 }
1461 return source;
1462 }
1463
1464 // packages/interactivity/build-module/scopes.mjs
1465 var scopeStack = [];
1466 var getScope = () => scopeStack.slice(-1)[0];
1467 var setScope = (scope) => {
1468 scopeStack.push(scope);
1469 };
1470 var resetScope = () => {
1471 scopeStack.pop();
1472 };
1473 var throwNotInScope = (method) => {
1474 throw Error(
1475 `Cannot call \`${method}()\` when there is no scope. If you are using an async function, please consider using a generator instead. If you are using some sort of async callbacks, like \`setTimeout\`, please wrap the callback with \`withScope(callback)\`.`
1476 );
1477 };
1478 var getContext = (namespace) => {
1479 const scope = getScope();
1480 if (true) {
1481 if (!scope) {
1482 throwNotInScope("getContext");
1483 }
1484 }
1485 return scope.context[namespace || getNamespace()];
1486 };
1487 var getElement = () => {
1488 const scope = getScope();
1489 let deepReadOnlyOptions = {};
1490 if (true) {
1491 if (!scope) {
1492 throwNotInScope("getElement");
1493 }
1494 deepReadOnlyOptions = {
1495 errorMessage: "Don't mutate the attributes from `getElement`, use `data-wp-bind` to modify the attributes of an element instead."
1496 };
1497 }
1498 const { ref, attributes } = scope;
1499 return Object.freeze({
1500 ref: ref.current,
1501 attributes: deepReadOnly(attributes, deepReadOnlyOptions)
1502 });
1503 };
1504 var navigationContextSignal = d3(0);
1505 function getServerContext(namespace) {
1506 const scope = getScope();
1507 if (true) {
1508 if (!scope) {
1509 throwNotInScope("getServerContext");
1510 }
1511 }
1512 getServerContext.subscribe = navigationContextSignal.value;
1513 return deepClone(scope.serverContext[namespace || getNamespace()]);
1514 }
1515 getServerContext.subscribe = 0;
1516
1517 // packages/interactivity/build-module/proxies/signals.mjs
1518 var NO_SCOPE = {};
1519 var PropSignal = class {
1520 /**
1521 * Proxy that holds the property this PropSignal is associated with.
1522 */
1523 owner;
1524 /**
1525 * Relation of computeds by scope. These computeds are read-only signals
1526 * that depend on whether the property is a value or a getter and,
1527 * therefore, can return different values depending on the scope in which
1528 * the getter is accessed.
1529 */
1530 computedsByScope;
1531 /**
1532 * Signal with the value assigned to the related property.
1533 */
1534 valueSignal;
1535 /**
1536 * Signal with the getter assigned to the related property.
1537 */
1538 getterSignal;
1539 /**
1540 * Pending getter to be consolidated.
1541 */
1542 pendingGetter;
1543 /**
1544 * Structure that manages reactivity for a property in a state object, using
1545 * signals to keep track of property value or getter modifications.
1546 *
1547 * @param owner Proxy that holds the property this instance is associated
1548 * with.
1549 */
1550 constructor(owner) {
1551 this.owner = owner;
1552 this.computedsByScope = /* @__PURE__ */ new WeakMap();
1553 }
1554 /**
1555 * Changes the internal value. If a getter was set before, it is set to
1556 * `undefined`.
1557 *
1558 * @param value New value.
1559 */
1560 setValue(value) {
1561 this.update({ value });
1562 }
1563 /**
1564 * Changes the internal getter. If a value was set before, it is set to
1565 * `undefined`.
1566 *
1567 * @param getter New getter.
1568 */
1569 setGetter(getter) {
1570 this.update({ get: getter });
1571 }
1572 /**
1573 * Changes the internal getter asynchronously.
1574 *
1575 * The update is made in a microtask, which prevents issues with getters
1576 * accessing the state, and ensures the update occurs before any render.
1577 *
1578 * @param getter New getter.
1579 */
1580 setPendingGetter(getter) {
1581 this.pendingGetter = getter;
1582 queueMicrotask(() => this.consolidateGetter());
1583 }
1584 /**
1585 * Consolidate the pending value of the getter.
1586 */
1587 consolidateGetter() {
1588 const getter = this.pendingGetter;
1589 if (getter) {
1590 this.pendingGetter = void 0;
1591 this.update({ get: getter });
1592 }
1593 }
1594 /**
1595 * Returns the computed that holds the result of evaluating the prop in the
1596 * current scope.
1597 *
1598 * These computeds are read-only signals that depend on whether the property
1599 * is a value or a getter and, therefore, can return different values
1600 * depending on the scope in which the getter is accessed.
1601 *
1602 * @return Computed that depends on the scope.
1603 */
1604 getComputed() {
1605 const scope = getScope() || NO_SCOPE;
1606 if (!this.valueSignal && !this.getterSignal) {
1607 this.update({});
1608 }
1609 if (this.pendingGetter) {
1610 this.consolidateGetter();
1611 }
1612 if (!this.computedsByScope.has(scope)) {
1613 const callback = () => {
1614 const getter = this.getterSignal?.value;
1615 return getter ? getter.call(this.owner) : this.valueSignal?.value;
1616 };
1617 setNamespace(getNamespaceFromProxy(this.owner));
1618 this.computedsByScope.set(
1619 scope,
1620 w3(withScope(callback))
1621 );
1622 resetNamespace();
1623 }
1624 return this.computedsByScope.get(scope);
1625 }
1626 /**
1627 * Updates the internal signals for the value and the getter of the
1628 * corresponding prop.
1629 *
1630 * @param param0
1631 * @param param0.get New getter.
1632 * @param param0.value New value.
1633 */
1634 update({ get, value }) {
1635 if (!this.valueSignal) {
1636 this.valueSignal = d3(value);
1637 this.getterSignal = d3(get);
1638 } else if (value !== this.valueSignal.peek() || get !== this.getterSignal.peek()) {
1639 r3(() => {
1640 this.valueSignal.value = value;
1641 this.getterSignal.value = get;
1642 });
1643 }
1644 }
1645 };
1646
1647 // packages/interactivity/build-module/proxies/state.mjs
1648 var wellKnownSymbols = new Set(
1649 Object.getOwnPropertyNames(Symbol).map((key) => Symbol[key]).filter((value) => typeof value === "symbol")
1650 );
1651 var proxyToProps = /* @__PURE__ */ new WeakMap();
1652 var hasPropSignal = (proxy, key) => proxyToProps.has(proxy) && proxyToProps.get(proxy).has(key);
1653 var getPropSignal = (proxy, key, initial) => {
1654 if (!proxyToProps.has(proxy)) {
1655 proxyToProps.set(proxy, /* @__PURE__ */ new Map());
1656 }
1657 key = typeof key === "number" ? `${key}` : key;
1658 const props = proxyToProps.get(proxy);
1659 if (!props.has(key)) {
1660 const ns = getNamespaceFromProxy(proxy);
1661 const prop = new PropSignal(proxy);
1662 props.set(key, prop);
1663 if (initial) {
1664 const { get, value } = initial;
1665 if (get) {
1666 prop.setGetter(get);
1667 } else {
1668 prop.setValue(
1669 shouldProxy(value) ? proxifyState(ns, value) : value
1670 );
1671 }
1672 }
1673 }
1674 return props.get(key);
1675 };
1676 var objToIterable = /* @__PURE__ */ new WeakMap();
1677 var peeking = false;
1678 var PENDING_GETTER = /* @__PURE__ */ Symbol("PENDING_GETTER");
1679 var stateHandlers = {
1680 get(target, key, receiver) {
1681 if (peeking || !target.hasOwnProperty(key) && key in target || typeof key === "symbol" && wellKnownSymbols.has(key)) {
1682 return Reflect.get(target, key, receiver);
1683 }
1684 const desc = Object.getOwnPropertyDescriptor(target, key);
1685 const prop = getPropSignal(receiver, key, desc);
1686 const result = prop.getComputed().value;
1687 if (result === PENDING_GETTER) {
1688 throw PENDING_GETTER;
1689 }
1690 if (typeof result === "function") {
1691 const ns = getNamespaceFromProxy(receiver);
1692 return (...args) => {
1693 setNamespace(ns);
1694 try {
1695 return result.call(receiver, ...args);
1696 } finally {
1697 resetNamespace();
1698 }
1699 };
1700 }
1701 return result;
1702 },
1703 set(target, key, value, receiver) {
1704 setNamespace(getNamespaceFromProxy(receiver));
1705 try {
1706 return Reflect.set(target, key, value, receiver);
1707 } finally {
1708 resetNamespace();
1709 }
1710 },
1711 defineProperty(target, key, desc) {
1712 const isNew = !(key in target);
1713 const result = Reflect.defineProperty(target, key, desc);
1714 if (result) {
1715 const receiver = getProxyFromObject(target);
1716 const prop = getPropSignal(receiver, key);
1717 const { get, value } = desc;
1718 if (get) {
1719 prop.setGetter(get);
1720 } else {
1721 const ns = getNamespaceFromProxy(receiver);
1722 prop.setValue(
1723 shouldProxy(value) ? proxifyState(ns, value) : value
1724 );
1725 }
1726 if (isNew && objToIterable.has(target)) {
1727 objToIterable.get(target).value++;
1728 }
1729 if (Array.isArray(target) && proxyToProps.get(receiver)?.has("length")) {
1730 const length = getPropSignal(receiver, "length");
1731 length.setValue(target.length);
1732 }
1733 }
1734 return result;
1735 },
1736 deleteProperty(target, key) {
1737 const result = Reflect.deleteProperty(target, key);
1738 if (result) {
1739 const prop = getPropSignal(getProxyFromObject(target), key);
1740 prop.setValue(void 0);
1741 if (objToIterable.has(target)) {
1742 objToIterable.get(target).value++;
1743 }
1744 }
1745 return result;
1746 },
1747 ownKeys(target) {
1748 if (!objToIterable.has(target)) {
1749 objToIterable.set(target, d3(0));
1750 }
1751 objToIterable._ = objToIterable.get(target).value;
1752 return Reflect.ownKeys(target);
1753 }
1754 };
1755 var proxifyState = (namespace, obj) => {
1756 return createProxy(namespace, obj, stateHandlers);
1757 };
1758 var peek = (obj, key) => {
1759 peeking = true;
1760 try {
1761 return obj[key];
1762 } finally {
1763 peeking = false;
1764 }
1765 };
1766 var deepMergeRecursive = (target, source, override = true) => {
1767 if (!(isPlainObject(target) && isPlainObject(source))) {
1768 return;
1769 }
1770 let hasNewKeys = false;
1771 for (const key in source) {
1772 const isNew = !(key in target);
1773 hasNewKeys = hasNewKeys || isNew;
1774 const desc = Object.getOwnPropertyDescriptor(source, key);
1775 const proxy = getProxyFromObject(target);
1776 const propSignal = !!proxy && hasPropSignal(proxy, key) && getPropSignal(proxy, key);
1777 if (typeof desc.get === "function" || typeof desc.set === "function") {
1778 if (override || isNew) {
1779 Object.defineProperty(target, key, {
1780 ...desc,
1781 configurable: true,
1782 enumerable: true
1783 });
1784 if (desc.get && propSignal) {
1785 propSignal.setPendingGetter(desc.get);
1786 }
1787 }
1788 } else if (isPlainObject(source[key])) {
1789 const targetValue = Object.getOwnPropertyDescriptor(target, key)?.value;
1790 if (isNew || override && !isPlainObject(targetValue)) {
1791 target[key] = {};
1792 if (propSignal) {
1793 const ns = getNamespaceFromProxy(proxy);
1794 propSignal.setValue(
1795 proxifyState(ns, target[key])
1796 );
1797 }
1798 deepMergeRecursive(target[key], source[key], override);
1799 } else if (isPlainObject(targetValue)) {
1800 deepMergeRecursive(target[key], source[key], override);
1801 }
1802 } else if (override || isNew) {
1803 Object.defineProperty(target, key, desc);
1804 if (propSignal) {
1805 const { value } = desc;
1806 const ns = getNamespaceFromProxy(proxy);
1807 propSignal.setValue(
1808 shouldProxy(value) ? proxifyState(ns, value) : value
1809 );
1810 }
1811 }
1812 }
1813 if (hasNewKeys && objToIterable.has(target)) {
1814 objToIterable.get(target).value++;
1815 }
1816 };
1817 var deepMerge = (target, source, override = true) => r3(
1818 () => deepMergeRecursive(
1819 getObjectFromProxy(target) || target,
1820 source,
1821 override
1822 )
1823 );
1824
1825 // packages/interactivity/build-module/proxies/store.mjs
1826 var storeRoots = /* @__PURE__ */ new WeakSet();
1827 var storeHandlers = {
1828 get: (target, key, receiver) => {
1829 const result = Reflect.get(target, key);
1830 const ns = getNamespaceFromProxy(receiver);
1831 if (typeof result === "undefined" && storeRoots.has(receiver)) {
1832 const obj = {};
1833 Reflect.set(target, key, obj);
1834 return proxifyStore(ns, obj, false);
1835 }
1836 if (typeof result === "function") {
1837 setNamespace(ns);
1838 const scoped = withScope(result);
1839 resetNamespace();
1840 return scoped;
1841 }
1842 if (isPlainObject(result) && shouldProxy(result)) {
1843 return proxifyStore(ns, result, false);
1844 }
1845 return result;
1846 }
1847 };
1848 var proxifyStore = (namespace, obj, isRoot = true) => {
1849 const proxy = createProxy(namespace, obj, storeHandlers);
1850 if (proxy && isRoot) {
1851 storeRoots.add(proxy);
1852 }
1853 return proxy;
1854 };
1855
1856 // packages/interactivity/build-module/proxies/context.mjs
1857 var contextObjectToProxy = /* @__PURE__ */ new WeakMap();
1858 var contextObjectToFallback = /* @__PURE__ */ new WeakMap();
1859 var contextProxies = /* @__PURE__ */ new WeakSet();
1860 var descriptor = Reflect.getOwnPropertyDescriptor;
1861 var contextHandlers = {
1862 get: (target, key) => {
1863 const fallback = contextObjectToFallback.get(target);
1864 const currentProp = target[key];
1865 return key in target ? currentProp : fallback[key];
1866 },
1867 set: (target, key, value) => {
1868 const fallback = contextObjectToFallback.get(target);
1869 const obj = key in target || !(key in fallback) ? target : fallback;
1870 obj[key] = value;
1871 return true;
1872 },
1873 ownKeys: (target) => [
1874 .../* @__PURE__ */ new Set([
1875 ...Object.keys(contextObjectToFallback.get(target)),
1876 ...Object.keys(target)
1877 ])
1878 ],
1879 getOwnPropertyDescriptor: (target, key) => descriptor(target, key) || descriptor(contextObjectToFallback.get(target), key),
1880 has: (target, key) => Reflect.has(target, key) || Reflect.has(contextObjectToFallback.get(target), key)
1881 };
1882 var proxifyContext = (current, inherited = {}) => {
1883 if (contextProxies.has(current)) {
1884 throw Error("This object cannot be proxified.");
1885 }
1886 contextObjectToFallback.set(current, inherited);
1887 if (!contextObjectToProxy.has(current)) {
1888 const proxy = new Proxy(current, contextHandlers);
1889 contextObjectToProxy.set(current, proxy);
1890 contextProxies.add(proxy);
1891 }
1892 return contextObjectToProxy.get(current);
1893 };
1894
1895 // packages/interactivity/build-module/store.mjs
1896 var stores = /* @__PURE__ */ new Map();
1897 var rawStores = /* @__PURE__ */ new Map();
1898 var storeLocks = /* @__PURE__ */ new Map();
1899 var storeConfigs = /* @__PURE__ */ new Map();
1900 var serverStates = /* @__PURE__ */ new Map();
1901 var getConfig = (namespace) => storeConfigs.get(namespace || getNamespace()) || {};
1902 function getServerState(namespace) {
1903 const ns = namespace || getNamespace();
1904 if (!serverStates.has(ns)) {
1905 serverStates.set(ns, {});
1906 }
1907 getServerState.subscribe = navigationSignal.value;
1908 return deepClone(serverStates.get(ns));
1909 }
1910 getServerState.subscribe = 0;
1911 var universalUnlock = "I acknowledge that using a private store means my plugin will inevitably break on the next store release.";
1912 function store(namespace, { state = {}, ...block } = {}, { lock = false } = {}) {
1913 if (!stores.has(namespace)) {
1914 if (lock !== universalUnlock) {
1915 storeLocks.set(namespace, lock);
1916 }
1917 const rawStore = {
1918 state: proxifyState(
1919 namespace,
1920 isPlainObject(state) ? state : {}
1921 ),
1922 ...block
1923 };
1924 const proxifiedStore = proxifyStore(namespace, rawStore);
1925 rawStores.set(namespace, rawStore);
1926 stores.set(namespace, proxifiedStore);
1927 } else {
1928 if (lock !== universalUnlock && !storeLocks.has(namespace)) {
1929 storeLocks.set(namespace, lock);
1930 } else {
1931 const storeLock = storeLocks.get(namespace);
1932 const isLockValid = lock === universalUnlock || lock !== true && lock === storeLock;
1933 if (!isLockValid) {
1934 if (!storeLock) {
1935 throw Error("Cannot lock a public store");
1936 } else {
1937 throw Error(
1938 "Cannot unlock a private store with an invalid lock code"
1939 );
1940 }
1941 }
1942 }
1943 const target = rawStores.get(namespace);
1944 deepMerge(target, block);
1945 deepMerge(target.state, state);
1946 }
1947 return stores.get(namespace);
1948 }
1949 var parseServerData = (dom = document) => {
1950 const jsonDataScriptTag = (
1951 // Preferred Script Module data passing form
1952 dom.getElementById(
1953 "wp-script-module-data-@wordpress/interactivity"
1954 ) ?? // Legacy form
1955 dom.getElementById("wp-interactivity-data")
1956 );
1957 if (jsonDataScriptTag?.textContent) {
1958 try {
1959 return JSON.parse(jsonDataScriptTag.textContent);
1960 } catch {
1961 }
1962 }
1963 return {};
1964 };
1965 var populateServerData = (data) => {
1966 serverStates.clear();
1967 storeConfigs.clear();
1968 if (isPlainObject(data?.state)) {
1969 Object.entries(data.state).forEach(([namespace, state]) => {
1970 const st = store(namespace, {}, { lock: universalUnlock });
1971 deepMerge(st.state, state, false);
1972 serverStates.set(namespace, state);
1973 });
1974 }
1975 if (isPlainObject(data?.config)) {
1976 Object.entries(data.config).forEach(([namespace, config]) => {
1977 storeConfigs.set(namespace, config);
1978 });
1979 }
1980 if (isPlainObject(data?.derivedStateClosures)) {
1981 Object.entries(data.derivedStateClosures).forEach(
1982 ([namespace, paths]) => {
1983 const st = store(
1984 namespace,
1985 {},
1986 { lock: universalUnlock }
1987 );
1988 paths.forEach((path) => {
1989 const pathParts = path.split(".");
1990 const prop = pathParts.splice(-1, 1)[0];
1991 const parent = pathParts.reduce(
1992 (prev, key) => peek(prev, key),
1993 st
1994 );
1995 const desc = Object.getOwnPropertyDescriptor(
1996 parent,
1997 prop
1998 );
1999 if (isPlainObject(desc?.value)) {
2000 parent[prop] = PENDING_GETTER;
2001 }
2002 });
2003 }
2004 );
2005 }
2006 };
2007
2008 // packages/interactivity/build-module/hooks.mjs
2009 function isNonDefaultDirectiveSuffix(entry) {
2010 return entry.suffix !== null;
2011 }
2012 function isDefaultDirectiveSuffix(entry) {
2013 return entry.suffix === null;
2014 }
2015 var context = X({ client: {}, server: {} });
2016 var directiveCallbacks = {};
2017 var directivePriorities = {};
2018 var directive = (name, callback, { priority = 10 } = {}) => {
2019 directiveCallbacks[name] = callback;
2020 directivePriorities[name] = priority;
2021 };
2022 var resolve = (path, namespace) => {
2023 if (!namespace) {
2024 warn(
2025 `Namespace missing for "${path}". The value for that path won't be resolved.`
2026 );
2027 return;
2028 }
2029 let resolvedStore = stores.get(namespace);
2030 if (typeof resolvedStore === "undefined") {
2031 resolvedStore = store(
2032 namespace,
2033 {},
2034 {
2035 lock: universalUnlock
2036 }
2037 );
2038 }
2039 const current = {
2040 ...resolvedStore,
2041 context: getScope().context[namespace]
2042 };
2043 try {
2044 const pathParts = path.split(".");
2045 return pathParts.reduce((acc, key) => acc[key], current);
2046 } catch (e4) {
2047 if (e4 === PENDING_GETTER) {
2048 return PENDING_GETTER;
2049 }
2050 }
2051 };
2052 var getEvaluate = ({ scope }) => (
2053 // TODO: When removing the temporarily remaining `value( ...args )` call below, remove the `...args` parameter too.
2054 ((entry, ...args) => {
2055 let { value: path, namespace } = entry;
2056 if (typeof path !== "string") {
2057 throw new Error("The `value` prop should be a string path");
2058 }
2059 const hasNegationOperator = path[0] === "!" && !!(path = path.slice(1));
2060 setScope(scope);
2061 const value = resolve(path, namespace);
2062 if (typeof value === "function") {
2063 if (hasNegationOperator) {
2064 warn(
2065 "Using a function with a negation operator is deprecated and will stop working in WordPress 6.9. Please use derived state instead."
2066 );
2067 const functionResult = !value(...args);
2068 resetScope();
2069 return functionResult;
2070 }
2071 resetScope();
2072 const wrappedFunction = (...functionArgs) => {
2073 setScope(scope);
2074 const functionResult = value(...functionArgs);
2075 resetScope();
2076 return functionResult;
2077 };
2078 if (value.sync) {
2079 const syncAwareFunction = wrappedFunction;
2080 syncAwareFunction.sync = true;
2081 }
2082 return wrappedFunction;
2083 }
2084 const result = value;
2085 resetScope();
2086 return hasNegationOperator && value !== PENDING_GETTER ? !result : result;
2087 })
2088 );
2089 var getPriorityLevels = (directives) => {
2090 const byPriority = Object.keys(directives).reduce((obj, name) => {
2091 if (directiveCallbacks[name]) {
2092 const priority = directivePriorities[name];
2093 (obj[priority] = obj[priority] || []).push(name);
2094 }
2095 return obj;
2096 }, {});
2097 return Object.entries(byPriority).sort(([p1], [p22]) => parseInt(p1) - parseInt(p22)).map(([, arr]) => arr);
2098 };
2099 var Directives = ({
2100 directives,
2101 priorityLevels: [currentPriorityLevel, ...nextPriorityLevels],
2102 element,
2103 originalProps,
2104 previousScope
2105 }) => {
2106 const scope = A2({}).current;
2107 scope.evaluate = q2(getEvaluate({ scope }), []);
2108 const { client, server } = x2(context);
2109 scope.context = client;
2110 scope.serverContext = server;
2111 scope.ref = previousScope?.ref || A2(null);
2112 element = W(element, { ref: scope.ref });
2113 scope.attributes = element.props;
2114 const children = nextPriorityLevels.length > 0 ? k(Directives, {
2115 directives,
2116 priorityLevels: nextPriorityLevels,
2117 element,
2118 originalProps,
2119 previousScope: scope
2120 }) : element;
2121 const props = { ...originalProps, children };
2122 const directiveArgs = {
2123 directives,
2124 props,
2125 element,
2126 context,
2127 evaluate: scope.evaluate
2128 };
2129 setScope(scope);
2130 for (const directiveName of currentPriorityLevel) {
2131 const wrapper = directiveCallbacks[directiveName]?.(directiveArgs);
2132 if (wrapper !== void 0) {
2133 props.children = wrapper;
2134 }
2135 }
2136 resetScope();
2137 return props.children;
2138 };
2139 var old = l.vnode;
2140 l.vnode = (vnode) => {
2141 if (vnode.props.__directives) {
2142 const props = vnode.props;
2143 const directives = props.__directives;
2144 if (directives.key) {
2145 vnode.key = directives.key.find(isDefaultDirectiveSuffix).value;
2146 }
2147 delete props.__directives;
2148 const priorityLevels = getPriorityLevels(directives);
2149 if (priorityLevels.length > 0) {
2150 vnode.props = {
2151 directives,
2152 priorityLevels,
2153 originalProps: props,
2154 type: vnode.type,
2155 element: k(vnode.type, props),
2156 top: true
2157 };
2158 vnode.type = Directives;
2159 }
2160 }
2161 if (old) {
2162 old(vnode);
2163 }
2164 };
2165
2166 // packages/interactivity/build-module/directives/utils/warnings.mjs
2167 var warnUniqueIdWithTwoHyphens = (prefix, suffix, uniqueId) => {
2168 if (true) {
2169 warn(
2170 `The usage of data-wp-${prefix}--${suffix}${uniqueId ? `--${uniqueId}` : ""} (two hyphens for unique ID) is deprecated and will stop working in WordPress 7.1. Please use data-wp-${prefix}${uniqueId ? `--${suffix}---${uniqueId}` : `---${suffix}`} (three hyphens for unique ID) from now on.`
2171 );
2172 }
2173 };
2174 var warnUniqueIdNotSupported = (prefix, uniqueId) => {
2175 if (true) {
2176 warn(
2177 `Unique IDs are not supported for the data-wp-${prefix} directive. Ignoring the directive with unique ID "${uniqueId}".`
2178 );
2179 }
2180 };
2181 var warnWithSyncEvent = (wrongPrefix, rightPrefix) => {
2182 if (true) {
2183 warn(
2184 `The usage of data-wp-${wrongPrefix} is deprecated and will stop working in WordPress 7.0. Please, use data-wp-${rightPrefix} with the withSyncEvent() helper from now on.`
2185 );
2186 }
2187 };
2188
2189 // packages/interactivity/build-module/directives/bind.mjs
2190 directive("bind", ({ directives: { bind }, element, evaluate }) => {
2191 bind.filter(isNonDefaultDirectiveSuffix).forEach((entry) => {
2192 if (entry.uniqueId) {
2193 if (true) {
2194 warnUniqueIdNotSupported("bind", entry.uniqueId);
2195 }
2196 return;
2197 }
2198 const attribute = entry.suffix;
2199 let result = evaluate(entry);
2200 if (result === PENDING_GETTER) {
2201 return;
2202 }
2203 if (typeof result === "function") {
2204 result = result();
2205 }
2206 element.props[attribute] = result;
2207 useInit(() => {
2208 const el = element.ref.current;
2209 if (attribute === "style") {
2210 if (typeof result === "string") {
2211 el.style.cssText = result;
2212 }
2213 return;
2214 } else if (attribute !== "width" && attribute !== "height" && attribute !== "href" && attribute !== "list" && attribute !== "form" && /*
2215 * The value for `tabindex` follows the parsing rules for an
2216 * integer. If that fails, or if the attribute isn't present, then
2217 * the browsers should "follow platform conventions to determine if
2218 * the element should be considered as a focusable area",
2219 * practically meaning that most elements get a default of `-1` (not
2220 * focusable), but several also get a default of `0` (focusable in
2221 * order after all elements with a positive `tabindex` value).
2222 *
2223 * @see https://html.spec.whatwg.org/#tabindex-value
2224 */
2225 attribute !== "tabIndex" && attribute !== "download" && attribute !== "rowSpan" && attribute !== "colSpan" && attribute !== "role" && attribute !== "popover" && attribute in el) {
2226 try {
2227 el[attribute] = result === null || result === void 0 ? "" : result;
2228 return;
2229 } catch {
2230 }
2231 }
2232 if (result !== null && result !== void 0 && (result !== false || attribute[4] === "-")) {
2233 el.setAttribute(
2234 attribute,
2235 attribute === "popover" && result === true ? "" : result
2236 );
2237 } else {
2238 el.removeAttribute(attribute);
2239 }
2240 });
2241 });
2242 });
2243
2244 // packages/interactivity/build-module/directives/class.mjs
2245 directive(
2246 "class",
2247 ({ directives: { class: classNames }, element, evaluate }) => {
2248 classNames.filter(isNonDefaultDirectiveSuffix).forEach((entry) => {
2249 const className = entry.uniqueId ? `${entry.suffix}---${entry.uniqueId}` : entry.suffix;
2250 let result = evaluate(entry);
2251 if (result === PENDING_GETTER) {
2252 return;
2253 }
2254 if (typeof result === "function") {
2255 result = result();
2256 }
2257 const currentClass = element.props.class || "";
2258 const classFinder = new RegExp(
2259 `(^|\\s)${className}(\\s|$)`,
2260 "g"
2261 );
2262 if (!result) {
2263 element.props.class = currentClass.replace(classFinder, " ").trim();
2264 } else if (!classFinder.test(currentClass)) {
2265 element.props.class = currentClass ? `${currentClass} ${className}` : className;
2266 }
2267 useInit(() => {
2268 if (!result) {
2269 element.ref.current.classList.remove(className);
2270 } else {
2271 element.ref.current.classList.add(className);
2272 }
2273 });
2274 });
2275 }
2276 );
2277
2278 // packages/interactivity/build-module/directives/context.mjs
2279 init_preact_module();
2280 directive(
2281 "context",
2282 ({
2283 directives: { context: context2 },
2284 props: { children },
2285 context: inheritedContext
2286 }) => {
2287 const entries = context2.filter(isDefaultDirectiveSuffix).reverse();
2288 if (!entries.length) {
2289 if (true) {
2290 warn(
2291 "The usage of data-wp-context--unique-id (two hyphens) is not supported. To add a unique ID to the directive, please use data-wp-context---unique-id (three hyphens) instead."
2292 );
2293 }
2294 return;
2295 }
2296 const { Provider } = inheritedContext;
2297 const { client: inheritedClient, server: inheritedServer } = x2(inheritedContext);
2298 const client = A2({});
2299 const server = {};
2300 const result = {
2301 client: { ...inheritedClient },
2302 server: { ...inheritedServer }
2303 };
2304 const namespaces2 = /* @__PURE__ */ new Set();
2305 entries.forEach(({ value, namespace, uniqueId }) => {
2306 if (!isPlainObject(value)) {
2307 if (true) {
2308 warn(
2309 `The value of data-wp-context${uniqueId ? `---${uniqueId}` : ""} on the ${namespace} namespace must be a valid stringified JSON object.`
2310 );
2311 }
2312 return;
2313 }
2314 if (!client.current[namespace]) {
2315 client.current[namespace] = proxifyState(namespace, {});
2316 }
2317 deepMerge(client.current[namespace], deepClone(value), false);
2318 server[namespace] = value;
2319 namespaces2.add(namespace);
2320 });
2321 namespaces2.forEach((namespace) => {
2322 result.client[namespace] = proxifyContext(
2323 client.current[namespace],
2324 inheritedClient[namespace]
2325 );
2326 result.server[namespace] = proxifyContext(
2327 server[namespace],
2328 inheritedServer[namespace]
2329 );
2330 });
2331 return k(Provider, { value: result }, children);
2332 },
2333 { priority: 5 }
2334 );
2335
2336 // packages/interactivity/build-module/directives/each.mjs
2337 init_preact_module();
2338 var evaluateItemKey = (inheritedValue, namespace, item, itemProp, eachKey) => {
2339 const clientContextWithItem = {
2340 ...inheritedValue.client,
2341 [namespace]: {
2342 ...inheritedValue.client[namespace],
2343 [itemProp]: item
2344 }
2345 };
2346 const scope = {
2347 ...getScope(),
2348 context: clientContextWithItem,
2349 serverContext: inheritedValue.server
2350 };
2351 return eachKey ? getEvaluate({ scope })(eachKey) : item;
2352 };
2353 var useItemContexts = function* (inheritedValue, namespace, items, itemProp, eachKey) {
2354 const { current: itemContexts } = A2(/* @__PURE__ */ new Map());
2355 for (const item of items) {
2356 const key = evaluateItemKey(
2357 inheritedValue,
2358 namespace,
2359 item,
2360 itemProp,
2361 eachKey
2362 );
2363 if (!itemContexts.has(key)) {
2364 itemContexts.set(
2365 key,
2366 proxifyContext(
2367 proxifyState(namespace, {
2368 // Inits the item prop in the context to shadow it in case
2369 // it was inherited from the parent context. The actual
2370 // value is set in the `wp-each` directive later on.
2371 [itemProp]: void 0
2372 }),
2373 inheritedValue.client[namespace]
2374 )
2375 );
2376 }
2377 yield [item, itemContexts.get(key), key];
2378 }
2379 };
2380 directive(
2381 "each",
2382 ({
2383 directives: { each, "each-key": eachKey },
2384 context: inheritedContext,
2385 element,
2386 evaluate
2387 }) => {
2388 if (element.type !== "template") {
2389 if (true) {
2390 warn(
2391 "The data-wp-each directive can only be used on <template> elements."
2392 );
2393 }
2394 return;
2395 }
2396 const { Provider } = inheritedContext;
2397 const inheritedValue = x2(inheritedContext);
2398 const [entry] = each;
2399 const { namespace, suffix, uniqueId } = entry;
2400 if (each.length > 1) {
2401 if (true) {
2402 warn(
2403 "The usage of multiple data-wp-each directives on the same element is not supported. Please pick only one."
2404 );
2405 }
2406 return;
2407 }
2408 if (uniqueId) {
2409 if (true) {
2410 warnUniqueIdNotSupported("each", uniqueId);
2411 }
2412 return;
2413 }
2414 let iterable = evaluate(entry);
2415 if (iterable === PENDING_GETTER) {
2416 return;
2417 }
2418 if (typeof iterable === "function") {
2419 iterable = iterable();
2420 }
2421 if (typeof iterable?.[Symbol.iterator] !== "function") {
2422 return;
2423 }
2424 const itemProp = suffix ? kebabToCamelCase(suffix) : "item";
2425 const result = [];
2426 const itemContexts = useItemContexts(
2427 inheritedValue,
2428 namespace,
2429 iterable,
2430 itemProp,
2431 eachKey?.[0]
2432 );
2433 for (const [item, itemContext, key] of itemContexts) {
2434 const mergedContext = {
2435 client: {
2436 ...inheritedValue.client,
2437 [namespace]: itemContext
2438 },
2439 server: { ...inheritedValue.server }
2440 };
2441 mergedContext.client[namespace][itemProp] = item;
2442 result.push(
2443 k(
2444 Provider,
2445 { value: mergedContext, key },
2446 element.props.content
2447 )
2448 );
2449 }
2450 return result;
2451 },
2452 { priority: 20 }
2453 );
2454 directive(
2455 "each-child",
2456 ({ directives: { "each-child": eachChild }, element, evaluate }) => {
2457 const entry = eachChild.find(isDefaultDirectiveSuffix);
2458 if (!entry) {
2459 return;
2460 }
2461 const iterable = evaluate(entry);
2462 return iterable === PENDING_GETTER ? element : null;
2463 },
2464 { priority: 1 }
2465 );
2466
2467 // packages/interactivity/build-module/directives/ignore.mjs
2468 init_preact_module();
2469 directive(
2470 "ignore",
2471 ({
2472 element: {
2473 type: Type,
2474 props: { innerHTML, ...rest }
2475 }
2476 }) => {
2477 if (true) {
2478 warn(
2479 "The data-wp-ignore directive is deprecated and will be removed in version 7.0."
2480 );
2481 }
2482 const cached = T2(() => innerHTML, []);
2483 return k(Type, {
2484 dangerouslySetInnerHTML: { __html: cached },
2485 ...rest
2486 });
2487 }
2488 );
2489
2490 // packages/interactivity/build-module/directives/init.mjs
2491 directive("init", ({ directives: { init }, evaluate }) => {
2492 init.forEach((entry) => {
2493 if (true) {
2494 if (entry.suffix) {
2495 warnUniqueIdWithTwoHyphens("init", entry.suffix);
2496 }
2497 }
2498 useInit(() => {
2499 let start;
2500 if (true) {
2501 if (true) {
2502 start = performance.now();
2503 }
2504 }
2505 let result = evaluate(entry);
2506 if (typeof result === "function") {
2507 result = result();
2508 }
2509 if (true) {
2510 if (true) {
2511 performance.measure(
2512 `interactivity api init ${entry.namespace}`,
2513 {
2514 start,
2515 end: performance.now(),
2516 detail: {
2517 devtools: {
2518 track: `IA: init ${entry.namespace}`
2519 }
2520 }
2521 }
2522 );
2523 }
2524 }
2525 return result;
2526 });
2527 });
2528 });
2529
2530 // packages/interactivity/build-module/directives/on.mjs
2531 function wrapEventAsync(event) {
2532 const handler = {
2533 get(target, prop, receiver) {
2534 const value = target[prop];
2535 switch (prop) {
2536 case "currentTarget":
2537 if (true) {
2538 warn(
2539 `Accessing the synchronous event.${prop} property in a store action without wrapping it in withSyncEvent() is deprecated and will stop working in WordPress 7.0. Please wrap the store action in withSyncEvent().`
2540 );
2541 }
2542 break;
2543 case "preventDefault":
2544 case "stopImmediatePropagation":
2545 case "stopPropagation":
2546 if (true) {
2547 warn(
2548 `Using the synchronous event.${prop}() function in a store action without wrapping it in withSyncEvent() is deprecated and will stop working in WordPress 7.0. Please wrap the store action in withSyncEvent().`
2549 );
2550 }
2551 break;
2552 }
2553 if (value instanceof Function) {
2554 return function(...args) {
2555 return value.apply(
2556 this === receiver ? target : this,
2557 args
2558 );
2559 };
2560 }
2561 return value;
2562 }
2563 };
2564 return new Proxy(event, handler);
2565 }
2566 var getGlobalEventDirective = (type) => {
2567 return ({ directives, evaluate }) => {
2568 directives[`on-${type}`].filter(isNonDefaultDirectiveSuffix).forEach((entry) => {
2569 const suffixParts = entry.suffix.split("--", 2);
2570 const eventName = suffixParts[0];
2571 if (true) {
2572 if (suffixParts[1]) {
2573 warnUniqueIdWithTwoHyphens(
2574 `on-${type}`,
2575 suffixParts[0],
2576 suffixParts[1]
2577 );
2578 }
2579 }
2580 useInit(() => {
2581 const cb = (event) => {
2582 const result = evaluate(entry);
2583 if (typeof result === "function") {
2584 if (!result?.sync) {
2585 event = wrapEventAsync(event);
2586 }
2587 result(event);
2588 }
2589 };
2590 const globalVar = type === "window" ? window : document;
2591 globalVar.addEventListener(eventName, cb);
2592 return () => globalVar.removeEventListener(eventName, cb);
2593 });
2594 });
2595 };
2596 };
2597 var getGlobalAsyncEventDirective = (type) => {
2598 return ({ directives, evaluate }) => {
2599 directives[`on-async-${type}`].filter(isNonDefaultDirectiveSuffix).forEach((entry) => {
2600 if (true) {
2601 warnWithSyncEvent(`on-async-${type}`, `on-${type}`);
2602 }
2603 const eventName = entry.suffix.split("--", 1)[0];
2604 useInit(() => {
2605 const cb = async (event) => {
2606 await splitTask();
2607 const result = evaluate(entry);
2608 if (typeof result === "function") {
2609 result(event);
2610 }
2611 };
2612 const globalVar = type === "window" ? window : document;
2613 globalVar.addEventListener(eventName, cb, {
2614 passive: true
2615 });
2616 return () => globalVar.removeEventListener(eventName, cb);
2617 });
2618 });
2619 };
2620 };
2621 directive("on", ({ directives: { on }, element, evaluate }) => {
2622 const events = /* @__PURE__ */ new Map();
2623 on.filter(isNonDefaultDirectiveSuffix).forEach((entry) => {
2624 const suffixParts = entry.suffix.split("--", 2);
2625 if (true) {
2626 if (suffixParts[1]) {
2627 warnUniqueIdWithTwoHyphens(
2628 "on",
2629 suffixParts[0],
2630 suffixParts[1]
2631 );
2632 }
2633 }
2634 if (!events.has(suffixParts[0])) {
2635 events.set(suffixParts[0], /* @__PURE__ */ new Set());
2636 }
2637 events.get(suffixParts[0]).add(entry);
2638 });
2639 events.forEach((entries, eventType) => {
2640 const existingHandler = element.props[`on${eventType}`];
2641 element.props[`on${eventType}`] = (event) => {
2642 if (existingHandler) {
2643 existingHandler(event);
2644 }
2645 entries.forEach((entry) => {
2646 let start;
2647 if (true) {
2648 if (true) {
2649 start = performance.now();
2650 }
2651 }
2652 const result = evaluate(entry);
2653 if (typeof result === "function") {
2654 if (!result?.sync) {
2655 event = wrapEventAsync(event);
2656 }
2657 result(event);
2658 }
2659 if (true) {
2660 if (true) {
2661 performance.measure(
2662 `interactivity api on ${entry.namespace}`,
2663 {
2664 start,
2665 end: performance.now(),
2666 detail: {
2667 devtools: {
2668 track: `IA: on ${entry.namespace}`
2669 }
2670 }
2671 }
2672 );
2673 }
2674 }
2675 });
2676 };
2677 });
2678 });
2679 directive(
2680 "on-async",
2681 ({ directives: { "on-async": onAsync }, element, evaluate }) => {
2682 if (true) {
2683 warnWithSyncEvent("on-async", "on");
2684 }
2685 const events = /* @__PURE__ */ new Map();
2686 onAsync.filter(isNonDefaultDirectiveSuffix).forEach((entry) => {
2687 const event = entry.suffix.split("--", 1)[0];
2688 if (!events.has(event)) {
2689 events.set(event, /* @__PURE__ */ new Set());
2690 }
2691 events.get(event).add(entry);
2692 });
2693 events.forEach((entries, eventType) => {
2694 const existingHandler = element.props[`on${eventType}`];
2695 element.props[`on${eventType}`] = (event) => {
2696 if (existingHandler) {
2697 existingHandler(event);
2698 }
2699 entries.forEach(async (entry) => {
2700 await splitTask();
2701 const result = evaluate(entry);
2702 if (typeof result === "function") {
2703 result(event);
2704 }
2705 });
2706 };
2707 });
2708 }
2709 );
2710 directive("on-window", getGlobalEventDirective("window"));
2711 directive("on-document", getGlobalEventDirective("document"));
2712 directive("on-async-window", getGlobalAsyncEventDirective("window"));
2713 directive("on-async-document", getGlobalAsyncEventDirective("document"));
2714
2715 // packages/interactivity/build-module/directives/router-region.mjs
2716 init_preact_module();
2717 var routerRegions = /* @__PURE__ */ new Map();
2718 directive(
2719 "router-region",
2720 ({ directives: { "router-region": routerRegion } }) => {
2721 const entry = routerRegion.find(isDefaultDirectiveSuffix);
2722 if (!entry) {
2723 return;
2724 }
2725 if (entry.suffix) {
2726 if (true) {
2727 warn(
2728 `Suffixes for the data-wp-router-region directive are not supported. Ignoring the directive with suffix "${entry.suffix}".`
2729 );
2730 }
2731 return;
2732 }
2733 if (entry.uniqueId) {
2734 if (true) {
2735 warnUniqueIdNotSupported("router-region", entry.uniqueId);
2736 }
2737 return;
2738 }
2739 const regionId = typeof entry.value === "string" ? entry.value : entry.value.id;
2740 if (!routerRegions.has(regionId)) {
2741 routerRegions.set(regionId, d3());
2742 }
2743 const vdom = routerRegions.get(regionId).value;
2744 _2(() => {
2745 if (vdom && typeof vdom.type !== "string") {
2746 navigationContextSignal.value = navigationContextSignal.peek() + 1;
2747 }
2748 }, [vdom]);
2749 if (vdom && typeof vdom.type !== "string") {
2750 const previousScope = getScope();
2751 return W(vdom, { previousScope });
2752 }
2753 return vdom;
2754 },
2755 { priority: 1 }
2756 );
2757
2758 // packages/interactivity/build-module/directives/run.mjs
2759 directive("run", ({ directives: { run }, evaluate }) => {
2760 run.forEach((entry) => {
2761 if (true) {
2762 if (entry.suffix) {
2763 warnUniqueIdWithTwoHyphens("run", entry.suffix);
2764 }
2765 }
2766 let result = evaluate(entry);
2767 if (typeof result === "function") {
2768 result = result();
2769 }
2770 return result;
2771 });
2772 });
2773
2774 // packages/interactivity/build-module/directives/style.mjs
2775 var newRule = /(?:([\u0080-\uFFFF\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\s*)/g;
2776 var ruleClean = /\/\*[^]*?\*\/| +/g;
2777 var ruleNewline = /\n+/g;
2778 var empty = " ";
2779 var cssStringToObject = (val) => {
2780 const tree = [{}];
2781 let block, left;
2782 while (block = newRule.exec(val.replace(ruleClean, ""))) {
2783 if (block[4]) {
2784 tree.shift();
2785 } else if (block[3]) {
2786 left = block[3].replace(ruleNewline, empty).trim();
2787 tree.unshift(tree[0][left] = tree[0][left] || {});
2788 } else {
2789 tree[0][block[1]] = block[2].replace(ruleNewline, empty).trim();
2790 }
2791 }
2792 return tree[0];
2793 };
2794 directive("style", ({ directives: { style }, element, evaluate }) => {
2795 style.filter(isNonDefaultDirectiveSuffix).forEach((entry) => {
2796 if (entry.uniqueId) {
2797 if (true) {
2798 warnUniqueIdNotSupported("style", entry.uniqueId);
2799 }
2800 return;
2801 }
2802 const styleProp = entry.suffix;
2803 let result = evaluate(entry);
2804 if (result === PENDING_GETTER) {
2805 return;
2806 }
2807 if (typeof result === "function") {
2808 result = result();
2809 }
2810 element.props.style = element.props.style || {};
2811 if (typeof element.props.style === "string") {
2812 element.props.style = cssStringToObject(element.props.style);
2813 }
2814 if (!result) {
2815 delete element.props.style[styleProp];
2816 } else {
2817 element.props.style[styleProp] = result;
2818 }
2819 useInit(() => {
2820 if (!result) {
2821 element.ref.current.style.removeProperty(styleProp);
2822 } else {
2823 element.ref.current.style.setProperty(styleProp, result);
2824 }
2825 });
2826 });
2827 });
2828
2829 // packages/interactivity/build-module/directives/text.mjs
2830 directive("text", ({ directives: { text }, element, evaluate }) => {
2831 const entries = text.filter(isDefaultDirectiveSuffix);
2832 if (!entries.length) {
2833 if (true) {
2834 warn(
2835 "The usage of data-wp-text--suffix is not supported. Please use data-wp-text instead."
2836 );
2837 }
2838 return;
2839 }
2840 entries.forEach((entry) => {
2841 if (entry.uniqueId) {
2842 if (true) {
2843 warnUniqueIdNotSupported("text", entry.uniqueId);
2844 }
2845 return;
2846 }
2847 try {
2848 let result = evaluate(entry);
2849 if (result === PENDING_GETTER) {
2850 return;
2851 }
2852 if (typeof result === "function") {
2853 result = result();
2854 }
2855 element.props.children = typeof result === "object" ? null : result.toString();
2856 } catch {
2857 element.props.children = null;
2858 }
2859 });
2860 });
2861
2862 // packages/interactivity/build-module/directives/watch.mjs
2863 directive("watch", ({ directives: { watch: watch2 }, evaluate }) => {
2864 watch2.forEach((entry) => {
2865 if (true) {
2866 if (entry.suffix) {
2867 warnUniqueIdWithTwoHyphens("watch", entry.suffix);
2868 }
2869 }
2870 useWatch(() => {
2871 let start;
2872 if (true) {
2873 if (true) {
2874 start = performance.now();
2875 }
2876 }
2877 let result = evaluate(entry);
2878 if (typeof result === "function") {
2879 result = result();
2880 }
2881 if (true) {
2882 if (true) {
2883 performance.measure(
2884 `interactivity api watch ${entry.namespace}`,
2885 {
2886 start,
2887 end: performance.now(),
2888 detail: {
2889 devtools: {
2890 track: `IA: watch ${entry.namespace}`
2891 }
2892 }
2893 }
2894 );
2895 }
2896 }
2897 return result;
2898 });
2899 });
2900 });
2901
2902 // packages/interactivity/build-module/hydration.mjs
2903 init_preact_module();
2904
2905 // packages/interactivity/build-module/vdom.mjs
2906 init_preact_module();
2907 var directivePrefix = `data-wp-`;
2908 var namespaces = [];
2909 var currentNamespace = () => namespaces[namespaces.length - 1] ?? null;
2910 var isObject = (item) => Boolean(item && typeof item === "object" && item.constructor === Object);
2911 var invalidCharsRegex = /[^a-z0-9-_]/i;
2912 function parseDirectiveName(directiveName) {
2913 const name = directiveName.substring(8);
2914 if (invalidCharsRegex.test(name)) {
2915 return null;
2916 }
2917 const suffixIndex = name.indexOf("--");
2918 if (suffixIndex === -1) {
2919 return { prefix: name, suffix: null, uniqueId: null };
2920 }
2921 const prefix = name.substring(0, suffixIndex);
2922 const remaining = name.substring(suffixIndex);
2923 if (remaining.startsWith("---") && remaining[3] !== "-") {
2924 return {
2925 prefix,
2926 suffix: null,
2927 uniqueId: remaining.substring(3) || null
2928 };
2929 }
2930 let suffix = remaining.substring(2);
2931 const uniqueIdIndex = suffix.indexOf("---");
2932 if (uniqueIdIndex !== -1 && suffix.substring(uniqueIdIndex)[3] !== "-") {
2933 const uniqueId = suffix.substring(uniqueIdIndex + 3) || null;
2934 suffix = suffix.substring(0, uniqueIdIndex) || null;
2935 return { prefix, suffix, uniqueId };
2936 }
2937 return { prefix, suffix: suffix || null, uniqueId: null };
2938 }
2939 var nsPathRegExp = /^([\w_\/-]+)::(.+)$/;
2940 var hydratedIslands = /* @__PURE__ */ new WeakSet();
2941 function toVdom(root) {
2942 const nodesToRemove = /* @__PURE__ */ new Set();
2943 const nodesToReplace = /* @__PURE__ */ new Set();
2944 const treeWalker = document.createTreeWalker(
2945 root,
2946 205
2947 // TEXT + CDATA_SECTION + COMMENT + PROCESSING_INSTRUCTION + ELEMENT
2948 );
2949 function walk(node) {
2950 const { nodeType } = node;
2951 if (nodeType === 3) {
2952 return node.data;
2953 }
2954 if (nodeType === 4) {
2955 nodesToReplace.add(node);
2956 return node.nodeValue;
2957 }
2958 if (nodeType === 8 || nodeType === 7) {
2959 nodesToRemove.add(node);
2960 return null;
2961 }
2962 const elementNode = node;
2963 const { attributes } = elementNode;
2964 const localName = elementNode.localName;
2965 const props = {};
2966 const children = [];
2967 const directives = [];
2968 let ignore = false;
2969 let island = false;
2970 for (let i6 = 0; i6 < attributes.length; i6++) {
2971 const attributeName = attributes[i6].name;
2972 const attributeValue = attributes[i6].value;
2973 if (attributeName[directivePrefix.length] && attributeName.slice(0, directivePrefix.length) === directivePrefix) {
2974 if (attributeName === "data-wp-ignore") {
2975 ignore = true;
2976 } else {
2977 const regexResult = nsPathRegExp.exec(attributeValue);
2978 const namespace = regexResult?.[1] ?? null;
2979 let value = regexResult?.[2] ?? attributeValue;
2980 try {
2981 const parsedValue = JSON.parse(value);
2982 value = isObject(parsedValue) ? parsedValue : value;
2983 } catch {
2984 }
2985 if (attributeName === "data-wp-interactive") {
2986 island = true;
2987 const islandNamespace = (
2988 // eslint-disable-next-line no-nested-ternary
2989 typeof value === "string" ? value : typeof value?.namespace === "string" ? value.namespace : null
2990 );
2991 namespaces.push(islandNamespace);
2992 } else {
2993 directives.push([attributeName, namespace, value]);
2994 }
2995 }
2996 } else if (attributeName === "ref") {
2997 continue;
2998 }
2999 if (attributeValue === "" && elementNode[attributeName] === true) {
3000 props[attributeName] = true;
3001 } else {
3002 props[attributeName] = attributeValue;
3003 }
3004 }
3005 if (ignore && !island) {
3006 return [
3007 k(localName, {
3008 ...props,
3009 innerHTML: elementNode.innerHTML,
3010 __directives: { ignore: true }
3011 })
3012 ];
3013 }
3014 if (island) {
3015 hydratedIslands.add(elementNode);
3016 }
3017 if (directives.length) {
3018 props.__directives = directives.reduce((obj, [name, ns, value]) => {
3019 const directiveParsed = parseDirectiveName(name);
3020 if (directiveParsed === null) {
3021 if (true) {
3022 warn(`Found malformed directive name: ${name}.`);
3023 }
3024 return obj;
3025 }
3026 const { prefix, suffix, uniqueId } = directiveParsed;
3027 obj[prefix] = obj[prefix] || [];
3028 obj[prefix].push({
3029 namespace: ns ?? currentNamespace(),
3030 value,
3031 suffix,
3032 uniqueId
3033 });
3034 return obj;
3035 }, {});
3036 for (const prefix in props.__directives) {
3037 props.__directives[prefix].sort(
3038 (a5, b4) => {
3039 const aSuffix = a5.suffix ?? "";
3040 const bSuffix = b4.suffix ?? "";
3041 if (aSuffix !== bSuffix) {
3042 return aSuffix < bSuffix ? -1 : 1;
3043 }
3044 const aId = a5.uniqueId ?? "";
3045 const bId = b4.uniqueId ?? "";
3046 return +(aId > bId) - +(aId < bId);
3047 }
3048 );
3049 }
3050 }
3051 if (props.__directives?.["each-child"]) {
3052 props.dangerouslySetInnerHTML = {
3053 __html: elementNode.innerHTML
3054 };
3055 } else if (localName === "template") {
3056 props.content = [
3057 ...elementNode.content.childNodes
3058 ].map((childNode) => toVdom(childNode));
3059 } else {
3060 let child = treeWalker.firstChild();
3061 if (child) {
3062 while (child) {
3063 const vnode = walk(child);
3064 if (vnode) {
3065 children.push(vnode);
3066 }
3067 child = treeWalker.nextSibling();
3068 }
3069 treeWalker.parentNode();
3070 }
3071 }
3072 if (island) {
3073 namespaces.pop();
3074 }
3075 return k(localName, props, children);
3076 }
3077 const vdom = walk(treeWalker.currentNode);
3078 nodesToRemove.forEach(
3079 (node) => node.remove()
3080 );
3081 nodesToReplace.forEach(
3082 (node) => node.replaceWith(
3083 new window.Text(node.nodeValue ?? "")
3084 )
3085 );
3086 return vdom;
3087 }
3088
3089 // packages/interactivity/build-module/hydration.mjs
3090 var regionRootFragments = /* @__PURE__ */ new WeakMap();
3091 var getRegionRootFragment = (regions) => {
3092 const region = Array.isArray(regions) ? regions[0] : regions;
3093 if (!region.parentElement) {
3094 throw Error("The passed region should be an element with a parent.");
3095 }
3096 if (!regionRootFragments.has(region)) {
3097 regionRootFragments.set(
3098 region,
3099 createRootFragment(region.parentElement, regions)
3100 );
3101 }
3102 return regionRootFragments.get(region);
3103 };
3104 var initialVdom = /* @__PURE__ */ new WeakMap();
3105 var resolveInitialVdom;
3106 var initialVdomPromise = new Promise((resolve2) => {
3107 resolveInitialVdom = resolve2;
3108 });
3109 var hydrateRegions = async () => {
3110 const nodes = document.querySelectorAll(`[data-wp-interactive]`);
3111 for (const node of nodes) {
3112 if (!hydratedIslands.has(node)) {
3113 await splitTask();
3114 const fragment = getRegionRootFragment(node);
3115 const vdom = toVdom(node);
3116 initialVdom.set(node, vdom);
3117 await splitTask();
3118 U(vdom, fragment);
3119 }
3120 }
3121 resolveInitialVdom(initialVdom);
3122 };
3123
3124 // packages/interactivity/build-module/index.mjs
3125 if (true) {
3126 await Promise.resolve().then(() => (init_debug_module(), debug_module_exports));
3127 }
3128 var watch = E2;
3129 var requiredConsent = "I acknowledge that using private APIs means my theme or plugin will inevitably break in the next version of WordPress.";
3130 var privateApis = (lock) => {
3131 if (lock === requiredConsent) {
3132 return {
3133 getRegionRootFragment,
3134 initialVdomPromise,
3135 toVdom,
3136 directive,
3137 getNamespace,
3138 h: k,
3139 cloneElement: W,
3140 render: R,
3141 proxifyState,
3142 parseServerData,
3143 populateServerData,
3144 batch: r3,
3145 routerRegions,
3146 deepReadOnly,
3147 navigationSignal,
3148 sessionId,
3149 warn
3150 };
3151 }
3152 throw new Error("Forbidden access.");
3153 };
3154 populateServerData(parseServerData());
3155 onDOMReady(hydrateRegions);
3156 window.history.replaceState(
3157 { ...window.history.state, wpInteractivityId: sessionId },
3158 ""
3159 );
3160 window.addEventListener("popstate", (event) => {
3161 if (event.state !== null && event.state?.wpInteractivityId !== sessionId) {
3162 window.location.reload();
3163 }
3164 });
3165 export {
3166 getConfig,
3167 getContext,
3168 getElement,
3169 getServerContext,
3170 getServerState,
3171 privateApis,
3172 splitTask,
3173 store,
3174 useCallback,
3175 useEffect,
3176 useInit,
3177 useLayoutEffect,
3178 useMemo,
3179 A2 as useRef,
3180 d2 as useState,
3181 useWatch,
3182 watch,
3183 withScope,
3184 withSyncEvent
3185 };
3186 //# sourceMappingURL=index.js.map
3187