{"version":3,"file":"component-D8ydhe58-BlLnmvgC.cjs","names":["T","O","F","k","z","M","P","V","A","f","R","h","X","C","K","d","Y","G","Z","ee","t","n","l","c","d","u","o","f","v","b","g","h","y","c","s","f","t","d","i","c","y","v","c","b","_","l","h","r","c","u","i","a","o","d","b","o","q","I","N","L","D","j","U"],"sources":["../node_modules/@bquery/bquery/dist/sanitize-DOMkRO9G.js","../node_modules/@bquery/bquery/dist/core-CongXJuo.js","../node_modules/@bquery/bquery/dist/object-BCk-1c8T.js","../node_modules/@bquery/bquery/dist/config-DhT9auRm.js","../node_modules/@bquery/bquery/dist/effect-Cc51IH91.js","../node_modules/@bquery/bquery/dist/untrack-bjWDNdyE.js","../node_modules/@bquery/bquery/dist/env-PvwYHnJq.js","../node_modules/@bquery/bquery/dist/component-D8ydhe58.js"],"sourcesContent":["var T = \"bquery-sanitizer\", U = /* @__PURE__ */ new Set([\n  \"a\",\n  \"abbr\",\n  \"address\",\n  \"article\",\n  \"aside\",\n  \"b\",\n  \"bdi\",\n  \"bdo\",\n  \"blockquote\",\n  \"br\",\n  \"button\",\n  \"caption\",\n  \"cite\",\n  \"code\",\n  \"col\",\n  \"colgroup\",\n  \"data\",\n  \"dd\",\n  \"del\",\n  \"details\",\n  \"dfn\",\n  \"div\",\n  \"dl\",\n  \"dt\",\n  \"em\",\n  \"figcaption\",\n  \"figure\",\n  \"footer\",\n  \"form\",\n  \"h1\",\n  \"h2\",\n  \"h3\",\n  \"h4\",\n  \"h5\",\n  \"h6\",\n  \"header\",\n  \"hgroup\",\n  \"hr\",\n  \"i\",\n  \"img\",\n  \"input\",\n  \"ins\",\n  \"kbd\",\n  \"label\",\n  \"legend\",\n  \"li\",\n  \"main\",\n  \"mark\",\n  \"nav\",\n  \"ol\",\n  \"optgroup\",\n  \"option\",\n  \"p\",\n  \"picture\",\n  \"pre\",\n  \"progress\",\n  \"q\",\n  \"rp\",\n  \"rt\",\n  \"ruby\",\n  \"s\",\n  \"samp\",\n  \"section\",\n  \"select\",\n  \"small\",\n  \"source\",\n  \"span\",\n  \"strong\",\n  \"sub\",\n  \"summary\",\n  \"sup\",\n  \"table\",\n  \"tbody\",\n  \"td\",\n  \"textarea\",\n  \"tfoot\",\n  \"th\",\n  \"thead\",\n  \"time\",\n  \"tr\",\n  \"u\",\n  \"ul\",\n  \"var\",\n  \"wbr\"\n]), S = /* @__PURE__ */ new Set([\n  \"script\",\n  \"iframe\",\n  \"frame\",\n  \"frameset\",\n  \"object\",\n  \"embed\",\n  \"applet\",\n  \"link\",\n  \"meta\",\n  \"style\",\n  \"base\",\n  \"template\",\n  \"math\",\n  \"svg\",\n  \"foreignobject\",\n  \"noscript\"\n]), O = /* @__PURE__ */ new Set([\n  \"document\",\n  \"window\",\n  \"location\",\n  \"top\",\n  \"self\",\n  \"parent\",\n  \"frames\",\n  \"history\",\n  \"navigator\",\n  \"screen\",\n  \"alert\",\n  \"confirm\",\n  \"prompt\",\n  \"eval\",\n  \"function\",\n  \"cookie\",\n  \"domain\",\n  \"referrer\",\n  \"body\",\n  \"head\",\n  \"forms\",\n  \"images\",\n  \"links\",\n  \"scripts\",\n  \"children\",\n  \"parentnode\",\n  \"firstchild\",\n  \"lastchild\",\n  \"innerhtml\",\n  \"outerhtml\",\n  \"textcontent\"\n]), F = /* @__PURE__ */ new Set([\n  \"alt\",\n  \"class\",\n  \"dir\",\n  \"height\",\n  \"hidden\",\n  \"href\",\n  \"id\",\n  \"lang\",\n  \"loading\",\n  \"name\",\n  \"rel\",\n  \"role\",\n  \"src\",\n  \"srcset\",\n  \"tabindex\",\n  \"target\",\n  \"title\",\n  \"type\",\n  \"width\",\n  \"aria-*\"\n]), W = [\n  \"on\",\n  \"formaction\",\n  \"xlink:\",\n  \"xmlns:\"\n], k = [\n  \"javascript:\",\n  \"data:\",\n  \"vbscript:\",\n  \"file:\"\n], z = (e, t, r) => {\n  const a = e.toLowerCase();\n  for (const l of W) if (a.startsWith(l)) return !1;\n  return r && a.startsWith(\"data-\") || a.startsWith(\"aria-\") ? !0 : t.has(a);\n}, M = (e) => {\n  const t = e.toLowerCase().trim();\n  return !O.has(t);\n}, P = (e) => e.replace(/[\\u0000-\\u001F\\u007F]+/g, \"\").replace(/[\\u200B-\\u200D\\uFEFF\\u2028\\u2029]+/g, \"\").replace(/\\\\u[\\da-fA-F]{4}/g, \"\").replace(/\\s+/g, \"\").toLowerCase(), L = (e) => {\n  const t = P(e);\n  for (const r of k) if (t.startsWith(r)) return !1;\n  return !0;\n}, q = (e) => {\n  const t = e.split(\",\");\n  for (const r of t) {\n    const a = r.trim().split(/\\s+/)[0];\n    if (a && !L(a)) return !1;\n  }\n  return !0;\n}, I = (e) => {\n  try {\n    const t = e.trim();\n    if (t.startsWith(\"//\")) return !0;\n    const r = t.toLowerCase();\n    return /^[a-z][a-z0-9+.-]*:/i.test(t) && !r.startsWith(\"http://\") && !r.startsWith(\"https://\") ? !0 : !r.startsWith(\"http://\") && !r.startsWith(\"https://\") ? !1 : typeof window > \"u\" || !window.location ? !0 : new URL(t, window.location.href).origin !== window.location.origin;\n  } catch {\n    return !0;\n  }\n}, V = (e) => new DOMParser().parseFromString(e, \"text/html\"), A = (e) => {\n  const t = (typeof e == \"string\" ? e : String(e ?? \"\")).trim(), r = document.createDocumentFragment();\n  if (t.length === 0) return r;\n  if (!(t.includes(\"<\") || t.includes(\">\")))\n    return r.appendChild(document.createTextNode(t)), r;\n  const a = V(t).body;\n  if (!a) return r;\n  for (; a.firstChild; ) r.appendChild(a.firstChild);\n  return r;\n}, f = (e, t = {}) => {\n  const { allowTags: r = [], allowAttributes: a = [], allowDataAttributes: l = !0, stripAllTags: _ = !1 } = t, x = new Set([...U, ...r.map((n) => n.toLowerCase())].filter((n) => !S.has(n))), H = /* @__PURE__ */ new Set([...F, ...a.map((n) => n.toLowerCase())]), c = A(e);\n  if (_) return c.textContent ?? \"\";\n  const g = document.createTreeWalker(c, NodeFilter.SHOW_ELEMENT), p = [];\n  for (; g.nextNode(); ) {\n    const n = g.currentNode, i = n.tagName.toLowerCase();\n    if (S.has(i)) {\n      p.push(n);\n      continue;\n    }\n    if (!x.has(i)) {\n      p.push(n);\n      continue;\n    }\n    const u = [];\n    for (const o of Array.from(n.attributes)) {\n      const s = o.name.toLowerCase();\n      if (!z(s, H, l)) {\n        u.push(o.name);\n        continue;\n      }\n      if ((s === \"id\" || s === \"name\") && !M(o.value)) {\n        u.push(o.name);\n        continue;\n      }\n      if ((s === \"href\" || s === \"src\" || s === \"action\") && !L(o.value)) {\n        u.push(o.name);\n        continue;\n      }\n      s === \"srcset\" && !q(o.value) && u.push(o.name);\n    }\n    for (const o of u) n.removeAttribute(o);\n    if (i === \"a\") {\n      const o = n.getAttribute(\"href\"), s = n.getAttribute(\"target\")?.toLowerCase() === \"_blank\", D = o && I(o);\n      if (s || D) {\n        const y = n.getAttribute(\"rel\"), m = new Set(y ? y.split(/\\s+/).filter(Boolean) : []);\n        m.add(\"noopener\"), m.add(\"noreferrer\"), n.setAttribute(\"rel\", Array.from(m).join(\" \"));\n      }\n    }\n  }\n  for (const n of p) n.remove();\n  const w = (n) => {\n    const i = document.createElement(\"div\");\n    return i.appendChild(n.cloneNode(!0)), i.innerHTML;\n  }, b = w(c), v = w(A(b));\n  return b !== v ? c.textContent ?? \"\" : v;\n}, R = /* @__PURE__ */ Symbol(\"bquery.trusted-html.brand\"), h = /* @__PURE__ */ Symbol(\"bquery.trusted-html\"), j = (e) => e, B = (e) => {\n  const t = String(e);\n  return Object.freeze({\n    [R]: !0,\n    [h]: t,\n    toString: () => t\n  });\n}, $ = (e) => typeof e == \"object\" && e !== null && R in e && h in e, X = (e) => e[h], E = 1024, C = 8192, K = (e = 16) => {\n  if (!Number.isInteger(e) || e < 1) throw new RangeError(\"generateNonce length must be a positive integer\");\n  if (e > E) throw new RangeError(`generateNonce length must not exceed ${E}`);\n  if (typeof globalThis.crypto > \"u\" || typeof globalThis.crypto.getRandomValues != \"function\") throw new Error(\"generateNonce requires crypto.getRandomValues (not available in this environment)\");\n  if (typeof globalThis.btoa != \"function\") throw new Error(\"generateNonce requires btoa (not available in this environment)\");\n  const t = new Uint8Array(e);\n  globalThis.crypto.getRandomValues(t);\n  let r = \"\";\n  for (let a = 0; a < t.length; a += C) {\n    const l = t.subarray(a, Math.min(a + C, t.length));\n    r += String.fromCharCode(...l);\n  }\n  return globalThis.btoa(r).replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/=/g, \"\");\n}, Q = (e) => {\n  if (typeof document > \"u\") return !1;\n  const t = document.querySelector('meta[http-equiv=\"Content-Security-Policy\"]');\n  return t ? (t.getAttribute(\"content\") ?? \"\").includes(e) : !1;\n}, d = null, N = !1, Y = () => typeof window < \"u\" && typeof window.trustedTypes < \"u\", G = () => {\n  if (d) return d;\n  if (N || typeof window > \"u\") return null;\n  const e = window;\n  if (!e.trustedTypes) return null;\n  N = !0;\n  try {\n    return d = e.trustedTypes.createPolicy(T, { createHTML: (t) => f(t) }), d;\n  } catch (t) {\n    const r = t instanceof Error ? t.message : String(t);\n    return console.warn(`bQuery: Could not create Trusted Types policy \"${T}\": ${r}`), null;\n  }\n}, Z = (e) => {\n  const t = G();\n  return t ? t.createHTML(e) : f(e);\n}, J = (e, t = {}) => j(f(e, t)), ee = (e) => {\n  const t = {\n    \"&\": \"&amp;\",\n    \"<\": \"&lt;\",\n    \">\": \"&gt;\",\n    '\"': \"&quot;\",\n    \"'\": \"&#x27;\",\n    \"`\": \"&#x60;\"\n  };\n  return e.replace(/[&<>\"'`]/g, (r) => t[r]);\n}, te = (e) => f(e, { stripAllTags: !0 });\nexport {\n  U as _,\n  G as a,\n  Q as c,\n  B as d,\n  X as f,\n  F as g,\n  S as h,\n  Z as i,\n  $ as l,\n  k as m,\n  J as n,\n  Y as o,\n  W as p,\n  te as r,\n  K as s,\n  ee as t,\n  j as u,\n  O as v\n};\n\n//# sourceMappingURL=sanitize-DOMkRO9G.js.map","var t = [], a = 0, n = /* @__PURE__ */ new Set(), i = /* @__PURE__ */ new WeakMap(), l = (e, r) => {\n  t.push(e);\n  try {\n    return r();\n  } finally {\n    t.pop();\n  }\n}, c = () => t[t.length - 1], d = (e) => {\n  t.push(void 0);\n  try {\n    return e();\n  } finally {\n    t.pop();\n  }\n}, u = (e) => {\n  if (a > 0) {\n    n.add(e);\n    return;\n  }\n  e();\n}, o = () => {\n  for (const e of Array.from(n)) {\n    n.delete(e);\n    try {\n      e();\n    } catch (r) {\n      console.error(\"bQuery reactive: Error in observer during batch flush\", r);\n    }\n  }\n}, f = () => {\n  a += 1;\n}, p = () => {\n  a <= 0 || (a -= 1, a === 0 && o());\n}, v = (e, r) => {\n  let s = i.get(e);\n  s || (s = /* @__PURE__ */ new Set(), i.set(e, s)), s.add(r);\n}, b = (e, r) => {\n  const s = i.get(e);\n  s && s.delete(r);\n}, g = (e) => {\n  const r = i.get(e);\n  if (r) {\n    for (const s of r) s.unsubscribe(e);\n    r.clear();\n  }\n}, h = class {\n  constructor(e) {\n    this._value = e, this.subscribers = /* @__PURE__ */ new Set();\n  }\n  get value() {\n    const e = c();\n    return e && (this.subscribers.add(e), v(e, this)), this._value;\n  }\n  set value(e) {\n    if (Object.is(this._value, e)) return;\n    this._value = e;\n    const r = Array.from(this.subscribers);\n    for (const s of r) u(s);\n  }\n  peek() {\n    return this._value;\n  }\n  update(e) {\n    this.value = e(this._value);\n  }\n  dispose() {\n    for (const e of this.subscribers) b(e, this);\n    this.subscribers.clear();\n  }\n  unsubscribe(e) {\n    this.subscribers.delete(e);\n  }\n}, y = (e) => new h(e);\nexport {\n  p as a,\n  u as c,\n  g as i,\n  l,\n  y as n,\n  c as o,\n  f as r,\n  v as s,\n  h as t,\n  d as u\n};\n\n//# sourceMappingURL=core-CongXJuo.js.map","function c(t) {\n  return Object.prototype.toString.call(t) === \"[object Object]\";\n}\nfunction s(t) {\n  return t === \"__proto__\" || t === \"constructor\" || t === \"prototype\";\n}\nfunction i(t) {\n  return typeof structuredClone == \"function\" ? structuredClone(t) : JSON.parse(JSON.stringify(t));\n}\nfunction u(...t) {\n  const o = {};\n  for (const r of t) for (const [n, e] of Object.entries(r))\n    s(n) || (c(e) && c(o[n]) ? o[n] = u(o[n], e) : o[n] = e);\n  return o;\n}\nfunction f(t, o) {\n  const r = {};\n  for (const n of o) n in t && (r[n] = t[n]);\n  return r;\n}\nfunction l(t, o) {\n  const r = { ...t };\n  for (const n of o) delete r[n];\n  return r;\n}\nfunction a(t, o) {\n  return Object.prototype.hasOwnProperty.call(t, o);\n}\nexport {\n  u as a,\n  s as i,\n  a as n,\n  l as o,\n  c as r,\n  f as s,\n  i as t\n};\n\n//# sourceMappingURL=object-BCk-1c8T.js.map","import { a as i, r as f } from \"./object-BCk-1c8T.js\";\nvar s = {\n  fetch: {\n    headers: {},\n    parseAs: \"json\"\n  },\n  cookies: {\n    path: \"/\",\n    sameSite: \"Lax\",\n    secure: !1\n  },\n  announcer: {\n    politeness: \"polite\",\n    atomic: !0,\n    delay: 16,\n    clearDelay: 1e3\n  },\n  pageMeta: {},\n  transitions: {\n    skipOnReducedMotion: !1,\n    classes: [],\n    types: []\n  },\n  components: { prefix: \"bq\" }\n}, r = (e) => {\n  if (typeof Headers < \"u\" && e instanceof Headers) return new Headers(e);\n  if (Array.isArray(e)) return e.map((n) => r(n));\n  if (f(e)) {\n    const n = {};\n    for (const [a, o] of Object.entries(e)) n[a] = r(o);\n    return n;\n  }\n  return e;\n}, t = r(s), d = (e) => (t = r(i(s, t, e)), c()), c = () => r(t);\nexport {\n  c as n,\n  d as t\n};\n\n//# sourceMappingURL=config-DhT9auRm.js.map","import { i as l, l as h } from \"./core-CongXJuo.js\";\nvar t = [], n = (e) => typeof e == \"object\" && e !== null && \"_addDisposer\" in e, y = (e) => (typeof e == \"object\" || typeof e == \"function\") && e !== null && typeof e.then == \"function\", v = (e) => {\n  const r = typeof e.constructor == \"function\" ? e.constructor.name : void 0;\n  return typeof e == \"function\" && (Symbol.toStringTag in e && e[Symbol.toStringTag] === \"AsyncFunction\" || r === \"AsyncFunction\");\n}, c = () => {\n  for (let e = t.length - 1; e >= 0; e--) if (t[e].active) return t[e];\n}, d = class {\n  constructor() {\n    this.disposers = [], this._active = !0;\n  }\n  get active() {\n    return this._active;\n  }\n  _addDisposer(e) {\n    this._active && this.disposers.push(e);\n  }\n  run(e) {\n    if (!this._active) throw new Error(\"bQuery reactive: Cannot run in a stopped effectScope\");\n    if (v(e)) throw new Error(\"bQuery reactive: effectScope.run() only supports synchronous callbacks\");\n    t.push(this);\n    try {\n      const r = e();\n      if (y(r))\n        throw this.stop(), new Error(\"bQuery reactive: effectScope.run() only supports synchronous callbacks\");\n      return r;\n    } finally {\n      t.pop();\n    }\n  }\n  stop() {\n    if (this._active) {\n      this._active = !1;\n      for (let e = this.disposers.length - 1; e >= 0; e--) try {\n        this.disposers[e]();\n      } catch (r) {\n        console.error(\"bQuery reactive: Error in scope cleanup\", r);\n      }\n      this.disposers.length = 0;\n    }\n  }\n}, b = () => {\n  const e = new d(), r = c();\n  return n(r) && r._addDisposer(() => e.stop()), e;\n}, _ = () => c(), g = (e) => {\n  const r = c();\n  if (!r || !r.active || !n(r)) throw new Error(\"bQuery reactive: onScopeDispose() must be called inside an active effectScope\");\n  r._addDisposer(e);\n}, D = (e) => {\n  let r, o = !1;\n  const a = c(), p = () => {\n    if (r) {\n      try {\n        r();\n      } catch (i) {\n        console.error(\"bQuery reactive: Error in effect cleanup\", i);\n      }\n      r = void 0;\n    }\n  }, f = () => {\n    p(), l(s);\n  }, u = () => {\n    o || (o = !0, f());\n  };\n  n(a) && a._addDisposer(u);\n  const s = () => {\n    if (!o) {\n      p(), l(s);\n      try {\n        r = h(s, e);\n      } catch (i) {\n        console.error(\"bQuery reactive: Error in effect\", i);\n      }\n      o && f();\n    }\n  };\n  return s(), u;\n};\nexport {\n  n as a,\n  _ as i,\n  b as n,\n  g as o,\n  c as r,\n  D as t\n};\n\n//# sourceMappingURL=effect-Cc51IH91.js.map","import { c as h, i, l as a, o as c, s as u, u as r } from \"./core-CongXJuo.js\";\nimport { a as d, r as o } from \"./effect-Cc51IH91.js\";\nvar l = class {\n  constructor(s) {\n    this.compute = s, this.hasCachedValue = !1, this.dirty = !0, this.disposed = !1, this.subscribers = /* @__PURE__ */ new Set(), this.markDirty = () => {\n      if (this.disposed) return;\n      this.dirty = !0;\n      const e = Array.from(this.subscribers);\n      for (const t of e) h(t);\n    };\n  }\n  get value() {\n    if (this.disposed)\n      return this.hasCachedValue || (this.cachedValue = r(() => this.compute()), this.hasCachedValue = !0), this.cachedValue;\n    const s = c();\n    return s && (this.subscribers.add(s), u(s, this)), this.dirty && (this.dirty = !1, i(this.markDirty), this.cachedValue = a(this.markDirty, this.compute), this.hasCachedValue = !0), this.cachedValue;\n  }\n  peek() {\n    return this.disposed ? (this.hasCachedValue || (this.cachedValue = r(() => this.compute()), this.hasCachedValue = !0), this.cachedValue) : (this.dirty && (this.dirty = !1, i(this.markDirty), this.cachedValue = a(this.markDirty, this.compute), this.hasCachedValue = !0), this.cachedValue);\n  }\n  unsubscribe(s) {\n    this.subscribers.delete(s);\n  }\n  dispose() {\n    this.disposed = !0, this.dirty && (this.hasCachedValue = !1), this.dirty = !1, i(this.markDirty), this.subscribers.clear();\n  }\n}, f = (s) => {\n  const e = new l(s), t = o();\n  return d(t) && t._addDisposer(() => e.dispose()), e;\n}, b = (s) => r(s);\nexport {\n  l as n,\n  f as r,\n  b as t\n};\n\n//# sourceMappingURL=untrack-bjWDNdyE.js.map","var o = () => {\n  try {\n    const e = globalThis;\n    if (typeof e.__BQUERY_DEV__ == \"boolean\") return e.__BQUERY_DEV__;\n    const r = e.process?.env?.NODE_ENV;\n    if (typeof r == \"string\") return r !== \"production\";\n    const n = e.process?.versions?.node;\n    if (typeof n == \"string\" && n.length > 0) return !0;\n    const t = e.process?.release?.name;\n    return t === \"node\" || t === \"io.js\";\n  } catch {\n    return !1;\n  }\n};\nexport {\n  o as t\n};\n\n//# sourceMappingURL=env-PvwYHnJq.js.map","import { f as L, l as N, n as I, t as j, u as D } from \"./sanitize-DOMkRO9G.js\";\nimport { n as Q } from \"./core-CongXJuo.js\";\nimport { n as U } from \"./config-DhT9auRm.js\";\nimport { t as q } from \"./effect-Cc51IH91.js\";\nimport { r as W, t as w } from \"./untrack-bjWDNdyE.js\";\nimport { t as J } from \"./env-PvwYHnJq.js\";\nvar F = (r, e) => {\n  const { type: o } = e;\n  if (o === String) return r;\n  if (o === Number) return Number(r);\n  if (o === Boolean) {\n    const t = r.trim().toLowerCase();\n    return t === \"\" || t === \"true\" || t === \"1\" ? !0 : t === \"false\" || t === \"0\" ? !1 : !!r;\n  }\n  if (o === Object || o === Array) try {\n    return JSON.parse(r);\n  } catch {\n    return r;\n  }\n  if (typeof o == \"function\") {\n    const t = o, s = o;\n    if (e.construct === !0) return Reflect.construct(s, [r]);\n    if (e.construct === !1) return t(r);\n    const l = o.prototype !== void 0 && o.prototype !== null, g = (l ? Object.getOwnPropertyNames(o.prototype) : []).length > 1, S = l && o.prototype.constructor !== o, E = /^class\\s/.test(Function.prototype.toString.call(o));\n    if (g || S || E) try {\n      return Reflect.construct(s, [r]);\n    } catch {\n      return t(r);\n    }\n    try {\n      const f = t(r);\n      if (f === void 0 && l) try {\n        return Reflect.construct(s, [r]);\n      } catch {\n        return f;\n      }\n      return f;\n    } catch (f) {\n      if (f instanceof TypeError && /cannot be invoked without 'new'|is not a function/i.test(f.message)) return Reflect.construct(s, [r]);\n      throw f;\n    }\n  }\n  return r;\n}, y;\nfunction h(r) {\n  const e = y;\n  return y = r, e;\n}\nfunction R() {\n  const r = [];\n  return {\n    addDisposer(e) {\n      r.push(e);\n    },\n    dispose() {\n      for (const e of r) try {\n        e();\n      } catch (o) {\n        J() && typeof console < \"u\" && typeof console.error == \"function\" && console.error(\"bQuery component: Error disposing scoped resource\", o);\n      }\n      r.length = 0;\n    }\n  };\n}\nfunction le(r) {\n  const e = y;\n  if (!e) throw new Error(\"bQuery component: useSignal() must be called inside a component lifecycle hook. Avoid calling it directly from render()\");\n  const o = Q(r);\n  return e.addDisposer(() => o.dispose()), o;\n}\nfunction ie(r) {\n  const e = y;\n  if (!e) throw new Error(\"bQuery component: useComputed() must be called inside a component lifecycle hook. Avoid calling it directly from render()\");\n  const o = W(r);\n  return e.addDisposer(() => o.dispose()), o;\n}\nfunction ce(r) {\n  const e = y;\n  if (!e) throw new Error(\"bQuery component: useEffect() must be called inside a component lifecycle hook. Avoid calling it directly from render()\");\n  const o = q(r);\n  return e.addDisposer(o), o;\n}\nvar G = [\"slot\"], K = [\n  \"part\",\n  \"disabled\",\n  \"checked\",\n  \"placeholder\",\n  \"value\",\n  \"rows\",\n  \"cols\",\n  \"readonly\",\n  \"required\",\n  \"maxlength\",\n  \"minlength\",\n  \"max\",\n  \"min\",\n  \"step\",\n  \"pattern\",\n  \"autocomplete\",\n  \"autofocus\",\n  \"for\",\n  \"multiple\",\n  \"selected\",\n  \"wrap\"\n], M = (r, e) => {\n  const o = [...G, ...e.sanitize?.allowTags ?? []], t = [...K, ...e.sanitize?.allowAttributes ?? []], s = Object.values(e.signals ?? {}), g = ((f) => f === !1 ? !1 : f === \"closed\" ? \"closed\" : \"open\")(e.shadow), S = Array.from(/* @__PURE__ */ new Set([...Object.keys(e.props ?? {}), ...e.observeAttributes ?? []]));\n  class E extends HTMLElement {\n    constructor() {\n      super(), this.state = { ...e.state ?? {} }, this.props = {}, this.missingRequiredProps = /* @__PURE__ */ new Set(), this.hasMounted = !1, g !== !1 ? this.renderRootNode = this.attachShadow({ mode: g }) : this.renderRootNode = this, this.syncProps();\n    }\n    static get observedAttributes() {\n      return S;\n    }\n    connectedCallback() {\n      try {\n        if (!this.hasMounted && this.missingRequiredProps.size > 0) return;\n        if (this.hasMounted) {\n          this.scope = R();\n          const a = h(this.scope);\n          try {\n            e.connected?.call(this);\n          } catch (n) {\n            this.handleError(n);\n          } finally {\n            h(a);\n          }\n          this.setupSignalSubscriptions(!0);\n          return;\n        }\n        this.mount();\n      } catch (a) {\n        this.handleError(a);\n      }\n    }\n    mount() {\n      if (this.hasMounted) return;\n      const a = h(this.ensureScope());\n      let n = !1;\n      try {\n        e.beforeMount?.call(this), e.connected?.call(this);\n      } catch (i) {\n        n = !0, this.handleError(i);\n      } finally {\n        h(a);\n      }\n      if (n) {\n        this.scope?.dispose(), this.scope = void 0;\n        return;\n      }\n      this.render(), this.setupSignalSubscriptions(), this.hasMounted = !0;\n    }\n    disconnectedCallback() {\n      try {\n        this.signalEffectCleanup?.(), this.signalEffectCleanup = void 0, this.scope?.dispose(), this.scope = void 0, e.disconnected?.call(this);\n      } catch (a) {\n        this.handleError(a);\n      }\n    }\n    attributeChangedCallback(a, n, i) {\n      try {\n        const d = this.cloneProps();\n        if (this.syncProps(), e.onAttributeChanged) {\n          const u = h(this.ensureScope());\n          try {\n            e.onAttributeChanged.call(this, a, n, i);\n          } finally {\n            h(u);\n          }\n        }\n        this.hasMounted ? this.render(!0, d, {\n          name: a,\n          oldValue: n,\n          newValue: i\n        }) : this.isConnected && this.missingRequiredProps.size === 0 && this.mount();\n      } catch (d) {\n        this.handleError(d);\n      }\n    }\n    adoptedCallback() {\n      if (!e.onAdopted) return;\n      const a = h(this.ensureScope());\n      try {\n        e.onAdopted.call(this);\n      } catch (n) {\n        this.handleError(n);\n      } finally {\n        h(a);\n      }\n    }\n    handleError(a) {\n      e.onError ? e.onError.call(this, a) : console.error(`bQuery component error in <${r}>:`, a);\n    }\n    ensureScope() {\n      return this.scope ?? (this.scope = R());\n    }\n    setState(a, n) {\n      this.state[a] = n, this.render(!0, this.cloneProps(), void 0, !1);\n    }\n    getState(a) {\n      return this.state[a];\n    }\n    setupSignalSubscriptions(a = !1) {\n      if (this.signalEffectCleanup || s.length === 0) return;\n      let n = !0;\n      this.signalEffectCleanup = q(() => {\n        try {\n          for (const d of s) d.value;\n          if (n) {\n            if (n = !1, a && this.hasMounted && this.isConnected) {\n              const d = this.cloneProps();\n              w(() => {\n                this.render(!0, d, void 0, !1);\n              });\n            }\n            return;\n          }\n          if (!this.hasMounted || !this.isConnected) return;\n          const i = this.cloneProps();\n          w(() => {\n            this.render(!0, i, void 0, !1);\n          });\n        } catch (i) {\n          this.handleError(i);\n        }\n      });\n    }\n    syncProps() {\n      const a = e.props ?? {};\n      for (const [n, i] of Object.entries(a)) {\n        const d = this.getAttribute(n);\n        let u;\n        if (d == null ? i.required && i.default === void 0 ? (this.missingRequiredProps.add(n), u = void 0) : u = i.default ?? void 0 : (this.missingRequiredProps.has(n) && this.missingRequiredProps.delete(n), u = F(d, i)), i.validator && u !== void 0 && !i.validator(u))\n          throw new Error(`bQuery component: validation failed for prop \"${n}\" with value ${JSON.stringify(u)}`);\n        this.props[n] = u;\n      }\n    }\n    cloneProps() {\n      return { ...this.props };\n    }\n    render(a = !1, n, i, d = !0) {\n      try {\n        if (a && d && e.beforeUpdate) {\n          if (!n) throw new Error(\"bQuery component: previous props are required for update renders\");\n          if (e.beforeUpdate.call(this, this.props, n) === !1) return;\n        }\n        const u = (p, H) => {\n          this.dispatchEvent(new CustomEvent(p, {\n            detail: H,\n            bubbles: !0,\n            composed: !0\n          }));\n        }, x = this.renderRootNode, B = I(e.render({\n          props: this.props,\n          state: this.state,\n          signals: e.signals ?? {},\n          emit: u\n        }), {\n          allowTags: o,\n          allowAttributes: t\n        });\n        let $ = null;\n        if (e.styles && ($ = x.querySelector(\"style[data-bquery-component-style]\")), x.innerHTML = B, e.styles) {\n          const p = $ ?? document.createElement(\"style\");\n          $ || p.setAttribute(\"data-bquery-component-style\", \"\"), p.textContent = e.styles, x.prepend(p);\n        }\n        a && e.updated?.call(this, i);\n      } catch (u) {\n        this.handleError(u);\n      }\n    }\n  }\n  return E;\n};\nfunction ue(r, e) {\n  return M(r, e);\n}\nfunction b(r, e) {\n  const o = M(r, e);\n  customElements.get(r) || customElements.define(r, o);\n}\nvar z = /* @__PURE__ */ Symbol(\"bquery.booleanAttribute\"), Y = /^[^\\0-\\x20\"'/>=]+$/, _ = (r) => {\n  if (typeof r != \"object\" || r === null) return !1;\n  const e = r;\n  return e[z] === !0 && typeof e.enabled == \"boolean\" && typeof e.name == \"string\";\n}, O = (r) => _(r) ? r.enabled ? r.name : \"\" : String(r ?? \"\"), X = {\n  \"&\": \"&amp;\",\n  \"<\": \"&lt;\",\n  \">\": \"&gt;\",\n  '\"': \"&quot;\",\n  \"'\": \"&#x27;\",\n  \"`\": \"&#x60;\"\n}, Z = (r) => _(r) ? r.enabled ? r.name : \"\" : O(r).replace(/[&<>\"'`]/g, (e) => X[e]), de = (r, e) => {\n  if (!Y.test(r)) throw new TypeError(`Invalid boolean attribute name: ${r}`);\n  return Object.freeze({\n    [z]: !0,\n    enabled: !!e,\n    name: r\n  });\n}, m = (r, ...e) => r.reduce((o, t, s) => `${o}${t}${O(e[s])}`, \"\"), fe = (r, ...e) => {\n  const o = (t) => N(t) ? L(t) : Z(t);\n  return D(r.reduce((t, s, l) => `${t}${s}${l < e.length ? o(e[l]) : \"\"}`, \"\"));\n}, v = `\n  :host {\n    color: inherit;\n    font: inherit;\n  }\n`, T = `\n  ${v}\n  .field {\n    display: inline-flex;\n    flex-direction: column;\n    gap: 0.375rem;\n    width: 100%;\n  }\n  .label {\n    color: #334155;\n    font-size: 0.875rem;\n    font-weight: 600;\n  }\n  .control {\n    border: 1px solid #cbd5e1;\n    border-radius: 0.75rem;\n    box-sizing: border-box;\n    font: inherit;\n    min-height: 2.75rem;\n    outline: none;\n    padding: 0.75rem 0.875rem;\n    width: 100%;\n    background: #fff;\n    color: #0f172a;\n    transition: border-color 160ms ease, box-shadow 160ms ease;\n  }\n  .control:focus {\n    border-color: #2563eb;\n    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15);\n  }\n  .control:disabled {\n    background: #f8fafc;\n    color: #94a3b8;\n    cursor: not-allowed;\n  }\n`, c = (r) => j(r), A = /* @__PURE__ */ new WeakMap(), C = (r, e) => A.get(r)?.[e], k = (r, e, o) => {\n  const t = A.get(r) ?? {};\n  t[e] = o, A.set(r, t);\n}, P = (r, e, o) => {\n  if (o.label !== e.label || o.type !== e.type || o.placeholder !== e.placeholder || o.name !== e.name || o.disabled !== e.disabled) return !1;\n  const t = r.shadowRoot;\n  if (!t || (t.querySelector(\".label\")?.textContent ?? \"\") !== e.label) return !1;\n  const s = t.querySelector(\"input.control\");\n  return !s || s.type !== e.type || s.placeholder !== e.placeholder || s.name !== e.name || s.disabled !== e.disabled ? !1 : (s.value !== e.value && (s.value = e.value), !0);\n}, V = (r, e, o) => {\n  if (o.label !== e.label || o.placeholder !== e.placeholder || o.name !== e.name || o.rows !== e.rows || o.disabled !== e.disabled) return !1;\n  const t = r.shadowRoot;\n  if (!t || (t.querySelector(\".label\")?.textContent ?? \"\") !== e.label) return !1;\n  const s = t.querySelector(\"textarea.control\");\n  return !s || s.placeholder !== e.placeholder || s.name !== e.name || Number(s.rows) !== e.rows || s.disabled !== e.disabled ? !1 : (s.value !== e.value && (s.value = e.value), !0);\n}, ee = (r) => [\n  \"<textarea\",\n  ' part=\"control\"',\n  ' class=\"control\"',\n  ` placeholder=\"${c(r.placeholder)}\"`,\n  ` name=\"${c(r.name)}\"`,\n  ` rows=\"${r.rows}\"`,\n  r.disabled ? \" disabled\" : \"\",\n  `>${c(r.value)}</textarea>`\n].join(\"\"), he = (r = {}) => {\n  const e = r.prefix ?? U().components?.prefix ?? \"bq\", o = {\n    button: `${e}-button`,\n    card: `${e}-card`,\n    input: `${e}-input`,\n    textarea: `${e}-textarea`,\n    checkbox: `${e}-checkbox`\n  };\n  return b(o.button, {\n    props: {\n      label: {\n        type: String,\n        default: \"\"\n      },\n      variant: {\n        type: String,\n        default: \"primary\"\n      },\n      size: {\n        type: String,\n        default: \"md\"\n      },\n      type: {\n        type: String,\n        default: \"button\"\n      },\n      disabled: {\n        type: Boolean,\n        default: !1\n      }\n    },\n    styles: `\n      ${v}\n      button {\n        appearance: none;\n        border: 0;\n        border-radius: 999px;\n        cursor: pointer;\n        display: inline-flex;\n        align-items: center;\n        justify-content: center;\n        font: inherit;\n        font-weight: 600;\n        gap: 0.5rem;\n        min-height: 2.5rem;\n        padding: 0.65rem 1rem;\n        transition: transform 160ms ease, opacity 160ms ease, background 160ms ease;\n        background: #2563eb;\n        color: #fff;\n      }\n      button[data-variant='secondary'] {\n        background: #e2e8f0;\n        color: #0f172a;\n      }\n      button[data-size='sm'] {\n        min-height: 2.125rem;\n        padding: 0.5rem 0.875rem;\n      }\n      button[data-size='lg'] {\n        min-height: 3rem;\n        padding: 0.875rem 1.25rem;\n      }\n      button:hover:not(:disabled) {\n        transform: translateY(-1px);\n      }\n      button:disabled {\n        cursor: not-allowed;\n        opacity: 0.6;\n      }\n    `,\n    render: ({ props: t }) => m`\n      <button\n        part=\"button\"\n        type=\"${c(t.type)}\"\n        data-variant=\"${c(t.variant)}\"\n        data-size=\"${c(t.size)}\"\n        ${t.disabled ? \"disabled\" : \"\"}\n      >\n        <slot>${c(t.label)}</slot>\n      </button>\n    `\n  }), b(o.card, {\n    props: {\n      title: {\n        type: String,\n        default: \"\"\n      },\n      footer: {\n        type: String,\n        default: \"\"\n      },\n      elevated: {\n        type: Boolean,\n        default: !0\n      }\n    },\n    styles: `\n      ${v}\n      article {\n        background: #fff;\n        border: 1px solid #e2e8f0;\n        border-radius: 1rem;\n        box-shadow: 0 10px 25px rgba(15, 23, 42, 0.08);\n        color: #0f172a;\n        display: block;\n        padding: 1rem;\n      }\n      article[data-elevated='false'] {\n        box-shadow: none;\n      }\n      header, footer {\n        color: #475569;\n        font-size: 0.95rem;\n        font-weight: 600;\n      }\n      header {\n        margin-bottom: 0.75rem;\n      }\n      footer {\n        margin-top: 0.75rem;\n      }\n    `,\n    render: ({ props: t }) => m`\n      <article part=\"card\" data-elevated=\"${String(t.elevated)}\">\n        ${t.title ? `<header part=\"header\">${c(t.title)}</header>` : \"\"}\n        <section part=\"body\"><slot></slot></section>\n        ${t.footer ? `<footer part=\"footer\">${c(t.footer)}</footer>` : \"\"}\n      </article>\n    `\n  }), b(o.input, {\n    props: {\n      label: {\n        type: String,\n        default: \"\"\n      },\n      type: {\n        type: String,\n        default: \"text\"\n      },\n      value: {\n        type: String,\n        default: \"\"\n      },\n      placeholder: {\n        type: String,\n        default: \"\"\n      },\n      name: {\n        type: String,\n        default: \"\"\n      },\n      disabled: {\n        type: Boolean,\n        default: !1\n      }\n    },\n    styles: T,\n    beforeUpdate(t, s) {\n      return !P(this, t, s);\n    },\n    connected() {\n      const t = (s) => {\n        const l = s.target;\n        l?.matches(\"input\") && (s.stopPropagation(), this.setAttribute(\"value\", l.value), this.dispatchEvent(new CustomEvent(\"input\", {\n          detail: { value: l.value },\n          bubbles: !0,\n          composed: !0\n        })));\n      };\n      k(this, \"__bqueryInputHandler\", t), this.shadowRoot?.addEventListener(\"input\", t);\n    },\n    disconnected() {\n      const t = C(this, \"__bqueryInputHandler\");\n      t && this.shadowRoot?.removeEventListener(\"input\", t);\n    },\n    render: ({ props: t }) => m`\n      <label part=\"field\" class=\"field\">\n        ${t.label ? `<span part=\"label\" class=\"label\">${c(t.label)}</span>` : \"\"}\n        <input\n          part=\"control\"\n          class=\"control\"\n          type=\"${c(t.type)}\"\n          value=\"${c(t.value)}\"\n          placeholder=\"${c(t.placeholder)}\"\n          name=\"${c(t.name)}\"\n          ${t.disabled ? \"disabled\" : \"\"}\n        />\n      </label>\n    `\n  }), b(o.textarea, {\n    props: {\n      label: {\n        type: String,\n        default: \"\"\n      },\n      value: {\n        type: String,\n        default: \"\"\n      },\n      placeholder: {\n        type: String,\n        default: \"\"\n      },\n      name: {\n        type: String,\n        default: \"\"\n      },\n      rows: {\n        type: Number,\n        default: 4\n      },\n      disabled: {\n        type: Boolean,\n        default: !1\n      }\n    },\n    styles: `${T}\n      textarea.control {\n        min-height: 6rem;\n        resize: vertical;\n      }\n    `,\n    beforeUpdate(t, s) {\n      return !V(this, t, s);\n    },\n    connected() {\n      const t = (s) => {\n        const l = s.target;\n        l?.matches(\"textarea\") && (s.stopPropagation(), this.setAttribute(\"value\", l.value), this.dispatchEvent(new CustomEvent(\"input\", {\n          detail: { value: l.value },\n          bubbles: !0,\n          composed: !0\n        })));\n      };\n      k(this, \"__bqueryTextareaHandler\", t), this.shadowRoot?.addEventListener(\"input\", t);\n    },\n    disconnected() {\n      const t = C(this, \"__bqueryTextareaHandler\");\n      t && this.shadowRoot?.removeEventListener(\"input\", t);\n    },\n    render: ({ props: t }) => m`\n      <label part=\"field\" class=\"field\">\n        ${t.label ? `<span part=\"label\" class=\"label\">${c(t.label)}</span>` : \"\"}\n        ${ee(t)}\n      </label>\n    `\n  }), b(o.checkbox, {\n    props: {\n      label: {\n        type: String,\n        default: \"\"\n      },\n      checked: {\n        type: Boolean,\n        default: !1\n      },\n      disabled: {\n        type: Boolean,\n        default: !1\n      }\n    },\n    styles: `\n      ${v}\n      label {\n        align-items: center;\n        color: #0f172a;\n        cursor: pointer;\n        display: inline-flex;\n        gap: 0.625rem;\n      }\n      input {\n        accent-color: #2563eb;\n        block-size: 1rem;\n        inline-size: 1rem;\n      }\n      input:disabled {\n        cursor: not-allowed;\n      }\n    `,\n    connected() {\n      const t = (s) => {\n        const l = s.target;\n        l?.matches('input[type=\"checkbox\"]') && (s.stopPropagation(), l.checked ? this.setAttribute(\"checked\", \"true\") : this.removeAttribute(\"checked\"), this.dispatchEvent(new CustomEvent(\"change\", {\n          detail: { checked: l.checked },\n          bubbles: !0,\n          composed: !0\n        })));\n      };\n      k(this, \"__bqueryCheckboxHandler\", t), this.shadowRoot?.addEventListener(\"change\", t);\n    },\n    disconnected() {\n      const t = C(this, \"__bqueryCheckboxHandler\");\n      t && this.shadowRoot?.removeEventListener(\"change\", t);\n    },\n    render: ({ props: t }) => m`\n      <label part=\"label\">\n        <input\n          part=\"control\"\n          type=\"checkbox\"\n          ${t.checked ? \"checked\" : \"\"}\n          ${t.disabled ? \"disabled\" : \"\"}\n        />\n        <span part=\"text\"><slot>${c(t.label)}</slot></span>\n      </label>\n    `\n  }), o;\n};\nexport {\n  b as a,\n  ce as c,\n  fe as i,\n  le as l,\n  de as n,\n  ue as o,\n  m as r,\n  ie as s,\n  he as t\n};\n\n//# sourceMappingURL=component-D8ydhe58.js.map"],"x_google_ignoreList":[0,1,2,3,4,5,6,7],"mappings":";AAAA,IAA4B,oBAAoB,IAAI,IAAI;CACtD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD,CAAC,EAAE,oBAAoB,IAAI,IAAI;CAC9B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD,CAAC,EAAEC,sBAAoB,IAAI,IAAI;CAC9B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD,CAAC,EAAEC,sBAAoB,IAAI,IAAI;CAC9B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD,CAAC,EAAE,IAAI;CACN;CACA;CACA;CACA;CACD,EAAEC,MAAI;CACL;CACA;CACA;CACA;CACD,EAAEC,OAAK,GAAG,GAAG,MAAM;CAClB,MAAM,IAAI,EAAE,aAAa;AACzB,MAAK,MAAM,KAAK,EAAG,KAAI,EAAE,WAAW,EAAE,CAAE,QAAO,CAAC;AAChD,QAAO,KAAK,EAAE,WAAW,QAAQ,IAAI,EAAE,WAAW,QAAQ,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE;GACzEC,OAAK,MAAM;CACZ,MAAM,IAAI,EAAE,aA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"}