@openephemeris/mcp-server 3.10.4 → 3.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6,7 +6,7 @@
6
6
  <title>Chart Wheel Explorer</title>
7
7
 
8
8
 
9
- <style>:root{--bg:#faf9f5;--surface:#fff;--text:#1a1a2e;--text-secondary:#5a5a7a;--accent:#6366f1;--accent-hover:#4f46e5;--accent-subtle:#6366f11f;--border:#e8e6f0;--border-strong:#c8c4d8;--shadow:0 4px 16px #00000014;--shadow-md:0 8px 32px #0000001f;--radius:10px;--radius-sm:6px;--planet-sun:#f59e0b;--planet-moon:#94a3b8;--planet-mercury:#10b981;--planet-venus:#ec4899;--planet-mars:#ef4444;--planet-jupiter:#8b5cf6;--planet-saturn:#64748b;--planet-uranus:#06b6d4;--planet-neptune:#3b82f6;--planet-pluto:#a78bfa;--aspect-conjunction:#f59e0b;--aspect-opposition:#ef4444;--aspect-trine:#10b981;--aspect-square:#ef4444;--aspect-sextile:#3b82f6}@media (prefers-color-scheme:dark){:root{--bg:#0d1117;--surface:#161b22;--text:#e6edf3;--text-secondary:#8b949e;--accent:#818cf8;--accent-hover:#a5b4fc;--accent-subtle:#818cf826;--border:#21262d;--border-strong:#30363d;--shadow:0 4px 16px #0006;--shadow-md:0 8px 32px #0009}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:var(--bg);color:var(--text);-webkit-user-select:none;user-select:none;font-family:-apple-system,Inter,Segoe UI,system-ui,sans-serif;font-size:13px;line-height:1.5;overflow:hidden}#app{flex-direction:column;height:100vh;display:flex;position:relative}#loading-state{color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}#chart-container{flex:1;justify-content:center;align-items:center;min-height:0;padding:12px;display:flex;position:relative}#chart-container svg{width:auto;max-width:100%;height:auto;max-height:100%}.hit-region{cursor:pointer;fill:#0000;stroke:#0000;transition:fill .15s,stroke .15s}.hit-region:hover{fill:var(--accent-subtle);stroke:var(--accent);stroke-width:1px;stroke-opacity:.5}.hit-region.planet-hit{rx:12px;ry:12px}.hit-region.aspect-hit{stroke-width:6px}#controls-panel{border-top:1px solid var(--border);background:var(--surface);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px;padding:8px 12px;display:flex}.controls-label{color:var(--text-secondary);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;margin-right:2px;font-size:11px;font-weight:600}.control-btn{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;padding:3px 10px;font-family:inherit;font-size:12px;transition:background .12s,color .12s,border-color .12s}.control-btn:hover{background:var(--accent-subtle);color:var(--accent);border-color:var(--accent)}.control-btn.active{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}.controls-divider{background:var(--border);flex-shrink:0;width:1px;height:18px;margin:0 4px}.tooltip{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);pointer-events:none;box-shadow:var(--shadow-md);z-index:1000;opacity:0;max-width:220px;padding:8px 12px;font-size:12px;transition:opacity .12s;position:fixed}.tooltip.visible{opacity:1}.tooltip-title{color:var(--text);margin-bottom:2px;font-weight:700}.tooltip-detail{color:var(--text-secondary);line-height:1.4}.tooltip-hint{color:var(--accent);margin-top:4px;font-size:10px;font-style:italic}.error-state{text-align:center;color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;padding:24px;display:flex}.error-state .error-icon{margin-bottom:4px;font-size:32px}
9
+ <style>:root{--bg:#faf9f5;--surface:#fff;--text:#1a1a2e;--text-secondary:#5a5a7a;--accent:#6366f1;--accent-hover:#4f46e5;--accent-subtle:#6366f11f;--border:#e8e6f0;--border-strong:#c8c4d8;--shadow:0 4px 16px #00000014;--shadow-md:0 8px 32px #0000001f;--radius:10px;--radius-sm:6px;--planet-sun:#f59e0b;--planet-moon:#94a3b8;--planet-mercury:#10b981;--planet-venus:#ec4899;--planet-mars:#ef4444;--planet-jupiter:#8b5cf6;--planet-saturn:#64748b;--planet-uranus:#06b6d4;--planet-neptune:#3b82f6;--planet-pluto:#a78bfa;--aspect-conjunction:#f59e0b;--aspect-opposition:#ef4444;--aspect-trine:#10b981;--aspect-square:#ef4444;--aspect-sextile:#3b82f6;--color-fire:#e8854c;--color-earth:#7aaa6a;--color-air:#5aaad0;--color-water:#8878c8;--color-cardinal:#e05252;--color-fixed:#c0b052;--color-mutable:#52c07a}@media (prefers-color-scheme:dark){:root{--bg:#0d1117;--surface:#161b22;--text:#e6edf3;--text-secondary:#8b949e;--accent:#818cf8;--accent-hover:#a5b4fc;--accent-subtle:#818cf826;--border:#21262d;--border-strong:#30363d;--shadow:0 4px 16px #0006;--shadow-md:0 8px 32px #0009}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:var(--bg);color:var(--text);-webkit-user-select:none;user-select:none;font-family:-apple-system,Inter,Segoe UI,system-ui,sans-serif;font-size:13px;line-height:1.5;overflow:hidden}#app{flex-direction:column;height:100vh;display:flex;position:relative}#loading-state{color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}#chart-container{flex:1;justify-content:center;align-items:center;min-height:0;padding:12px;display:flex;position:relative}#chart-container svg{width:auto;max-width:100%;height:auto;max-height:100%}.hit-region{cursor:pointer;fill:#0000;stroke:#0000;transition:fill .15s,stroke .15s,opacity .2s}.hit-region:hover{fill:var(--accent-subtle);stroke:var(--accent);stroke-width:1px;stroke-opacity:.5}.hit-region.planet-hit{rx:12px;ry:12px}.hit-region.planet-hit:not(.dim){filter:none}.hit-region.dim{opacity:.15}.hit-region.aspect-hit{stroke-width:13px}.hit-region.aspect-hit.highlight{stroke:var(--aspect-color,#888);stroke-opacity:.55}.info-panel{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow-md);z-index:900;opacity:0;pointer-events:none;width:min(340px,92vw);padding:14px 16px 12px;transition:opacity .18s,transform .18s;position:fixed;bottom:126px;left:50%;transform:translate(-50%)translateY(12px)}.info-panel.visible{opacity:1;pointer-events:all;transform:translate(-50%)translateY(0)}.info-header{align-items:flex-start;gap:10px;margin-bottom:12px;display:flex}.info-glyph{text-align:center;flex-shrink:0;width:34px;font-size:28px;line-height:1}.info-title{color:var(--text);flex:1;font-size:13px;font-weight:700}.info-name-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.info-pos{color:var(--text-secondary);margin-top:2px;font-size:11px;font-weight:400}.retro{color:#e05252;font-style:normal}.info-close{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;border-radius:4px;flex-shrink:0;padding:2px 4px;font-size:13px;line-height:1;transition:color .12s}.info-close:hover{color:var(--text)}.aspects-title{text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary);margin-bottom:6px;font-size:10px;font-weight:700}.aspects-list{flex-direction:column;gap:4px;max-height:140px;display:flex;overflow-y:auto}.aspect-row{align-items:center;gap:7px;padding:3px 0;font-size:12px;display:flex}.aspect-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.aspect-sym{text-align:center;flex-shrink:0;width:16px;font-size:14px}.aspect-other{color:var(--text);flex:1}.aspect-meta{color:var(--text-secondary);white-space:nowrap;font-size:11px}.no-aspects{color:var(--text-secondary);padding:4px 0;font-size:11px;font-style:italic}.info-hint{color:var(--accent);text-align:center;margin-top:10px;font-size:10px;font-style:italic}.dignity-badge{white-space:nowrap;border-radius:99px;align-items:center;gap:3px;padding:1px 7px;font-size:10px;font-weight:600;line-height:1.6;display:inline-flex}.dignity-domicile{color:#2e9e5e;background:#52c07a2e;border:1px solid #52c07a66}.dignity-exaltation{color:#9a8600;background:#c0b0522e;border:1px solid #c0b05266}.dignity-detriment{color:#c03030;background:#e0525224;border:1px solid #e0525259}.dignity-fall{color:#707080;background:#9a9a9a24;border:1px solid #9a9a9a4d}@media (prefers-color-scheme:dark){.dignity-domicile{color:#6fe098;background:#52c07a1f}.dignity-exaltation{color:#e0cc60;background:#c0b0521f}.dignity-detriment{color:#e08080;background:#e052521a}.dignity-fall{color:#a0a0b0;background:#9a9a9a1a}}#tally-panel{border-top:1px solid var(--border);background:var(--surface);flex-shrink:0;align-items:center;gap:8px;padding:5px 12px;display:flex}.tally-section{flex-direction:column;gap:3px;display:flex}.tally-row{align-items:center;gap:8px;display:flex}.tally-item{white-space:nowrap;border-radius:4px;padding:1px 6px;font-size:11px;font-weight:600}.tally-item.fire{color:var(--color-fire);background:#e8854c1f}.tally-item.earth{color:var(--color-earth);background:#7aaa6a1f}.tally-item.air{color:var(--color-air);background:#5aaad01f}.tally-item.water{color:var(--color-water);background:#8878c81f}.tally-item.cardinal{color:var(--color-cardinal);background:#e052521a}.tally-item.fixed{color:var(--color-fixed);background:#c0b0521a}.tally-item.mutable{color:var(--color-mutable);background:#52c07a1a}.tally-bar-row{padding:2px 0}.tally-bar{background:var(--border);border-radius:2px;width:90px;height:4px;display:flex;overflow:hidden}.tally-bar-fill{height:100%;transition:width .4s}.tally-bar-fill.fire{background:var(--color-fire)}.tally-bar-fill.earth{background:var(--color-earth)}.tally-bar-fill.air{background:var(--color-air)}.tally-bar-fill.water{background:var(--color-water)}.tally-divider{background:var(--border);flex-shrink:0;width:1px;height:28px}#patterns-strip{border-top:1px solid var(--border);background:var(--surface);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:5px;padding:5px 12px;display:flex}.patterns-label{text-transform:uppercase;letter-spacing:.07em;color:var(--text-secondary);white-space:nowrap;margin-right:2px;font-size:10px;font-weight:700}.pattern-pill{cursor:pointer;white-space:nowrap;opacity:.85;background:0 0;border:1px solid;border-radius:99px;align-items:center;gap:4px;padding:2px 9px;font-family:inherit;font-size:11px;font-weight:600;transition:opacity .14s,box-shadow .14s,transform 80ms;display:inline-flex}.pattern-pill:hover{opacity:1;filter:brightness(1.05);box-shadow:0 0 0 2px #80808040}.pattern-pill.active{color:#fff;opacity:1;border-color:#0000;transform:translateY(-1px);box-shadow:0 2px 8px #00000040}#controls-panel{border-top:1px solid var(--border);background:var(--surface);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px;padding:8px 12px;display:flex}.controls-label{color:var(--text-secondary);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;margin-right:2px;font-size:11px;font-weight:600}.control-btn{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;padding:3px 10px;font-family:inherit;font-size:12px;transition:background .12s,color .12s,border-color .12s}.control-btn:hover{background:var(--accent-subtle);color:var(--accent);border-color:var(--accent)}.control-btn.active{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}.controls-divider{background:var(--border);flex-shrink:0;width:1px;height:18px;margin:0 4px}.tooltip{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);pointer-events:none;box-shadow:var(--shadow-md);z-index:1000;opacity:0;max-width:220px;padding:8px 12px;font-size:12px;transition:opacity .12s;position:fixed}.tooltip.visible{opacity:1}.tooltip-title{color:var(--text);margin-bottom:2px;font-weight:700}.tooltip-detail{color:var(--text-secondary);line-height:1.4}.tooltip-hint{color:var(--accent);margin-top:4px;font-size:10px;font-style:italic}.error-state{text-align:center;color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;padding:24px;display:flex}.error-state .error-icon{margin-bottom:4px;font-size:32px}
10
10
  /*$vite$:1*/</style>
11
11
  </head>
12
12
  <body>
@@ -16,10 +16,13 @@
16
16
  <p>Loading chart…</p>
17
17
  </div>
18
18
  <div id="chart-container" hidden></div>
19
+ <!-- Element/Modality tally + Pattern strip share the bottom bar with controls -->
20
+ <div id="tally-panel" hidden></div>
21
+ <div id="patterns-strip" hidden></div>
19
22
  <div id="controls-panel" hidden></div>
20
23
  <div id="tooltip" class="tooltip" aria-live="polite"></div>
21
24
  </div>
22
- <script type="module">var e=Object.defineProperty,t=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n||e(r,Symbol.toStringTag,{value:`Module`}),r},n=(e=>typeof require<`u`?require:typeof Proxy<`u`?new Proxy(e,{get:(e,t)=>(typeof require<`u`?require:e)[t]}):e)(function(e){if(typeof require<`u`)return require.apply(this,arguments);throw Error('Calling `require` for "'+e+"\" in an environment that doesn't expose the `require` function. See https://rolldown.rs/in-depth/bundling-cjs#require-external-modules for more details.")});(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var r=Object.freeze({status:`aborted`});function i(e,t,n){function r(n,r){if(n._zod||Object.defineProperty(n,`_zod`,{value:{def:r,constr:o,traits:new Set},enumerable:!1}),n._zod.traits.has(e))return;n._zod.traits.add(e),t(n,r);let i=o.prototype,a=Object.keys(i);for(let e=0;e<a.length;e++){let t=a[e];t in n||(n[t]=i[t].bind(n))}}let i=n?.Parent??Object;class a extends i{}Object.defineProperty(a,`name`,{value:e});function o(e){var t;let i=n?.Parent?new a:this;r(i,e),(t=i._zod).deferred??(t.deferred=[]);for(let e of i._zod.deferred)e();return i}return Object.defineProperty(o,`init`,{value:r}),Object.defineProperty(o,Symbol.hasInstance,{value:t=>n?.Parent&&t instanceof n.Parent?!0:t?._zod?.traits?.has(e)}),Object.defineProperty(o,`name`,{value:e}),o}var a=Symbol(`zod_brand`),o=class extends Error{constructor(){super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`)}},s=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name=`ZodEncodeError`}},c={};function l(e){return e&&Object.assign(c,e),c}var u=t({BIGINT_FORMAT_RANGES:()=>je,Class:()=>Ze,NUMBER_FORMAT_RANGES:()=>Ae,aborted:()=>ze,allowsEval:()=>be,assert:()=>te,assertEqual:()=>d,assertIs:()=>p,assertNever:()=>ee,assertNotEqual:()=>f,assignProp:()=>ue,base64ToUint8Array:()=>Ge,base64urlToUint8Array:()=>qe,cached:()=>ie,captureStackTrace:()=>ve,cleanEnum:()=>We,cleanRegex:()=>oe,clone:()=>g,cloneDef:()=>fe,createTransparentProxy:()=>Oe,defineLazy:()=>h,esc:()=>ge,escapeRegex:()=>De,extend:()=>Pe,finalizeIssue:()=>b,floatSafeRemainder:()=>se,getElementAtPath:()=>pe,getEnumValues:()=>ne,getLengthableOrigin:()=>He,getParsedType:()=>we,getSizableOrigin:()=>Ve,hexToUint8Array:()=>Ye,isObject:()=>ye,isPlainObject:()=>xe,issue:()=>Ue,joinValues:()=>m,jsonStringifyReplacer:()=>re,merge:()=>Ie,mergeDefs:()=>de,normalizeParams:()=>_,nullish:()=>ae,numKeys:()=>Ce,objectClone:()=>le,omit:()=>Ne,optionalKeys:()=>ke,partial:()=>Le,pick:()=>Me,prefixIssues:()=>y,primitiveTypes:()=>Ee,promiseAllObject:()=>me,propertyKeyTypes:()=>Te,randomString:()=>he,required:()=>Re,safeExtend:()=>Fe,shallowClone:()=>Se,slugify:()=>_e,stringifyPrimitive:()=>v,uint8ArrayToBase64:()=>Ke,uint8ArrayToBase64url:()=>Je,uint8ArrayToHex:()=>Xe,unwrapMessage:()=>Be});function d(e){return e}function f(e){return e}function p(e){}function ee(e){throw Error()}function te(e){}function ne(e){let t=Object.values(e).filter(e=>typeof e==`number`);return Object.entries(e).filter(([e,n])=>t.indexOf(+e)===-1).map(([e,t])=>t)}function m(e,t=`|`){return e.map(e=>v(e)).join(t)}function re(e,t){return typeof t==`bigint`?t.toString():t}function ie(e){return{get value(){{let t=e();return Object.defineProperty(this,`value`,{value:t}),t}throw Error(`cached value already set`)}}}function ae(e){return e==null}function oe(e){let t=+!!e.startsWith(`^`),n=e.endsWith(`<!DOCTYPE html>
25
+ <script type="module">var e=Object.defineProperty,t=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n||e(r,Symbol.toStringTag,{value:`Module`}),r},n=(e=>typeof require<`u`?require:typeof Proxy<`u`?new Proxy(e,{get:(e,t)=>(typeof require<`u`?require:e)[t]}):e)(function(e){if(typeof require<`u`)return require.apply(this,arguments);throw Error('Calling `require` for "'+e+"\" in an environment that doesn't expose the `require` function. See https://rolldown.rs/in-depth/bundling-cjs#require-external-modules for more details.")});(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var r=Object.freeze({status:`aborted`});function i(e,t,n){function r(n,r){if(n._zod||Object.defineProperty(n,`_zod`,{value:{def:r,constr:o,traits:new Set},enumerable:!1}),n._zod.traits.has(e))return;n._zod.traits.add(e),t(n,r);let i=o.prototype,a=Object.keys(i);for(let e=0;e<a.length;e++){let t=a[e];t in n||(n[t]=i[t].bind(n))}}let i=n?.Parent??Object;class a extends i{}Object.defineProperty(a,`name`,{value:e});function o(e){var t;let i=n?.Parent?new a:this;r(i,e),(t=i._zod).deferred??(t.deferred=[]);for(let e of i._zod.deferred)e();return i}return Object.defineProperty(o,`init`,{value:r}),Object.defineProperty(o,Symbol.hasInstance,{value:t=>n?.Parent&&t instanceof n.Parent?!0:t?._zod?.traits?.has(e)}),Object.defineProperty(o,`name`,{value:e}),o}var a=Symbol(`zod_brand`),o=class extends Error{constructor(){super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`)}},s=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name=`ZodEncodeError`}},c={};function l(e){return e&&Object.assign(c,e),c}var u=t({BIGINT_FORMAT_RANGES:()=>De,Class:()=>Ye,NUMBER_FORMAT_RANGES:()=>Ee,aborted:()=>Fe,allowsEval:()=>ge,assert:()=>h,assertEqual:()=>d,assertIs:()=>p,assertNever:()=>m,assertNotEqual:()=>f,assignProp:()=>oe,base64ToUint8Array:()=>Ue,base64urlToUint8Array:()=>Ge,cached:()=>ee,captureStackTrace:()=>me,cleanEnum:()=>He,cleanRegex:()=>ne,clone:()=>b,cloneDef:()=>ce,createTransparentProxy:()=>we,defineLazy:()=>y,esc:()=>fe,escapeRegex:()=>Ce,extend:()=>Ae,finalizeIssue:()=>Re,floatSafeRemainder:()=>re,getElementAtPath:()=>le,getEnumValues:()=>g,getLengthableOrigin:()=>Be,getParsedType:()=>be,getSizableOrigin:()=>ze,hexToUint8Array:()=>qe,isObject:()=>he,isPlainObject:()=>_e,issue:()=>Ve,joinValues:()=>_,jsonStringifyReplacer:()=>v,merge:()=>Me,mergeDefs:()=>se,normalizeParams:()=>x,nullish:()=>te,numKeys:()=>ye,objectClone:()=>ae,omit:()=>ke,optionalKeys:()=>Te,partial:()=>Ne,pick:()=>Oe,prefixIssues:()=>Ie,primitiveTypes:()=>Se,promiseAllObject:()=>ue,propertyKeyTypes:()=>xe,randomString:()=>de,required:()=>Pe,safeExtend:()=>je,shallowClone:()=>ve,slugify:()=>pe,stringifyPrimitive:()=>S,uint8ArrayToBase64:()=>We,uint8ArrayToBase64url:()=>Ke,uint8ArrayToHex:()=>Je,unwrapMessage:()=>Le});function d(e){return e}function f(e){return e}function p(e){}function m(e){throw Error()}function h(e){}function g(e){let t=Object.values(e).filter(e=>typeof e==`number`);return Object.entries(e).filter(([e,n])=>t.indexOf(+e)===-1).map(([e,t])=>t)}function _(e,t=`|`){return e.map(e=>S(e)).join(t)}function v(e,t){return typeof t==`bigint`?t.toString():t}function ee(e){return{get value(){{let t=e();return Object.defineProperty(this,`value`,{value:t}),t}throw Error(`cached value already set`)}}}function te(e){return e==null}function ne(e){let t=+!!e.startsWith(`^`),n=e.endsWith(`<!DOCTYPE html>
23
26
  <html lang="en">
24
27
  <head>
25
28
  <meta charset="UTF-8" />
@@ -27,7 +30,7 @@
27
30
  <title>Chart Wheel Explorer</title>
28
31
 
29
32
 
30
- <style>:root{--bg:#faf9f5;--surface:#fff;--text:#1a1a2e;--text-secondary:#5a5a7a;--accent:#6366f1;--accent-hover:#4f46e5;--accent-subtle:#6366f11f;--border:#e8e6f0;--border-strong:#c8c4d8;--shadow:0 4px 16px #00000014;--shadow-md:0 8px 32px #0000001f;--radius:10px;--radius-sm:6px;--planet-sun:#f59e0b;--planet-moon:#94a3b8;--planet-mercury:#10b981;--planet-venus:#ec4899;--planet-mars:#ef4444;--planet-jupiter:#8b5cf6;--planet-saturn:#64748b;--planet-uranus:#06b6d4;--planet-neptune:#3b82f6;--planet-pluto:#a78bfa;--aspect-conjunction:#f59e0b;--aspect-opposition:#ef4444;--aspect-trine:#10b981;--aspect-square:#ef4444;--aspect-sextile:#3b82f6}@media (prefers-color-scheme:dark){:root{--bg:#0d1117;--surface:#161b22;--text:#e6edf3;--text-secondary:#8b949e;--accent:#818cf8;--accent-hover:#a5b4fc;--accent-subtle:#818cf826;--border:#21262d;--border-strong:#30363d;--shadow:0 4px 16px #0006;--shadow-md:0 8px 32px #0009}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:var(--bg);color:var(--text);-webkit-user-select:none;user-select:none;font-family:-apple-system,Inter,Segoe UI,system-ui,sans-serif;font-size:13px;line-height:1.5;overflow:hidden}#app{flex-direction:column;height:100vh;display:flex;position:relative}#loading-state{color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}#chart-container{flex:1;justify-content:center;align-items:center;min-height:0;padding:12px;display:flex;position:relative}#chart-container svg{width:auto;max-width:100%;height:auto;max-height:100%}.hit-region{cursor:pointer;fill:#0000;stroke:#0000;transition:fill .15s,stroke .15s}.hit-region:hover{fill:var(--accent-subtle);stroke:var(--accent);stroke-width:1px;stroke-opacity:.5}.hit-region.planet-hit{rx:12px;ry:12px}.hit-region.aspect-hit{stroke-width:6px}#controls-panel{border-top:1px solid var(--border);background:var(--surface);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px;padding:8px 12px;display:flex}.controls-label{color:var(--text-secondary);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;margin-right:2px;font-size:11px;font-weight:600}.control-btn{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;padding:3px 10px;font-family:inherit;font-size:12px;transition:background .12s,color .12s,border-color .12s}.control-btn:hover{background:var(--accent-subtle);color:var(--accent);border-color:var(--accent)}.control-btn.active{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}.controls-divider{background:var(--border);flex-shrink:0;width:1px;height:18px;margin:0 4px}.tooltip{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);pointer-events:none;box-shadow:var(--shadow-md);z-index:1000;opacity:0;max-width:220px;padding:8px 12px;font-size:12px;transition:opacity .12s;position:fixed}.tooltip.visible{opacity:1}.tooltip-title{color:var(--text);margin-bottom:2px;font-weight:700}.tooltip-detail{color:var(--text-secondary);line-height:1.4}.tooltip-hint{color:var(--accent);margin-top:4px;font-size:10px;font-style:italic}.error-state{text-align:center;color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;padding:24px;display:flex}.error-state .error-icon{margin-bottom:4px;font-size:32px}
33
+ <style>:root{--bg:#faf9f5;--surface:#fff;--text:#1a1a2e;--text-secondary:#5a5a7a;--accent:#6366f1;--accent-hover:#4f46e5;--accent-subtle:#6366f11f;--border:#e8e6f0;--border-strong:#c8c4d8;--shadow:0 4px 16px #00000014;--shadow-md:0 8px 32px #0000001f;--radius:10px;--radius-sm:6px;--planet-sun:#f59e0b;--planet-moon:#94a3b8;--planet-mercury:#10b981;--planet-venus:#ec4899;--planet-mars:#ef4444;--planet-jupiter:#8b5cf6;--planet-saturn:#64748b;--planet-uranus:#06b6d4;--planet-neptune:#3b82f6;--planet-pluto:#a78bfa;--aspect-conjunction:#f59e0b;--aspect-opposition:#ef4444;--aspect-trine:#10b981;--aspect-square:#ef4444;--aspect-sextile:#3b82f6;--color-fire:#e8854c;--color-earth:#7aaa6a;--color-air:#5aaad0;--color-water:#8878c8;--color-cardinal:#e05252;--color-fixed:#c0b052;--color-mutable:#52c07a}@media (prefers-color-scheme:dark){:root{--bg:#0d1117;--surface:#161b22;--text:#e6edf3;--text-secondary:#8b949e;--accent:#818cf8;--accent-hover:#a5b4fc;--accent-subtle:#818cf826;--border:#21262d;--border-strong:#30363d;--shadow:0 4px 16px #0006;--shadow-md:0 8px 32px #0009}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:var(--bg);color:var(--text);-webkit-user-select:none;user-select:none;font-family:-apple-system,Inter,Segoe UI,system-ui,sans-serif;font-size:13px;line-height:1.5;overflow:hidden}#app{flex-direction:column;height:100vh;display:flex;position:relative}#loading-state{color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}#chart-container{flex:1;justify-content:center;align-items:center;min-height:0;padding:12px;display:flex;position:relative}#chart-container svg{width:auto;max-width:100%;height:auto;max-height:100%}.hit-region{cursor:pointer;fill:#0000;stroke:#0000;transition:fill .15s,stroke .15s,opacity .2s}.hit-region:hover{fill:var(--accent-subtle);stroke:var(--accent);stroke-width:1px;stroke-opacity:.5}.hit-region.planet-hit{rx:12px;ry:12px}.hit-region.planet-hit:not(.dim){filter:none}.hit-region.dim{opacity:.15}.hit-region.aspect-hit{stroke-width:13px}.hit-region.aspect-hit.highlight{stroke:var(--aspect-color,#888);stroke-opacity:.55}.info-panel{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow-md);z-index:900;opacity:0;pointer-events:none;width:min(340px,92vw);padding:14px 16px 12px;transition:opacity .18s,transform .18s;position:fixed;bottom:126px;left:50%;transform:translate(-50%)translateY(12px)}.info-panel.visible{opacity:1;pointer-events:all;transform:translate(-50%)translateY(0)}.info-header{align-items:flex-start;gap:10px;margin-bottom:12px;display:flex}.info-glyph{text-align:center;flex-shrink:0;width:34px;font-size:28px;line-height:1}.info-title{color:var(--text);flex:1;font-size:13px;font-weight:700}.info-name-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.info-pos{color:var(--text-secondary);margin-top:2px;font-size:11px;font-weight:400}.retro{color:#e05252;font-style:normal}.info-close{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;border-radius:4px;flex-shrink:0;padding:2px 4px;font-size:13px;line-height:1;transition:color .12s}.info-close:hover{color:var(--text)}.aspects-title{text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary);margin-bottom:6px;font-size:10px;font-weight:700}.aspects-list{flex-direction:column;gap:4px;max-height:140px;display:flex;overflow-y:auto}.aspect-row{align-items:center;gap:7px;padding:3px 0;font-size:12px;display:flex}.aspect-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.aspect-sym{text-align:center;flex-shrink:0;width:16px;font-size:14px}.aspect-other{color:var(--text);flex:1}.aspect-meta{color:var(--text-secondary);white-space:nowrap;font-size:11px}.no-aspects{color:var(--text-secondary);padding:4px 0;font-size:11px;font-style:italic}.info-hint{color:var(--accent);text-align:center;margin-top:10px;font-size:10px;font-style:italic}.dignity-badge{white-space:nowrap;border-radius:99px;align-items:center;gap:3px;padding:1px 7px;font-size:10px;font-weight:600;line-height:1.6;display:inline-flex}.dignity-domicile{color:#2e9e5e;background:#52c07a2e;border:1px solid #52c07a66}.dignity-exaltation{color:#9a8600;background:#c0b0522e;border:1px solid #c0b05266}.dignity-detriment{color:#c03030;background:#e0525224;border:1px solid #e0525259}.dignity-fall{color:#707080;background:#9a9a9a24;border:1px solid #9a9a9a4d}@media (prefers-color-scheme:dark){.dignity-domicile{color:#6fe098;background:#52c07a1f}.dignity-exaltation{color:#e0cc60;background:#c0b0521f}.dignity-detriment{color:#e08080;background:#e052521a}.dignity-fall{color:#a0a0b0;background:#9a9a9a1a}}#tally-panel{border-top:1px solid var(--border);background:var(--surface);flex-shrink:0;align-items:center;gap:8px;padding:5px 12px;display:flex}.tally-section{flex-direction:column;gap:3px;display:flex}.tally-row{align-items:center;gap:8px;display:flex}.tally-item{white-space:nowrap;border-radius:4px;padding:1px 6px;font-size:11px;font-weight:600}.tally-item.fire{color:var(--color-fire);background:#e8854c1f}.tally-item.earth{color:var(--color-earth);background:#7aaa6a1f}.tally-item.air{color:var(--color-air);background:#5aaad01f}.tally-item.water{color:var(--color-water);background:#8878c81f}.tally-item.cardinal{color:var(--color-cardinal);background:#e052521a}.tally-item.fixed{color:var(--color-fixed);background:#c0b0521a}.tally-item.mutable{color:var(--color-mutable);background:#52c07a1a}.tally-bar-row{padding:2px 0}.tally-bar{background:var(--border);border-radius:2px;width:90px;height:4px;display:flex;overflow:hidden}.tally-bar-fill{height:100%;transition:width .4s}.tally-bar-fill.fire{background:var(--color-fire)}.tally-bar-fill.earth{background:var(--color-earth)}.tally-bar-fill.air{background:var(--color-air)}.tally-bar-fill.water{background:var(--color-water)}.tally-divider{background:var(--border);flex-shrink:0;width:1px;height:28px}#patterns-strip{border-top:1px solid var(--border);background:var(--surface);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:5px;padding:5px 12px;display:flex}.patterns-label{text-transform:uppercase;letter-spacing:.07em;color:var(--text-secondary);white-space:nowrap;margin-right:2px;font-size:10px;font-weight:700}.pattern-pill{cursor:pointer;white-space:nowrap;opacity:.85;background:0 0;border:1px solid;border-radius:99px;align-items:center;gap:4px;padding:2px 9px;font-family:inherit;font-size:11px;font-weight:600;transition:opacity .14s,box-shadow .14s,transform 80ms;display:inline-flex}.pattern-pill:hover{opacity:1;filter:brightness(1.05);box-shadow:0 0 0 2px #80808040}.pattern-pill.active{color:#fff;opacity:1;border-color:#0000;transform:translateY(-1px);box-shadow:0 2px 8px #00000040}#controls-panel{border-top:1px solid var(--border);background:var(--surface);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px;padding:8px 12px;display:flex}.controls-label{color:var(--text-secondary);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;margin-right:2px;font-size:11px;font-weight:600}.control-btn{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;padding:3px 10px;font-family:inherit;font-size:12px;transition:background .12s,color .12s,border-color .12s}.control-btn:hover{background:var(--accent-subtle);color:var(--accent);border-color:var(--accent)}.control-btn.active{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}.controls-divider{background:var(--border);flex-shrink:0;width:1px;height:18px;margin:0 4px}.tooltip{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);pointer-events:none;box-shadow:var(--shadow-md);z-index:1000;opacity:0;max-width:220px;padding:8px 12px;font-size:12px;transition:opacity .12s;position:fixed}.tooltip.visible{opacity:1}.tooltip-title{color:var(--text);margin-bottom:2px;font-weight:700}.tooltip-detail{color:var(--text-secondary);line-height:1.4}.tooltip-hint{color:var(--accent);margin-top:4px;font-size:10px;font-style:italic}.error-state{text-align:center;color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;padding:24px;display:flex}.error-state .error-icon{margin-bottom:4px;font-size:32px}
31
34
  /*$vite$:1*/</style>
32
35
  </head>
33
36
  <body>
@@ -37,11 +40,14 @@
37
40
  <p>Loading chart…</p>
38
41
  </div>
39
42
  <div id="chart-container" hidden></div>
43
+ <!-- Element/Modality tally + Pattern strip share the bottom bar with controls -->
44
+ <div id="tally-panel" hidden></div>
45
+ <div id="patterns-strip" hidden></div>
40
46
  <div id="controls-panel" hidden></div>
41
47
  <div id="tooltip" class="tooltip" aria-live="polite"></div>
42
48
  </div>
43
- )?e.length-1:e.length;return e.slice(t,n)}function se(e,t){let n=(e.toString().split(`.`)[1]||``).length,r=t.toString(),i=(r.split(`.`)[1]||``).length;if(i===0&&/\d?e-\d?/.test(r)){let e=r.match(/\d?e-(\d?)/);e?.[1]&&(i=Number.parseInt(e[1]))}let a=n>i?n:i;return Number.parseInt(e.toFixed(a).replace(`.`,``))%Number.parseInt(t.toFixed(a).replace(`.`,``))/10**a}var ce=Symbol(`evaluating`);function h(e,t,n){let r;Object.defineProperty(e,t,{get(){if(r!==ce)return r===void 0&&(r=ce,r=n()),r},set(n){Object.defineProperty(e,t,{value:n})},configurable:!0})}function le(e){return Object.create(Object.getPrototypeOf(e),Object.getOwnPropertyDescriptors(e))}function ue(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function de(...e){let t={};for(let n of e)Object.assign(t,Object.getOwnPropertyDescriptors(n));return Object.defineProperties({},t)}function fe(e){return de(e._zod.def)}function pe(e,t){return t?t.reduce((e,t)=>e?.[t],e):e}function me(e){let t=Object.keys(e),n=t.map(t=>e[t]);return Promise.all(n).then(e=>{let n={};for(let r=0;r<t.length;r++)n[t[r]]=e[r];return n})}function he(e=10){let t=``;for(let n=0;n<e;n++)t+=`abcdefghijklmnopqrstuvwxyz`[Math.floor(Math.random()*26)];return t}function ge(e){return JSON.stringify(e)}function _e(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,``).replace(/[\s_-]+/g,`-`).replace(/^-+|-+$/g,``)}var ve=`captureStackTrace`in Error?Error.captureStackTrace:(...e)=>{};function ye(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}var be=ie(()=>{if(typeof navigator<`u`&&navigator?.userAgent?.includes(`Cloudflare`))return!1;try{return Function(``),!0}catch{return!1}});function xe(e){if(ye(e)===!1)return!1;let t=e.constructor;if(t===void 0||typeof t!=`function`)return!0;let n=t.prototype;return!(ye(n)===!1||Object.prototype.hasOwnProperty.call(n,`isPrototypeOf`)===!1)}function Se(e){return xe(e)?{...e}:Array.isArray(e)?[...e]:e}function Ce(e){let t=0;for(let n in e)Object.prototype.hasOwnProperty.call(e,n)&&t++;return t}var we=e=>{let t=typeof e;switch(t){case`undefined`:return`undefined`;case`string`:return`string`;case`number`:return Number.isNaN(e)?`nan`:`number`;case`boolean`:return`boolean`;case`function`:return`function`;case`bigint`:return`bigint`;case`symbol`:return`symbol`;case`object`:return Array.isArray(e)?`array`:e===null?`null`:e.then&&typeof e.then==`function`&&e.catch&&typeof e.catch==`function`?`promise`:typeof Map<`u`&&e instanceof Map?`map`:typeof Set<`u`&&e instanceof Set?`set`:typeof Date<`u`&&e instanceof Date?`date`:typeof File<`u`&&e instanceof File?`file`:`object`;default:throw Error(`Unknown data type: ${t}`)}},Te=new Set([`string`,`number`,`symbol`]),Ee=new Set([`string`,`number`,`bigint`,`boolean`,`symbol`,`undefined`]);function De(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\</body>`)}function g(e,t,n){let r=new e._zod.constr(t??e._zod.def);return(!t||n?.parent)&&(r._zod.parent=e),r}function _(e){let t=e;if(!t)return{};if(typeof t==`string`)return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error==`string`?{...t,error:()=>t.error}:t}function Oe(e){let t;return new Proxy({},{get(n,r,i){return t??=e(),Reflect.get(t,r,i)},set(n,r,i,a){return t??=e(),Reflect.set(t,r,i,a)},has(n,r){return t??=e(),Reflect.has(t,r)},deleteProperty(n,r){return t??=e(),Reflect.deleteProperty(t,r)},ownKeys(n){return t??=e(),Reflect.ownKeys(t)},getOwnPropertyDescriptor(n,r){return t??=e(),Reflect.getOwnPropertyDescriptor(t,r)},defineProperty(n,r,i){return t??=e(),Reflect.defineProperty(t,r,i)}})}function v(e){return typeof e==`bigint`?e.toString()+`n`:typeof e==`string`?`"${e}"`:`${e}`}function ke(e){return Object.keys(e).filter(t=>e[t]._zod.optin===`optional`&&e[t]._zod.optout===`optional`)}var Ae={safeint:[-(2**53-1),2**53-1],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},je={int64:[BigInt(`-9223372036854775808`),BigInt(`9223372036854775807`)],uint64:[BigInt(0),BigInt(`18446744073709551615`)]};function Me(e,t){let n=e._zod.def;return g(e,de(e._zod.def,{get shape(){let e={};for(let r in t){if(!(r in n.shape))throw Error(`Unrecognized key: "${r}"`);t[r]&&(e[r]=n.shape[r])}return ue(this,`shape`,e),e},checks:[]}))}function Ne(e,t){let n=e._zod.def;return g(e,de(e._zod.def,{get shape(){let r={...e._zod.def.shape};for(let e in t){if(!(e in n.shape))throw Error(`Unrecognized key: "${e}"`);t[e]&&delete r[e]}return ue(this,`shape`,r),r},checks:[]}))}function Pe(e,t){if(!xe(t))throw Error(`Invalid input to extend: expected a plain object`);let n=e._zod.def.checks;if(n&&n.length>0)throw Error("Object schemas containing refinements cannot be extended. Use `.safeExtend()` instead.");return g(e,de(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t};return ue(this,`shape`,n),n},checks:[]}))}function Fe(e,t){if(!xe(t))throw Error(`Invalid input to safeExtend: expected a plain object`);return g(e,{...e._zod.def,get shape(){let n={...e._zod.def.shape,...t};return ue(this,`shape`,n),n},checks:e._zod.def.checks})}function Ie(e,t){return g(e,de(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t._zod.def.shape};return ue(this,`shape`,n),n},get catchall(){return t._zod.def.catchall},checks:[]}))}function Le(e,t,n){return g(t,de(t._zod.def,{get shape(){let r=t._zod.def.shape,i={...r};if(n)for(let t in n){if(!(t in r))throw Error(`Unrecognized key: "${t}"`);n[t]&&(i[t]=e?new e({type:`optional`,innerType:r[t]}):r[t])}else for(let t in r)i[t]=e?new e({type:`optional`,innerType:r[t]}):r[t];return ue(this,`shape`,i),i},checks:[]}))}function Re(e,t,n){return g(t,de(t._zod.def,{get shape(){let r=t._zod.def.shape,i={...r};if(n)for(let t in n){if(!(t in i))throw Error(`Unrecognized key: "${t}"`);n[t]&&(i[t]=new e({type:`nonoptional`,innerType:r[t]}))}else for(let t in r)i[t]=new e({type:`nonoptional`,innerType:r[t]});return ue(this,`shape`,i),i},checks:[]}))}function ze(e,t=0){if(e.aborted===!0)return!0;for(let n=t;n<e.issues.length;n++)if(e.issues[n]?.continue!==!0)return!0;return!1}function y(e,t){return t.map(t=>{var n;return(n=t).path??(n.path=[]),t.path.unshift(e),t})}function Be(e){return typeof e==`string`?e:e?.message}function b(e,t,n){let r={...e,path:e.path??[]};return e.message||(r.message=Be(e.inst?._zod.def?.error?.(e))??Be(t?.error?.(e))??Be(n.customError?.(e))??Be(n.localeError?.(e))??`Invalid input`),delete r.inst,delete r.continue,t?.reportInput||delete r.input,r}function Ve(e){return e instanceof Set?`set`:e instanceof Map?`map`:e instanceof File?`file`:`unknown`}function He(e){return Array.isArray(e)?`array`:typeof e==`string`?`string`:`unknown`}function Ue(...e){let[t,n,r]=e;return typeof t==`string`?{message:t,code:`custom`,input:n,inst:r}:{...t}}function We(e){return Object.entries(e).filter(([e,t])=>Number.isNaN(Number.parseInt(e,10))).map(e=>e[1])}function Ge(e){let t=atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);return n}function Ke(e){let t=``;for(let n=0;n<e.length;n++)t+=String.fromCharCode(e[n]);return btoa(t)}function qe(e){let t=e.replace(/-/g,`+`).replace(/_/g,`/`);return Ge(t+`=`.repeat((4-t.length%4)%4))}function Je(e){return Ke(e).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=/g,``)}function Ye(e){let t=e.replace(/^0x/,``);if(t.length%2!=0)throw Error(`Invalid hex string length`);let n=new Uint8Array(t.length/2);for(let e=0;e<t.length;e+=2)n[e/2]=Number.parseInt(t.slice(e,e+2),16);return n}function Xe(e){return Array.from(e).map(e=>e.toString(16).padStart(2,`0`)).join(``)}var Ze=class{constructor(...e){}},Qe=(e,t)=>{e.name=`$ZodError`,Object.defineProperty(e,`_zod`,{value:e._zod,enumerable:!1}),Object.defineProperty(e,`issues`,{value:t,enumerable:!1}),e.message=JSON.stringify(t,re,2),Object.defineProperty(e,`toString`,{value:()=>e.message,enumerable:!1})},$e=i(`$ZodError`,Qe),x=i(`$ZodError`,Qe,{Parent:Error});function et(e,t=e=>e.message){let n={},r=[];for(let i of e.issues)i.path.length>0?(n[i.path[0]]=n[i.path[0]]||[],n[i.path[0]].push(t(i))):r.push(t(i));return{formErrors:r,fieldErrors:n}}function tt(e,t=e=>e.message){let n={_errors:[]},r=e=>{for(let i of e.issues)if(i.code===`invalid_union`&&i.errors.length)i.errors.map(e=>r({issues:e}));else if(i.code===`invalid_key`)r({issues:i.issues});else if(i.code===`invalid_element`)r({issues:i.issues});else if(i.path.length===0)n._errors.push(t(i));else{let e=n,r=0;for(;r<i.path.length;){let n=i.path[r];r===i.path.length-1?(e[n]=e[n]||{_errors:[]},e[n]._errors.push(t(i))):e[n]=e[n]||{_errors:[]},e=e[n],r++}}};return r(e),n}function nt(e,t=e=>e.message){let n={errors:[]},r=(e,i=[])=>{var a,o;for(let s of e.issues)if(s.code===`invalid_union`&&s.errors.length)s.errors.map(e=>r({issues:e},s.path));else if(s.code===`invalid_key`)r({issues:s.issues},s.path);else if(s.code===`invalid_element`)r({issues:s.issues},s.path);else{let e=[...i,...s.path];if(e.length===0){n.errors.push(t(s));continue}let r=n,c=0;for(;c<e.length;){let n=e[c],i=c===e.length-1;typeof n==`string`?(r.properties??={},(a=r.properties)[n]??(a[n]={errors:[]}),r=r.properties[n]):(r.items??=[],(o=r.items)[n]??(o[n]={errors:[]}),r=r.items[n]),i&&r.errors.push(t(s)),c++}}};return r(e),n}function rt(e){let t=[],n=e.map(e=>typeof e==`object`?e.key:e);for(let e of n)typeof e==`number`?t.push(`[${e}]`):typeof e==`symbol`?t.push(`[${JSON.stringify(String(e))}]`):/[^\w$]/.test(e)?t.push(`[${JSON.stringify(e)}]`):(t.length&&t.push(`.`),t.push(e));return t.join(``)}function it(e){let t=[],n=[...e.issues].sort((e,t)=>(e.path??[]).length-(t.path??[]).length);for(let e of n)t.push(`✖ ${e.message}`),e.path?.length&&t.push(` → at ${rt(e.path)}`);return t.join(`
44
- `)}var at=e=>(t,n,r,i)=>{let a=r?Object.assign(r,{async:!1}):{async:!1},s=t._zod.run({value:n,issues:[]},a);if(s instanceof Promise)throw new o;if(s.issues.length){let t=new(i?.Err??e)(s.issues.map(e=>b(e,a,l())));throw ve(t,i?.callee),t}return s.value},ot=at(x),st=e=>async(t,n,r,i)=>{let a=r?Object.assign(r,{async:!0}):{async:!0},o=t._zod.run({value:n,issues:[]},a);if(o instanceof Promise&&(o=await o),o.issues.length){let t=new(i?.Err??e)(o.issues.map(e=>b(e,a,l())));throw ve(t,i?.callee),t}return o.value},ct=st(x),lt=e=>(t,n,r)=>{let i=r?{...r,async:!1}:{async:!1},a=t._zod.run({value:n,issues:[]},i);if(a instanceof Promise)throw new o;return a.issues.length?{success:!1,error:new(e??$e)(a.issues.map(e=>b(e,i,l())))}:{success:!0,data:a.value}},ut=lt(x),dt=e=>async(t,n,r)=>{let i=r?Object.assign(r,{async:!0}):{async:!0},a=t._zod.run({value:n,issues:[]},i);return a instanceof Promise&&(a=await a),a.issues.length?{success:!1,error:new e(a.issues.map(e=>b(e,i,l())))}:{success:!0,data:a.value}},ft=dt(x),pt=e=>(t,n,r)=>{let i=r?Object.assign(r,{direction:`backward`}):{direction:`backward`};return at(e)(t,n,i)},mt=pt(x),ht=e=>(t,n,r)=>at(e)(t,n,r),gt=ht(x),_t=e=>async(t,n,r)=>{let i=r?Object.assign(r,{direction:`backward`}):{direction:`backward`};return st(e)(t,n,i)},vt=_t(x),yt=e=>async(t,n,r)=>st(e)(t,n,r),bt=yt(x),xt=e=>(t,n,r)=>{let i=r?Object.assign(r,{direction:`backward`}):{direction:`backward`};return lt(e)(t,n,i)},St=xt(x),Ct=e=>(t,n,r)=>lt(e)(t,n,r),wt=Ct(x),Tt=e=>async(t,n,r)=>{let i=r?Object.assign(r,{direction:`backward`}):{direction:`backward`};return dt(e)(t,n,i)},Et=Tt(x),Dt=e=>async(t,n,r)=>dt(e)(t,n,r),Ot=Dt(x),kt=t({base64:()=>nn,base64url:()=>rn,bigint:()=>mn,boolean:()=>_n,browserEmail:()=>Jt,cidrv4:()=>en,cidrv6:()=>tn,cuid:()=>At,cuid2:()=>jt,date:()=>ln,datetime:()=>fn,domain:()=>on,duration:()=>It,e164:()=>sn,email:()=>Ut,emoji:()=>Xt,extendedDuration:()=>Lt,guid:()=>Rt,hex:()=>Sn,hostname:()=>an,html5Email:()=>Wt,idnEmail:()=>qt,integer:()=>hn,ipv4:()=>Zt,ipv6:()=>Qt,ksuid:()=>Pt,lowercase:()=>bn,mac:()=>$t,md5_base64:()=>En,md5_base64url:()=>Dn,md5_hex:()=>Tn,nanoid:()=>Ft,null:()=>vn,number:()=>gn,rfc5322Email:()=>Gt,sha1_base64:()=>kn,sha1_base64url:()=>An,sha1_hex:()=>On,sha256_base64:()=>Mn,sha256_base64url:()=>Nn,sha256_hex:()=>jn,sha384_base64:()=>Fn,sha384_base64url:()=>In,sha384_hex:()=>Pn,sha512_base64:()=>Rn,sha512_base64url:()=>zn,sha512_hex:()=>Ln,string:()=>pn,time:()=>dn,ulid:()=>Mt,undefined:()=>yn,unicodeEmail:()=>Kt,uppercase:()=>xn,uuid:()=>zt,uuid4:()=>Bt,uuid6:()=>Vt,uuid7:()=>Ht,xid:()=>Nt}),At=/^[cC][^\s-]{8,}$/,jt=/^[0-9a-z]+$/,Mt=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,Nt=/^[0-9a-vA-V]{20}$/,Pt=/^[A-Za-z0-9]{27}$/,Ft=/^[a-zA-Z0-9_-]{21}$/,It=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,Lt=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,Rt=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,zt=e=>e?RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})<!DOCTYPE html>
49
+ )?e.length-1:e.length;return e.slice(t,n)}function re(e,t){let n=(e.toString().split(`.`)[1]||``).length,r=t.toString(),i=(r.split(`.`)[1]||``).length;if(i===0&&/\d?e-\d?/.test(r)){let e=r.match(/\d?e-(\d?)/);e?.[1]&&(i=Number.parseInt(e[1]))}let a=n>i?n:i;return Number.parseInt(e.toFixed(a).replace(`.`,``))%Number.parseInt(t.toFixed(a).replace(`.`,``))/10**a}var ie=Symbol(`evaluating`);function y(e,t,n){let r;Object.defineProperty(e,t,{get(){if(r!==ie)return r===void 0&&(r=ie,r=n()),r},set(n){Object.defineProperty(e,t,{value:n})},configurable:!0})}function ae(e){return Object.create(Object.getPrototypeOf(e),Object.getOwnPropertyDescriptors(e))}function oe(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function se(...e){let t={};for(let n of e)Object.assign(t,Object.getOwnPropertyDescriptors(n));return Object.defineProperties({},t)}function ce(e){return se(e._zod.def)}function le(e,t){return t?t.reduce((e,t)=>e?.[t],e):e}function ue(e){let t=Object.keys(e),n=t.map(t=>e[t]);return Promise.all(n).then(e=>{let n={};for(let r=0;r<t.length;r++)n[t[r]]=e[r];return n})}function de(e=10){let t=``;for(let n=0;n<e;n++)t+=`abcdefghijklmnopqrstuvwxyz`[Math.floor(Math.random()*26)];return t}function fe(e){return JSON.stringify(e)}function pe(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,``).replace(/[\s_-]+/g,`-`).replace(/^-+|-+$/g,``)}var me=`captureStackTrace`in Error?Error.captureStackTrace:(...e)=>{};function he(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}var ge=ee(()=>{if(typeof navigator<`u`&&navigator?.userAgent?.includes(`Cloudflare`))return!1;try{return Function(``),!0}catch{return!1}});function _e(e){if(he(e)===!1)return!1;let t=e.constructor;if(t===void 0||typeof t!=`function`)return!0;let n=t.prototype;return!(he(n)===!1||Object.prototype.hasOwnProperty.call(n,`isPrototypeOf`)===!1)}function ve(e){return _e(e)?{...e}:Array.isArray(e)?[...e]:e}function ye(e){let t=0;for(let n in e)Object.prototype.hasOwnProperty.call(e,n)&&t++;return t}var be=e=>{let t=typeof e;switch(t){case`undefined`:return`undefined`;case`string`:return`string`;case`number`:return Number.isNaN(e)?`nan`:`number`;case`boolean`:return`boolean`;case`function`:return`function`;case`bigint`:return`bigint`;case`symbol`:return`symbol`;case`object`:return Array.isArray(e)?`array`:e===null?`null`:e.then&&typeof e.then==`function`&&e.catch&&typeof e.catch==`function`?`promise`:typeof Map<`u`&&e instanceof Map?`map`:typeof Set<`u`&&e instanceof Set?`set`:typeof Date<`u`&&e instanceof Date?`date`:typeof File<`u`&&e instanceof File?`file`:`object`;default:throw Error(`Unknown data type: ${t}`)}},xe=new Set([`string`,`number`,`symbol`]),Se=new Set([`string`,`number`,`bigint`,`boolean`,`symbol`,`undefined`]);function Ce(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\</body>`)}function b(e,t,n){let r=new e._zod.constr(t??e._zod.def);return(!t||n?.parent)&&(r._zod.parent=e),r}function x(e){let t=e;if(!t)return{};if(typeof t==`string`)return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error==`string`?{...t,error:()=>t.error}:t}function we(e){let t;return new Proxy({},{get(n,r,i){return t??=e(),Reflect.get(t,r,i)},set(n,r,i,a){return t??=e(),Reflect.set(t,r,i,a)},has(n,r){return t??=e(),Reflect.has(t,r)},deleteProperty(n,r){return t??=e(),Reflect.deleteProperty(t,r)},ownKeys(n){return t??=e(),Reflect.ownKeys(t)},getOwnPropertyDescriptor(n,r){return t??=e(),Reflect.getOwnPropertyDescriptor(t,r)},defineProperty(n,r,i){return t??=e(),Reflect.defineProperty(t,r,i)}})}function S(e){return typeof e==`bigint`?e.toString()+`n`:typeof e==`string`?`"${e}"`:`${e}`}function Te(e){return Object.keys(e).filter(t=>e[t]._zod.optin===`optional`&&e[t]._zod.optout===`optional`)}var Ee={safeint:[-(2**53-1),2**53-1],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},De={int64:[BigInt(`-9223372036854775808`),BigInt(`9223372036854775807`)],uint64:[BigInt(0),BigInt(`18446744073709551615`)]};function Oe(e,t){let n=e._zod.def;return b(e,se(e._zod.def,{get shape(){let e={};for(let r in t){if(!(r in n.shape))throw Error(`Unrecognized key: "${r}"`);t[r]&&(e[r]=n.shape[r])}return oe(this,`shape`,e),e},checks:[]}))}function ke(e,t){let n=e._zod.def;return b(e,se(e._zod.def,{get shape(){let r={...e._zod.def.shape};for(let e in t){if(!(e in n.shape))throw Error(`Unrecognized key: "${e}"`);t[e]&&delete r[e]}return oe(this,`shape`,r),r},checks:[]}))}function Ae(e,t){if(!_e(t))throw Error(`Invalid input to extend: expected a plain object`);let n=e._zod.def.checks;if(n&&n.length>0)throw Error("Object schemas containing refinements cannot be extended. Use `.safeExtend()` instead.");return b(e,se(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t};return oe(this,`shape`,n),n},checks:[]}))}function je(e,t){if(!_e(t))throw Error(`Invalid input to safeExtend: expected a plain object`);return b(e,{...e._zod.def,get shape(){let n={...e._zod.def.shape,...t};return oe(this,`shape`,n),n},checks:e._zod.def.checks})}function Me(e,t){return b(e,se(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t._zod.def.shape};return oe(this,`shape`,n),n},get catchall(){return t._zod.def.catchall},checks:[]}))}function Ne(e,t,n){return b(t,se(t._zod.def,{get shape(){let r=t._zod.def.shape,i={...r};if(n)for(let t in n){if(!(t in r))throw Error(`Unrecognized key: "${t}"`);n[t]&&(i[t]=e?new e({type:`optional`,innerType:r[t]}):r[t])}else for(let t in r)i[t]=e?new e({type:`optional`,innerType:r[t]}):r[t];return oe(this,`shape`,i),i},checks:[]}))}function Pe(e,t,n){return b(t,se(t._zod.def,{get shape(){let r=t._zod.def.shape,i={...r};if(n)for(let t in n){if(!(t in i))throw Error(`Unrecognized key: "${t}"`);n[t]&&(i[t]=new e({type:`nonoptional`,innerType:r[t]}))}else for(let t in r)i[t]=new e({type:`nonoptional`,innerType:r[t]});return oe(this,`shape`,i),i},checks:[]}))}function Fe(e,t=0){if(e.aborted===!0)return!0;for(let n=t;n<e.issues.length;n++)if(e.issues[n]?.continue!==!0)return!0;return!1}function Ie(e,t){return t.map(t=>{var n;return(n=t).path??(n.path=[]),t.path.unshift(e),t})}function Le(e){return typeof e==`string`?e:e?.message}function Re(e,t,n){let r={...e,path:e.path??[]};return e.message||(r.message=Le(e.inst?._zod.def?.error?.(e))??Le(t?.error?.(e))??Le(n.customError?.(e))??Le(n.localeError?.(e))??`Invalid input`),delete r.inst,delete r.continue,t?.reportInput||delete r.input,r}function ze(e){return e instanceof Set?`set`:e instanceof Map?`map`:e instanceof File?`file`:`unknown`}function Be(e){return Array.isArray(e)?`array`:typeof e==`string`?`string`:`unknown`}function Ve(...e){let[t,n,r]=e;return typeof t==`string`?{message:t,code:`custom`,input:n,inst:r}:{...t}}function He(e){return Object.entries(e).filter(([e,t])=>Number.isNaN(Number.parseInt(e,10))).map(e=>e[1])}function Ue(e){let t=atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);return n}function We(e){let t=``;for(let n=0;n<e.length;n++)t+=String.fromCharCode(e[n]);return btoa(t)}function Ge(e){let t=e.replace(/-/g,`+`).replace(/_/g,`/`);return Ue(t+`=`.repeat((4-t.length%4)%4))}function Ke(e){return We(e).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=/g,``)}function qe(e){let t=e.replace(/^0x/,``);if(t.length%2!=0)throw Error(`Invalid hex string length`);let n=new Uint8Array(t.length/2);for(let e=0;e<t.length;e+=2)n[e/2]=Number.parseInt(t.slice(e,e+2),16);return n}function Je(e){return Array.from(e).map(e=>e.toString(16).padStart(2,`0`)).join(``)}var Ye=class{constructor(...e){}},Xe=(e,t)=>{e.name=`$ZodError`,Object.defineProperty(e,`_zod`,{value:e._zod,enumerable:!1}),Object.defineProperty(e,`issues`,{value:t,enumerable:!1}),e.message=JSON.stringify(t,v,2),Object.defineProperty(e,`toString`,{value:()=>e.message,enumerable:!1})},Ze=i(`$ZodError`,Xe),C=i(`$ZodError`,Xe,{Parent:Error});function Qe(e,t=e=>e.message){let n={},r=[];for(let i of e.issues)i.path.length>0?(n[i.path[0]]=n[i.path[0]]||[],n[i.path[0]].push(t(i))):r.push(t(i));return{formErrors:r,fieldErrors:n}}function $e(e,t=e=>e.message){let n={_errors:[]},r=e=>{for(let i of e.issues)if(i.code===`invalid_union`&&i.errors.length)i.errors.map(e=>r({issues:e}));else if(i.code===`invalid_key`)r({issues:i.issues});else if(i.code===`invalid_element`)r({issues:i.issues});else if(i.path.length===0)n._errors.push(t(i));else{let e=n,r=0;for(;r<i.path.length;){let n=i.path[r];r===i.path.length-1?(e[n]=e[n]||{_errors:[]},e[n]._errors.push(t(i))):e[n]=e[n]||{_errors:[]},e=e[n],r++}}};return r(e),n}function et(e,t=e=>e.message){let n={errors:[]},r=(e,i=[])=>{var a,o;for(let s of e.issues)if(s.code===`invalid_union`&&s.errors.length)s.errors.map(e=>r({issues:e},s.path));else if(s.code===`invalid_key`)r({issues:s.issues},s.path);else if(s.code===`invalid_element`)r({issues:s.issues},s.path);else{let e=[...i,...s.path];if(e.length===0){n.errors.push(t(s));continue}let r=n,c=0;for(;c<e.length;){let n=e[c],i=c===e.length-1;typeof n==`string`?(r.properties??={},(a=r.properties)[n]??(a[n]={errors:[]}),r=r.properties[n]):(r.items??=[],(o=r.items)[n]??(o[n]={errors:[]}),r=r.items[n]),i&&r.errors.push(t(s)),c++}}};return r(e),n}function tt(e){let t=[],n=e.map(e=>typeof e==`object`?e.key:e);for(let e of n)typeof e==`number`?t.push(`[${e}]`):typeof e==`symbol`?t.push(`[${JSON.stringify(String(e))}]`):/[^\w$]/.test(e)?t.push(`[${JSON.stringify(e)}]`):(t.length&&t.push(`.`),t.push(e));return t.join(``)}function nt(e){let t=[],n=[...e.issues].sort((e,t)=>(e.path??[]).length-(t.path??[]).length);for(let e of n)t.push(`✖ ${e.message}`),e.path?.length&&t.push(` → at ${tt(e.path)}`);return t.join(`
50
+ `)}var rt=e=>(t,n,r,i)=>{let a=r?Object.assign(r,{async:!1}):{async:!1},s=t._zod.run({value:n,issues:[]},a);if(s instanceof Promise)throw new o;if(s.issues.length){let t=new(i?.Err??e)(s.issues.map(e=>Re(e,a,l())));throw me(t,i?.callee),t}return s.value},it=rt(C),at=e=>async(t,n,r,i)=>{let a=r?Object.assign(r,{async:!0}):{async:!0},o=t._zod.run({value:n,issues:[]},a);if(o instanceof Promise&&(o=await o),o.issues.length){let t=new(i?.Err??e)(o.issues.map(e=>Re(e,a,l())));throw me(t,i?.callee),t}return o.value},ot=at(C),st=e=>(t,n,r)=>{let i=r?{...r,async:!1}:{async:!1},a=t._zod.run({value:n,issues:[]},i);if(a instanceof Promise)throw new o;return a.issues.length?{success:!1,error:new(e??Ze)(a.issues.map(e=>Re(e,i,l())))}:{success:!0,data:a.value}},ct=st(C),lt=e=>async(t,n,r)=>{let i=r?Object.assign(r,{async:!0}):{async:!0},a=t._zod.run({value:n,issues:[]},i);return a instanceof Promise&&(a=await a),a.issues.length?{success:!1,error:new e(a.issues.map(e=>Re(e,i,l())))}:{success:!0,data:a.value}},ut=lt(C),dt=e=>(t,n,r)=>{let i=r?Object.assign(r,{direction:`backward`}):{direction:`backward`};return rt(e)(t,n,i)},ft=dt(C),pt=e=>(t,n,r)=>rt(e)(t,n,r),mt=pt(C),ht=e=>async(t,n,r)=>{let i=r?Object.assign(r,{direction:`backward`}):{direction:`backward`};return at(e)(t,n,i)},gt=ht(C),_t=e=>async(t,n,r)=>at(e)(t,n,r),vt=_t(C),yt=e=>(t,n,r)=>{let i=r?Object.assign(r,{direction:`backward`}):{direction:`backward`};return st(e)(t,n,i)},bt=yt(C),xt=e=>(t,n,r)=>st(e)(t,n,r),St=xt(C),Ct=e=>async(t,n,r)=>{let i=r?Object.assign(r,{direction:`backward`}):{direction:`backward`};return lt(e)(t,n,i)},wt=Ct(C),Tt=e=>async(t,n,r)=>lt(e)(t,n,r),Et=Tt(C),Dt=t({base64:()=>en,base64url:()=>tn,bigint:()=>fn,boolean:()=>hn,browserEmail:()=>Kt,cidrv4:()=>Qt,cidrv6:()=>$t,cuid:()=>Ot,cuid2:()=>kt,date:()=>sn,datetime:()=>un,domain:()=>rn,duration:()=>Pt,e164:()=>an,email:()=>Vt,emoji:()=>Jt,extendedDuration:()=>Ft,guid:()=>It,hex:()=>bn,hostname:()=>nn,html5Email:()=>Ht,idnEmail:()=>Gt,integer:()=>pn,ipv4:()=>Yt,ipv6:()=>Xt,ksuid:()=>Mt,lowercase:()=>vn,mac:()=>Zt,md5_base64:()=>wn,md5_base64url:()=>Tn,md5_hex:()=>Cn,nanoid:()=>Nt,null:()=>gn,number:()=>mn,rfc5322Email:()=>Ut,sha1_base64:()=>Dn,sha1_base64url:()=>On,sha1_hex:()=>En,sha256_base64:()=>An,sha256_base64url:()=>jn,sha256_hex:()=>kn,sha384_base64:()=>Nn,sha384_base64url:()=>Pn,sha384_hex:()=>Mn,sha512_base64:()=>In,sha512_base64url:()=>Ln,sha512_hex:()=>Fn,string:()=>dn,time:()=>ln,ulid:()=>At,undefined:()=>_n,unicodeEmail:()=>Wt,uppercase:()=>yn,uuid:()=>Lt,uuid4:()=>Rt,uuid6:()=>zt,uuid7:()=>Bt,xid:()=>jt}),Ot=/^[cC][^\s-]{8,}$/,kt=/^[0-9a-z]+$/,At=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,jt=/^[0-9a-vA-V]{20}$/,Mt=/^[A-Za-z0-9]{27}$/,Nt=/^[a-zA-Z0-9_-]{21}$/,Pt=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,Ft=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,It=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,Lt=e=>e?RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})<!DOCTYPE html>
45
51
  <html lang="en">
46
52
  <head>
47
53
  <meta charset="UTF-8" />
@@ -49,7 +55,7 @@
49
55
  <title>Chart Wheel Explorer</title>
50
56
 
51
57
 
52
- <style>:root{--bg:#faf9f5;--surface:#fff;--text:#1a1a2e;--text-secondary:#5a5a7a;--accent:#6366f1;--accent-hover:#4f46e5;--accent-subtle:#6366f11f;--border:#e8e6f0;--border-strong:#c8c4d8;--shadow:0 4px 16px #00000014;--shadow-md:0 8px 32px #0000001f;--radius:10px;--radius-sm:6px;--planet-sun:#f59e0b;--planet-moon:#94a3b8;--planet-mercury:#10b981;--planet-venus:#ec4899;--planet-mars:#ef4444;--planet-jupiter:#8b5cf6;--planet-saturn:#64748b;--planet-uranus:#06b6d4;--planet-neptune:#3b82f6;--planet-pluto:#a78bfa;--aspect-conjunction:#f59e0b;--aspect-opposition:#ef4444;--aspect-trine:#10b981;--aspect-square:#ef4444;--aspect-sextile:#3b82f6}@media (prefers-color-scheme:dark){:root{--bg:#0d1117;--surface:#161b22;--text:#e6edf3;--text-secondary:#8b949e;--accent:#818cf8;--accent-hover:#a5b4fc;--accent-subtle:#818cf826;--border:#21262d;--border-strong:#30363d;--shadow:0 4px 16px #0006;--shadow-md:0 8px 32px #0009}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:var(--bg);color:var(--text);-webkit-user-select:none;user-select:none;font-family:-apple-system,Inter,Segoe UI,system-ui,sans-serif;font-size:13px;line-height:1.5;overflow:hidden}#app{flex-direction:column;height:100vh;display:flex;position:relative}#loading-state{color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}#chart-container{flex:1;justify-content:center;align-items:center;min-height:0;padding:12px;display:flex;position:relative}#chart-container svg{width:auto;max-width:100%;height:auto;max-height:100%}.hit-region{cursor:pointer;fill:#0000;stroke:#0000;transition:fill .15s,stroke .15s}.hit-region:hover{fill:var(--accent-subtle);stroke:var(--accent);stroke-width:1px;stroke-opacity:.5}.hit-region.planet-hit{rx:12px;ry:12px}.hit-region.aspect-hit{stroke-width:6px}#controls-panel{border-top:1px solid var(--border);background:var(--surface);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px;padding:8px 12px;display:flex}.controls-label{color:var(--text-secondary);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;margin-right:2px;font-size:11px;font-weight:600}.control-btn{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;padding:3px 10px;font-family:inherit;font-size:12px;transition:background .12s,color .12s,border-color .12s}.control-btn:hover{background:var(--accent-subtle);color:var(--accent);border-color:var(--accent)}.control-btn.active{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}.controls-divider{background:var(--border);flex-shrink:0;width:1px;height:18px;margin:0 4px}.tooltip{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);pointer-events:none;box-shadow:var(--shadow-md);z-index:1000;opacity:0;max-width:220px;padding:8px 12px;font-size:12px;transition:opacity .12s;position:fixed}.tooltip.visible{opacity:1}.tooltip-title{color:var(--text);margin-bottom:2px;font-weight:700}.tooltip-detail{color:var(--text-secondary);line-height:1.4}.tooltip-hint{color:var(--accent);margin-top:4px;font-size:10px;font-style:italic}.error-state{text-align:center;color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;padding:24px;display:flex}.error-state .error-icon{margin-bottom:4px;font-size:32px}
58
+ <style>:root{--bg:#faf9f5;--surface:#fff;--text:#1a1a2e;--text-secondary:#5a5a7a;--accent:#6366f1;--accent-hover:#4f46e5;--accent-subtle:#6366f11f;--border:#e8e6f0;--border-strong:#c8c4d8;--shadow:0 4px 16px #00000014;--shadow-md:0 8px 32px #0000001f;--radius:10px;--radius-sm:6px;--planet-sun:#f59e0b;--planet-moon:#94a3b8;--planet-mercury:#10b981;--planet-venus:#ec4899;--planet-mars:#ef4444;--planet-jupiter:#8b5cf6;--planet-saturn:#64748b;--planet-uranus:#06b6d4;--planet-neptune:#3b82f6;--planet-pluto:#a78bfa;--aspect-conjunction:#f59e0b;--aspect-opposition:#ef4444;--aspect-trine:#10b981;--aspect-square:#ef4444;--aspect-sextile:#3b82f6;--color-fire:#e8854c;--color-earth:#7aaa6a;--color-air:#5aaad0;--color-water:#8878c8;--color-cardinal:#e05252;--color-fixed:#c0b052;--color-mutable:#52c07a}@media (prefers-color-scheme:dark){:root{--bg:#0d1117;--surface:#161b22;--text:#e6edf3;--text-secondary:#8b949e;--accent:#818cf8;--accent-hover:#a5b4fc;--accent-subtle:#818cf826;--border:#21262d;--border-strong:#30363d;--shadow:0 4px 16px #0006;--shadow-md:0 8px 32px #0009}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:var(--bg);color:var(--text);-webkit-user-select:none;user-select:none;font-family:-apple-system,Inter,Segoe UI,system-ui,sans-serif;font-size:13px;line-height:1.5;overflow:hidden}#app{flex-direction:column;height:100vh;display:flex;position:relative}#loading-state{color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}#chart-container{flex:1;justify-content:center;align-items:center;min-height:0;padding:12px;display:flex;position:relative}#chart-container svg{width:auto;max-width:100%;height:auto;max-height:100%}.hit-region{cursor:pointer;fill:#0000;stroke:#0000;transition:fill .15s,stroke .15s,opacity .2s}.hit-region:hover{fill:var(--accent-subtle);stroke:var(--accent);stroke-width:1px;stroke-opacity:.5}.hit-region.planet-hit{rx:12px;ry:12px}.hit-region.planet-hit:not(.dim){filter:none}.hit-region.dim{opacity:.15}.hit-region.aspect-hit{stroke-width:13px}.hit-region.aspect-hit.highlight{stroke:var(--aspect-color,#888);stroke-opacity:.55}.info-panel{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow-md);z-index:900;opacity:0;pointer-events:none;width:min(340px,92vw);padding:14px 16px 12px;transition:opacity .18s,transform .18s;position:fixed;bottom:126px;left:50%;transform:translate(-50%)translateY(12px)}.info-panel.visible{opacity:1;pointer-events:all;transform:translate(-50%)translateY(0)}.info-header{align-items:flex-start;gap:10px;margin-bottom:12px;display:flex}.info-glyph{text-align:center;flex-shrink:0;width:34px;font-size:28px;line-height:1}.info-title{color:var(--text);flex:1;font-size:13px;font-weight:700}.info-name-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.info-pos{color:var(--text-secondary);margin-top:2px;font-size:11px;font-weight:400}.retro{color:#e05252;font-style:normal}.info-close{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;border-radius:4px;flex-shrink:0;padding:2px 4px;font-size:13px;line-height:1;transition:color .12s}.info-close:hover{color:var(--text)}.aspects-title{text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary);margin-bottom:6px;font-size:10px;font-weight:700}.aspects-list{flex-direction:column;gap:4px;max-height:140px;display:flex;overflow-y:auto}.aspect-row{align-items:center;gap:7px;padding:3px 0;font-size:12px;display:flex}.aspect-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.aspect-sym{text-align:center;flex-shrink:0;width:16px;font-size:14px}.aspect-other{color:var(--text);flex:1}.aspect-meta{color:var(--text-secondary);white-space:nowrap;font-size:11px}.no-aspects{color:var(--text-secondary);padding:4px 0;font-size:11px;font-style:italic}.info-hint{color:var(--accent);text-align:center;margin-top:10px;font-size:10px;font-style:italic}.dignity-badge{white-space:nowrap;border-radius:99px;align-items:center;gap:3px;padding:1px 7px;font-size:10px;font-weight:600;line-height:1.6;display:inline-flex}.dignity-domicile{color:#2e9e5e;background:#52c07a2e;border:1px solid #52c07a66}.dignity-exaltation{color:#9a8600;background:#c0b0522e;border:1px solid #c0b05266}.dignity-detriment{color:#c03030;background:#e0525224;border:1px solid #e0525259}.dignity-fall{color:#707080;background:#9a9a9a24;border:1px solid #9a9a9a4d}@media (prefers-color-scheme:dark){.dignity-domicile{color:#6fe098;background:#52c07a1f}.dignity-exaltation{color:#e0cc60;background:#c0b0521f}.dignity-detriment{color:#e08080;background:#e052521a}.dignity-fall{color:#a0a0b0;background:#9a9a9a1a}}#tally-panel{border-top:1px solid var(--border);background:var(--surface);flex-shrink:0;align-items:center;gap:8px;padding:5px 12px;display:flex}.tally-section{flex-direction:column;gap:3px;display:flex}.tally-row{align-items:center;gap:8px;display:flex}.tally-item{white-space:nowrap;border-radius:4px;padding:1px 6px;font-size:11px;font-weight:600}.tally-item.fire{color:var(--color-fire);background:#e8854c1f}.tally-item.earth{color:var(--color-earth);background:#7aaa6a1f}.tally-item.air{color:var(--color-air);background:#5aaad01f}.tally-item.water{color:var(--color-water);background:#8878c81f}.tally-item.cardinal{color:var(--color-cardinal);background:#e052521a}.tally-item.fixed{color:var(--color-fixed);background:#c0b0521a}.tally-item.mutable{color:var(--color-mutable);background:#52c07a1a}.tally-bar-row{padding:2px 0}.tally-bar{background:var(--border);border-radius:2px;width:90px;height:4px;display:flex;overflow:hidden}.tally-bar-fill{height:100%;transition:width .4s}.tally-bar-fill.fire{background:var(--color-fire)}.tally-bar-fill.earth{background:var(--color-earth)}.tally-bar-fill.air{background:var(--color-air)}.tally-bar-fill.water{background:var(--color-water)}.tally-divider{background:var(--border);flex-shrink:0;width:1px;height:28px}#patterns-strip{border-top:1px solid var(--border);background:var(--surface);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:5px;padding:5px 12px;display:flex}.patterns-label{text-transform:uppercase;letter-spacing:.07em;color:var(--text-secondary);white-space:nowrap;margin-right:2px;font-size:10px;font-weight:700}.pattern-pill{cursor:pointer;white-space:nowrap;opacity:.85;background:0 0;border:1px solid;border-radius:99px;align-items:center;gap:4px;padding:2px 9px;font-family:inherit;font-size:11px;font-weight:600;transition:opacity .14s,box-shadow .14s,transform 80ms;display:inline-flex}.pattern-pill:hover{opacity:1;filter:brightness(1.05);box-shadow:0 0 0 2px #80808040}.pattern-pill.active{color:#fff;opacity:1;border-color:#0000;transform:translateY(-1px);box-shadow:0 2px 8px #00000040}#controls-panel{border-top:1px solid var(--border);background:var(--surface);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px;padding:8px 12px;display:flex}.controls-label{color:var(--text-secondary);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;margin-right:2px;font-size:11px;font-weight:600}.control-btn{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;padding:3px 10px;font-family:inherit;font-size:12px;transition:background .12s,color .12s,border-color .12s}.control-btn:hover{background:var(--accent-subtle);color:var(--accent);border-color:var(--accent)}.control-btn.active{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}.controls-divider{background:var(--border);flex-shrink:0;width:1px;height:18px;margin:0 4px}.tooltip{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);pointer-events:none;box-shadow:var(--shadow-md);z-index:1000;opacity:0;max-width:220px;padding:8px 12px;font-size:12px;transition:opacity .12s;position:fixed}.tooltip.visible{opacity:1}.tooltip-title{color:var(--text);margin-bottom:2px;font-weight:700}.tooltip-detail{color:var(--text-secondary);line-height:1.4}.tooltip-hint{color:var(--accent);margin-top:4px;font-size:10px;font-style:italic}.error-state{text-align:center;color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;padding:24px;display:flex}.error-state .error-icon{margin-bottom:4px;font-size:32px}
53
59
  /*$vite$:1*/</style>
54
60
  </head>
55
61
  <body>
@@ -59,10 +65,13 @@
59
65
  <p>Loading chart…</p>
60
66
  </div>
61
67
  <div id="chart-container" hidden></div>
68
+ <!-- Element/Modality tally + Pattern strip share the bottom bar with controls -->
69
+ <div id="tally-panel" hidden></div>
70
+ <div id="patterns-strip" hidden></div>
62
71
  <div id="controls-panel" hidden></div>
63
72
  <div id="tooltip" class="tooltip" aria-live="polite"></div>
64
73
  </div>
65
- ):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,Bt=zt(4),Vt=zt(6),Ht=zt(7),Ut=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,Wt=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,Gt=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,Kt=/^[^\s@"]{1,64}@[^\s@]{1,255}$/u,qt=Kt,Jt=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,Yt=`^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+<!DOCTYPE html>
74
+ ):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,Rt=Lt(4),zt=Lt(6),Bt=Lt(7),Vt=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,Ht=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,Ut=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,Wt=/^[^\s@"]{1,64}@[^\s@]{1,255}$/u,Gt=Wt,Kt=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,qt=`^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+<!DOCTYPE html>
66
75
  <html lang="en">
67
76
  <head>
68
77
  <meta charset="UTF-8" />
@@ -70,7 +79,7 @@
70
79
  <title>Chart Wheel Explorer</title>
71
80
 
72
81
 
73
- <style>:root{--bg:#faf9f5;--surface:#fff;--text:#1a1a2e;--text-secondary:#5a5a7a;--accent:#6366f1;--accent-hover:#4f46e5;--accent-subtle:#6366f11f;--border:#e8e6f0;--border-strong:#c8c4d8;--shadow:0 4px 16px #00000014;--shadow-md:0 8px 32px #0000001f;--radius:10px;--radius-sm:6px;--planet-sun:#f59e0b;--planet-moon:#94a3b8;--planet-mercury:#10b981;--planet-venus:#ec4899;--planet-mars:#ef4444;--planet-jupiter:#8b5cf6;--planet-saturn:#64748b;--planet-uranus:#06b6d4;--planet-neptune:#3b82f6;--planet-pluto:#a78bfa;--aspect-conjunction:#f59e0b;--aspect-opposition:#ef4444;--aspect-trine:#10b981;--aspect-square:#ef4444;--aspect-sextile:#3b82f6}@media (prefers-color-scheme:dark){:root{--bg:#0d1117;--surface:#161b22;--text:#e6edf3;--text-secondary:#8b949e;--accent:#818cf8;--accent-hover:#a5b4fc;--accent-subtle:#818cf826;--border:#21262d;--border-strong:#30363d;--shadow:0 4px 16px #0006;--shadow-md:0 8px 32px #0009}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:var(--bg);color:var(--text);-webkit-user-select:none;user-select:none;font-family:-apple-system,Inter,Segoe UI,system-ui,sans-serif;font-size:13px;line-height:1.5;overflow:hidden}#app{flex-direction:column;height:100vh;display:flex;position:relative}#loading-state{color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}#chart-container{flex:1;justify-content:center;align-items:center;min-height:0;padding:12px;display:flex;position:relative}#chart-container svg{width:auto;max-width:100%;height:auto;max-height:100%}.hit-region{cursor:pointer;fill:#0000;stroke:#0000;transition:fill .15s,stroke .15s}.hit-region:hover{fill:var(--accent-subtle);stroke:var(--accent);stroke-width:1px;stroke-opacity:.5}.hit-region.planet-hit{rx:12px;ry:12px}.hit-region.aspect-hit{stroke-width:6px}#controls-panel{border-top:1px solid var(--border);background:var(--surface);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px;padding:8px 12px;display:flex}.controls-label{color:var(--text-secondary);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;margin-right:2px;font-size:11px;font-weight:600}.control-btn{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;padding:3px 10px;font-family:inherit;font-size:12px;transition:background .12s,color .12s,border-color .12s}.control-btn:hover{background:var(--accent-subtle);color:var(--accent);border-color:var(--accent)}.control-btn.active{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}.controls-divider{background:var(--border);flex-shrink:0;width:1px;height:18px;margin:0 4px}.tooltip{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);pointer-events:none;box-shadow:var(--shadow-md);z-index:1000;opacity:0;max-width:220px;padding:8px 12px;font-size:12px;transition:opacity .12s;position:fixed}.tooltip.visible{opacity:1}.tooltip-title{color:var(--text);margin-bottom:2px;font-weight:700}.tooltip-detail{color:var(--text-secondary);line-height:1.4}.tooltip-hint{color:var(--accent);margin-top:4px;font-size:10px;font-style:italic}.error-state{text-align:center;color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;padding:24px;display:flex}.error-state .error-icon{margin-bottom:4px;font-size:32px}
82
+ <style>:root{--bg:#faf9f5;--surface:#fff;--text:#1a1a2e;--text-secondary:#5a5a7a;--accent:#6366f1;--accent-hover:#4f46e5;--accent-subtle:#6366f11f;--border:#e8e6f0;--border-strong:#c8c4d8;--shadow:0 4px 16px #00000014;--shadow-md:0 8px 32px #0000001f;--radius:10px;--radius-sm:6px;--planet-sun:#f59e0b;--planet-moon:#94a3b8;--planet-mercury:#10b981;--planet-venus:#ec4899;--planet-mars:#ef4444;--planet-jupiter:#8b5cf6;--planet-saturn:#64748b;--planet-uranus:#06b6d4;--planet-neptune:#3b82f6;--planet-pluto:#a78bfa;--aspect-conjunction:#f59e0b;--aspect-opposition:#ef4444;--aspect-trine:#10b981;--aspect-square:#ef4444;--aspect-sextile:#3b82f6;--color-fire:#e8854c;--color-earth:#7aaa6a;--color-air:#5aaad0;--color-water:#8878c8;--color-cardinal:#e05252;--color-fixed:#c0b052;--color-mutable:#52c07a}@media (prefers-color-scheme:dark){:root{--bg:#0d1117;--surface:#161b22;--text:#e6edf3;--text-secondary:#8b949e;--accent:#818cf8;--accent-hover:#a5b4fc;--accent-subtle:#818cf826;--border:#21262d;--border-strong:#30363d;--shadow:0 4px 16px #0006;--shadow-md:0 8px 32px #0009}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:var(--bg);color:var(--text);-webkit-user-select:none;user-select:none;font-family:-apple-system,Inter,Segoe UI,system-ui,sans-serif;font-size:13px;line-height:1.5;overflow:hidden}#app{flex-direction:column;height:100vh;display:flex;position:relative}#loading-state{color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}#chart-container{flex:1;justify-content:center;align-items:center;min-height:0;padding:12px;display:flex;position:relative}#chart-container svg{width:auto;max-width:100%;height:auto;max-height:100%}.hit-region{cursor:pointer;fill:#0000;stroke:#0000;transition:fill .15s,stroke .15s,opacity .2s}.hit-region:hover{fill:var(--accent-subtle);stroke:var(--accent);stroke-width:1px;stroke-opacity:.5}.hit-region.planet-hit{rx:12px;ry:12px}.hit-region.planet-hit:not(.dim){filter:none}.hit-region.dim{opacity:.15}.hit-region.aspect-hit{stroke-width:13px}.hit-region.aspect-hit.highlight{stroke:var(--aspect-color,#888);stroke-opacity:.55}.info-panel{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow-md);z-index:900;opacity:0;pointer-events:none;width:min(340px,92vw);padding:14px 16px 12px;transition:opacity .18s,transform .18s;position:fixed;bottom:126px;left:50%;transform:translate(-50%)translateY(12px)}.info-panel.visible{opacity:1;pointer-events:all;transform:translate(-50%)translateY(0)}.info-header{align-items:flex-start;gap:10px;margin-bottom:12px;display:flex}.info-glyph{text-align:center;flex-shrink:0;width:34px;font-size:28px;line-height:1}.info-title{color:var(--text);flex:1;font-size:13px;font-weight:700}.info-name-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.info-pos{color:var(--text-secondary);margin-top:2px;font-size:11px;font-weight:400}.retro{color:#e05252;font-style:normal}.info-close{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;border-radius:4px;flex-shrink:0;padding:2px 4px;font-size:13px;line-height:1;transition:color .12s}.info-close:hover{color:var(--text)}.aspects-title{text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary);margin-bottom:6px;font-size:10px;font-weight:700}.aspects-list{flex-direction:column;gap:4px;max-height:140px;display:flex;overflow-y:auto}.aspect-row{align-items:center;gap:7px;padding:3px 0;font-size:12px;display:flex}.aspect-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.aspect-sym{text-align:center;flex-shrink:0;width:16px;font-size:14px}.aspect-other{color:var(--text);flex:1}.aspect-meta{color:var(--text-secondary);white-space:nowrap;font-size:11px}.no-aspects{color:var(--text-secondary);padding:4px 0;font-size:11px;font-style:italic}.info-hint{color:var(--accent);text-align:center;margin-top:10px;font-size:10px;font-style:italic}.dignity-badge{white-space:nowrap;border-radius:99px;align-items:center;gap:3px;padding:1px 7px;font-size:10px;font-weight:600;line-height:1.6;display:inline-flex}.dignity-domicile{color:#2e9e5e;background:#52c07a2e;border:1px solid #52c07a66}.dignity-exaltation{color:#9a8600;background:#c0b0522e;border:1px solid #c0b05266}.dignity-detriment{color:#c03030;background:#e0525224;border:1px solid #e0525259}.dignity-fall{color:#707080;background:#9a9a9a24;border:1px solid #9a9a9a4d}@media (prefers-color-scheme:dark){.dignity-domicile{color:#6fe098;background:#52c07a1f}.dignity-exaltation{color:#e0cc60;background:#c0b0521f}.dignity-detriment{color:#e08080;background:#e052521a}.dignity-fall{color:#a0a0b0;background:#9a9a9a1a}}#tally-panel{border-top:1px solid var(--border);background:var(--surface);flex-shrink:0;align-items:center;gap:8px;padding:5px 12px;display:flex}.tally-section{flex-direction:column;gap:3px;display:flex}.tally-row{align-items:center;gap:8px;display:flex}.tally-item{white-space:nowrap;border-radius:4px;padding:1px 6px;font-size:11px;font-weight:600}.tally-item.fire{color:var(--color-fire);background:#e8854c1f}.tally-item.earth{color:var(--color-earth);background:#7aaa6a1f}.tally-item.air{color:var(--color-air);background:#5aaad01f}.tally-item.water{color:var(--color-water);background:#8878c81f}.tally-item.cardinal{color:var(--color-cardinal);background:#e052521a}.tally-item.fixed{color:var(--color-fixed);background:#c0b0521a}.tally-item.mutable{color:var(--color-mutable);background:#52c07a1a}.tally-bar-row{padding:2px 0}.tally-bar{background:var(--border);border-radius:2px;width:90px;height:4px;display:flex;overflow:hidden}.tally-bar-fill{height:100%;transition:width .4s}.tally-bar-fill.fire{background:var(--color-fire)}.tally-bar-fill.earth{background:var(--color-earth)}.tally-bar-fill.air{background:var(--color-air)}.tally-bar-fill.water{background:var(--color-water)}.tally-divider{background:var(--border);flex-shrink:0;width:1px;height:28px}#patterns-strip{border-top:1px solid var(--border);background:var(--surface);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:5px;padding:5px 12px;display:flex}.patterns-label{text-transform:uppercase;letter-spacing:.07em;color:var(--text-secondary);white-space:nowrap;margin-right:2px;font-size:10px;font-weight:700}.pattern-pill{cursor:pointer;white-space:nowrap;opacity:.85;background:0 0;border:1px solid;border-radius:99px;align-items:center;gap:4px;padding:2px 9px;font-family:inherit;font-size:11px;font-weight:600;transition:opacity .14s,box-shadow .14s,transform 80ms;display:inline-flex}.pattern-pill:hover{opacity:1;filter:brightness(1.05);box-shadow:0 0 0 2px #80808040}.pattern-pill.active{color:#fff;opacity:1;border-color:#0000;transform:translateY(-1px);box-shadow:0 2px 8px #00000040}#controls-panel{border-top:1px solid var(--border);background:var(--surface);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px;padding:8px 12px;display:flex}.controls-label{color:var(--text-secondary);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;margin-right:2px;font-size:11px;font-weight:600}.control-btn{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;padding:3px 10px;font-family:inherit;font-size:12px;transition:background .12s,color .12s,border-color .12s}.control-btn:hover{background:var(--accent-subtle);color:var(--accent);border-color:var(--accent)}.control-btn.active{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}.controls-divider{background:var(--border);flex-shrink:0;width:1px;height:18px;margin:0 4px}.tooltip{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);pointer-events:none;box-shadow:var(--shadow-md);z-index:1000;opacity:0;max-width:220px;padding:8px 12px;font-size:12px;transition:opacity .12s;position:fixed}.tooltip.visible{opacity:1}.tooltip-title{color:var(--text);margin-bottom:2px;font-weight:700}.tooltip-detail{color:var(--text-secondary);line-height:1.4}.tooltip-hint{color:var(--accent);margin-top:4px;font-size:10px;font-style:italic}.error-state{text-align:center;color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;padding:24px;display:flex}.error-state .error-icon{margin-bottom:4px;font-size:32px}
74
83
  /*$vite$:1*/</style>
75
84
  </head>
76
85
  <body>
@@ -80,10 +89,13 @@
80
89
  <p>Loading chart…</p>
81
90
  </div>
82
91
  <div id="chart-container" hidden></div>
92
+ <!-- Element/Modality tally + Pattern strip share the bottom bar with controls -->
93
+ <div id="tally-panel" hidden></div>
94
+ <div id="patterns-strip" hidden></div>
83
95
  <div id="controls-panel" hidden></div>
84
96
  <div id="tooltip" class="tooltip" aria-live="polite"></div>
85
97
  </div>
86
- ;function Xt(){return new RegExp(Yt,`u`)}var Zt=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Qt=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,$t=e=>{let t=De(e??`:`);return RegExp(`^(?:[0-9A-F]{2}${t}){5}[0-9A-F]{2}$|^(?:[0-9a-f]{2}${t}){5}[0-9a-f]{2}<!DOCTYPE html>
98
+ ;function Jt(){return new RegExp(qt,`u`)}var Yt=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Xt=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,Zt=e=>{let t=Ce(e??`:`);return RegExp(`^(?:[0-9A-F]{2}${t}){5}[0-9A-F]{2}$|^(?:[0-9a-f]{2}${t}){5}[0-9a-f]{2}<!DOCTYPE html>
87
99
  <html lang="en">
88
100
  <head>
89
101
  <meta charset="UTF-8" />
@@ -91,7 +103,7 @@
91
103
  <title>Chart Wheel Explorer</title>
92
104
 
93
105
 
94
- <style>:root{--bg:#faf9f5;--surface:#fff;--text:#1a1a2e;--text-secondary:#5a5a7a;--accent:#6366f1;--accent-hover:#4f46e5;--accent-subtle:#6366f11f;--border:#e8e6f0;--border-strong:#c8c4d8;--shadow:0 4px 16px #00000014;--shadow-md:0 8px 32px #0000001f;--radius:10px;--radius-sm:6px;--planet-sun:#f59e0b;--planet-moon:#94a3b8;--planet-mercury:#10b981;--planet-venus:#ec4899;--planet-mars:#ef4444;--planet-jupiter:#8b5cf6;--planet-saturn:#64748b;--planet-uranus:#06b6d4;--planet-neptune:#3b82f6;--planet-pluto:#a78bfa;--aspect-conjunction:#f59e0b;--aspect-opposition:#ef4444;--aspect-trine:#10b981;--aspect-square:#ef4444;--aspect-sextile:#3b82f6}@media (prefers-color-scheme:dark){:root{--bg:#0d1117;--surface:#161b22;--text:#e6edf3;--text-secondary:#8b949e;--accent:#818cf8;--accent-hover:#a5b4fc;--accent-subtle:#818cf826;--border:#21262d;--border-strong:#30363d;--shadow:0 4px 16px #0006;--shadow-md:0 8px 32px #0009}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:var(--bg);color:var(--text);-webkit-user-select:none;user-select:none;font-family:-apple-system,Inter,Segoe UI,system-ui,sans-serif;font-size:13px;line-height:1.5;overflow:hidden}#app{flex-direction:column;height:100vh;display:flex;position:relative}#loading-state{color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}#chart-container{flex:1;justify-content:center;align-items:center;min-height:0;padding:12px;display:flex;position:relative}#chart-container svg{width:auto;max-width:100%;height:auto;max-height:100%}.hit-region{cursor:pointer;fill:#0000;stroke:#0000;transition:fill .15s,stroke .15s}.hit-region:hover{fill:var(--accent-subtle);stroke:var(--accent);stroke-width:1px;stroke-opacity:.5}.hit-region.planet-hit{rx:12px;ry:12px}.hit-region.aspect-hit{stroke-width:6px}#controls-panel{border-top:1px solid var(--border);background:var(--surface);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px;padding:8px 12px;display:flex}.controls-label{color:var(--text-secondary);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;margin-right:2px;font-size:11px;font-weight:600}.control-btn{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;padding:3px 10px;font-family:inherit;font-size:12px;transition:background .12s,color .12s,border-color .12s}.control-btn:hover{background:var(--accent-subtle);color:var(--accent);border-color:var(--accent)}.control-btn.active{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}.controls-divider{background:var(--border);flex-shrink:0;width:1px;height:18px;margin:0 4px}.tooltip{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);pointer-events:none;box-shadow:var(--shadow-md);z-index:1000;opacity:0;max-width:220px;padding:8px 12px;font-size:12px;transition:opacity .12s;position:fixed}.tooltip.visible{opacity:1}.tooltip-title{color:var(--text);margin-bottom:2px;font-weight:700}.tooltip-detail{color:var(--text-secondary);line-height:1.4}.tooltip-hint{color:var(--accent);margin-top:4px;font-size:10px;font-style:italic}.error-state{text-align:center;color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;padding:24px;display:flex}.error-state .error-icon{margin-bottom:4px;font-size:32px}
106
+ <style>:root{--bg:#faf9f5;--surface:#fff;--text:#1a1a2e;--text-secondary:#5a5a7a;--accent:#6366f1;--accent-hover:#4f46e5;--accent-subtle:#6366f11f;--border:#e8e6f0;--border-strong:#c8c4d8;--shadow:0 4px 16px #00000014;--shadow-md:0 8px 32px #0000001f;--radius:10px;--radius-sm:6px;--planet-sun:#f59e0b;--planet-moon:#94a3b8;--planet-mercury:#10b981;--planet-venus:#ec4899;--planet-mars:#ef4444;--planet-jupiter:#8b5cf6;--planet-saturn:#64748b;--planet-uranus:#06b6d4;--planet-neptune:#3b82f6;--planet-pluto:#a78bfa;--aspect-conjunction:#f59e0b;--aspect-opposition:#ef4444;--aspect-trine:#10b981;--aspect-square:#ef4444;--aspect-sextile:#3b82f6;--color-fire:#e8854c;--color-earth:#7aaa6a;--color-air:#5aaad0;--color-water:#8878c8;--color-cardinal:#e05252;--color-fixed:#c0b052;--color-mutable:#52c07a}@media (prefers-color-scheme:dark){:root{--bg:#0d1117;--surface:#161b22;--text:#e6edf3;--text-secondary:#8b949e;--accent:#818cf8;--accent-hover:#a5b4fc;--accent-subtle:#818cf826;--border:#21262d;--border-strong:#30363d;--shadow:0 4px 16px #0006;--shadow-md:0 8px 32px #0009}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:var(--bg);color:var(--text);-webkit-user-select:none;user-select:none;font-family:-apple-system,Inter,Segoe UI,system-ui,sans-serif;font-size:13px;line-height:1.5;overflow:hidden}#app{flex-direction:column;height:100vh;display:flex;position:relative}#loading-state{color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}#chart-container{flex:1;justify-content:center;align-items:center;min-height:0;padding:12px;display:flex;position:relative}#chart-container svg{width:auto;max-width:100%;height:auto;max-height:100%}.hit-region{cursor:pointer;fill:#0000;stroke:#0000;transition:fill .15s,stroke .15s,opacity .2s}.hit-region:hover{fill:var(--accent-subtle);stroke:var(--accent);stroke-width:1px;stroke-opacity:.5}.hit-region.planet-hit{rx:12px;ry:12px}.hit-region.planet-hit:not(.dim){filter:none}.hit-region.dim{opacity:.15}.hit-region.aspect-hit{stroke-width:13px}.hit-region.aspect-hit.highlight{stroke:var(--aspect-color,#888);stroke-opacity:.55}.info-panel{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow-md);z-index:900;opacity:0;pointer-events:none;width:min(340px,92vw);padding:14px 16px 12px;transition:opacity .18s,transform .18s;position:fixed;bottom:126px;left:50%;transform:translate(-50%)translateY(12px)}.info-panel.visible{opacity:1;pointer-events:all;transform:translate(-50%)translateY(0)}.info-header{align-items:flex-start;gap:10px;margin-bottom:12px;display:flex}.info-glyph{text-align:center;flex-shrink:0;width:34px;font-size:28px;line-height:1}.info-title{color:var(--text);flex:1;font-size:13px;font-weight:700}.info-name-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.info-pos{color:var(--text-secondary);margin-top:2px;font-size:11px;font-weight:400}.retro{color:#e05252;font-style:normal}.info-close{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;border-radius:4px;flex-shrink:0;padding:2px 4px;font-size:13px;line-height:1;transition:color .12s}.info-close:hover{color:var(--text)}.aspects-title{text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary);margin-bottom:6px;font-size:10px;font-weight:700}.aspects-list{flex-direction:column;gap:4px;max-height:140px;display:flex;overflow-y:auto}.aspect-row{align-items:center;gap:7px;padding:3px 0;font-size:12px;display:flex}.aspect-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.aspect-sym{text-align:center;flex-shrink:0;width:16px;font-size:14px}.aspect-other{color:var(--text);flex:1}.aspect-meta{color:var(--text-secondary);white-space:nowrap;font-size:11px}.no-aspects{color:var(--text-secondary);padding:4px 0;font-size:11px;font-style:italic}.info-hint{color:var(--accent);text-align:center;margin-top:10px;font-size:10px;font-style:italic}.dignity-badge{white-space:nowrap;border-radius:99px;align-items:center;gap:3px;padding:1px 7px;font-size:10px;font-weight:600;line-height:1.6;display:inline-flex}.dignity-domicile{color:#2e9e5e;background:#52c07a2e;border:1px solid #52c07a66}.dignity-exaltation{color:#9a8600;background:#c0b0522e;border:1px solid #c0b05266}.dignity-detriment{color:#c03030;background:#e0525224;border:1px solid #e0525259}.dignity-fall{color:#707080;background:#9a9a9a24;border:1px solid #9a9a9a4d}@media (prefers-color-scheme:dark){.dignity-domicile{color:#6fe098;background:#52c07a1f}.dignity-exaltation{color:#e0cc60;background:#c0b0521f}.dignity-detriment{color:#e08080;background:#e052521a}.dignity-fall{color:#a0a0b0;background:#9a9a9a1a}}#tally-panel{border-top:1px solid var(--border);background:var(--surface);flex-shrink:0;align-items:center;gap:8px;padding:5px 12px;display:flex}.tally-section{flex-direction:column;gap:3px;display:flex}.tally-row{align-items:center;gap:8px;display:flex}.tally-item{white-space:nowrap;border-radius:4px;padding:1px 6px;font-size:11px;font-weight:600}.tally-item.fire{color:var(--color-fire);background:#e8854c1f}.tally-item.earth{color:var(--color-earth);background:#7aaa6a1f}.tally-item.air{color:var(--color-air);background:#5aaad01f}.tally-item.water{color:var(--color-water);background:#8878c81f}.tally-item.cardinal{color:var(--color-cardinal);background:#e052521a}.tally-item.fixed{color:var(--color-fixed);background:#c0b0521a}.tally-item.mutable{color:var(--color-mutable);background:#52c07a1a}.tally-bar-row{padding:2px 0}.tally-bar{background:var(--border);border-radius:2px;width:90px;height:4px;display:flex;overflow:hidden}.tally-bar-fill{height:100%;transition:width .4s}.tally-bar-fill.fire{background:var(--color-fire)}.tally-bar-fill.earth{background:var(--color-earth)}.tally-bar-fill.air{background:var(--color-air)}.tally-bar-fill.water{background:var(--color-water)}.tally-divider{background:var(--border);flex-shrink:0;width:1px;height:28px}#patterns-strip{border-top:1px solid var(--border);background:var(--surface);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:5px;padding:5px 12px;display:flex}.patterns-label{text-transform:uppercase;letter-spacing:.07em;color:var(--text-secondary);white-space:nowrap;margin-right:2px;font-size:10px;font-weight:700}.pattern-pill{cursor:pointer;white-space:nowrap;opacity:.85;background:0 0;border:1px solid;border-radius:99px;align-items:center;gap:4px;padding:2px 9px;font-family:inherit;font-size:11px;font-weight:600;transition:opacity .14s,box-shadow .14s,transform 80ms;display:inline-flex}.pattern-pill:hover{opacity:1;filter:brightness(1.05);box-shadow:0 0 0 2px #80808040}.pattern-pill.active{color:#fff;opacity:1;border-color:#0000;transform:translateY(-1px);box-shadow:0 2px 8px #00000040}#controls-panel{border-top:1px solid var(--border);background:var(--surface);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px;padding:8px 12px;display:flex}.controls-label{color:var(--text-secondary);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;margin-right:2px;font-size:11px;font-weight:600}.control-btn{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;padding:3px 10px;font-family:inherit;font-size:12px;transition:background .12s,color .12s,border-color .12s}.control-btn:hover{background:var(--accent-subtle);color:var(--accent);border-color:var(--accent)}.control-btn.active{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}.controls-divider{background:var(--border);flex-shrink:0;width:1px;height:18px;margin:0 4px}.tooltip{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);pointer-events:none;box-shadow:var(--shadow-md);z-index:1000;opacity:0;max-width:220px;padding:8px 12px;font-size:12px;transition:opacity .12s;position:fixed}.tooltip.visible{opacity:1}.tooltip-title{color:var(--text);margin-bottom:2px;font-weight:700}.tooltip-detail{color:var(--text-secondary);line-height:1.4}.tooltip-hint{color:var(--accent);margin-top:4px;font-size:10px;font-style:italic}.error-state{text-align:center;color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;padding:24px;display:flex}.error-state .error-icon{margin-bottom:4px;font-size:32px}
95
107
  /*$vite$:1*/</style>
96
108
  </head>
97
109
  <body>
@@ -101,10 +113,13 @@
101
113
  <p>Loading chart…</p>
102
114
  </div>
103
115
  <div id="chart-container" hidden></div>
116
+ <!-- Element/Modality tally + Pattern strip share the bottom bar with controls -->
117
+ <div id="tally-panel" hidden></div>
118
+ <div id="patterns-strip" hidden></div>
104
119
  <div id="controls-panel" hidden></div>
105
120
  <div id="tooltip" class="tooltip" aria-live="polite"></div>
106
121
  </div>
107
- )},en=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,tn=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,nn=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,rn=/^[A-Za-z0-9_-]*$/,an=/^(?=.{1,253}\.?$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[-0-9a-zA-Z]{0,61}[0-9a-zA-Z])?)*\.?$/,on=/^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/,sn=/^\+(?:[0-9]){6,14}[0-9]$/,cn=`(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))`,ln=RegExp(`^${cn}<!DOCTYPE html>
122
+ )},Qt=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,$t=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,en=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,tn=/^[A-Za-z0-9_-]*$/,nn=/^(?=.{1,253}\.?$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[-0-9a-zA-Z]{0,61}[0-9a-zA-Z])?)*\.?$/,rn=/^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/,an=/^\+(?:[0-9]){6,14}[0-9]$/,on=`(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))`,sn=RegExp(`^${on}<!DOCTYPE html>
108
123
  <html lang="en">
109
124
  <head>
110
125
  <meta charset="UTF-8" />
@@ -112,7 +127,7 @@
112
127
  <title>Chart Wheel Explorer</title>
113
128
 
114
129
 
115
- <style>:root{--bg:#faf9f5;--surface:#fff;--text:#1a1a2e;--text-secondary:#5a5a7a;--accent:#6366f1;--accent-hover:#4f46e5;--accent-subtle:#6366f11f;--border:#e8e6f0;--border-strong:#c8c4d8;--shadow:0 4px 16px #00000014;--shadow-md:0 8px 32px #0000001f;--radius:10px;--radius-sm:6px;--planet-sun:#f59e0b;--planet-moon:#94a3b8;--planet-mercury:#10b981;--planet-venus:#ec4899;--planet-mars:#ef4444;--planet-jupiter:#8b5cf6;--planet-saturn:#64748b;--planet-uranus:#06b6d4;--planet-neptune:#3b82f6;--planet-pluto:#a78bfa;--aspect-conjunction:#f59e0b;--aspect-opposition:#ef4444;--aspect-trine:#10b981;--aspect-square:#ef4444;--aspect-sextile:#3b82f6}@media (prefers-color-scheme:dark){:root{--bg:#0d1117;--surface:#161b22;--text:#e6edf3;--text-secondary:#8b949e;--accent:#818cf8;--accent-hover:#a5b4fc;--accent-subtle:#818cf826;--border:#21262d;--border-strong:#30363d;--shadow:0 4px 16px #0006;--shadow-md:0 8px 32px #0009}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:var(--bg);color:var(--text);-webkit-user-select:none;user-select:none;font-family:-apple-system,Inter,Segoe UI,system-ui,sans-serif;font-size:13px;line-height:1.5;overflow:hidden}#app{flex-direction:column;height:100vh;display:flex;position:relative}#loading-state{color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}#chart-container{flex:1;justify-content:center;align-items:center;min-height:0;padding:12px;display:flex;position:relative}#chart-container svg{width:auto;max-width:100%;height:auto;max-height:100%}.hit-region{cursor:pointer;fill:#0000;stroke:#0000;transition:fill .15s,stroke .15s}.hit-region:hover{fill:var(--accent-subtle);stroke:var(--accent);stroke-width:1px;stroke-opacity:.5}.hit-region.planet-hit{rx:12px;ry:12px}.hit-region.aspect-hit{stroke-width:6px}#controls-panel{border-top:1px solid var(--border);background:var(--surface);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px;padding:8px 12px;display:flex}.controls-label{color:var(--text-secondary);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;margin-right:2px;font-size:11px;font-weight:600}.control-btn{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;padding:3px 10px;font-family:inherit;font-size:12px;transition:background .12s,color .12s,border-color .12s}.control-btn:hover{background:var(--accent-subtle);color:var(--accent);border-color:var(--accent)}.control-btn.active{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}.controls-divider{background:var(--border);flex-shrink:0;width:1px;height:18px;margin:0 4px}.tooltip{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);pointer-events:none;box-shadow:var(--shadow-md);z-index:1000;opacity:0;max-width:220px;padding:8px 12px;font-size:12px;transition:opacity .12s;position:fixed}.tooltip.visible{opacity:1}.tooltip-title{color:var(--text);margin-bottom:2px;font-weight:700}.tooltip-detail{color:var(--text-secondary);line-height:1.4}.tooltip-hint{color:var(--accent);margin-top:4px;font-size:10px;font-style:italic}.error-state{text-align:center;color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;padding:24px;display:flex}.error-state .error-icon{margin-bottom:4px;font-size:32px}
130
+ <style>:root{--bg:#faf9f5;--surface:#fff;--text:#1a1a2e;--text-secondary:#5a5a7a;--accent:#6366f1;--accent-hover:#4f46e5;--accent-subtle:#6366f11f;--border:#e8e6f0;--border-strong:#c8c4d8;--shadow:0 4px 16px #00000014;--shadow-md:0 8px 32px #0000001f;--radius:10px;--radius-sm:6px;--planet-sun:#f59e0b;--planet-moon:#94a3b8;--planet-mercury:#10b981;--planet-venus:#ec4899;--planet-mars:#ef4444;--planet-jupiter:#8b5cf6;--planet-saturn:#64748b;--planet-uranus:#06b6d4;--planet-neptune:#3b82f6;--planet-pluto:#a78bfa;--aspect-conjunction:#f59e0b;--aspect-opposition:#ef4444;--aspect-trine:#10b981;--aspect-square:#ef4444;--aspect-sextile:#3b82f6;--color-fire:#e8854c;--color-earth:#7aaa6a;--color-air:#5aaad0;--color-water:#8878c8;--color-cardinal:#e05252;--color-fixed:#c0b052;--color-mutable:#52c07a}@media (prefers-color-scheme:dark){:root{--bg:#0d1117;--surface:#161b22;--text:#e6edf3;--text-secondary:#8b949e;--accent:#818cf8;--accent-hover:#a5b4fc;--accent-subtle:#818cf826;--border:#21262d;--border-strong:#30363d;--shadow:0 4px 16px #0006;--shadow-md:0 8px 32px #0009}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:var(--bg);color:var(--text);-webkit-user-select:none;user-select:none;font-family:-apple-system,Inter,Segoe UI,system-ui,sans-serif;font-size:13px;line-height:1.5;overflow:hidden}#app{flex-direction:column;height:100vh;display:flex;position:relative}#loading-state{color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}#chart-container{flex:1;justify-content:center;align-items:center;min-height:0;padding:12px;display:flex;position:relative}#chart-container svg{width:auto;max-width:100%;height:auto;max-height:100%}.hit-region{cursor:pointer;fill:#0000;stroke:#0000;transition:fill .15s,stroke .15s,opacity .2s}.hit-region:hover{fill:var(--accent-subtle);stroke:var(--accent);stroke-width:1px;stroke-opacity:.5}.hit-region.planet-hit{rx:12px;ry:12px}.hit-region.planet-hit:not(.dim){filter:none}.hit-region.dim{opacity:.15}.hit-region.aspect-hit{stroke-width:13px}.hit-region.aspect-hit.highlight{stroke:var(--aspect-color,#888);stroke-opacity:.55}.info-panel{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow-md);z-index:900;opacity:0;pointer-events:none;width:min(340px,92vw);padding:14px 16px 12px;transition:opacity .18s,transform .18s;position:fixed;bottom:126px;left:50%;transform:translate(-50%)translateY(12px)}.info-panel.visible{opacity:1;pointer-events:all;transform:translate(-50%)translateY(0)}.info-header{align-items:flex-start;gap:10px;margin-bottom:12px;display:flex}.info-glyph{text-align:center;flex-shrink:0;width:34px;font-size:28px;line-height:1}.info-title{color:var(--text);flex:1;font-size:13px;font-weight:700}.info-name-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.info-pos{color:var(--text-secondary);margin-top:2px;font-size:11px;font-weight:400}.retro{color:#e05252;font-style:normal}.info-close{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;border-radius:4px;flex-shrink:0;padding:2px 4px;font-size:13px;line-height:1;transition:color .12s}.info-close:hover{color:var(--text)}.aspects-title{text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary);margin-bottom:6px;font-size:10px;font-weight:700}.aspects-list{flex-direction:column;gap:4px;max-height:140px;display:flex;overflow-y:auto}.aspect-row{align-items:center;gap:7px;padding:3px 0;font-size:12px;display:flex}.aspect-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.aspect-sym{text-align:center;flex-shrink:0;width:16px;font-size:14px}.aspect-other{color:var(--text);flex:1}.aspect-meta{color:var(--text-secondary);white-space:nowrap;font-size:11px}.no-aspects{color:var(--text-secondary);padding:4px 0;font-size:11px;font-style:italic}.info-hint{color:var(--accent);text-align:center;margin-top:10px;font-size:10px;font-style:italic}.dignity-badge{white-space:nowrap;border-radius:99px;align-items:center;gap:3px;padding:1px 7px;font-size:10px;font-weight:600;line-height:1.6;display:inline-flex}.dignity-domicile{color:#2e9e5e;background:#52c07a2e;border:1px solid #52c07a66}.dignity-exaltation{color:#9a8600;background:#c0b0522e;border:1px solid #c0b05266}.dignity-detriment{color:#c03030;background:#e0525224;border:1px solid #e0525259}.dignity-fall{color:#707080;background:#9a9a9a24;border:1px solid #9a9a9a4d}@media (prefers-color-scheme:dark){.dignity-domicile{color:#6fe098;background:#52c07a1f}.dignity-exaltation{color:#e0cc60;background:#c0b0521f}.dignity-detriment{color:#e08080;background:#e052521a}.dignity-fall{color:#a0a0b0;background:#9a9a9a1a}}#tally-panel{border-top:1px solid var(--border);background:var(--surface);flex-shrink:0;align-items:center;gap:8px;padding:5px 12px;display:flex}.tally-section{flex-direction:column;gap:3px;display:flex}.tally-row{align-items:center;gap:8px;display:flex}.tally-item{white-space:nowrap;border-radius:4px;padding:1px 6px;font-size:11px;font-weight:600}.tally-item.fire{color:var(--color-fire);background:#e8854c1f}.tally-item.earth{color:var(--color-earth);background:#7aaa6a1f}.tally-item.air{color:var(--color-air);background:#5aaad01f}.tally-item.water{color:var(--color-water);background:#8878c81f}.tally-item.cardinal{color:var(--color-cardinal);background:#e052521a}.tally-item.fixed{color:var(--color-fixed);background:#c0b0521a}.tally-item.mutable{color:var(--color-mutable);background:#52c07a1a}.tally-bar-row{padding:2px 0}.tally-bar{background:var(--border);border-radius:2px;width:90px;height:4px;display:flex;overflow:hidden}.tally-bar-fill{height:100%;transition:width .4s}.tally-bar-fill.fire{background:var(--color-fire)}.tally-bar-fill.earth{background:var(--color-earth)}.tally-bar-fill.air{background:var(--color-air)}.tally-bar-fill.water{background:var(--color-water)}.tally-divider{background:var(--border);flex-shrink:0;width:1px;height:28px}#patterns-strip{border-top:1px solid var(--border);background:var(--surface);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:5px;padding:5px 12px;display:flex}.patterns-label{text-transform:uppercase;letter-spacing:.07em;color:var(--text-secondary);white-space:nowrap;margin-right:2px;font-size:10px;font-weight:700}.pattern-pill{cursor:pointer;white-space:nowrap;opacity:.85;background:0 0;border:1px solid;border-radius:99px;align-items:center;gap:4px;padding:2px 9px;font-family:inherit;font-size:11px;font-weight:600;transition:opacity .14s,box-shadow .14s,transform 80ms;display:inline-flex}.pattern-pill:hover{opacity:1;filter:brightness(1.05);box-shadow:0 0 0 2px #80808040}.pattern-pill.active{color:#fff;opacity:1;border-color:#0000;transform:translateY(-1px);box-shadow:0 2px 8px #00000040}#controls-panel{border-top:1px solid var(--border);background:var(--surface);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px;padding:8px 12px;display:flex}.controls-label{color:var(--text-secondary);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;margin-right:2px;font-size:11px;font-weight:600}.control-btn{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;padding:3px 10px;font-family:inherit;font-size:12px;transition:background .12s,color .12s,border-color .12s}.control-btn:hover{background:var(--accent-subtle);color:var(--accent);border-color:var(--accent)}.control-btn.active{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}.controls-divider{background:var(--border);flex-shrink:0;width:1px;height:18px;margin:0 4px}.tooltip{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);pointer-events:none;box-shadow:var(--shadow-md);z-index:1000;opacity:0;max-width:220px;padding:8px 12px;font-size:12px;transition:opacity .12s;position:fixed}.tooltip.visible{opacity:1}.tooltip-title{color:var(--text);margin-bottom:2px;font-weight:700}.tooltip-detail{color:var(--text-secondary);line-height:1.4}.tooltip-hint{color:var(--accent);margin-top:4px;font-size:10px;font-style:italic}.error-state{text-align:center;color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;padding:24px;display:flex}.error-state .error-icon{margin-bottom:4px;font-size:32px}
116
131
  /*$vite$:1*/</style>
117
132
  </head>
118
133
  <body>
@@ -122,10 +137,13 @@
122
137
  <p>Loading chart…</p>
123
138
  </div>
124
139
  <div id="chart-container" hidden></div>
140
+ <!-- Element/Modality tally + Pattern strip share the bottom bar with controls -->
141
+ <div id="tally-panel" hidden></div>
142
+ <div id="patterns-strip" hidden></div>
125
143
  <div id="controls-panel" hidden></div>
126
144
  <div id="tooltip" class="tooltip" aria-live="polite"></div>
127
145
  </div>
128
- );function un(e){let t=`(?:[01]\\d|2[0-3]):[0-5]\\d`;return typeof e.precision==`number`?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function dn(e){return RegExp(`^${un(e)}<!DOCTYPE html>
146
+ );function cn(e){let t=`(?:[01]\\d|2[0-3]):[0-5]\\d`;return typeof e.precision==`number`?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function ln(e){return RegExp(`^${cn(e)}<!DOCTYPE html>
129
147
  <html lang="en">
130
148
  <head>
131
149
  <meta charset="UTF-8" />
@@ -133,7 +151,7 @@
133
151
  <title>Chart Wheel Explorer</title>
134
152
 
135
153
 
136
- <style>:root{--bg:#faf9f5;--surface:#fff;--text:#1a1a2e;--text-secondary:#5a5a7a;--accent:#6366f1;--accent-hover:#4f46e5;--accent-subtle:#6366f11f;--border:#e8e6f0;--border-strong:#c8c4d8;--shadow:0 4px 16px #00000014;--shadow-md:0 8px 32px #0000001f;--radius:10px;--radius-sm:6px;--planet-sun:#f59e0b;--planet-moon:#94a3b8;--planet-mercury:#10b981;--planet-venus:#ec4899;--planet-mars:#ef4444;--planet-jupiter:#8b5cf6;--planet-saturn:#64748b;--planet-uranus:#06b6d4;--planet-neptune:#3b82f6;--planet-pluto:#a78bfa;--aspect-conjunction:#f59e0b;--aspect-opposition:#ef4444;--aspect-trine:#10b981;--aspect-square:#ef4444;--aspect-sextile:#3b82f6}@media (prefers-color-scheme:dark){:root{--bg:#0d1117;--surface:#161b22;--text:#e6edf3;--text-secondary:#8b949e;--accent:#818cf8;--accent-hover:#a5b4fc;--accent-subtle:#818cf826;--border:#21262d;--border-strong:#30363d;--shadow:0 4px 16px #0006;--shadow-md:0 8px 32px #0009}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:var(--bg);color:var(--text);-webkit-user-select:none;user-select:none;font-family:-apple-system,Inter,Segoe UI,system-ui,sans-serif;font-size:13px;line-height:1.5;overflow:hidden}#app{flex-direction:column;height:100vh;display:flex;position:relative}#loading-state{color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}#chart-container{flex:1;justify-content:center;align-items:center;min-height:0;padding:12px;display:flex;position:relative}#chart-container svg{width:auto;max-width:100%;height:auto;max-height:100%}.hit-region{cursor:pointer;fill:#0000;stroke:#0000;transition:fill .15s,stroke .15s}.hit-region:hover{fill:var(--accent-subtle);stroke:var(--accent);stroke-width:1px;stroke-opacity:.5}.hit-region.planet-hit{rx:12px;ry:12px}.hit-region.aspect-hit{stroke-width:6px}#controls-panel{border-top:1px solid var(--border);background:var(--surface);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px;padding:8px 12px;display:flex}.controls-label{color:var(--text-secondary);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;margin-right:2px;font-size:11px;font-weight:600}.control-btn{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;padding:3px 10px;font-family:inherit;font-size:12px;transition:background .12s,color .12s,border-color .12s}.control-btn:hover{background:var(--accent-subtle);color:var(--accent);border-color:var(--accent)}.control-btn.active{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}.controls-divider{background:var(--border);flex-shrink:0;width:1px;height:18px;margin:0 4px}.tooltip{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);pointer-events:none;box-shadow:var(--shadow-md);z-index:1000;opacity:0;max-width:220px;padding:8px 12px;font-size:12px;transition:opacity .12s;position:fixed}.tooltip.visible{opacity:1}.tooltip-title{color:var(--text);margin-bottom:2px;font-weight:700}.tooltip-detail{color:var(--text-secondary);line-height:1.4}.tooltip-hint{color:var(--accent);margin-top:4px;font-size:10px;font-style:italic}.error-state{text-align:center;color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;padding:24px;display:flex}.error-state .error-icon{margin-bottom:4px;font-size:32px}
154
+ <style>:root{--bg:#faf9f5;--surface:#fff;--text:#1a1a2e;--text-secondary:#5a5a7a;--accent:#6366f1;--accent-hover:#4f46e5;--accent-subtle:#6366f11f;--border:#e8e6f0;--border-strong:#c8c4d8;--shadow:0 4px 16px #00000014;--shadow-md:0 8px 32px #0000001f;--radius:10px;--radius-sm:6px;--planet-sun:#f59e0b;--planet-moon:#94a3b8;--planet-mercury:#10b981;--planet-venus:#ec4899;--planet-mars:#ef4444;--planet-jupiter:#8b5cf6;--planet-saturn:#64748b;--planet-uranus:#06b6d4;--planet-neptune:#3b82f6;--planet-pluto:#a78bfa;--aspect-conjunction:#f59e0b;--aspect-opposition:#ef4444;--aspect-trine:#10b981;--aspect-square:#ef4444;--aspect-sextile:#3b82f6;--color-fire:#e8854c;--color-earth:#7aaa6a;--color-air:#5aaad0;--color-water:#8878c8;--color-cardinal:#e05252;--color-fixed:#c0b052;--color-mutable:#52c07a}@media (prefers-color-scheme:dark){:root{--bg:#0d1117;--surface:#161b22;--text:#e6edf3;--text-secondary:#8b949e;--accent:#818cf8;--accent-hover:#a5b4fc;--accent-subtle:#818cf826;--border:#21262d;--border-strong:#30363d;--shadow:0 4px 16px #0006;--shadow-md:0 8px 32px #0009}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:var(--bg);color:var(--text);-webkit-user-select:none;user-select:none;font-family:-apple-system,Inter,Segoe UI,system-ui,sans-serif;font-size:13px;line-height:1.5;overflow:hidden}#app{flex-direction:column;height:100vh;display:flex;position:relative}#loading-state{color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}#chart-container{flex:1;justify-content:center;align-items:center;min-height:0;padding:12px;display:flex;position:relative}#chart-container svg{width:auto;max-width:100%;height:auto;max-height:100%}.hit-region{cursor:pointer;fill:#0000;stroke:#0000;transition:fill .15s,stroke .15s,opacity .2s}.hit-region:hover{fill:var(--accent-subtle);stroke:var(--accent);stroke-width:1px;stroke-opacity:.5}.hit-region.planet-hit{rx:12px;ry:12px}.hit-region.planet-hit:not(.dim){filter:none}.hit-region.dim{opacity:.15}.hit-region.aspect-hit{stroke-width:13px}.hit-region.aspect-hit.highlight{stroke:var(--aspect-color,#888);stroke-opacity:.55}.info-panel{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow-md);z-index:900;opacity:0;pointer-events:none;width:min(340px,92vw);padding:14px 16px 12px;transition:opacity .18s,transform .18s;position:fixed;bottom:126px;left:50%;transform:translate(-50%)translateY(12px)}.info-panel.visible{opacity:1;pointer-events:all;transform:translate(-50%)translateY(0)}.info-header{align-items:flex-start;gap:10px;margin-bottom:12px;display:flex}.info-glyph{text-align:center;flex-shrink:0;width:34px;font-size:28px;line-height:1}.info-title{color:var(--text);flex:1;font-size:13px;font-weight:700}.info-name-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.info-pos{color:var(--text-secondary);margin-top:2px;font-size:11px;font-weight:400}.retro{color:#e05252;font-style:normal}.info-close{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;border-radius:4px;flex-shrink:0;padding:2px 4px;font-size:13px;line-height:1;transition:color .12s}.info-close:hover{color:var(--text)}.aspects-title{text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary);margin-bottom:6px;font-size:10px;font-weight:700}.aspects-list{flex-direction:column;gap:4px;max-height:140px;display:flex;overflow-y:auto}.aspect-row{align-items:center;gap:7px;padding:3px 0;font-size:12px;display:flex}.aspect-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.aspect-sym{text-align:center;flex-shrink:0;width:16px;font-size:14px}.aspect-other{color:var(--text);flex:1}.aspect-meta{color:var(--text-secondary);white-space:nowrap;font-size:11px}.no-aspects{color:var(--text-secondary);padding:4px 0;font-size:11px;font-style:italic}.info-hint{color:var(--accent);text-align:center;margin-top:10px;font-size:10px;font-style:italic}.dignity-badge{white-space:nowrap;border-radius:99px;align-items:center;gap:3px;padding:1px 7px;font-size:10px;font-weight:600;line-height:1.6;display:inline-flex}.dignity-domicile{color:#2e9e5e;background:#52c07a2e;border:1px solid #52c07a66}.dignity-exaltation{color:#9a8600;background:#c0b0522e;border:1px solid #c0b05266}.dignity-detriment{color:#c03030;background:#e0525224;border:1px solid #e0525259}.dignity-fall{color:#707080;background:#9a9a9a24;border:1px solid #9a9a9a4d}@media (prefers-color-scheme:dark){.dignity-domicile{color:#6fe098;background:#52c07a1f}.dignity-exaltation{color:#e0cc60;background:#c0b0521f}.dignity-detriment{color:#e08080;background:#e052521a}.dignity-fall{color:#a0a0b0;background:#9a9a9a1a}}#tally-panel{border-top:1px solid var(--border);background:var(--surface);flex-shrink:0;align-items:center;gap:8px;padding:5px 12px;display:flex}.tally-section{flex-direction:column;gap:3px;display:flex}.tally-row{align-items:center;gap:8px;display:flex}.tally-item{white-space:nowrap;border-radius:4px;padding:1px 6px;font-size:11px;font-weight:600}.tally-item.fire{color:var(--color-fire);background:#e8854c1f}.tally-item.earth{color:var(--color-earth);background:#7aaa6a1f}.tally-item.air{color:var(--color-air);background:#5aaad01f}.tally-item.water{color:var(--color-water);background:#8878c81f}.tally-item.cardinal{color:var(--color-cardinal);background:#e052521a}.tally-item.fixed{color:var(--color-fixed);background:#c0b0521a}.tally-item.mutable{color:var(--color-mutable);background:#52c07a1a}.tally-bar-row{padding:2px 0}.tally-bar{background:var(--border);border-radius:2px;width:90px;height:4px;display:flex;overflow:hidden}.tally-bar-fill{height:100%;transition:width .4s}.tally-bar-fill.fire{background:var(--color-fire)}.tally-bar-fill.earth{background:var(--color-earth)}.tally-bar-fill.air{background:var(--color-air)}.tally-bar-fill.water{background:var(--color-water)}.tally-divider{background:var(--border);flex-shrink:0;width:1px;height:28px}#patterns-strip{border-top:1px solid var(--border);background:var(--surface);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:5px;padding:5px 12px;display:flex}.patterns-label{text-transform:uppercase;letter-spacing:.07em;color:var(--text-secondary);white-space:nowrap;margin-right:2px;font-size:10px;font-weight:700}.pattern-pill{cursor:pointer;white-space:nowrap;opacity:.85;background:0 0;border:1px solid;border-radius:99px;align-items:center;gap:4px;padding:2px 9px;font-family:inherit;font-size:11px;font-weight:600;transition:opacity .14s,box-shadow .14s,transform 80ms;display:inline-flex}.pattern-pill:hover{opacity:1;filter:brightness(1.05);box-shadow:0 0 0 2px #80808040}.pattern-pill.active{color:#fff;opacity:1;border-color:#0000;transform:translateY(-1px);box-shadow:0 2px 8px #00000040}#controls-panel{border-top:1px solid var(--border);background:var(--surface);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px;padding:8px 12px;display:flex}.controls-label{color:var(--text-secondary);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;margin-right:2px;font-size:11px;font-weight:600}.control-btn{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;padding:3px 10px;font-family:inherit;font-size:12px;transition:background .12s,color .12s,border-color .12s}.control-btn:hover{background:var(--accent-subtle);color:var(--accent);border-color:var(--accent)}.control-btn.active{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}.controls-divider{background:var(--border);flex-shrink:0;width:1px;height:18px;margin:0 4px}.tooltip{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);pointer-events:none;box-shadow:var(--shadow-md);z-index:1000;opacity:0;max-width:220px;padding:8px 12px;font-size:12px;transition:opacity .12s;position:fixed}.tooltip.visible{opacity:1}.tooltip-title{color:var(--text);margin-bottom:2px;font-weight:700}.tooltip-detail{color:var(--text-secondary);line-height:1.4}.tooltip-hint{color:var(--accent);margin-top:4px;font-size:10px;font-style:italic}.error-state{text-align:center;color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;padding:24px;display:flex}.error-state .error-icon{margin-bottom:4px;font-size:32px}
137
155
  /*$vite$:1*/</style>
138
156
  </head>
139
157
  <body>
@@ -143,10 +161,13 @@
143
161
  <p>Loading chart…</p>
144
162
  </div>
145
163
  <div id="chart-container" hidden></div>
164
+ <!-- Element/Modality tally + Pattern strip share the bottom bar with controls -->
165
+ <div id="tally-panel" hidden></div>
166
+ <div id="patterns-strip" hidden></div>
146
167
  <div id="controls-panel" hidden></div>
147
168
  <div id="tooltip" class="tooltip" aria-live="polite"></div>
148
169
  </div>
149
- )}function fn(e){let t=un({precision:e.precision}),n=[`Z`];e.local&&n.push(``),e.offset&&n.push(`([+-](?:[01]\\d|2[0-3]):[0-5]\\d)`);let r=`${t}(?:${n.join(`|`)})`;return RegExp(`^${cn}T(?:${r})<!DOCTYPE html>
170
+ )}function un(e){let t=cn({precision:e.precision}),n=[`Z`];e.local&&n.push(``),e.offset&&n.push(`([+-](?:[01]\\d|2[0-3]):[0-5]\\d)`);let r=`${t}(?:${n.join(`|`)})`;return RegExp(`^${on}T(?:${r})<!DOCTYPE html>
150
171
  <html lang="en">
151
172
  <head>
152
173
  <meta charset="UTF-8" />
@@ -154,7 +175,7 @@
154
175
  <title>Chart Wheel Explorer</title>
155
176
 
156
177
 
157
- <style>:root{--bg:#faf9f5;--surface:#fff;--text:#1a1a2e;--text-secondary:#5a5a7a;--accent:#6366f1;--accent-hover:#4f46e5;--accent-subtle:#6366f11f;--border:#e8e6f0;--border-strong:#c8c4d8;--shadow:0 4px 16px #00000014;--shadow-md:0 8px 32px #0000001f;--radius:10px;--radius-sm:6px;--planet-sun:#f59e0b;--planet-moon:#94a3b8;--planet-mercury:#10b981;--planet-venus:#ec4899;--planet-mars:#ef4444;--planet-jupiter:#8b5cf6;--planet-saturn:#64748b;--planet-uranus:#06b6d4;--planet-neptune:#3b82f6;--planet-pluto:#a78bfa;--aspect-conjunction:#f59e0b;--aspect-opposition:#ef4444;--aspect-trine:#10b981;--aspect-square:#ef4444;--aspect-sextile:#3b82f6}@media (prefers-color-scheme:dark){:root{--bg:#0d1117;--surface:#161b22;--text:#e6edf3;--text-secondary:#8b949e;--accent:#818cf8;--accent-hover:#a5b4fc;--accent-subtle:#818cf826;--border:#21262d;--border-strong:#30363d;--shadow:0 4px 16px #0006;--shadow-md:0 8px 32px #0009}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:var(--bg);color:var(--text);-webkit-user-select:none;user-select:none;font-family:-apple-system,Inter,Segoe UI,system-ui,sans-serif;font-size:13px;line-height:1.5;overflow:hidden}#app{flex-direction:column;height:100vh;display:flex;position:relative}#loading-state{color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}#chart-container{flex:1;justify-content:center;align-items:center;min-height:0;padding:12px;display:flex;position:relative}#chart-container svg{width:auto;max-width:100%;height:auto;max-height:100%}.hit-region{cursor:pointer;fill:#0000;stroke:#0000;transition:fill .15s,stroke .15s}.hit-region:hover{fill:var(--accent-subtle);stroke:var(--accent);stroke-width:1px;stroke-opacity:.5}.hit-region.planet-hit{rx:12px;ry:12px}.hit-region.aspect-hit{stroke-width:6px}#controls-panel{border-top:1px solid var(--border);background:var(--surface);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px;padding:8px 12px;display:flex}.controls-label{color:var(--text-secondary);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;margin-right:2px;font-size:11px;font-weight:600}.control-btn{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;padding:3px 10px;font-family:inherit;font-size:12px;transition:background .12s,color .12s,border-color .12s}.control-btn:hover{background:var(--accent-subtle);color:var(--accent);border-color:var(--accent)}.control-btn.active{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}.controls-divider{background:var(--border);flex-shrink:0;width:1px;height:18px;margin:0 4px}.tooltip{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);pointer-events:none;box-shadow:var(--shadow-md);z-index:1000;opacity:0;max-width:220px;padding:8px 12px;font-size:12px;transition:opacity .12s;position:fixed}.tooltip.visible{opacity:1}.tooltip-title{color:var(--text);margin-bottom:2px;font-weight:700}.tooltip-detail{color:var(--text-secondary);line-height:1.4}.tooltip-hint{color:var(--accent);margin-top:4px;font-size:10px;font-style:italic}.error-state{text-align:center;color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;padding:24px;display:flex}.error-state .error-icon{margin-bottom:4px;font-size:32px}
178
+ <style>:root{--bg:#faf9f5;--surface:#fff;--text:#1a1a2e;--text-secondary:#5a5a7a;--accent:#6366f1;--accent-hover:#4f46e5;--accent-subtle:#6366f11f;--border:#e8e6f0;--border-strong:#c8c4d8;--shadow:0 4px 16px #00000014;--shadow-md:0 8px 32px #0000001f;--radius:10px;--radius-sm:6px;--planet-sun:#f59e0b;--planet-moon:#94a3b8;--planet-mercury:#10b981;--planet-venus:#ec4899;--planet-mars:#ef4444;--planet-jupiter:#8b5cf6;--planet-saturn:#64748b;--planet-uranus:#06b6d4;--planet-neptune:#3b82f6;--planet-pluto:#a78bfa;--aspect-conjunction:#f59e0b;--aspect-opposition:#ef4444;--aspect-trine:#10b981;--aspect-square:#ef4444;--aspect-sextile:#3b82f6;--color-fire:#e8854c;--color-earth:#7aaa6a;--color-air:#5aaad0;--color-water:#8878c8;--color-cardinal:#e05252;--color-fixed:#c0b052;--color-mutable:#52c07a}@media (prefers-color-scheme:dark){:root{--bg:#0d1117;--surface:#161b22;--text:#e6edf3;--text-secondary:#8b949e;--accent:#818cf8;--accent-hover:#a5b4fc;--accent-subtle:#818cf826;--border:#21262d;--border-strong:#30363d;--shadow:0 4px 16px #0006;--shadow-md:0 8px 32px #0009}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:var(--bg);color:var(--text);-webkit-user-select:none;user-select:none;font-family:-apple-system,Inter,Segoe UI,system-ui,sans-serif;font-size:13px;line-height:1.5;overflow:hidden}#app{flex-direction:column;height:100vh;display:flex;position:relative}#loading-state{color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}#chart-container{flex:1;justify-content:center;align-items:center;min-height:0;padding:12px;display:flex;position:relative}#chart-container svg{width:auto;max-width:100%;height:auto;max-height:100%}.hit-region{cursor:pointer;fill:#0000;stroke:#0000;transition:fill .15s,stroke .15s,opacity .2s}.hit-region:hover{fill:var(--accent-subtle);stroke:var(--accent);stroke-width:1px;stroke-opacity:.5}.hit-region.planet-hit{rx:12px;ry:12px}.hit-region.planet-hit:not(.dim){filter:none}.hit-region.dim{opacity:.15}.hit-region.aspect-hit{stroke-width:13px}.hit-region.aspect-hit.highlight{stroke:var(--aspect-color,#888);stroke-opacity:.55}.info-panel{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow-md);z-index:900;opacity:0;pointer-events:none;width:min(340px,92vw);padding:14px 16px 12px;transition:opacity .18s,transform .18s;position:fixed;bottom:126px;left:50%;transform:translate(-50%)translateY(12px)}.info-panel.visible{opacity:1;pointer-events:all;transform:translate(-50%)translateY(0)}.info-header{align-items:flex-start;gap:10px;margin-bottom:12px;display:flex}.info-glyph{text-align:center;flex-shrink:0;width:34px;font-size:28px;line-height:1}.info-title{color:var(--text);flex:1;font-size:13px;font-weight:700}.info-name-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.info-pos{color:var(--text-secondary);margin-top:2px;font-size:11px;font-weight:400}.retro{color:#e05252;font-style:normal}.info-close{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;border-radius:4px;flex-shrink:0;padding:2px 4px;font-size:13px;line-height:1;transition:color .12s}.info-close:hover{color:var(--text)}.aspects-title{text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary);margin-bottom:6px;font-size:10px;font-weight:700}.aspects-list{flex-direction:column;gap:4px;max-height:140px;display:flex;overflow-y:auto}.aspect-row{align-items:center;gap:7px;padding:3px 0;font-size:12px;display:flex}.aspect-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.aspect-sym{text-align:center;flex-shrink:0;width:16px;font-size:14px}.aspect-other{color:var(--text);flex:1}.aspect-meta{color:var(--text-secondary);white-space:nowrap;font-size:11px}.no-aspects{color:var(--text-secondary);padding:4px 0;font-size:11px;font-style:italic}.info-hint{color:var(--accent);text-align:center;margin-top:10px;font-size:10px;font-style:italic}.dignity-badge{white-space:nowrap;border-radius:99px;align-items:center;gap:3px;padding:1px 7px;font-size:10px;font-weight:600;line-height:1.6;display:inline-flex}.dignity-domicile{color:#2e9e5e;background:#52c07a2e;border:1px solid #52c07a66}.dignity-exaltation{color:#9a8600;background:#c0b0522e;border:1px solid #c0b05266}.dignity-detriment{color:#c03030;background:#e0525224;border:1px solid #e0525259}.dignity-fall{color:#707080;background:#9a9a9a24;border:1px solid #9a9a9a4d}@media (prefers-color-scheme:dark){.dignity-domicile{color:#6fe098;background:#52c07a1f}.dignity-exaltation{color:#e0cc60;background:#c0b0521f}.dignity-detriment{color:#e08080;background:#e052521a}.dignity-fall{color:#a0a0b0;background:#9a9a9a1a}}#tally-panel{border-top:1px solid var(--border);background:var(--surface);flex-shrink:0;align-items:center;gap:8px;padding:5px 12px;display:flex}.tally-section{flex-direction:column;gap:3px;display:flex}.tally-row{align-items:center;gap:8px;display:flex}.tally-item{white-space:nowrap;border-radius:4px;padding:1px 6px;font-size:11px;font-weight:600}.tally-item.fire{color:var(--color-fire);background:#e8854c1f}.tally-item.earth{color:var(--color-earth);background:#7aaa6a1f}.tally-item.air{color:var(--color-air);background:#5aaad01f}.tally-item.water{color:var(--color-water);background:#8878c81f}.tally-item.cardinal{color:var(--color-cardinal);background:#e052521a}.tally-item.fixed{color:var(--color-fixed);background:#c0b0521a}.tally-item.mutable{color:var(--color-mutable);background:#52c07a1a}.tally-bar-row{padding:2px 0}.tally-bar{background:var(--border);border-radius:2px;width:90px;height:4px;display:flex;overflow:hidden}.tally-bar-fill{height:100%;transition:width .4s}.tally-bar-fill.fire{background:var(--color-fire)}.tally-bar-fill.earth{background:var(--color-earth)}.tally-bar-fill.air{background:var(--color-air)}.tally-bar-fill.water{background:var(--color-water)}.tally-divider{background:var(--border);flex-shrink:0;width:1px;height:28px}#patterns-strip{border-top:1px solid var(--border);background:var(--surface);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:5px;padding:5px 12px;display:flex}.patterns-label{text-transform:uppercase;letter-spacing:.07em;color:var(--text-secondary);white-space:nowrap;margin-right:2px;font-size:10px;font-weight:700}.pattern-pill{cursor:pointer;white-space:nowrap;opacity:.85;background:0 0;border:1px solid;border-radius:99px;align-items:center;gap:4px;padding:2px 9px;font-family:inherit;font-size:11px;font-weight:600;transition:opacity .14s,box-shadow .14s,transform 80ms;display:inline-flex}.pattern-pill:hover{opacity:1;filter:brightness(1.05);box-shadow:0 0 0 2px #80808040}.pattern-pill.active{color:#fff;opacity:1;border-color:#0000;transform:translateY(-1px);box-shadow:0 2px 8px #00000040}#controls-panel{border-top:1px solid var(--border);background:var(--surface);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px;padding:8px 12px;display:flex}.controls-label{color:var(--text-secondary);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;margin-right:2px;font-size:11px;font-weight:600}.control-btn{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;padding:3px 10px;font-family:inherit;font-size:12px;transition:background .12s,color .12s,border-color .12s}.control-btn:hover{background:var(--accent-subtle);color:var(--accent);border-color:var(--accent)}.control-btn.active{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}.controls-divider{background:var(--border);flex-shrink:0;width:1px;height:18px;margin:0 4px}.tooltip{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);pointer-events:none;box-shadow:var(--shadow-md);z-index:1000;opacity:0;max-width:220px;padding:8px 12px;font-size:12px;transition:opacity .12s;position:fixed}.tooltip.visible{opacity:1}.tooltip-title{color:var(--text);margin-bottom:2px;font-weight:700}.tooltip-detail{color:var(--text-secondary);line-height:1.4}.tooltip-hint{color:var(--accent);margin-top:4px;font-size:10px;font-style:italic}.error-state{text-align:center;color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;padding:24px;display:flex}.error-state .error-icon{margin-bottom:4px;font-size:32px}
158
179
  /*$vite$:1*/</style>
159
180
  </head>
160
181
  <body>
@@ -164,10 +185,13 @@
164
185
  <p>Loading chart…</p>
165
186
  </div>
166
187
  <div id="chart-container" hidden></div>
188
+ <!-- Element/Modality tally + Pattern strip share the bottom bar with controls -->
189
+ <div id="tally-panel" hidden></div>
190
+ <div id="patterns-strip" hidden></div>
167
191
  <div id="controls-panel" hidden></div>
168
192
  <div id="tooltip" class="tooltip" aria-live="polite"></div>
169
193
  </div>
170
- )}var pn=e=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??``}}`:`[\\s\\S]*`;return RegExp(`^${t}<!DOCTYPE html>
194
+ )}var dn=e=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??``}}`:`[\\s\\S]*`;return RegExp(`^${t}<!DOCTYPE html>
171
195
  <html lang="en">
172
196
  <head>
173
197
  <meta charset="UTF-8" />
@@ -175,7 +199,7 @@
175
199
  <title>Chart Wheel Explorer</title>
176
200
 
177
201
 
178
- <style>:root{--bg:#faf9f5;--surface:#fff;--text:#1a1a2e;--text-secondary:#5a5a7a;--accent:#6366f1;--accent-hover:#4f46e5;--accent-subtle:#6366f11f;--border:#e8e6f0;--border-strong:#c8c4d8;--shadow:0 4px 16px #00000014;--shadow-md:0 8px 32px #0000001f;--radius:10px;--radius-sm:6px;--planet-sun:#f59e0b;--planet-moon:#94a3b8;--planet-mercury:#10b981;--planet-venus:#ec4899;--planet-mars:#ef4444;--planet-jupiter:#8b5cf6;--planet-saturn:#64748b;--planet-uranus:#06b6d4;--planet-neptune:#3b82f6;--planet-pluto:#a78bfa;--aspect-conjunction:#f59e0b;--aspect-opposition:#ef4444;--aspect-trine:#10b981;--aspect-square:#ef4444;--aspect-sextile:#3b82f6}@media (prefers-color-scheme:dark){:root{--bg:#0d1117;--surface:#161b22;--text:#e6edf3;--text-secondary:#8b949e;--accent:#818cf8;--accent-hover:#a5b4fc;--accent-subtle:#818cf826;--border:#21262d;--border-strong:#30363d;--shadow:0 4px 16px #0006;--shadow-md:0 8px 32px #0009}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:var(--bg);color:var(--text);-webkit-user-select:none;user-select:none;font-family:-apple-system,Inter,Segoe UI,system-ui,sans-serif;font-size:13px;line-height:1.5;overflow:hidden}#app{flex-direction:column;height:100vh;display:flex;position:relative}#loading-state{color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}#chart-container{flex:1;justify-content:center;align-items:center;min-height:0;padding:12px;display:flex;position:relative}#chart-container svg{width:auto;max-width:100%;height:auto;max-height:100%}.hit-region{cursor:pointer;fill:#0000;stroke:#0000;transition:fill .15s,stroke .15s}.hit-region:hover{fill:var(--accent-subtle);stroke:var(--accent);stroke-width:1px;stroke-opacity:.5}.hit-region.planet-hit{rx:12px;ry:12px}.hit-region.aspect-hit{stroke-width:6px}#controls-panel{border-top:1px solid var(--border);background:var(--surface);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px;padding:8px 12px;display:flex}.controls-label{color:var(--text-secondary);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;margin-right:2px;font-size:11px;font-weight:600}.control-btn{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;padding:3px 10px;font-family:inherit;font-size:12px;transition:background .12s,color .12s,border-color .12s}.control-btn:hover{background:var(--accent-subtle);color:var(--accent);border-color:var(--accent)}.control-btn.active{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}.controls-divider{background:var(--border);flex-shrink:0;width:1px;height:18px;margin:0 4px}.tooltip{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);pointer-events:none;box-shadow:var(--shadow-md);z-index:1000;opacity:0;max-width:220px;padding:8px 12px;font-size:12px;transition:opacity .12s;position:fixed}.tooltip.visible{opacity:1}.tooltip-title{color:var(--text);margin-bottom:2px;font-weight:700}.tooltip-detail{color:var(--text-secondary);line-height:1.4}.tooltip-hint{color:var(--accent);margin-top:4px;font-size:10px;font-style:italic}.error-state{text-align:center;color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;padding:24px;display:flex}.error-state .error-icon{margin-bottom:4px;font-size:32px}
202
+ <style>:root{--bg:#faf9f5;--surface:#fff;--text:#1a1a2e;--text-secondary:#5a5a7a;--accent:#6366f1;--accent-hover:#4f46e5;--accent-subtle:#6366f11f;--border:#e8e6f0;--border-strong:#c8c4d8;--shadow:0 4px 16px #00000014;--shadow-md:0 8px 32px #0000001f;--radius:10px;--radius-sm:6px;--planet-sun:#f59e0b;--planet-moon:#94a3b8;--planet-mercury:#10b981;--planet-venus:#ec4899;--planet-mars:#ef4444;--planet-jupiter:#8b5cf6;--planet-saturn:#64748b;--planet-uranus:#06b6d4;--planet-neptune:#3b82f6;--planet-pluto:#a78bfa;--aspect-conjunction:#f59e0b;--aspect-opposition:#ef4444;--aspect-trine:#10b981;--aspect-square:#ef4444;--aspect-sextile:#3b82f6;--color-fire:#e8854c;--color-earth:#7aaa6a;--color-air:#5aaad0;--color-water:#8878c8;--color-cardinal:#e05252;--color-fixed:#c0b052;--color-mutable:#52c07a}@media (prefers-color-scheme:dark){:root{--bg:#0d1117;--surface:#161b22;--text:#e6edf3;--text-secondary:#8b949e;--accent:#818cf8;--accent-hover:#a5b4fc;--accent-subtle:#818cf826;--border:#21262d;--border-strong:#30363d;--shadow:0 4px 16px #0006;--shadow-md:0 8px 32px #0009}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:var(--bg);color:var(--text);-webkit-user-select:none;user-select:none;font-family:-apple-system,Inter,Segoe UI,system-ui,sans-serif;font-size:13px;line-height:1.5;overflow:hidden}#app{flex-direction:column;height:100vh;display:flex;position:relative}#loading-state{color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}#chart-container{flex:1;justify-content:center;align-items:center;min-height:0;padding:12px;display:flex;position:relative}#chart-container svg{width:auto;max-width:100%;height:auto;max-height:100%}.hit-region{cursor:pointer;fill:#0000;stroke:#0000;transition:fill .15s,stroke .15s,opacity .2s}.hit-region:hover{fill:var(--accent-subtle);stroke:var(--accent);stroke-width:1px;stroke-opacity:.5}.hit-region.planet-hit{rx:12px;ry:12px}.hit-region.planet-hit:not(.dim){filter:none}.hit-region.dim{opacity:.15}.hit-region.aspect-hit{stroke-width:13px}.hit-region.aspect-hit.highlight{stroke:var(--aspect-color,#888);stroke-opacity:.55}.info-panel{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow-md);z-index:900;opacity:0;pointer-events:none;width:min(340px,92vw);padding:14px 16px 12px;transition:opacity .18s,transform .18s;position:fixed;bottom:126px;left:50%;transform:translate(-50%)translateY(12px)}.info-panel.visible{opacity:1;pointer-events:all;transform:translate(-50%)translateY(0)}.info-header{align-items:flex-start;gap:10px;margin-bottom:12px;display:flex}.info-glyph{text-align:center;flex-shrink:0;width:34px;font-size:28px;line-height:1}.info-title{color:var(--text);flex:1;font-size:13px;font-weight:700}.info-name-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.info-pos{color:var(--text-secondary);margin-top:2px;font-size:11px;font-weight:400}.retro{color:#e05252;font-style:normal}.info-close{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;border-radius:4px;flex-shrink:0;padding:2px 4px;font-size:13px;line-height:1;transition:color .12s}.info-close:hover{color:var(--text)}.aspects-title{text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary);margin-bottom:6px;font-size:10px;font-weight:700}.aspects-list{flex-direction:column;gap:4px;max-height:140px;display:flex;overflow-y:auto}.aspect-row{align-items:center;gap:7px;padding:3px 0;font-size:12px;display:flex}.aspect-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.aspect-sym{text-align:center;flex-shrink:0;width:16px;font-size:14px}.aspect-other{color:var(--text);flex:1}.aspect-meta{color:var(--text-secondary);white-space:nowrap;font-size:11px}.no-aspects{color:var(--text-secondary);padding:4px 0;font-size:11px;font-style:italic}.info-hint{color:var(--accent);text-align:center;margin-top:10px;font-size:10px;font-style:italic}.dignity-badge{white-space:nowrap;border-radius:99px;align-items:center;gap:3px;padding:1px 7px;font-size:10px;font-weight:600;line-height:1.6;display:inline-flex}.dignity-domicile{color:#2e9e5e;background:#52c07a2e;border:1px solid #52c07a66}.dignity-exaltation{color:#9a8600;background:#c0b0522e;border:1px solid #c0b05266}.dignity-detriment{color:#c03030;background:#e0525224;border:1px solid #e0525259}.dignity-fall{color:#707080;background:#9a9a9a24;border:1px solid #9a9a9a4d}@media (prefers-color-scheme:dark){.dignity-domicile{color:#6fe098;background:#52c07a1f}.dignity-exaltation{color:#e0cc60;background:#c0b0521f}.dignity-detriment{color:#e08080;background:#e052521a}.dignity-fall{color:#a0a0b0;background:#9a9a9a1a}}#tally-panel{border-top:1px solid var(--border);background:var(--surface);flex-shrink:0;align-items:center;gap:8px;padding:5px 12px;display:flex}.tally-section{flex-direction:column;gap:3px;display:flex}.tally-row{align-items:center;gap:8px;display:flex}.tally-item{white-space:nowrap;border-radius:4px;padding:1px 6px;font-size:11px;font-weight:600}.tally-item.fire{color:var(--color-fire);background:#e8854c1f}.tally-item.earth{color:var(--color-earth);background:#7aaa6a1f}.tally-item.air{color:var(--color-air);background:#5aaad01f}.tally-item.water{color:var(--color-water);background:#8878c81f}.tally-item.cardinal{color:var(--color-cardinal);background:#e052521a}.tally-item.fixed{color:var(--color-fixed);background:#c0b0521a}.tally-item.mutable{color:var(--color-mutable);background:#52c07a1a}.tally-bar-row{padding:2px 0}.tally-bar{background:var(--border);border-radius:2px;width:90px;height:4px;display:flex;overflow:hidden}.tally-bar-fill{height:100%;transition:width .4s}.tally-bar-fill.fire{background:var(--color-fire)}.tally-bar-fill.earth{background:var(--color-earth)}.tally-bar-fill.air{background:var(--color-air)}.tally-bar-fill.water{background:var(--color-water)}.tally-divider{background:var(--border);flex-shrink:0;width:1px;height:28px}#patterns-strip{border-top:1px solid var(--border);background:var(--surface);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:5px;padding:5px 12px;display:flex}.patterns-label{text-transform:uppercase;letter-spacing:.07em;color:var(--text-secondary);white-space:nowrap;margin-right:2px;font-size:10px;font-weight:700}.pattern-pill{cursor:pointer;white-space:nowrap;opacity:.85;background:0 0;border:1px solid;border-radius:99px;align-items:center;gap:4px;padding:2px 9px;font-family:inherit;font-size:11px;font-weight:600;transition:opacity .14s,box-shadow .14s,transform 80ms;display:inline-flex}.pattern-pill:hover{opacity:1;filter:brightness(1.05);box-shadow:0 0 0 2px #80808040}.pattern-pill.active{color:#fff;opacity:1;border-color:#0000;transform:translateY(-1px);box-shadow:0 2px 8px #00000040}#controls-panel{border-top:1px solid var(--border);background:var(--surface);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px;padding:8px 12px;display:flex}.controls-label{color:var(--text-secondary);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;margin-right:2px;font-size:11px;font-weight:600}.control-btn{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;padding:3px 10px;font-family:inherit;font-size:12px;transition:background .12s,color .12s,border-color .12s}.control-btn:hover{background:var(--accent-subtle);color:var(--accent);border-color:var(--accent)}.control-btn.active{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}.controls-divider{background:var(--border);flex-shrink:0;width:1px;height:18px;margin:0 4px}.tooltip{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);pointer-events:none;box-shadow:var(--shadow-md);z-index:1000;opacity:0;max-width:220px;padding:8px 12px;font-size:12px;transition:opacity .12s;position:fixed}.tooltip.visible{opacity:1}.tooltip-title{color:var(--text);margin-bottom:2px;font-weight:700}.tooltip-detail{color:var(--text-secondary);line-height:1.4}.tooltip-hint{color:var(--accent);margin-top:4px;font-size:10px;font-style:italic}.error-state{text-align:center;color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;padding:24px;display:flex}.error-state .error-icon{margin-bottom:4px;font-size:32px}
179
203
  /*$vite$:1*/</style>
180
204
  </head>
181
205
  <body>
@@ -185,10 +209,13 @@
185
209
  <p>Loading chart…</p>
186
210
  </div>
187
211
  <div id="chart-container" hidden></div>
212
+ <!-- Element/Modality tally + Pattern strip share the bottom bar with controls -->
213
+ <div id="tally-panel" hidden></div>
214
+ <div id="patterns-strip" hidden></div>
188
215
  <div id="controls-panel" hidden></div>
189
216
  <div id="tooltip" class="tooltip" aria-live="polite"></div>
190
217
  </div>
191
- )},mn=/^-?\d+n?$/,hn=/^-?\d+$/,gn=/^-?\d+(?:\.\d+)?/,_n=/^(?:true|false)$/i,vn=/^null$/i,yn=/^undefined$/i,bn=/^[^A-Z]*$/,xn=/^[^a-z]*$/,Sn=/^[0-9a-fA-F]*$/;function Cn(e,t){return RegExp(`^[A-Za-z0-9+/]{${e}}${t}<!DOCTYPE html>
218
+ )},fn=/^-?\d+n?$/,pn=/^-?\d+$/,mn=/^-?\d+(?:\.\d+)?/,hn=/^(?:true|false)$/i,gn=/^null$/i,_n=/^undefined$/i,vn=/^[^A-Z]*$/,yn=/^[^a-z]*$/,bn=/^[0-9a-fA-F]*$/;function xn(e,t){return RegExp(`^[A-Za-z0-9+/]{${e}}${t}<!DOCTYPE html>
192
219
  <html lang="en">
193
220
  <head>
194
221
  <meta charset="UTF-8" />
@@ -196,7 +223,7 @@
196
223
  <title>Chart Wheel Explorer</title>
197
224
 
198
225
 
199
- <style>:root{--bg:#faf9f5;--surface:#fff;--text:#1a1a2e;--text-secondary:#5a5a7a;--accent:#6366f1;--accent-hover:#4f46e5;--accent-subtle:#6366f11f;--border:#e8e6f0;--border-strong:#c8c4d8;--shadow:0 4px 16px #00000014;--shadow-md:0 8px 32px #0000001f;--radius:10px;--radius-sm:6px;--planet-sun:#f59e0b;--planet-moon:#94a3b8;--planet-mercury:#10b981;--planet-venus:#ec4899;--planet-mars:#ef4444;--planet-jupiter:#8b5cf6;--planet-saturn:#64748b;--planet-uranus:#06b6d4;--planet-neptune:#3b82f6;--planet-pluto:#a78bfa;--aspect-conjunction:#f59e0b;--aspect-opposition:#ef4444;--aspect-trine:#10b981;--aspect-square:#ef4444;--aspect-sextile:#3b82f6}@media (prefers-color-scheme:dark){:root{--bg:#0d1117;--surface:#161b22;--text:#e6edf3;--text-secondary:#8b949e;--accent:#818cf8;--accent-hover:#a5b4fc;--accent-subtle:#818cf826;--border:#21262d;--border-strong:#30363d;--shadow:0 4px 16px #0006;--shadow-md:0 8px 32px #0009}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:var(--bg);color:var(--text);-webkit-user-select:none;user-select:none;font-family:-apple-system,Inter,Segoe UI,system-ui,sans-serif;font-size:13px;line-height:1.5;overflow:hidden}#app{flex-direction:column;height:100vh;display:flex;position:relative}#loading-state{color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}#chart-container{flex:1;justify-content:center;align-items:center;min-height:0;padding:12px;display:flex;position:relative}#chart-container svg{width:auto;max-width:100%;height:auto;max-height:100%}.hit-region{cursor:pointer;fill:#0000;stroke:#0000;transition:fill .15s,stroke .15s}.hit-region:hover{fill:var(--accent-subtle);stroke:var(--accent);stroke-width:1px;stroke-opacity:.5}.hit-region.planet-hit{rx:12px;ry:12px}.hit-region.aspect-hit{stroke-width:6px}#controls-panel{border-top:1px solid var(--border);background:var(--surface);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px;padding:8px 12px;display:flex}.controls-label{color:var(--text-secondary);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;margin-right:2px;font-size:11px;font-weight:600}.control-btn{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;padding:3px 10px;font-family:inherit;font-size:12px;transition:background .12s,color .12s,border-color .12s}.control-btn:hover{background:var(--accent-subtle);color:var(--accent);border-color:var(--accent)}.control-btn.active{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}.controls-divider{background:var(--border);flex-shrink:0;width:1px;height:18px;margin:0 4px}.tooltip{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);pointer-events:none;box-shadow:var(--shadow-md);z-index:1000;opacity:0;max-width:220px;padding:8px 12px;font-size:12px;transition:opacity .12s;position:fixed}.tooltip.visible{opacity:1}.tooltip-title{color:var(--text);margin-bottom:2px;font-weight:700}.tooltip-detail{color:var(--text-secondary);line-height:1.4}.tooltip-hint{color:var(--accent);margin-top:4px;font-size:10px;font-style:italic}.error-state{text-align:center;color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;padding:24px;display:flex}.error-state .error-icon{margin-bottom:4px;font-size:32px}
226
+ <style>:root{--bg:#faf9f5;--surface:#fff;--text:#1a1a2e;--text-secondary:#5a5a7a;--accent:#6366f1;--accent-hover:#4f46e5;--accent-subtle:#6366f11f;--border:#e8e6f0;--border-strong:#c8c4d8;--shadow:0 4px 16px #00000014;--shadow-md:0 8px 32px #0000001f;--radius:10px;--radius-sm:6px;--planet-sun:#f59e0b;--planet-moon:#94a3b8;--planet-mercury:#10b981;--planet-venus:#ec4899;--planet-mars:#ef4444;--planet-jupiter:#8b5cf6;--planet-saturn:#64748b;--planet-uranus:#06b6d4;--planet-neptune:#3b82f6;--planet-pluto:#a78bfa;--aspect-conjunction:#f59e0b;--aspect-opposition:#ef4444;--aspect-trine:#10b981;--aspect-square:#ef4444;--aspect-sextile:#3b82f6;--color-fire:#e8854c;--color-earth:#7aaa6a;--color-air:#5aaad0;--color-water:#8878c8;--color-cardinal:#e05252;--color-fixed:#c0b052;--color-mutable:#52c07a}@media (prefers-color-scheme:dark){:root{--bg:#0d1117;--surface:#161b22;--text:#e6edf3;--text-secondary:#8b949e;--accent:#818cf8;--accent-hover:#a5b4fc;--accent-subtle:#818cf826;--border:#21262d;--border-strong:#30363d;--shadow:0 4px 16px #0006;--shadow-md:0 8px 32px #0009}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:var(--bg);color:var(--text);-webkit-user-select:none;user-select:none;font-family:-apple-system,Inter,Segoe UI,system-ui,sans-serif;font-size:13px;line-height:1.5;overflow:hidden}#app{flex-direction:column;height:100vh;display:flex;position:relative}#loading-state{color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}#chart-container{flex:1;justify-content:center;align-items:center;min-height:0;padding:12px;display:flex;position:relative}#chart-container svg{width:auto;max-width:100%;height:auto;max-height:100%}.hit-region{cursor:pointer;fill:#0000;stroke:#0000;transition:fill .15s,stroke .15s,opacity .2s}.hit-region:hover{fill:var(--accent-subtle);stroke:var(--accent);stroke-width:1px;stroke-opacity:.5}.hit-region.planet-hit{rx:12px;ry:12px}.hit-region.planet-hit:not(.dim){filter:none}.hit-region.dim{opacity:.15}.hit-region.aspect-hit{stroke-width:13px}.hit-region.aspect-hit.highlight{stroke:var(--aspect-color,#888);stroke-opacity:.55}.info-panel{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow-md);z-index:900;opacity:0;pointer-events:none;width:min(340px,92vw);padding:14px 16px 12px;transition:opacity .18s,transform .18s;position:fixed;bottom:126px;left:50%;transform:translate(-50%)translateY(12px)}.info-panel.visible{opacity:1;pointer-events:all;transform:translate(-50%)translateY(0)}.info-header{align-items:flex-start;gap:10px;margin-bottom:12px;display:flex}.info-glyph{text-align:center;flex-shrink:0;width:34px;font-size:28px;line-height:1}.info-title{color:var(--text);flex:1;font-size:13px;font-weight:700}.info-name-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.info-pos{color:var(--text-secondary);margin-top:2px;font-size:11px;font-weight:400}.retro{color:#e05252;font-style:normal}.info-close{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;border-radius:4px;flex-shrink:0;padding:2px 4px;font-size:13px;line-height:1;transition:color .12s}.info-close:hover{color:var(--text)}.aspects-title{text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary);margin-bottom:6px;font-size:10px;font-weight:700}.aspects-list{flex-direction:column;gap:4px;max-height:140px;display:flex;overflow-y:auto}.aspect-row{align-items:center;gap:7px;padding:3px 0;font-size:12px;display:flex}.aspect-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.aspect-sym{text-align:center;flex-shrink:0;width:16px;font-size:14px}.aspect-other{color:var(--text);flex:1}.aspect-meta{color:var(--text-secondary);white-space:nowrap;font-size:11px}.no-aspects{color:var(--text-secondary);padding:4px 0;font-size:11px;font-style:italic}.info-hint{color:var(--accent);text-align:center;margin-top:10px;font-size:10px;font-style:italic}.dignity-badge{white-space:nowrap;border-radius:99px;align-items:center;gap:3px;padding:1px 7px;font-size:10px;font-weight:600;line-height:1.6;display:inline-flex}.dignity-domicile{color:#2e9e5e;background:#52c07a2e;border:1px solid #52c07a66}.dignity-exaltation{color:#9a8600;background:#c0b0522e;border:1px solid #c0b05266}.dignity-detriment{color:#c03030;background:#e0525224;border:1px solid #e0525259}.dignity-fall{color:#707080;background:#9a9a9a24;border:1px solid #9a9a9a4d}@media (prefers-color-scheme:dark){.dignity-domicile{color:#6fe098;background:#52c07a1f}.dignity-exaltation{color:#e0cc60;background:#c0b0521f}.dignity-detriment{color:#e08080;background:#e052521a}.dignity-fall{color:#a0a0b0;background:#9a9a9a1a}}#tally-panel{border-top:1px solid var(--border);background:var(--surface);flex-shrink:0;align-items:center;gap:8px;padding:5px 12px;display:flex}.tally-section{flex-direction:column;gap:3px;display:flex}.tally-row{align-items:center;gap:8px;display:flex}.tally-item{white-space:nowrap;border-radius:4px;padding:1px 6px;font-size:11px;font-weight:600}.tally-item.fire{color:var(--color-fire);background:#e8854c1f}.tally-item.earth{color:var(--color-earth);background:#7aaa6a1f}.tally-item.air{color:var(--color-air);background:#5aaad01f}.tally-item.water{color:var(--color-water);background:#8878c81f}.tally-item.cardinal{color:var(--color-cardinal);background:#e052521a}.tally-item.fixed{color:var(--color-fixed);background:#c0b0521a}.tally-item.mutable{color:var(--color-mutable);background:#52c07a1a}.tally-bar-row{padding:2px 0}.tally-bar{background:var(--border);border-radius:2px;width:90px;height:4px;display:flex;overflow:hidden}.tally-bar-fill{height:100%;transition:width .4s}.tally-bar-fill.fire{background:var(--color-fire)}.tally-bar-fill.earth{background:var(--color-earth)}.tally-bar-fill.air{background:var(--color-air)}.tally-bar-fill.water{background:var(--color-water)}.tally-divider{background:var(--border);flex-shrink:0;width:1px;height:28px}#patterns-strip{border-top:1px solid var(--border);background:var(--surface);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:5px;padding:5px 12px;display:flex}.patterns-label{text-transform:uppercase;letter-spacing:.07em;color:var(--text-secondary);white-space:nowrap;margin-right:2px;font-size:10px;font-weight:700}.pattern-pill{cursor:pointer;white-space:nowrap;opacity:.85;background:0 0;border:1px solid;border-radius:99px;align-items:center;gap:4px;padding:2px 9px;font-family:inherit;font-size:11px;font-weight:600;transition:opacity .14s,box-shadow .14s,transform 80ms;display:inline-flex}.pattern-pill:hover{opacity:1;filter:brightness(1.05);box-shadow:0 0 0 2px #80808040}.pattern-pill.active{color:#fff;opacity:1;border-color:#0000;transform:translateY(-1px);box-shadow:0 2px 8px #00000040}#controls-panel{border-top:1px solid var(--border);background:var(--surface);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px;padding:8px 12px;display:flex}.controls-label{color:var(--text-secondary);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;margin-right:2px;font-size:11px;font-weight:600}.control-btn{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;padding:3px 10px;font-family:inherit;font-size:12px;transition:background .12s,color .12s,border-color .12s}.control-btn:hover{background:var(--accent-subtle);color:var(--accent);border-color:var(--accent)}.control-btn.active{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}.controls-divider{background:var(--border);flex-shrink:0;width:1px;height:18px;margin:0 4px}.tooltip{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);pointer-events:none;box-shadow:var(--shadow-md);z-index:1000;opacity:0;max-width:220px;padding:8px 12px;font-size:12px;transition:opacity .12s;position:fixed}.tooltip.visible{opacity:1}.tooltip-title{color:var(--text);margin-bottom:2px;font-weight:700}.tooltip-detail{color:var(--text-secondary);line-height:1.4}.tooltip-hint{color:var(--accent);margin-top:4px;font-size:10px;font-style:italic}.error-state{text-align:center;color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;padding:24px;display:flex}.error-state .error-icon{margin-bottom:4px;font-size:32px}
200
227
  /*$vite$:1*/</style>
201
228
  </head>
202
229
  <body>
@@ -206,10 +233,13 @@
206
233
  <p>Loading chart…</p>
207
234
  </div>
208
235
  <div id="chart-container" hidden></div>
236
+ <!-- Element/Modality tally + Pattern strip share the bottom bar with controls -->
237
+ <div id="tally-panel" hidden></div>
238
+ <div id="patterns-strip" hidden></div>
209
239
  <div id="controls-panel" hidden></div>
210
240
  <div id="tooltip" class="tooltip" aria-live="polite"></div>
211
241
  </div>
212
- )}function wn(e){return RegExp(`^[A-Za-z0-9_-]{${e}}<!DOCTYPE html>
242
+ )}function Sn(e){return RegExp(`^[A-Za-z0-9_-]{${e}}<!DOCTYPE html>
213
243
  <html lang="en">
214
244
  <head>
215
245
  <meta charset="UTF-8" />
@@ -217,7 +247,7 @@
217
247
  <title>Chart Wheel Explorer</title>
218
248
 
219
249
 
220
- <style>:root{--bg:#faf9f5;--surface:#fff;--text:#1a1a2e;--text-secondary:#5a5a7a;--accent:#6366f1;--accent-hover:#4f46e5;--accent-subtle:#6366f11f;--border:#e8e6f0;--border-strong:#c8c4d8;--shadow:0 4px 16px #00000014;--shadow-md:0 8px 32px #0000001f;--radius:10px;--radius-sm:6px;--planet-sun:#f59e0b;--planet-moon:#94a3b8;--planet-mercury:#10b981;--planet-venus:#ec4899;--planet-mars:#ef4444;--planet-jupiter:#8b5cf6;--planet-saturn:#64748b;--planet-uranus:#06b6d4;--planet-neptune:#3b82f6;--planet-pluto:#a78bfa;--aspect-conjunction:#f59e0b;--aspect-opposition:#ef4444;--aspect-trine:#10b981;--aspect-square:#ef4444;--aspect-sextile:#3b82f6}@media (prefers-color-scheme:dark){:root{--bg:#0d1117;--surface:#161b22;--text:#e6edf3;--text-secondary:#8b949e;--accent:#818cf8;--accent-hover:#a5b4fc;--accent-subtle:#818cf826;--border:#21262d;--border-strong:#30363d;--shadow:0 4px 16px #0006;--shadow-md:0 8px 32px #0009}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:var(--bg);color:var(--text);-webkit-user-select:none;user-select:none;font-family:-apple-system,Inter,Segoe UI,system-ui,sans-serif;font-size:13px;line-height:1.5;overflow:hidden}#app{flex-direction:column;height:100vh;display:flex;position:relative}#loading-state{color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}#chart-container{flex:1;justify-content:center;align-items:center;min-height:0;padding:12px;display:flex;position:relative}#chart-container svg{width:auto;max-width:100%;height:auto;max-height:100%}.hit-region{cursor:pointer;fill:#0000;stroke:#0000;transition:fill .15s,stroke .15s}.hit-region:hover{fill:var(--accent-subtle);stroke:var(--accent);stroke-width:1px;stroke-opacity:.5}.hit-region.planet-hit{rx:12px;ry:12px}.hit-region.aspect-hit{stroke-width:6px}#controls-panel{border-top:1px solid var(--border);background:var(--surface);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px;padding:8px 12px;display:flex}.controls-label{color:var(--text-secondary);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;margin-right:2px;font-size:11px;font-weight:600}.control-btn{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;padding:3px 10px;font-family:inherit;font-size:12px;transition:background .12s,color .12s,border-color .12s}.control-btn:hover{background:var(--accent-subtle);color:var(--accent);border-color:var(--accent)}.control-btn.active{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}.controls-divider{background:var(--border);flex-shrink:0;width:1px;height:18px;margin:0 4px}.tooltip{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);pointer-events:none;box-shadow:var(--shadow-md);z-index:1000;opacity:0;max-width:220px;padding:8px 12px;font-size:12px;transition:opacity .12s;position:fixed}.tooltip.visible{opacity:1}.tooltip-title{color:var(--text);margin-bottom:2px;font-weight:700}.tooltip-detail{color:var(--text-secondary);line-height:1.4}.tooltip-hint{color:var(--accent);margin-top:4px;font-size:10px;font-style:italic}.error-state{text-align:center;color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;padding:24px;display:flex}.error-state .error-icon{margin-bottom:4px;font-size:32px}
250
+ <style>:root{--bg:#faf9f5;--surface:#fff;--text:#1a1a2e;--text-secondary:#5a5a7a;--accent:#6366f1;--accent-hover:#4f46e5;--accent-subtle:#6366f11f;--border:#e8e6f0;--border-strong:#c8c4d8;--shadow:0 4px 16px #00000014;--shadow-md:0 8px 32px #0000001f;--radius:10px;--radius-sm:6px;--planet-sun:#f59e0b;--planet-moon:#94a3b8;--planet-mercury:#10b981;--planet-venus:#ec4899;--planet-mars:#ef4444;--planet-jupiter:#8b5cf6;--planet-saturn:#64748b;--planet-uranus:#06b6d4;--planet-neptune:#3b82f6;--planet-pluto:#a78bfa;--aspect-conjunction:#f59e0b;--aspect-opposition:#ef4444;--aspect-trine:#10b981;--aspect-square:#ef4444;--aspect-sextile:#3b82f6;--color-fire:#e8854c;--color-earth:#7aaa6a;--color-air:#5aaad0;--color-water:#8878c8;--color-cardinal:#e05252;--color-fixed:#c0b052;--color-mutable:#52c07a}@media (prefers-color-scheme:dark){:root{--bg:#0d1117;--surface:#161b22;--text:#e6edf3;--text-secondary:#8b949e;--accent:#818cf8;--accent-hover:#a5b4fc;--accent-subtle:#818cf826;--border:#21262d;--border-strong:#30363d;--shadow:0 4px 16px #0006;--shadow-md:0 8px 32px #0009}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:var(--bg);color:var(--text);-webkit-user-select:none;user-select:none;font-family:-apple-system,Inter,Segoe UI,system-ui,sans-serif;font-size:13px;line-height:1.5;overflow:hidden}#app{flex-direction:column;height:100vh;display:flex;position:relative}#loading-state{color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}#chart-container{flex:1;justify-content:center;align-items:center;min-height:0;padding:12px;display:flex;position:relative}#chart-container svg{width:auto;max-width:100%;height:auto;max-height:100%}.hit-region{cursor:pointer;fill:#0000;stroke:#0000;transition:fill .15s,stroke .15s,opacity .2s}.hit-region:hover{fill:var(--accent-subtle);stroke:var(--accent);stroke-width:1px;stroke-opacity:.5}.hit-region.planet-hit{rx:12px;ry:12px}.hit-region.planet-hit:not(.dim){filter:none}.hit-region.dim{opacity:.15}.hit-region.aspect-hit{stroke-width:13px}.hit-region.aspect-hit.highlight{stroke:var(--aspect-color,#888);stroke-opacity:.55}.info-panel{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow-md);z-index:900;opacity:0;pointer-events:none;width:min(340px,92vw);padding:14px 16px 12px;transition:opacity .18s,transform .18s;position:fixed;bottom:126px;left:50%;transform:translate(-50%)translateY(12px)}.info-panel.visible{opacity:1;pointer-events:all;transform:translate(-50%)translateY(0)}.info-header{align-items:flex-start;gap:10px;margin-bottom:12px;display:flex}.info-glyph{text-align:center;flex-shrink:0;width:34px;font-size:28px;line-height:1}.info-title{color:var(--text);flex:1;font-size:13px;font-weight:700}.info-name-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.info-pos{color:var(--text-secondary);margin-top:2px;font-size:11px;font-weight:400}.retro{color:#e05252;font-style:normal}.info-close{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;border-radius:4px;flex-shrink:0;padding:2px 4px;font-size:13px;line-height:1;transition:color .12s}.info-close:hover{color:var(--text)}.aspects-title{text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary);margin-bottom:6px;font-size:10px;font-weight:700}.aspects-list{flex-direction:column;gap:4px;max-height:140px;display:flex;overflow-y:auto}.aspect-row{align-items:center;gap:7px;padding:3px 0;font-size:12px;display:flex}.aspect-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.aspect-sym{text-align:center;flex-shrink:0;width:16px;font-size:14px}.aspect-other{color:var(--text);flex:1}.aspect-meta{color:var(--text-secondary);white-space:nowrap;font-size:11px}.no-aspects{color:var(--text-secondary);padding:4px 0;font-size:11px;font-style:italic}.info-hint{color:var(--accent);text-align:center;margin-top:10px;font-size:10px;font-style:italic}.dignity-badge{white-space:nowrap;border-radius:99px;align-items:center;gap:3px;padding:1px 7px;font-size:10px;font-weight:600;line-height:1.6;display:inline-flex}.dignity-domicile{color:#2e9e5e;background:#52c07a2e;border:1px solid #52c07a66}.dignity-exaltation{color:#9a8600;background:#c0b0522e;border:1px solid #c0b05266}.dignity-detriment{color:#c03030;background:#e0525224;border:1px solid #e0525259}.dignity-fall{color:#707080;background:#9a9a9a24;border:1px solid #9a9a9a4d}@media (prefers-color-scheme:dark){.dignity-domicile{color:#6fe098;background:#52c07a1f}.dignity-exaltation{color:#e0cc60;background:#c0b0521f}.dignity-detriment{color:#e08080;background:#e052521a}.dignity-fall{color:#a0a0b0;background:#9a9a9a1a}}#tally-panel{border-top:1px solid var(--border);background:var(--surface);flex-shrink:0;align-items:center;gap:8px;padding:5px 12px;display:flex}.tally-section{flex-direction:column;gap:3px;display:flex}.tally-row{align-items:center;gap:8px;display:flex}.tally-item{white-space:nowrap;border-radius:4px;padding:1px 6px;font-size:11px;font-weight:600}.tally-item.fire{color:var(--color-fire);background:#e8854c1f}.tally-item.earth{color:var(--color-earth);background:#7aaa6a1f}.tally-item.air{color:var(--color-air);background:#5aaad01f}.tally-item.water{color:var(--color-water);background:#8878c81f}.tally-item.cardinal{color:var(--color-cardinal);background:#e052521a}.tally-item.fixed{color:var(--color-fixed);background:#c0b0521a}.tally-item.mutable{color:var(--color-mutable);background:#52c07a1a}.tally-bar-row{padding:2px 0}.tally-bar{background:var(--border);border-radius:2px;width:90px;height:4px;display:flex;overflow:hidden}.tally-bar-fill{height:100%;transition:width .4s}.tally-bar-fill.fire{background:var(--color-fire)}.tally-bar-fill.earth{background:var(--color-earth)}.tally-bar-fill.air{background:var(--color-air)}.tally-bar-fill.water{background:var(--color-water)}.tally-divider{background:var(--border);flex-shrink:0;width:1px;height:28px}#patterns-strip{border-top:1px solid var(--border);background:var(--surface);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:5px;padding:5px 12px;display:flex}.patterns-label{text-transform:uppercase;letter-spacing:.07em;color:var(--text-secondary);white-space:nowrap;margin-right:2px;font-size:10px;font-weight:700}.pattern-pill{cursor:pointer;white-space:nowrap;opacity:.85;background:0 0;border:1px solid;border-radius:99px;align-items:center;gap:4px;padding:2px 9px;font-family:inherit;font-size:11px;font-weight:600;transition:opacity .14s,box-shadow .14s,transform 80ms;display:inline-flex}.pattern-pill:hover{opacity:1;filter:brightness(1.05);box-shadow:0 0 0 2px #80808040}.pattern-pill.active{color:#fff;opacity:1;border-color:#0000;transform:translateY(-1px);box-shadow:0 2px 8px #00000040}#controls-panel{border-top:1px solid var(--border);background:var(--surface);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px;padding:8px 12px;display:flex}.controls-label{color:var(--text-secondary);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;margin-right:2px;font-size:11px;font-weight:600}.control-btn{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;padding:3px 10px;font-family:inherit;font-size:12px;transition:background .12s,color .12s,border-color .12s}.control-btn:hover{background:var(--accent-subtle);color:var(--accent);border-color:var(--accent)}.control-btn.active{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}.controls-divider{background:var(--border);flex-shrink:0;width:1px;height:18px;margin:0 4px}.tooltip{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);pointer-events:none;box-shadow:var(--shadow-md);z-index:1000;opacity:0;max-width:220px;padding:8px 12px;font-size:12px;transition:opacity .12s;position:fixed}.tooltip.visible{opacity:1}.tooltip-title{color:var(--text);margin-bottom:2px;font-weight:700}.tooltip-detail{color:var(--text-secondary);line-height:1.4}.tooltip-hint{color:var(--accent);margin-top:4px;font-size:10px;font-style:italic}.error-state{text-align:center;color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;padding:24px;display:flex}.error-state .error-icon{margin-bottom:4px;font-size:32px}
221
251
  /*$vite$:1*/</style>
222
252
  </head>
223
253
  <body>
@@ -227,10 +257,13 @@
227
257
  <p>Loading chart…</p>
228
258
  </div>
229
259
  <div id="chart-container" hidden></div>
260
+ <!-- Element/Modality tally + Pattern strip share the bottom bar with controls -->
261
+ <div id="tally-panel" hidden></div>
262
+ <div id="patterns-strip" hidden></div>
230
263
  <div id="controls-panel" hidden></div>
231
264
  <div id="tooltip" class="tooltip" aria-live="polite"></div>
232
265
  </div>
233
- )}var Tn=/^[0-9a-fA-F]{32}$/,En=Cn(22,`==`),Dn=wn(22),On=/^[0-9a-fA-F]{40}$/,kn=Cn(27,`=`),An=wn(27),jn=/^[0-9a-fA-F]{64}$/,Mn=Cn(43,`=`),Nn=wn(43),Pn=/^[0-9a-fA-F]{96}$/,Fn=Cn(64,``),In=wn(64),Ln=/^[0-9a-fA-F]{128}$/,Rn=Cn(86,`==`),zn=wn(86),S=i(`$ZodCheck`,(e,t)=>{var n;e._zod??={},e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),Bn={number:`number`,bigint:`bigint`,object:`date`},Vn=i(`$ZodCheckLessThan`,(e,t)=>{S.init(e,t);let n=Bn[typeof t.value];e._zod.onattach.push(e=>{let n=e._zod.bag,r=(t.inclusive?n.maximum:n.exclusiveMaximum)??1/0;t.value<r&&(t.inclusive?n.maximum=t.value:n.exclusiveMaximum=t.value)}),e._zod.check=r=>{(t.inclusive?r.value<=t.value:r.value<t.value)||r.issues.push({origin:n,code:`too_big`,maximum:t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),Hn=i(`$ZodCheckGreaterThan`,(e,t)=>{S.init(e,t);let n=Bn[typeof t.value];e._zod.onattach.push(e=>{let n=e._zod.bag,r=(t.inclusive?n.minimum:n.exclusiveMinimum)??-1/0;t.value>r&&(t.inclusive?n.minimum=t.value:n.exclusiveMinimum=t.value)}),e._zod.check=r=>{(t.inclusive?r.value>=t.value:r.value>t.value)||r.issues.push({origin:n,code:`too_small`,minimum:t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),Un=i(`$ZodCheckMultipleOf`,(e,t)=>{S.init(e,t),e._zod.onattach.push(e=>{var n;(n=e._zod.bag).multipleOf??(n.multipleOf=t.value)}),e._zod.check=n=>{if(typeof n.value!=typeof t.value)throw Error(`Cannot mix number and bigint in multiple_of check.`);(typeof n.value==`bigint`?n.value%t.value===BigInt(0):se(n.value,t.value)===0)||n.issues.push({origin:typeof n.value,code:`not_multiple_of`,divisor:t.value,input:n.value,inst:e,continue:!t.abort})}}),Wn=i(`$ZodCheckNumberFormat`,(e,t)=>{S.init(e,t),t.format=t.format||`float64`;let n=t.format?.includes(`int`),r=n?`int`:`number`,[i,a]=Ae[t.format];e._zod.onattach.push(e=>{let r=e._zod.bag;r.format=t.format,r.minimum=i,r.maximum=a,n&&(r.pattern=hn)}),e._zod.check=o=>{let s=o.value;if(n){if(!Number.isInteger(s)){o.issues.push({expected:r,format:t.format,code:`invalid_type`,continue:!1,input:s,inst:e});return}if(!Number.isSafeInteger(s)){s>0?o.issues.push({input:s,code:`too_big`,maximum:2**53-1,note:`Integers must be within the safe integer range.`,inst:e,origin:r,continue:!t.abort}):o.issues.push({input:s,code:`too_small`,minimum:-(2**53-1),note:`Integers must be within the safe integer range.`,inst:e,origin:r,continue:!t.abort});return}}s<i&&o.issues.push({origin:`number`,input:s,code:`too_small`,minimum:i,inclusive:!0,inst:e,continue:!t.abort}),s>a&&o.issues.push({origin:`number`,input:s,code:`too_big`,maximum:a,inst:e})}}),Gn=i(`$ZodCheckBigIntFormat`,(e,t)=>{S.init(e,t);let[n,r]=je[t.format];e._zod.onattach.push(e=>{let i=e._zod.bag;i.format=t.format,i.minimum=n,i.maximum=r}),e._zod.check=i=>{let a=i.value;a<n&&i.issues.push({origin:`bigint`,input:a,code:`too_small`,minimum:n,inclusive:!0,inst:e,continue:!t.abort}),a>r&&i.issues.push({origin:`bigint`,input:a,code:`too_big`,maximum:r,inst:e})}}),Kn=i(`$ZodCheckMaxSize`,(e,t)=>{var n;S.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!ae(t)&&t.size!==void 0}),e._zod.onattach.push(e=>{let n=e._zod.bag.maximum??1/0;t.maximum<n&&(e._zod.bag.maximum=t.maximum)}),e._zod.check=n=>{let r=n.value;r.size<=t.maximum||n.issues.push({origin:Ve(r),code:`too_big`,maximum:t.maximum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),qn=i(`$ZodCheckMinSize`,(e,t)=>{var n;S.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!ae(t)&&t.size!==void 0}),e._zod.onattach.push(e=>{let n=e._zod.bag.minimum??-1/0;t.minimum>n&&(e._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{let r=n.value;r.size>=t.minimum||n.issues.push({origin:Ve(r),code:`too_small`,minimum:t.minimum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),Jn=i(`$ZodCheckSizeEquals`,(e,t)=>{var n;S.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!ae(t)&&t.size!==void 0}),e._zod.onattach.push(e=>{let n=e._zod.bag;n.minimum=t.size,n.maximum=t.size,n.size=t.size}),e._zod.check=n=>{let r=n.value,i=r.size;if(i===t.size)return;let a=i>t.size;n.issues.push({origin:Ve(r),...a?{code:`too_big`,maximum:t.size}:{code:`too_small`,minimum:t.size},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),Yn=i(`$ZodCheckMaxLength`,(e,t)=>{var n;S.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!ae(t)&&t.length!==void 0}),e._zod.onattach.push(e=>{let n=e._zod.bag.maximum??1/0;t.maximum<n&&(e._zod.bag.maximum=t.maximum)}),e._zod.check=n=>{let r=n.value;if(r.length<=t.maximum)return;let i=He(r);n.issues.push({origin:i,code:`too_big`,maximum:t.maximum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),Xn=i(`$ZodCheckMinLength`,(e,t)=>{var n;S.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!ae(t)&&t.length!==void 0}),e._zod.onattach.push(e=>{let n=e._zod.bag.minimum??-1/0;t.minimum>n&&(e._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{let r=n.value;if(r.length>=t.minimum)return;let i=He(r);n.issues.push({origin:i,code:`too_small`,minimum:t.minimum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),Zn=i(`$ZodCheckLengthEquals`,(e,t)=>{var n;S.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!ae(t)&&t.length!==void 0}),e._zod.onattach.push(e=>{let n=e._zod.bag;n.minimum=t.length,n.maximum=t.length,n.length=t.length}),e._zod.check=n=>{let r=n.value,i=r.length;if(i===t.length)return;let a=He(r),o=i>t.length;n.issues.push({origin:a,...o?{code:`too_big`,maximum:t.length}:{code:`too_small`,minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),Qn=i(`$ZodCheckStringFormat`,(e,t)=>{var n,r;S.init(e,t),e._zod.onattach.push(e=>{let n=e._zod.bag;n.format=t.format,t.pattern&&(n.patterns??=new Set,n.patterns.add(t.pattern))}),t.pattern?(n=e._zod).check??(n.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:`string`,code:`invalid_format`,format:t.format,input:n.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(r=e._zod).check??(r.check=()=>{})}),$n=i(`$ZodCheckRegex`,(e,t)=>{Qn.init(e,t),e._zod.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:`string`,code:`invalid_format`,format:`regex`,input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),er=i(`$ZodCheckLowerCase`,(e,t)=>{t.pattern??=bn,Qn.init(e,t)}),tr=i(`$ZodCheckUpperCase`,(e,t)=>{t.pattern??=xn,Qn.init(e,t)}),nr=i(`$ZodCheckIncludes`,(e,t)=>{S.init(e,t);let n=De(t.includes),r=new RegExp(typeof t.position==`number`?`^.{${t.position}}${n}`:n);t.pattern=r,e._zod.onattach.push(e=>{let t=e._zod.bag;t.patterns??=new Set,t.patterns.add(r)}),e._zod.check=n=>{n.value.includes(t.includes,t.position)||n.issues.push({origin:`string`,code:`invalid_format`,format:`includes`,includes:t.includes,input:n.value,inst:e,continue:!t.abort})}}),rr=i(`$ZodCheckStartsWith`,(e,t)=>{S.init(e,t);let n=RegExp(`^${De(t.prefix)}.*`);t.pattern??=n,e._zod.onattach.push(e=>{let t=e._zod.bag;t.patterns??=new Set,t.patterns.add(n)}),e._zod.check=n=>{n.value.startsWith(t.prefix)||n.issues.push({origin:`string`,code:`invalid_format`,format:`starts_with`,prefix:t.prefix,input:n.value,inst:e,continue:!t.abort})}}),ir=i(`$ZodCheckEndsWith`,(e,t)=>{S.init(e,t);let n=RegExp(`.*${De(t.suffix)}<!DOCTYPE html>
266
+ )}var Cn=/^[0-9a-fA-F]{32}$/,wn=xn(22,`==`),Tn=Sn(22),En=/^[0-9a-fA-F]{40}$/,Dn=xn(27,`=`),On=Sn(27),kn=/^[0-9a-fA-F]{64}$/,An=xn(43,`=`),jn=Sn(43),Mn=/^[0-9a-fA-F]{96}$/,Nn=xn(64,``),Pn=Sn(64),Fn=/^[0-9a-fA-F]{128}$/,In=xn(86,`==`),Ln=Sn(86),w=i(`$ZodCheck`,(e,t)=>{var n;e._zod??={},e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),Rn={number:`number`,bigint:`bigint`,object:`date`},zn=i(`$ZodCheckLessThan`,(e,t)=>{w.init(e,t);let n=Rn[typeof t.value];e._zod.onattach.push(e=>{let n=e._zod.bag,r=(t.inclusive?n.maximum:n.exclusiveMaximum)??1/0;t.value<r&&(t.inclusive?n.maximum=t.value:n.exclusiveMaximum=t.value)}),e._zod.check=r=>{(t.inclusive?r.value<=t.value:r.value<t.value)||r.issues.push({origin:n,code:`too_big`,maximum:t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),Bn=i(`$ZodCheckGreaterThan`,(e,t)=>{w.init(e,t);let n=Rn[typeof t.value];e._zod.onattach.push(e=>{let n=e._zod.bag,r=(t.inclusive?n.minimum:n.exclusiveMinimum)??-1/0;t.value>r&&(t.inclusive?n.minimum=t.value:n.exclusiveMinimum=t.value)}),e._zod.check=r=>{(t.inclusive?r.value>=t.value:r.value>t.value)||r.issues.push({origin:n,code:`too_small`,minimum:t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),Vn=i(`$ZodCheckMultipleOf`,(e,t)=>{w.init(e,t),e._zod.onattach.push(e=>{var n;(n=e._zod.bag).multipleOf??(n.multipleOf=t.value)}),e._zod.check=n=>{if(typeof n.value!=typeof t.value)throw Error(`Cannot mix number and bigint in multiple_of check.`);(typeof n.value==`bigint`?n.value%t.value===BigInt(0):re(n.value,t.value)===0)||n.issues.push({origin:typeof n.value,code:`not_multiple_of`,divisor:t.value,input:n.value,inst:e,continue:!t.abort})}}),Hn=i(`$ZodCheckNumberFormat`,(e,t)=>{w.init(e,t),t.format=t.format||`float64`;let n=t.format?.includes(`int`),r=n?`int`:`number`,[i,a]=Ee[t.format];e._zod.onattach.push(e=>{let r=e._zod.bag;r.format=t.format,r.minimum=i,r.maximum=a,n&&(r.pattern=pn)}),e._zod.check=o=>{let s=o.value;if(n){if(!Number.isInteger(s)){o.issues.push({expected:r,format:t.format,code:`invalid_type`,continue:!1,input:s,inst:e});return}if(!Number.isSafeInteger(s)){s>0?o.issues.push({input:s,code:`too_big`,maximum:2**53-1,note:`Integers must be within the safe integer range.`,inst:e,origin:r,continue:!t.abort}):o.issues.push({input:s,code:`too_small`,minimum:-(2**53-1),note:`Integers must be within the safe integer range.`,inst:e,origin:r,continue:!t.abort});return}}s<i&&o.issues.push({origin:`number`,input:s,code:`too_small`,minimum:i,inclusive:!0,inst:e,continue:!t.abort}),s>a&&o.issues.push({origin:`number`,input:s,code:`too_big`,maximum:a,inst:e})}}),Un=i(`$ZodCheckBigIntFormat`,(e,t)=>{w.init(e,t);let[n,r]=De[t.format];e._zod.onattach.push(e=>{let i=e._zod.bag;i.format=t.format,i.minimum=n,i.maximum=r}),e._zod.check=i=>{let a=i.value;a<n&&i.issues.push({origin:`bigint`,input:a,code:`too_small`,minimum:n,inclusive:!0,inst:e,continue:!t.abort}),a>r&&i.issues.push({origin:`bigint`,input:a,code:`too_big`,maximum:r,inst:e})}}),Wn=i(`$ZodCheckMaxSize`,(e,t)=>{var n;w.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!te(t)&&t.size!==void 0}),e._zod.onattach.push(e=>{let n=e._zod.bag.maximum??1/0;t.maximum<n&&(e._zod.bag.maximum=t.maximum)}),e._zod.check=n=>{let r=n.value;r.size<=t.maximum||n.issues.push({origin:ze(r),code:`too_big`,maximum:t.maximum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),Gn=i(`$ZodCheckMinSize`,(e,t)=>{var n;w.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!te(t)&&t.size!==void 0}),e._zod.onattach.push(e=>{let n=e._zod.bag.minimum??-1/0;t.minimum>n&&(e._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{let r=n.value;r.size>=t.minimum||n.issues.push({origin:ze(r),code:`too_small`,minimum:t.minimum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),Kn=i(`$ZodCheckSizeEquals`,(e,t)=>{var n;w.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!te(t)&&t.size!==void 0}),e._zod.onattach.push(e=>{let n=e._zod.bag;n.minimum=t.size,n.maximum=t.size,n.size=t.size}),e._zod.check=n=>{let r=n.value,i=r.size;if(i===t.size)return;let a=i>t.size;n.issues.push({origin:ze(r),...a?{code:`too_big`,maximum:t.size}:{code:`too_small`,minimum:t.size},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),qn=i(`$ZodCheckMaxLength`,(e,t)=>{var n;w.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!te(t)&&t.length!==void 0}),e._zod.onattach.push(e=>{let n=e._zod.bag.maximum??1/0;t.maximum<n&&(e._zod.bag.maximum=t.maximum)}),e._zod.check=n=>{let r=n.value;if(r.length<=t.maximum)return;let i=Be(r);n.issues.push({origin:i,code:`too_big`,maximum:t.maximum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),Jn=i(`$ZodCheckMinLength`,(e,t)=>{var n;w.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!te(t)&&t.length!==void 0}),e._zod.onattach.push(e=>{let n=e._zod.bag.minimum??-1/0;t.minimum>n&&(e._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{let r=n.value;if(r.length>=t.minimum)return;let i=Be(r);n.issues.push({origin:i,code:`too_small`,minimum:t.minimum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),Yn=i(`$ZodCheckLengthEquals`,(e,t)=>{var n;w.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!te(t)&&t.length!==void 0}),e._zod.onattach.push(e=>{let n=e._zod.bag;n.minimum=t.length,n.maximum=t.length,n.length=t.length}),e._zod.check=n=>{let r=n.value,i=r.length;if(i===t.length)return;let a=Be(r),o=i>t.length;n.issues.push({origin:a,...o?{code:`too_big`,maximum:t.length}:{code:`too_small`,minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),Xn=i(`$ZodCheckStringFormat`,(e,t)=>{var n,r;w.init(e,t),e._zod.onattach.push(e=>{let n=e._zod.bag;n.format=t.format,t.pattern&&(n.patterns??=new Set,n.patterns.add(t.pattern))}),t.pattern?(n=e._zod).check??(n.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:`string`,code:`invalid_format`,format:t.format,input:n.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(r=e._zod).check??(r.check=()=>{})}),Zn=i(`$ZodCheckRegex`,(e,t)=>{Xn.init(e,t),e._zod.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:`string`,code:`invalid_format`,format:`regex`,input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),Qn=i(`$ZodCheckLowerCase`,(e,t)=>{t.pattern??=vn,Xn.init(e,t)}),$n=i(`$ZodCheckUpperCase`,(e,t)=>{t.pattern??=yn,Xn.init(e,t)}),er=i(`$ZodCheckIncludes`,(e,t)=>{w.init(e,t);let n=Ce(t.includes),r=new RegExp(typeof t.position==`number`?`^.{${t.position}}${n}`:n);t.pattern=r,e._zod.onattach.push(e=>{let t=e._zod.bag;t.patterns??=new Set,t.patterns.add(r)}),e._zod.check=n=>{n.value.includes(t.includes,t.position)||n.issues.push({origin:`string`,code:`invalid_format`,format:`includes`,includes:t.includes,input:n.value,inst:e,continue:!t.abort})}}),tr=i(`$ZodCheckStartsWith`,(e,t)=>{w.init(e,t);let n=RegExp(`^${Ce(t.prefix)}.*`);t.pattern??=n,e._zod.onattach.push(e=>{let t=e._zod.bag;t.patterns??=new Set,t.patterns.add(n)}),e._zod.check=n=>{n.value.startsWith(t.prefix)||n.issues.push({origin:`string`,code:`invalid_format`,format:`starts_with`,prefix:t.prefix,input:n.value,inst:e,continue:!t.abort})}}),nr=i(`$ZodCheckEndsWith`,(e,t)=>{w.init(e,t);let n=RegExp(`.*${Ce(t.suffix)}<!DOCTYPE html>
234
267
  <html lang="en">
235
268
  <head>
236
269
  <meta charset="UTF-8" />
@@ -238,7 +271,7 @@
238
271
  <title>Chart Wheel Explorer</title>
239
272
 
240
273
 
241
- <style>:root{--bg:#faf9f5;--surface:#fff;--text:#1a1a2e;--text-secondary:#5a5a7a;--accent:#6366f1;--accent-hover:#4f46e5;--accent-subtle:#6366f11f;--border:#e8e6f0;--border-strong:#c8c4d8;--shadow:0 4px 16px #00000014;--shadow-md:0 8px 32px #0000001f;--radius:10px;--radius-sm:6px;--planet-sun:#f59e0b;--planet-moon:#94a3b8;--planet-mercury:#10b981;--planet-venus:#ec4899;--planet-mars:#ef4444;--planet-jupiter:#8b5cf6;--planet-saturn:#64748b;--planet-uranus:#06b6d4;--planet-neptune:#3b82f6;--planet-pluto:#a78bfa;--aspect-conjunction:#f59e0b;--aspect-opposition:#ef4444;--aspect-trine:#10b981;--aspect-square:#ef4444;--aspect-sextile:#3b82f6}@media (prefers-color-scheme:dark){:root{--bg:#0d1117;--surface:#161b22;--text:#e6edf3;--text-secondary:#8b949e;--accent:#818cf8;--accent-hover:#a5b4fc;--accent-subtle:#818cf826;--border:#21262d;--border-strong:#30363d;--shadow:0 4px 16px #0006;--shadow-md:0 8px 32px #0009}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:var(--bg);color:var(--text);-webkit-user-select:none;user-select:none;font-family:-apple-system,Inter,Segoe UI,system-ui,sans-serif;font-size:13px;line-height:1.5;overflow:hidden}#app{flex-direction:column;height:100vh;display:flex;position:relative}#loading-state{color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}#chart-container{flex:1;justify-content:center;align-items:center;min-height:0;padding:12px;display:flex;position:relative}#chart-container svg{width:auto;max-width:100%;height:auto;max-height:100%}.hit-region{cursor:pointer;fill:#0000;stroke:#0000;transition:fill .15s,stroke .15s}.hit-region:hover{fill:var(--accent-subtle);stroke:var(--accent);stroke-width:1px;stroke-opacity:.5}.hit-region.planet-hit{rx:12px;ry:12px}.hit-region.aspect-hit{stroke-width:6px}#controls-panel{border-top:1px solid var(--border);background:var(--surface);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px;padding:8px 12px;display:flex}.controls-label{color:var(--text-secondary);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;margin-right:2px;font-size:11px;font-weight:600}.control-btn{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;padding:3px 10px;font-family:inherit;font-size:12px;transition:background .12s,color .12s,border-color .12s}.control-btn:hover{background:var(--accent-subtle);color:var(--accent);border-color:var(--accent)}.control-btn.active{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}.controls-divider{background:var(--border);flex-shrink:0;width:1px;height:18px;margin:0 4px}.tooltip{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);pointer-events:none;box-shadow:var(--shadow-md);z-index:1000;opacity:0;max-width:220px;padding:8px 12px;font-size:12px;transition:opacity .12s;position:fixed}.tooltip.visible{opacity:1}.tooltip-title{color:var(--text);margin-bottom:2px;font-weight:700}.tooltip-detail{color:var(--text-secondary);line-height:1.4}.tooltip-hint{color:var(--accent);margin-top:4px;font-size:10px;font-style:italic}.error-state{text-align:center;color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;padding:24px;display:flex}.error-state .error-icon{margin-bottom:4px;font-size:32px}
274
+ <style>:root{--bg:#faf9f5;--surface:#fff;--text:#1a1a2e;--text-secondary:#5a5a7a;--accent:#6366f1;--accent-hover:#4f46e5;--accent-subtle:#6366f11f;--border:#e8e6f0;--border-strong:#c8c4d8;--shadow:0 4px 16px #00000014;--shadow-md:0 8px 32px #0000001f;--radius:10px;--radius-sm:6px;--planet-sun:#f59e0b;--planet-moon:#94a3b8;--planet-mercury:#10b981;--planet-venus:#ec4899;--planet-mars:#ef4444;--planet-jupiter:#8b5cf6;--planet-saturn:#64748b;--planet-uranus:#06b6d4;--planet-neptune:#3b82f6;--planet-pluto:#a78bfa;--aspect-conjunction:#f59e0b;--aspect-opposition:#ef4444;--aspect-trine:#10b981;--aspect-square:#ef4444;--aspect-sextile:#3b82f6;--color-fire:#e8854c;--color-earth:#7aaa6a;--color-air:#5aaad0;--color-water:#8878c8;--color-cardinal:#e05252;--color-fixed:#c0b052;--color-mutable:#52c07a}@media (prefers-color-scheme:dark){:root{--bg:#0d1117;--surface:#161b22;--text:#e6edf3;--text-secondary:#8b949e;--accent:#818cf8;--accent-hover:#a5b4fc;--accent-subtle:#818cf826;--border:#21262d;--border-strong:#30363d;--shadow:0 4px 16px #0006;--shadow-md:0 8px 32px #0009}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:var(--bg);color:var(--text);-webkit-user-select:none;user-select:none;font-family:-apple-system,Inter,Segoe UI,system-ui,sans-serif;font-size:13px;line-height:1.5;overflow:hidden}#app{flex-direction:column;height:100vh;display:flex;position:relative}#loading-state{color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}#chart-container{flex:1;justify-content:center;align-items:center;min-height:0;padding:12px;display:flex;position:relative}#chart-container svg{width:auto;max-width:100%;height:auto;max-height:100%}.hit-region{cursor:pointer;fill:#0000;stroke:#0000;transition:fill .15s,stroke .15s,opacity .2s}.hit-region:hover{fill:var(--accent-subtle);stroke:var(--accent);stroke-width:1px;stroke-opacity:.5}.hit-region.planet-hit{rx:12px;ry:12px}.hit-region.planet-hit:not(.dim){filter:none}.hit-region.dim{opacity:.15}.hit-region.aspect-hit{stroke-width:13px}.hit-region.aspect-hit.highlight{stroke:var(--aspect-color,#888);stroke-opacity:.55}.info-panel{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow-md);z-index:900;opacity:0;pointer-events:none;width:min(340px,92vw);padding:14px 16px 12px;transition:opacity .18s,transform .18s;position:fixed;bottom:126px;left:50%;transform:translate(-50%)translateY(12px)}.info-panel.visible{opacity:1;pointer-events:all;transform:translate(-50%)translateY(0)}.info-header{align-items:flex-start;gap:10px;margin-bottom:12px;display:flex}.info-glyph{text-align:center;flex-shrink:0;width:34px;font-size:28px;line-height:1}.info-title{color:var(--text);flex:1;font-size:13px;font-weight:700}.info-name-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.info-pos{color:var(--text-secondary);margin-top:2px;font-size:11px;font-weight:400}.retro{color:#e05252;font-style:normal}.info-close{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;border-radius:4px;flex-shrink:0;padding:2px 4px;font-size:13px;line-height:1;transition:color .12s}.info-close:hover{color:var(--text)}.aspects-title{text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary);margin-bottom:6px;font-size:10px;font-weight:700}.aspects-list{flex-direction:column;gap:4px;max-height:140px;display:flex;overflow-y:auto}.aspect-row{align-items:center;gap:7px;padding:3px 0;font-size:12px;display:flex}.aspect-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.aspect-sym{text-align:center;flex-shrink:0;width:16px;font-size:14px}.aspect-other{color:var(--text);flex:1}.aspect-meta{color:var(--text-secondary);white-space:nowrap;font-size:11px}.no-aspects{color:var(--text-secondary);padding:4px 0;font-size:11px;font-style:italic}.info-hint{color:var(--accent);text-align:center;margin-top:10px;font-size:10px;font-style:italic}.dignity-badge{white-space:nowrap;border-radius:99px;align-items:center;gap:3px;padding:1px 7px;font-size:10px;font-weight:600;line-height:1.6;display:inline-flex}.dignity-domicile{color:#2e9e5e;background:#52c07a2e;border:1px solid #52c07a66}.dignity-exaltation{color:#9a8600;background:#c0b0522e;border:1px solid #c0b05266}.dignity-detriment{color:#c03030;background:#e0525224;border:1px solid #e0525259}.dignity-fall{color:#707080;background:#9a9a9a24;border:1px solid #9a9a9a4d}@media (prefers-color-scheme:dark){.dignity-domicile{color:#6fe098;background:#52c07a1f}.dignity-exaltation{color:#e0cc60;background:#c0b0521f}.dignity-detriment{color:#e08080;background:#e052521a}.dignity-fall{color:#a0a0b0;background:#9a9a9a1a}}#tally-panel{border-top:1px solid var(--border);background:var(--surface);flex-shrink:0;align-items:center;gap:8px;padding:5px 12px;display:flex}.tally-section{flex-direction:column;gap:3px;display:flex}.tally-row{align-items:center;gap:8px;display:flex}.tally-item{white-space:nowrap;border-radius:4px;padding:1px 6px;font-size:11px;font-weight:600}.tally-item.fire{color:var(--color-fire);background:#e8854c1f}.tally-item.earth{color:var(--color-earth);background:#7aaa6a1f}.tally-item.air{color:var(--color-air);background:#5aaad01f}.tally-item.water{color:var(--color-water);background:#8878c81f}.tally-item.cardinal{color:var(--color-cardinal);background:#e052521a}.tally-item.fixed{color:var(--color-fixed);background:#c0b0521a}.tally-item.mutable{color:var(--color-mutable);background:#52c07a1a}.tally-bar-row{padding:2px 0}.tally-bar{background:var(--border);border-radius:2px;width:90px;height:4px;display:flex;overflow:hidden}.tally-bar-fill{height:100%;transition:width .4s}.tally-bar-fill.fire{background:var(--color-fire)}.tally-bar-fill.earth{background:var(--color-earth)}.tally-bar-fill.air{background:var(--color-air)}.tally-bar-fill.water{background:var(--color-water)}.tally-divider{background:var(--border);flex-shrink:0;width:1px;height:28px}#patterns-strip{border-top:1px solid var(--border);background:var(--surface);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:5px;padding:5px 12px;display:flex}.patterns-label{text-transform:uppercase;letter-spacing:.07em;color:var(--text-secondary);white-space:nowrap;margin-right:2px;font-size:10px;font-weight:700}.pattern-pill{cursor:pointer;white-space:nowrap;opacity:.85;background:0 0;border:1px solid;border-radius:99px;align-items:center;gap:4px;padding:2px 9px;font-family:inherit;font-size:11px;font-weight:600;transition:opacity .14s,box-shadow .14s,transform 80ms;display:inline-flex}.pattern-pill:hover{opacity:1;filter:brightness(1.05);box-shadow:0 0 0 2px #80808040}.pattern-pill.active{color:#fff;opacity:1;border-color:#0000;transform:translateY(-1px);box-shadow:0 2px 8px #00000040}#controls-panel{border-top:1px solid var(--border);background:var(--surface);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px;padding:8px 12px;display:flex}.controls-label{color:var(--text-secondary);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;margin-right:2px;font-size:11px;font-weight:600}.control-btn{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;padding:3px 10px;font-family:inherit;font-size:12px;transition:background .12s,color .12s,border-color .12s}.control-btn:hover{background:var(--accent-subtle);color:var(--accent);border-color:var(--accent)}.control-btn.active{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}.controls-divider{background:var(--border);flex-shrink:0;width:1px;height:18px;margin:0 4px}.tooltip{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);pointer-events:none;box-shadow:var(--shadow-md);z-index:1000;opacity:0;max-width:220px;padding:8px 12px;font-size:12px;transition:opacity .12s;position:fixed}.tooltip.visible{opacity:1}.tooltip-title{color:var(--text);margin-bottom:2px;font-weight:700}.tooltip-detail{color:var(--text-secondary);line-height:1.4}.tooltip-hint{color:var(--accent);margin-top:4px;font-size:10px;font-style:italic}.error-state{text-align:center;color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;padding:24px;display:flex}.error-state .error-icon{margin-bottom:4px;font-size:32px}
242
275
  /*$vite$:1*/</style>
243
276
  </head>
244
277
  <body>
@@ -248,12 +281,15 @@
248
281
  <p>Loading chart…</p>
249
282
  </div>
250
283
  <div id="chart-container" hidden></div>
284
+ <!-- Element/Modality tally + Pattern strip share the bottom bar with controls -->
285
+ <div id="tally-panel" hidden></div>
286
+ <div id="patterns-strip" hidden></div>
251
287
  <div id="controls-panel" hidden></div>
252
288
  <div id="tooltip" class="tooltip" aria-live="polite"></div>
253
289
  </div>
254
- );t.pattern??=n,e._zod.onattach.push(e=>{let t=e._zod.bag;t.patterns??=new Set,t.patterns.add(n)}),e._zod.check=n=>{n.value.endsWith(t.suffix)||n.issues.push({origin:`string`,code:`invalid_format`,format:`ends_with`,suffix:t.suffix,input:n.value,inst:e,continue:!t.abort})}});function ar(e,t,n){e.issues.length&&t.issues.push(...y(n,e.issues))}var or=i(`$ZodCheckProperty`,(e,t)=>{S.init(e,t),e._zod.check=e=>{let n=t.schema._zod.run({value:e.value[t.property],issues:[]},{});if(n instanceof Promise)return n.then(n=>ar(n,e,t.property));ar(n,e,t.property)}}),sr=i(`$ZodCheckMimeType`,(e,t)=>{S.init(e,t);let n=new Set(t.mime);e._zod.onattach.push(e=>{e._zod.bag.mime=t.mime}),e._zod.check=r=>{n.has(r.value.type)||r.issues.push({code:`invalid_value`,values:t.mime,input:r.value.type,inst:e,continue:!t.abort})}}),cr=i(`$ZodCheckOverwrite`,(e,t)=>{S.init(e,t),e._zod.check=e=>{e.value=t.tx(e.value)}}),lr=class{constructor(e=[]){this.content=[],this.indent=0,this&&(this.args=e)}indented(e){this.indent+=1,e(this),--this.indent}write(e){if(typeof e==`function`){e(this,{execution:`sync`}),e(this,{execution:`async`});return}let t=e.split(`
290
+ );t.pattern??=n,e._zod.onattach.push(e=>{let t=e._zod.bag;t.patterns??=new Set,t.patterns.add(n)}),e._zod.check=n=>{n.value.endsWith(t.suffix)||n.issues.push({origin:`string`,code:`invalid_format`,format:`ends_with`,suffix:t.suffix,input:n.value,inst:e,continue:!t.abort})}});function rr(e,t,n){e.issues.length&&t.issues.push(...Ie(n,e.issues))}var ir=i(`$ZodCheckProperty`,(e,t)=>{w.init(e,t),e._zod.check=e=>{let n=t.schema._zod.run({value:e.value[t.property],issues:[]},{});if(n instanceof Promise)return n.then(n=>rr(n,e,t.property));rr(n,e,t.property)}}),ar=i(`$ZodCheckMimeType`,(e,t)=>{w.init(e,t);let n=new Set(t.mime);e._zod.onattach.push(e=>{e._zod.bag.mime=t.mime}),e._zod.check=r=>{n.has(r.value.type)||r.issues.push({code:`invalid_value`,values:t.mime,input:r.value.type,inst:e,continue:!t.abort})}}),or=i(`$ZodCheckOverwrite`,(e,t)=>{w.init(e,t),e._zod.check=e=>{e.value=t.tx(e.value)}}),sr=class{constructor(e=[]){this.content=[],this.indent=0,this&&(this.args=e)}indented(e){this.indent+=1,e(this),--this.indent}write(e){if(typeof e==`function`){e(this,{execution:`sync`}),e(this,{execution:`async`});return}let t=e.split(`
255
291
  `).filter(e=>e),n=Math.min(...t.map(e=>e.length-e.trimStart().length)),r=t.map(e=>e.slice(n)).map(e=>` `.repeat(this.indent*2)+e);for(let e of r)this.content.push(e)}compile(){let e=Function,t=this?.args,n=[...(this?.content??[``]).map(e=>` ${e}`)];return new e(...t,n.join(`
256
- `))}},ur={major:4,minor:1,patch:13},C=i(`$ZodType`,(e,t)=>{var n;e??={},e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=ur;let r=[...e._zod.def.checks??[]];e._zod.traits.has(`$ZodCheck`)&&r.unshift(e);for(let t of r)for(let n of t._zod.onattach)n(e);if(r.length===0)(n=e._zod).deferred??(n.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{let t=(e,t,n)=>{let r=ze(e),i;for(let a of t){if(a._zod.def.when){if(!a._zod.def.when(e))continue}else if(r)continue;let t=e.issues.length,s=a._zod.check(e);if(s instanceof Promise&&n?.async===!1)throw new o;if(i||s instanceof Promise)i=(i??Promise.resolve()).then(async()=>{await s,e.issues.length!==t&&(r||=ze(e,t))});else{if(e.issues.length===t)continue;r||=ze(e,t)}}return i?i.then(()=>e):e},n=(n,i,a)=>{if(ze(n))return n.aborted=!0,n;let s=t(i,r,a);if(s instanceof Promise){if(a.async===!1)throw new o;return s.then(t=>e._zod.parse(t,a))}return e._zod.parse(s,a)};e._zod.run=(i,a)=>{if(a.skipChecks)return e._zod.parse(i,a);if(a.direction===`backward`){let t=e._zod.parse({value:i.value,issues:[]},{...a,skipChecks:!0});return t instanceof Promise?t.then(e=>n(e,i,a)):n(t,i,a)}let s=e._zod.parse(i,a);if(s instanceof Promise){if(a.async===!1)throw new o;return s.then(e=>t(e,r,a))}return t(s,r,a)}}e[`~standard`]={validate:t=>{try{let n=ut(e,t);return n.success?{value:n.data}:{issues:n.error?.issues}}catch{return ft(e,t).then(e=>e.success?{value:e.data}:{issues:e.error?.issues})}},vendor:`zod`,version:1}}),dr=i(`$ZodString`,(e,t)=>{C.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??pn(e._zod.bag),e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=String(n.value)}catch{}return typeof n.value==`string`||n.issues.push({expected:`string`,code:`invalid_type`,input:n.value,inst:e}),n}}),w=i(`$ZodStringFormat`,(e,t)=>{Qn.init(e,t),dr.init(e,t)}),fr=i(`$ZodGUID`,(e,t)=>{t.pattern??=Rt,w.init(e,t)}),pr=i(`$ZodUUID`,(e,t)=>{if(t.version){let e={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(e===void 0)throw Error(`Invalid UUID version: "${t.version}"`);t.pattern??=zt(e)}else t.pattern??=zt();w.init(e,t)}),mr=i(`$ZodEmail`,(e,t)=>{t.pattern??=Ut,w.init(e,t)}),hr=i(`$ZodURL`,(e,t)=>{w.init(e,t),e._zod.check=n=>{try{let r=n.value.trim(),i=new URL(r);t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(i.hostname)||n.issues.push({code:`invalid_format`,format:`url`,note:`Invalid hostname`,pattern:t.hostname.source,input:n.value,inst:e,continue:!t.abort})),t.protocol&&(t.protocol.lastIndex=0,t.protocol.test(i.protocol.endsWith(`:`)?i.protocol.slice(0,-1):i.protocol)||n.issues.push({code:`invalid_format`,format:`url`,note:`Invalid protocol`,pattern:t.protocol.source,input:n.value,inst:e,continue:!t.abort})),t.normalize?n.value=i.href:n.value=r;return}catch{n.issues.push({code:`invalid_format`,format:`url`,input:n.value,inst:e,continue:!t.abort})}}}),gr=i(`$ZodEmoji`,(e,t)=>{t.pattern??=Xt(),w.init(e,t)}),_r=i(`$ZodNanoID`,(e,t)=>{t.pattern??=Ft,w.init(e,t)}),vr=i(`$ZodCUID`,(e,t)=>{t.pattern??=At,w.init(e,t)}),yr=i(`$ZodCUID2`,(e,t)=>{t.pattern??=jt,w.init(e,t)}),br=i(`$ZodULID`,(e,t)=>{t.pattern??=Mt,w.init(e,t)}),xr=i(`$ZodXID`,(e,t)=>{t.pattern??=Nt,w.init(e,t)}),Sr=i(`$ZodKSUID`,(e,t)=>{t.pattern??=Pt,w.init(e,t)}),Cr=i(`$ZodISODateTime`,(e,t)=>{t.pattern??=fn(t),w.init(e,t)}),wr=i(`$ZodISODate`,(e,t)=>{t.pattern??=ln,w.init(e,t)}),Tr=i(`$ZodISOTime`,(e,t)=>{t.pattern??=dn(t),w.init(e,t)}),Er=i(`$ZodISODuration`,(e,t)=>{t.pattern??=It,w.init(e,t)}),Dr=i(`$ZodIPv4`,(e,t)=>{t.pattern??=Zt,w.init(e,t),e._zod.bag.format=`ipv4`}),Or=i(`$ZodIPv6`,(e,t)=>{t.pattern??=Qt,w.init(e,t),e._zod.bag.format=`ipv6`,e._zod.check=n=>{try{new URL(`http://[${n.value}]`)}catch{n.issues.push({code:`invalid_format`,format:`ipv6`,input:n.value,inst:e,continue:!t.abort})}}}),kr=i(`$ZodMAC`,(e,t)=>{t.pattern??=$t(t.delimiter),w.init(e,t),e._zod.bag.format=`mac`}),Ar=i(`$ZodCIDRv4`,(e,t)=>{t.pattern??=en,w.init(e,t)}),jr=i(`$ZodCIDRv6`,(e,t)=>{t.pattern??=tn,w.init(e,t),e._zod.check=n=>{let r=n.value.split(`/`);try{if(r.length!==2)throw Error();let[e,t]=r;if(!t)throw Error();let n=Number(t);if(`${n}`!==t||n<0||n>128)throw Error();new URL(`http://[${e}]`)}catch{n.issues.push({code:`invalid_format`,format:`cidrv6`,input:n.value,inst:e,continue:!t.abort})}}});function Mr(e){if(e===``)return!0;if(e.length%4!=0)return!1;try{return atob(e),!0}catch{return!1}}var Nr=i(`$ZodBase64`,(e,t)=>{t.pattern??=nn,w.init(e,t),e._zod.bag.contentEncoding=`base64`,e._zod.check=n=>{Mr(n.value)||n.issues.push({code:`invalid_format`,format:`base64`,input:n.value,inst:e,continue:!t.abort})}});function Pr(e){if(!rn.test(e))return!1;let t=e.replace(/[-_]/g,e=>e===`-`?`+`:`/`);return Mr(t.padEnd(Math.ceil(t.length/4)*4,`=`))}var Fr=i(`$ZodBase64URL`,(e,t)=>{t.pattern??=rn,w.init(e,t),e._zod.bag.contentEncoding=`base64url`,e._zod.check=n=>{Pr(n.value)||n.issues.push({code:`invalid_format`,format:`base64url`,input:n.value,inst:e,continue:!t.abort})}}),Ir=i(`$ZodE164`,(e,t)=>{t.pattern??=sn,w.init(e,t)});function Lr(e,t=null){try{let n=e.split(`.`);if(n.length!==3)return!1;let[r]=n;if(!r)return!1;let i=JSON.parse(atob(r));return!(`typ`in i&&i?.typ!==`JWT`||!i.alg||t&&(!(`alg`in i)||i.alg!==t))}catch{return!1}}var Rr=i(`$ZodJWT`,(e,t)=>{w.init(e,t),e._zod.check=n=>{Lr(n.value,t.alg)||n.issues.push({code:`invalid_format`,format:`jwt`,input:n.value,inst:e,continue:!t.abort})}}),zr=i(`$ZodCustomStringFormat`,(e,t)=>{w.init(e,t),e._zod.check=n=>{t.fn(n.value)||n.issues.push({code:`invalid_format`,format:t.format,input:n.value,inst:e,continue:!t.abort})}}),Br=i(`$ZodNumber`,(e,t)=>{C.init(e,t),e._zod.pattern=e._zod.bag.pattern??gn,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=Number(n.value)}catch{}let i=n.value;if(typeof i==`number`&&!Number.isNaN(i)&&Number.isFinite(i))return n;let a=typeof i==`number`?Number.isNaN(i)?`NaN`:Number.isFinite(i)?void 0:`Infinity`:void 0;return n.issues.push({expected:`number`,code:`invalid_type`,input:i,inst:e,...a?{received:a}:{}}),n}}),Vr=i(`$ZodNumberFormat`,(e,t)=>{Wn.init(e,t),Br.init(e,t)}),Hr=i(`$ZodBoolean`,(e,t)=>{C.init(e,t),e._zod.pattern=_n,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=!!n.value}catch{}let i=n.value;return typeof i==`boolean`||n.issues.push({expected:`boolean`,code:`invalid_type`,input:i,inst:e}),n}}),Ur=i(`$ZodBigInt`,(e,t)=>{C.init(e,t),e._zod.pattern=mn,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=BigInt(n.value)}catch{}return typeof n.value==`bigint`||n.issues.push({expected:`bigint`,code:`invalid_type`,input:n.value,inst:e}),n}}),Wr=i(`$ZodBigIntFormat`,(e,t)=>{Gn.init(e,t),Ur.init(e,t)}),Gr=i(`$ZodSymbol`,(e,t)=>{C.init(e,t),e._zod.parse=(t,n)=>{let r=t.value;return typeof r==`symbol`||t.issues.push({expected:`symbol`,code:`invalid_type`,input:r,inst:e}),t}}),Kr=i(`$ZodUndefined`,(e,t)=>{C.init(e,t),e._zod.pattern=yn,e._zod.values=new Set([void 0]),e._zod.optin=`optional`,e._zod.optout=`optional`,e._zod.parse=(t,n)=>{let r=t.value;return r===void 0||t.issues.push({expected:`undefined`,code:`invalid_type`,input:r,inst:e}),t}}),qr=i(`$ZodNull`,(e,t)=>{C.init(e,t),e._zod.pattern=vn,e._zod.values=new Set([null]),e._zod.parse=(t,n)=>{let r=t.value;return r===null||t.issues.push({expected:`null`,code:`invalid_type`,input:r,inst:e}),t}}),Jr=i(`$ZodAny`,(e,t)=>{C.init(e,t),e._zod.parse=e=>e}),Yr=i(`$ZodUnknown`,(e,t)=>{C.init(e,t),e._zod.parse=e=>e}),Xr=i(`$ZodNever`,(e,t)=>{C.init(e,t),e._zod.parse=(t,n)=>(t.issues.push({expected:`never`,code:`invalid_type`,input:t.value,inst:e}),t)}),Zr=i(`$ZodVoid`,(e,t)=>{C.init(e,t),e._zod.parse=(t,n)=>{let r=t.value;return r===void 0||t.issues.push({expected:`void`,code:`invalid_type`,input:r,inst:e}),t}}),Qr=i(`$ZodDate`,(e,t)=>{C.init(e,t),e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=new Date(n.value)}catch{}let i=n.value,a=i instanceof Date;return a&&!Number.isNaN(i.getTime())||n.issues.push({expected:`date`,code:`invalid_type`,input:i,...a?{received:`Invalid Date`}:{},inst:e}),n}});function $r(e,t,n){e.issues.length&&t.issues.push(...y(n,e.issues)),t.value[n]=e.value}var ei=i(`$ZodArray`,(e,t)=>{C.init(e,t),e._zod.parse=(n,r)=>{let i=n.value;if(!Array.isArray(i))return n.issues.push({expected:`array`,code:`invalid_type`,input:i,inst:e}),n;n.value=Array(i.length);let a=[];for(let e=0;e<i.length;e++){let o=i[e],s=t.element._zod.run({value:o,issues:[]},r);s instanceof Promise?a.push(s.then(t=>$r(t,n,e))):$r(s,n,e)}return a.length?Promise.all(a).then(()=>n):n}});function ti(e,t,n,r){e.issues.length&&t.issues.push(...y(n,e.issues)),e.value===void 0?n in r&&(t.value[n]=void 0):t.value[n]=e.value}function ni(e){let t=Object.keys(e.shape);for(let n of t)if(!e.shape?.[n]?._zod?.traits?.has(`$ZodType`))throw Error(`Invalid element at key "${n}": expected a Zod schema`);let n=ke(e.shape);return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(n)}}function ri(e,t,n,r,i,a){let o=[],s=i.keySet,c=i.catchall._zod,l=c.def.type;for(let i in t){if(s.has(i))continue;if(l===`never`){o.push(i);continue}let a=c.run({value:t[i],issues:[]},r);a instanceof Promise?e.push(a.then(e=>ti(e,n,i,t))):ti(a,n,i,t)}return o.length&&n.issues.push({code:`unrecognized_keys`,keys:o,input:t,inst:a}),e.length?Promise.all(e).then(()=>n):n}var ii=i(`$ZodObject`,(e,t)=>{if(C.init(e,t),!Object.getOwnPropertyDescriptor(t,`shape`)?.get){let e=t.shape;Object.defineProperty(t,`shape`,{get:()=>{let n={...e};return Object.defineProperty(t,`shape`,{value:n}),n}})}let n=ie(()=>ni(t));h(e._zod,`propValues`,()=>{let e=t.shape,n={};for(let t in e){let r=e[t]._zod;if(r.values){n[t]??(n[t]=new Set);for(let e of r.values)n[t].add(e)}}return n});let r=ye,i=t.catchall,a;e._zod.parse=(t,o)=>{a??=n.value;let s=t.value;if(!r(s))return t.issues.push({expected:`object`,code:`invalid_type`,input:s,inst:e}),t;t.value={};let c=[],l=a.shape;for(let e of a.keys){let n=l[e]._zod.run({value:s[e],issues:[]},o);n instanceof Promise?c.push(n.then(n=>ti(n,t,e,s))):ti(n,t,e,s)}return i?ri(c,s,t,o,n.value,e):c.length?Promise.all(c).then(()=>t):t}}),ai=i(`$ZodObjectJIT`,(e,t)=>{ii.init(e,t);let n=e._zod.parse,r=ie(()=>ni(t)),i=e=>{let t=new lr([`shape`,`payload`,`ctx`]),n=r.value,i=e=>{let t=ge(e);return`shape[${t}]._zod.run({ value: input[${t}], issues: [] }, ctx)`};t.write(`const input = payload.value;`);let a=Object.create(null),o=0;for(let e of n.keys)a[e]=`key_${o++}`;t.write(`const newResult = {};`);for(let e of n.keys){let n=a[e],r=ge(e);t.write(`const ${n} = ${i(e)};`),t.write(`
292
+ `))}},cr={major:4,minor:1,patch:13},T=i(`$ZodType`,(e,t)=>{var n;e??={},e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=cr;let r=[...e._zod.def.checks??[]];e._zod.traits.has(`$ZodCheck`)&&r.unshift(e);for(let t of r)for(let n of t._zod.onattach)n(e);if(r.length===0)(n=e._zod).deferred??(n.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{let t=(e,t,n)=>{let r=Fe(e),i;for(let a of t){if(a._zod.def.when){if(!a._zod.def.when(e))continue}else if(r)continue;let t=e.issues.length,s=a._zod.check(e);if(s instanceof Promise&&n?.async===!1)throw new o;if(i||s instanceof Promise)i=(i??Promise.resolve()).then(async()=>{await s,e.issues.length!==t&&(r||=Fe(e,t))});else{if(e.issues.length===t)continue;r||=Fe(e,t)}}return i?i.then(()=>e):e},n=(n,i,a)=>{if(Fe(n))return n.aborted=!0,n;let s=t(i,r,a);if(s instanceof Promise){if(a.async===!1)throw new o;return s.then(t=>e._zod.parse(t,a))}return e._zod.parse(s,a)};e._zod.run=(i,a)=>{if(a.skipChecks)return e._zod.parse(i,a);if(a.direction===`backward`){let t=e._zod.parse({value:i.value,issues:[]},{...a,skipChecks:!0});return t instanceof Promise?t.then(e=>n(e,i,a)):n(t,i,a)}let s=e._zod.parse(i,a);if(s instanceof Promise){if(a.async===!1)throw new o;return s.then(e=>t(e,r,a))}return t(s,r,a)}}e[`~standard`]={validate:t=>{try{let n=ct(e,t);return n.success?{value:n.data}:{issues:n.error?.issues}}catch{return ut(e,t).then(e=>e.success?{value:e.data}:{issues:e.error?.issues})}},vendor:`zod`,version:1}}),lr=i(`$ZodString`,(e,t)=>{T.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??dn(e._zod.bag),e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=String(n.value)}catch{}return typeof n.value==`string`||n.issues.push({expected:`string`,code:`invalid_type`,input:n.value,inst:e}),n}}),E=i(`$ZodStringFormat`,(e,t)=>{Xn.init(e,t),lr.init(e,t)}),ur=i(`$ZodGUID`,(e,t)=>{t.pattern??=It,E.init(e,t)}),dr=i(`$ZodUUID`,(e,t)=>{if(t.version){let e={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(e===void 0)throw Error(`Invalid UUID version: "${t.version}"`);t.pattern??=Lt(e)}else t.pattern??=Lt();E.init(e,t)}),fr=i(`$ZodEmail`,(e,t)=>{t.pattern??=Vt,E.init(e,t)}),pr=i(`$ZodURL`,(e,t)=>{E.init(e,t),e._zod.check=n=>{try{let r=n.value.trim(),i=new URL(r);t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(i.hostname)||n.issues.push({code:`invalid_format`,format:`url`,note:`Invalid hostname`,pattern:t.hostname.source,input:n.value,inst:e,continue:!t.abort})),t.protocol&&(t.protocol.lastIndex=0,t.protocol.test(i.protocol.endsWith(`:`)?i.protocol.slice(0,-1):i.protocol)||n.issues.push({code:`invalid_format`,format:`url`,note:`Invalid protocol`,pattern:t.protocol.source,input:n.value,inst:e,continue:!t.abort})),t.normalize?n.value=i.href:n.value=r;return}catch{n.issues.push({code:`invalid_format`,format:`url`,input:n.value,inst:e,continue:!t.abort})}}}),mr=i(`$ZodEmoji`,(e,t)=>{t.pattern??=Jt(),E.init(e,t)}),hr=i(`$ZodNanoID`,(e,t)=>{t.pattern??=Nt,E.init(e,t)}),gr=i(`$ZodCUID`,(e,t)=>{t.pattern??=Ot,E.init(e,t)}),_r=i(`$ZodCUID2`,(e,t)=>{t.pattern??=kt,E.init(e,t)}),vr=i(`$ZodULID`,(e,t)=>{t.pattern??=At,E.init(e,t)}),yr=i(`$ZodXID`,(e,t)=>{t.pattern??=jt,E.init(e,t)}),br=i(`$ZodKSUID`,(e,t)=>{t.pattern??=Mt,E.init(e,t)}),xr=i(`$ZodISODateTime`,(e,t)=>{t.pattern??=un(t),E.init(e,t)}),Sr=i(`$ZodISODate`,(e,t)=>{t.pattern??=sn,E.init(e,t)}),Cr=i(`$ZodISOTime`,(e,t)=>{t.pattern??=ln(t),E.init(e,t)}),wr=i(`$ZodISODuration`,(e,t)=>{t.pattern??=Pt,E.init(e,t)}),Tr=i(`$ZodIPv4`,(e,t)=>{t.pattern??=Yt,E.init(e,t),e._zod.bag.format=`ipv4`}),Er=i(`$ZodIPv6`,(e,t)=>{t.pattern??=Xt,E.init(e,t),e._zod.bag.format=`ipv6`,e._zod.check=n=>{try{new URL(`http://[${n.value}]`)}catch{n.issues.push({code:`invalid_format`,format:`ipv6`,input:n.value,inst:e,continue:!t.abort})}}}),Dr=i(`$ZodMAC`,(e,t)=>{t.pattern??=Zt(t.delimiter),E.init(e,t),e._zod.bag.format=`mac`}),Or=i(`$ZodCIDRv4`,(e,t)=>{t.pattern??=Qt,E.init(e,t)}),kr=i(`$ZodCIDRv6`,(e,t)=>{t.pattern??=$t,E.init(e,t),e._zod.check=n=>{let r=n.value.split(`/`);try{if(r.length!==2)throw Error();let[e,t]=r;if(!t)throw Error();let n=Number(t);if(`${n}`!==t||n<0||n>128)throw Error();new URL(`http://[${e}]`)}catch{n.issues.push({code:`invalid_format`,format:`cidrv6`,input:n.value,inst:e,continue:!t.abort})}}});function Ar(e){if(e===``)return!0;if(e.length%4!=0)return!1;try{return atob(e),!0}catch{return!1}}var jr=i(`$ZodBase64`,(e,t)=>{t.pattern??=en,E.init(e,t),e._zod.bag.contentEncoding=`base64`,e._zod.check=n=>{Ar(n.value)||n.issues.push({code:`invalid_format`,format:`base64`,input:n.value,inst:e,continue:!t.abort})}});function Mr(e){if(!tn.test(e))return!1;let t=e.replace(/[-_]/g,e=>e===`-`?`+`:`/`);return Ar(t.padEnd(Math.ceil(t.length/4)*4,`=`))}var Nr=i(`$ZodBase64URL`,(e,t)=>{t.pattern??=tn,E.init(e,t),e._zod.bag.contentEncoding=`base64url`,e._zod.check=n=>{Mr(n.value)||n.issues.push({code:`invalid_format`,format:`base64url`,input:n.value,inst:e,continue:!t.abort})}}),Pr=i(`$ZodE164`,(e,t)=>{t.pattern??=an,E.init(e,t)});function Fr(e,t=null){try{let n=e.split(`.`);if(n.length!==3)return!1;let[r]=n;if(!r)return!1;let i=JSON.parse(atob(r));return!(`typ`in i&&i?.typ!==`JWT`||!i.alg||t&&(!(`alg`in i)||i.alg!==t))}catch{return!1}}var Ir=i(`$ZodJWT`,(e,t)=>{E.init(e,t),e._zod.check=n=>{Fr(n.value,t.alg)||n.issues.push({code:`invalid_format`,format:`jwt`,input:n.value,inst:e,continue:!t.abort})}}),Lr=i(`$ZodCustomStringFormat`,(e,t)=>{E.init(e,t),e._zod.check=n=>{t.fn(n.value)||n.issues.push({code:`invalid_format`,format:t.format,input:n.value,inst:e,continue:!t.abort})}}),Rr=i(`$ZodNumber`,(e,t)=>{T.init(e,t),e._zod.pattern=e._zod.bag.pattern??mn,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=Number(n.value)}catch{}let i=n.value;if(typeof i==`number`&&!Number.isNaN(i)&&Number.isFinite(i))return n;let a=typeof i==`number`?Number.isNaN(i)?`NaN`:Number.isFinite(i)?void 0:`Infinity`:void 0;return n.issues.push({expected:`number`,code:`invalid_type`,input:i,inst:e,...a?{received:a}:{}}),n}}),zr=i(`$ZodNumberFormat`,(e,t)=>{Hn.init(e,t),Rr.init(e,t)}),Br=i(`$ZodBoolean`,(e,t)=>{T.init(e,t),e._zod.pattern=hn,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=!!n.value}catch{}let i=n.value;return typeof i==`boolean`||n.issues.push({expected:`boolean`,code:`invalid_type`,input:i,inst:e}),n}}),Vr=i(`$ZodBigInt`,(e,t)=>{T.init(e,t),e._zod.pattern=fn,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=BigInt(n.value)}catch{}return typeof n.value==`bigint`||n.issues.push({expected:`bigint`,code:`invalid_type`,input:n.value,inst:e}),n}}),Hr=i(`$ZodBigIntFormat`,(e,t)=>{Un.init(e,t),Vr.init(e,t)}),Ur=i(`$ZodSymbol`,(e,t)=>{T.init(e,t),e._zod.parse=(t,n)=>{let r=t.value;return typeof r==`symbol`||t.issues.push({expected:`symbol`,code:`invalid_type`,input:r,inst:e}),t}}),Wr=i(`$ZodUndefined`,(e,t)=>{T.init(e,t),e._zod.pattern=_n,e._zod.values=new Set([void 0]),e._zod.optin=`optional`,e._zod.optout=`optional`,e._zod.parse=(t,n)=>{let r=t.value;return r===void 0||t.issues.push({expected:`undefined`,code:`invalid_type`,input:r,inst:e}),t}}),Gr=i(`$ZodNull`,(e,t)=>{T.init(e,t),e._zod.pattern=gn,e._zod.values=new Set([null]),e._zod.parse=(t,n)=>{let r=t.value;return r===null||t.issues.push({expected:`null`,code:`invalid_type`,input:r,inst:e}),t}}),Kr=i(`$ZodAny`,(e,t)=>{T.init(e,t),e._zod.parse=e=>e}),qr=i(`$ZodUnknown`,(e,t)=>{T.init(e,t),e._zod.parse=e=>e}),Jr=i(`$ZodNever`,(e,t)=>{T.init(e,t),e._zod.parse=(t,n)=>(t.issues.push({expected:`never`,code:`invalid_type`,input:t.value,inst:e}),t)}),Yr=i(`$ZodVoid`,(e,t)=>{T.init(e,t),e._zod.parse=(t,n)=>{let r=t.value;return r===void 0||t.issues.push({expected:`void`,code:`invalid_type`,input:r,inst:e}),t}}),Xr=i(`$ZodDate`,(e,t)=>{T.init(e,t),e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=new Date(n.value)}catch{}let i=n.value,a=i instanceof Date;return a&&!Number.isNaN(i.getTime())||n.issues.push({expected:`date`,code:`invalid_type`,input:i,...a?{received:`Invalid Date`}:{},inst:e}),n}});function Zr(e,t,n){e.issues.length&&t.issues.push(...Ie(n,e.issues)),t.value[n]=e.value}var Qr=i(`$ZodArray`,(e,t)=>{T.init(e,t),e._zod.parse=(n,r)=>{let i=n.value;if(!Array.isArray(i))return n.issues.push({expected:`array`,code:`invalid_type`,input:i,inst:e}),n;n.value=Array(i.length);let a=[];for(let e=0;e<i.length;e++){let o=i[e],s=t.element._zod.run({value:o,issues:[]},r);s instanceof Promise?a.push(s.then(t=>Zr(t,n,e))):Zr(s,n,e)}return a.length?Promise.all(a).then(()=>n):n}});function $r(e,t,n,r){e.issues.length&&t.issues.push(...Ie(n,e.issues)),e.value===void 0?n in r&&(t.value[n]=void 0):t.value[n]=e.value}function ei(e){let t=Object.keys(e.shape);for(let n of t)if(!e.shape?.[n]?._zod?.traits?.has(`$ZodType`))throw Error(`Invalid element at key "${n}": expected a Zod schema`);let n=Te(e.shape);return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(n)}}function ti(e,t,n,r,i,a){let o=[],s=i.keySet,c=i.catchall._zod,l=c.def.type;for(let i in t){if(s.has(i))continue;if(l===`never`){o.push(i);continue}let a=c.run({value:t[i],issues:[]},r);a instanceof Promise?e.push(a.then(e=>$r(e,n,i,t))):$r(a,n,i,t)}return o.length&&n.issues.push({code:`unrecognized_keys`,keys:o,input:t,inst:a}),e.length?Promise.all(e).then(()=>n):n}var ni=i(`$ZodObject`,(e,t)=>{if(T.init(e,t),!Object.getOwnPropertyDescriptor(t,`shape`)?.get){let e=t.shape;Object.defineProperty(t,`shape`,{get:()=>{let n={...e};return Object.defineProperty(t,`shape`,{value:n}),n}})}let n=ee(()=>ei(t));y(e._zod,`propValues`,()=>{let e=t.shape,n={};for(let t in e){let r=e[t]._zod;if(r.values){n[t]??(n[t]=new Set);for(let e of r.values)n[t].add(e)}}return n});let r=he,i=t.catchall,a;e._zod.parse=(t,o)=>{a??=n.value;let s=t.value;if(!r(s))return t.issues.push({expected:`object`,code:`invalid_type`,input:s,inst:e}),t;t.value={};let c=[],l=a.shape;for(let e of a.keys){let n=l[e]._zod.run({value:s[e],issues:[]},o);n instanceof Promise?c.push(n.then(n=>$r(n,t,e,s))):$r(n,t,e,s)}return i?ti(c,s,t,o,n.value,e):c.length?Promise.all(c).then(()=>t):t}}),ri=i(`$ZodObjectJIT`,(e,t)=>{ni.init(e,t);let n=e._zod.parse,r=ee(()=>ei(t)),i=e=>{let t=new sr([`shape`,`payload`,`ctx`]),n=r.value,i=e=>{let t=fe(e);return`shape[${t}]._zod.run({ value: input[${t}], issues: [] }, ctx)`};t.write(`const input = payload.value;`);let a=Object.create(null),o=0;for(let e of n.keys)a[e]=`key_${o++}`;t.write(`const newResult = {};`);for(let e of n.keys){let n=a[e],r=fe(e);t.write(`const ${n} = ${i(e)};`),t.write(`
257
293
  if (${n}.issues.length) {
258
294
  payload.issues = payload.issues.concat(${n}.issues.map(iss => ({
259
295
  ...iss,
@@ -270,7 +306,7 @@
270
306
  newResult[${r}] = ${n}.value;
271
307
  }
272
308
 
273
- `)}t.write(`payload.value = newResult;`),t.write(`return payload;`);let s=t.compile();return(t,n)=>s(e,t,n)},a,o=ye,s=!c.jitless,l=s&&be.value,u=t.catchall,d;e._zod.parse=(c,f)=>{d??=r.value;let p=c.value;return o(p)?s&&l&&f?.async===!1&&f.jitless!==!0?(a||=i(t.shape),c=a(c,f),u?ri([],p,c,f,d,e):c):n(c,f):(c.issues.push({expected:`object`,code:`invalid_type`,input:p,inst:e}),c)}});function oi(e,t,n,r){for(let n of e)if(n.issues.length===0)return t.value=n.value,t;let i=e.filter(e=>!ze(e));return i.length===1?(t.value=i[0].value,i[0]):(t.issues.push({code:`invalid_union`,input:t.value,inst:n,errors:e.map(e=>e.issues.map(e=>b(e,r,l())))}),t)}var si=i(`$ZodUnion`,(e,t)=>{C.init(e,t),h(e._zod,`optin`,()=>t.options.some(e=>e._zod.optin===`optional`)?`optional`:void 0),h(e._zod,`optout`,()=>t.options.some(e=>e._zod.optout===`optional`)?`optional`:void 0),h(e._zod,`values`,()=>{if(t.options.every(e=>e._zod.values))return new Set(t.options.flatMap(e=>Array.from(e._zod.values)))}),h(e._zod,`pattern`,()=>{if(t.options.every(e=>e._zod.pattern)){let e=t.options.map(e=>e._zod.pattern);return RegExp(`^(${e.map(e=>oe(e.source)).join(`|`)})<!DOCTYPE html>
309
+ `)}t.write(`payload.value = newResult;`),t.write(`return payload;`);let s=t.compile();return(t,n)=>s(e,t,n)},a,o=he,s=!c.jitless,l=s&&ge.value,u=t.catchall,d;e._zod.parse=(c,f)=>{d??=r.value;let p=c.value;return o(p)?s&&l&&f?.async===!1&&f.jitless!==!0?(a||=i(t.shape),c=a(c,f),u?ti([],p,c,f,d,e):c):n(c,f):(c.issues.push({expected:`object`,code:`invalid_type`,input:p,inst:e}),c)}});function ii(e,t,n,r){for(let n of e)if(n.issues.length===0)return t.value=n.value,t;let i=e.filter(e=>!Fe(e));return i.length===1?(t.value=i[0].value,i[0]):(t.issues.push({code:`invalid_union`,input:t.value,inst:n,errors:e.map(e=>e.issues.map(e=>Re(e,r,l())))}),t)}var ai=i(`$ZodUnion`,(e,t)=>{T.init(e,t),y(e._zod,`optin`,()=>t.options.some(e=>e._zod.optin===`optional`)?`optional`:void 0),y(e._zod,`optout`,()=>t.options.some(e=>e._zod.optout===`optional`)?`optional`:void 0),y(e._zod,`values`,()=>{if(t.options.every(e=>e._zod.values))return new Set(t.options.flatMap(e=>Array.from(e._zod.values)))}),y(e._zod,`pattern`,()=>{if(t.options.every(e=>e._zod.pattern)){let e=t.options.map(e=>e._zod.pattern);return RegExp(`^(${e.map(e=>ne(e.source)).join(`|`)})<!DOCTYPE html>
274
310
  <html lang="en">
275
311
  <head>
276
312
  <meta charset="UTF-8" />
@@ -278,7 +314,7 @@
278
314
  <title>Chart Wheel Explorer</title>
279
315
 
280
316
 
281
- <style>:root{--bg:#faf9f5;--surface:#fff;--text:#1a1a2e;--text-secondary:#5a5a7a;--accent:#6366f1;--accent-hover:#4f46e5;--accent-subtle:#6366f11f;--border:#e8e6f0;--border-strong:#c8c4d8;--shadow:0 4px 16px #00000014;--shadow-md:0 8px 32px #0000001f;--radius:10px;--radius-sm:6px;--planet-sun:#f59e0b;--planet-moon:#94a3b8;--planet-mercury:#10b981;--planet-venus:#ec4899;--planet-mars:#ef4444;--planet-jupiter:#8b5cf6;--planet-saturn:#64748b;--planet-uranus:#06b6d4;--planet-neptune:#3b82f6;--planet-pluto:#a78bfa;--aspect-conjunction:#f59e0b;--aspect-opposition:#ef4444;--aspect-trine:#10b981;--aspect-square:#ef4444;--aspect-sextile:#3b82f6}@media (prefers-color-scheme:dark){:root{--bg:#0d1117;--surface:#161b22;--text:#e6edf3;--text-secondary:#8b949e;--accent:#818cf8;--accent-hover:#a5b4fc;--accent-subtle:#818cf826;--border:#21262d;--border-strong:#30363d;--shadow:0 4px 16px #0006;--shadow-md:0 8px 32px #0009}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:var(--bg);color:var(--text);-webkit-user-select:none;user-select:none;font-family:-apple-system,Inter,Segoe UI,system-ui,sans-serif;font-size:13px;line-height:1.5;overflow:hidden}#app{flex-direction:column;height:100vh;display:flex;position:relative}#loading-state{color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}#chart-container{flex:1;justify-content:center;align-items:center;min-height:0;padding:12px;display:flex;position:relative}#chart-container svg{width:auto;max-width:100%;height:auto;max-height:100%}.hit-region{cursor:pointer;fill:#0000;stroke:#0000;transition:fill .15s,stroke .15s}.hit-region:hover{fill:var(--accent-subtle);stroke:var(--accent);stroke-width:1px;stroke-opacity:.5}.hit-region.planet-hit{rx:12px;ry:12px}.hit-region.aspect-hit{stroke-width:6px}#controls-panel{border-top:1px solid var(--border);background:var(--surface);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px;padding:8px 12px;display:flex}.controls-label{color:var(--text-secondary);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;margin-right:2px;font-size:11px;font-weight:600}.control-btn{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;padding:3px 10px;font-family:inherit;font-size:12px;transition:background .12s,color .12s,border-color .12s}.control-btn:hover{background:var(--accent-subtle);color:var(--accent);border-color:var(--accent)}.control-btn.active{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}.controls-divider{background:var(--border);flex-shrink:0;width:1px;height:18px;margin:0 4px}.tooltip{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);pointer-events:none;box-shadow:var(--shadow-md);z-index:1000;opacity:0;max-width:220px;padding:8px 12px;font-size:12px;transition:opacity .12s;position:fixed}.tooltip.visible{opacity:1}.tooltip-title{color:var(--text);margin-bottom:2px;font-weight:700}.tooltip-detail{color:var(--text-secondary);line-height:1.4}.tooltip-hint{color:var(--accent);margin-top:4px;font-size:10px;font-style:italic}.error-state{text-align:center;color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;padding:24px;display:flex}.error-state .error-icon{margin-bottom:4px;font-size:32px}
317
+ <style>:root{--bg:#faf9f5;--surface:#fff;--text:#1a1a2e;--text-secondary:#5a5a7a;--accent:#6366f1;--accent-hover:#4f46e5;--accent-subtle:#6366f11f;--border:#e8e6f0;--border-strong:#c8c4d8;--shadow:0 4px 16px #00000014;--shadow-md:0 8px 32px #0000001f;--radius:10px;--radius-sm:6px;--planet-sun:#f59e0b;--planet-moon:#94a3b8;--planet-mercury:#10b981;--planet-venus:#ec4899;--planet-mars:#ef4444;--planet-jupiter:#8b5cf6;--planet-saturn:#64748b;--planet-uranus:#06b6d4;--planet-neptune:#3b82f6;--planet-pluto:#a78bfa;--aspect-conjunction:#f59e0b;--aspect-opposition:#ef4444;--aspect-trine:#10b981;--aspect-square:#ef4444;--aspect-sextile:#3b82f6;--color-fire:#e8854c;--color-earth:#7aaa6a;--color-air:#5aaad0;--color-water:#8878c8;--color-cardinal:#e05252;--color-fixed:#c0b052;--color-mutable:#52c07a}@media (prefers-color-scheme:dark){:root{--bg:#0d1117;--surface:#161b22;--text:#e6edf3;--text-secondary:#8b949e;--accent:#818cf8;--accent-hover:#a5b4fc;--accent-subtle:#818cf826;--border:#21262d;--border-strong:#30363d;--shadow:0 4px 16px #0006;--shadow-md:0 8px 32px #0009}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:var(--bg);color:var(--text);-webkit-user-select:none;user-select:none;font-family:-apple-system,Inter,Segoe UI,system-ui,sans-serif;font-size:13px;line-height:1.5;overflow:hidden}#app{flex-direction:column;height:100vh;display:flex;position:relative}#loading-state{color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}#chart-container{flex:1;justify-content:center;align-items:center;min-height:0;padding:12px;display:flex;position:relative}#chart-container svg{width:auto;max-width:100%;height:auto;max-height:100%}.hit-region{cursor:pointer;fill:#0000;stroke:#0000;transition:fill .15s,stroke .15s,opacity .2s}.hit-region:hover{fill:var(--accent-subtle);stroke:var(--accent);stroke-width:1px;stroke-opacity:.5}.hit-region.planet-hit{rx:12px;ry:12px}.hit-region.planet-hit:not(.dim){filter:none}.hit-region.dim{opacity:.15}.hit-region.aspect-hit{stroke-width:13px}.hit-region.aspect-hit.highlight{stroke:var(--aspect-color,#888);stroke-opacity:.55}.info-panel{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow-md);z-index:900;opacity:0;pointer-events:none;width:min(340px,92vw);padding:14px 16px 12px;transition:opacity .18s,transform .18s;position:fixed;bottom:126px;left:50%;transform:translate(-50%)translateY(12px)}.info-panel.visible{opacity:1;pointer-events:all;transform:translate(-50%)translateY(0)}.info-header{align-items:flex-start;gap:10px;margin-bottom:12px;display:flex}.info-glyph{text-align:center;flex-shrink:0;width:34px;font-size:28px;line-height:1}.info-title{color:var(--text);flex:1;font-size:13px;font-weight:700}.info-name-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.info-pos{color:var(--text-secondary);margin-top:2px;font-size:11px;font-weight:400}.retro{color:#e05252;font-style:normal}.info-close{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;border-radius:4px;flex-shrink:0;padding:2px 4px;font-size:13px;line-height:1;transition:color .12s}.info-close:hover{color:var(--text)}.aspects-title{text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary);margin-bottom:6px;font-size:10px;font-weight:700}.aspects-list{flex-direction:column;gap:4px;max-height:140px;display:flex;overflow-y:auto}.aspect-row{align-items:center;gap:7px;padding:3px 0;font-size:12px;display:flex}.aspect-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.aspect-sym{text-align:center;flex-shrink:0;width:16px;font-size:14px}.aspect-other{color:var(--text);flex:1}.aspect-meta{color:var(--text-secondary);white-space:nowrap;font-size:11px}.no-aspects{color:var(--text-secondary);padding:4px 0;font-size:11px;font-style:italic}.info-hint{color:var(--accent);text-align:center;margin-top:10px;font-size:10px;font-style:italic}.dignity-badge{white-space:nowrap;border-radius:99px;align-items:center;gap:3px;padding:1px 7px;font-size:10px;font-weight:600;line-height:1.6;display:inline-flex}.dignity-domicile{color:#2e9e5e;background:#52c07a2e;border:1px solid #52c07a66}.dignity-exaltation{color:#9a8600;background:#c0b0522e;border:1px solid #c0b05266}.dignity-detriment{color:#c03030;background:#e0525224;border:1px solid #e0525259}.dignity-fall{color:#707080;background:#9a9a9a24;border:1px solid #9a9a9a4d}@media (prefers-color-scheme:dark){.dignity-domicile{color:#6fe098;background:#52c07a1f}.dignity-exaltation{color:#e0cc60;background:#c0b0521f}.dignity-detriment{color:#e08080;background:#e052521a}.dignity-fall{color:#a0a0b0;background:#9a9a9a1a}}#tally-panel{border-top:1px solid var(--border);background:var(--surface);flex-shrink:0;align-items:center;gap:8px;padding:5px 12px;display:flex}.tally-section{flex-direction:column;gap:3px;display:flex}.tally-row{align-items:center;gap:8px;display:flex}.tally-item{white-space:nowrap;border-radius:4px;padding:1px 6px;font-size:11px;font-weight:600}.tally-item.fire{color:var(--color-fire);background:#e8854c1f}.tally-item.earth{color:var(--color-earth);background:#7aaa6a1f}.tally-item.air{color:var(--color-air);background:#5aaad01f}.tally-item.water{color:var(--color-water);background:#8878c81f}.tally-item.cardinal{color:var(--color-cardinal);background:#e052521a}.tally-item.fixed{color:var(--color-fixed);background:#c0b0521a}.tally-item.mutable{color:var(--color-mutable);background:#52c07a1a}.tally-bar-row{padding:2px 0}.tally-bar{background:var(--border);border-radius:2px;width:90px;height:4px;display:flex;overflow:hidden}.tally-bar-fill{height:100%;transition:width .4s}.tally-bar-fill.fire{background:var(--color-fire)}.tally-bar-fill.earth{background:var(--color-earth)}.tally-bar-fill.air{background:var(--color-air)}.tally-bar-fill.water{background:var(--color-water)}.tally-divider{background:var(--border);flex-shrink:0;width:1px;height:28px}#patterns-strip{border-top:1px solid var(--border);background:var(--surface);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:5px;padding:5px 12px;display:flex}.patterns-label{text-transform:uppercase;letter-spacing:.07em;color:var(--text-secondary);white-space:nowrap;margin-right:2px;font-size:10px;font-weight:700}.pattern-pill{cursor:pointer;white-space:nowrap;opacity:.85;background:0 0;border:1px solid;border-radius:99px;align-items:center;gap:4px;padding:2px 9px;font-family:inherit;font-size:11px;font-weight:600;transition:opacity .14s,box-shadow .14s,transform 80ms;display:inline-flex}.pattern-pill:hover{opacity:1;filter:brightness(1.05);box-shadow:0 0 0 2px #80808040}.pattern-pill.active{color:#fff;opacity:1;border-color:#0000;transform:translateY(-1px);box-shadow:0 2px 8px #00000040}#controls-panel{border-top:1px solid var(--border);background:var(--surface);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px;padding:8px 12px;display:flex}.controls-label{color:var(--text-secondary);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;margin-right:2px;font-size:11px;font-weight:600}.control-btn{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;padding:3px 10px;font-family:inherit;font-size:12px;transition:background .12s,color .12s,border-color .12s}.control-btn:hover{background:var(--accent-subtle);color:var(--accent);border-color:var(--accent)}.control-btn.active{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}.controls-divider{background:var(--border);flex-shrink:0;width:1px;height:18px;margin:0 4px}.tooltip{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);pointer-events:none;box-shadow:var(--shadow-md);z-index:1000;opacity:0;max-width:220px;padding:8px 12px;font-size:12px;transition:opacity .12s;position:fixed}.tooltip.visible{opacity:1}.tooltip-title{color:var(--text);margin-bottom:2px;font-weight:700}.tooltip-detail{color:var(--text-secondary);line-height:1.4}.tooltip-hint{color:var(--accent);margin-top:4px;font-size:10px;font-style:italic}.error-state{text-align:center;color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;padding:24px;display:flex}.error-state .error-icon{margin-bottom:4px;font-size:32px}
282
318
  /*$vite$:1*/</style>
283
319
  </head>
284
320
  <body>
@@ -288,10 +324,13 @@
288
324
  <p>Loading chart…</p>
289
325
  </div>
290
326
  <div id="chart-container" hidden></div>
327
+ <!-- Element/Modality tally + Pattern strip share the bottom bar with controls -->
328
+ <div id="tally-panel" hidden></div>
329
+ <div id="patterns-strip" hidden></div>
291
330
  <div id="controls-panel" hidden></div>
292
331
  <div id="tooltip" class="tooltip" aria-live="polite"></div>
293
332
  </div>
294
- )}});let n=t.options.length===1,r=t.options[0]._zod.run;e._zod.parse=(i,a)=>{if(n)return r(i,a);let o=!1,s=[];for(let e of t.options){let t=e._zod.run({value:i.value,issues:[]},a);if(t instanceof Promise)s.push(t),o=!0;else{if(t.issues.length===0)return t;s.push(t)}}return o?Promise.all(s).then(t=>oi(t,i,e,a)):oi(s,i,e,a)}}),ci=i(`$ZodDiscriminatedUnion`,(e,t)=>{si.init(e,t);let n=e._zod.parse;h(e._zod,`propValues`,()=>{let e={};for(let n of t.options){let r=n._zod.propValues;if(!r||Object.keys(r).length===0)throw Error(`Invalid discriminated union option at index "${t.options.indexOf(n)}"`);for(let[t,n]of Object.entries(r)){e[t]||(e[t]=new Set);for(let r of n)e[t].add(r)}}return e});let r=ie(()=>{let e=t.options,n=new Map;for(let r of e){let e=r._zod.propValues?.[t.discriminator];if(!e||e.size===0)throw Error(`Invalid discriminated union option at index "${t.options.indexOf(r)}"`);for(let t of e){if(n.has(t))throw Error(`Duplicate discriminator value "${String(t)}"`);n.set(t,r)}}return n});e._zod.parse=(i,a)=>{let o=i.value;if(!ye(o))return i.issues.push({code:`invalid_type`,expected:`object`,input:o,inst:e}),i;let s=r.value.get(o?.[t.discriminator]);return s?s._zod.run(i,a):t.unionFallback?n(i,a):(i.issues.push({code:`invalid_union`,errors:[],note:`No matching discriminator`,discriminator:t.discriminator,input:o,path:[t.discriminator],inst:e}),i)}}),li=i(`$ZodIntersection`,(e,t)=>{C.init(e,t),e._zod.parse=(e,n)=>{let r=e.value,i=t.left._zod.run({value:r,issues:[]},n),a=t.right._zod.run({value:r,issues:[]},n);return i instanceof Promise||a instanceof Promise?Promise.all([i,a]).then(([t,n])=>di(e,t,n)):di(e,i,a)}});function ui(e,t){if(e===t||e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(xe(e)&&xe(t)){let n=Object.keys(t),r=Object.keys(e).filter(e=>n.indexOf(e)!==-1),i={...e,...t};for(let n of r){let r=ui(e[n],t[n]);if(!r.valid)return{valid:!1,mergeErrorPath:[n,...r.mergeErrorPath]};i[n]=r.data}return{valid:!0,data:i}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};let n=[];for(let r=0;r<e.length;r++){let i=e[r],a=t[r],o=ui(i,a);if(!o.valid)return{valid:!1,mergeErrorPath:[r,...o.mergeErrorPath]};n.push(o.data)}return{valid:!0,data:n}}return{valid:!1,mergeErrorPath:[]}}function di(e,t,n){if(t.issues.length&&e.issues.push(...t.issues),n.issues.length&&e.issues.push(...n.issues),ze(e))return e;let r=ui(t.value,n.value);if(!r.valid)throw Error(`Unmergable intersection. Error path: ${JSON.stringify(r.mergeErrorPath)}`);return e.value=r.data,e}var fi=i(`$ZodTuple`,(e,t)=>{C.init(e,t);let n=t.items;e._zod.parse=(r,i)=>{let a=r.value;if(!Array.isArray(a))return r.issues.push({input:a,inst:e,expected:`tuple`,code:`invalid_type`}),r;r.value=[];let o=[],s=[...n].reverse().findIndex(e=>e._zod.optin!==`optional`),c=s===-1?0:n.length-s;if(!t.rest){let t=a.length>n.length,i=a.length<c-1;if(t||i)return r.issues.push({...t?{code:`too_big`,maximum:n.length}:{code:`too_small`,minimum:n.length},input:a,inst:e,origin:`array`}),r}let l=-1;for(let e of n){if(l++,l>=a.length&&l>=c)continue;let t=e._zod.run({value:a[l],issues:[]},i);t instanceof Promise?o.push(t.then(e=>pi(e,r,l))):pi(t,r,l)}if(t.rest){let e=a.slice(n.length);for(let n of e){l++;let e=t.rest._zod.run({value:n,issues:[]},i);e instanceof Promise?o.push(e.then(e=>pi(e,r,l))):pi(e,r,l)}}return o.length?Promise.all(o).then(()=>r):r}});function pi(e,t,n){e.issues.length&&t.issues.push(...y(n,e.issues)),t.value[n]=e.value}var mi=i(`$ZodRecord`,(e,t)=>{C.init(e,t),e._zod.parse=(n,r)=>{let i=n.value;if(!xe(i))return n.issues.push({expected:`record`,code:`invalid_type`,input:i,inst:e}),n;let a=[],o=t.keyType._zod.values;if(o){n.value={};let s=new Set;for(let e of o)if(typeof e==`string`||typeof e==`number`||typeof e==`symbol`){s.add(typeof e==`number`?e.toString():e);let o=t.valueType._zod.run({value:i[e],issues:[]},r);o instanceof Promise?a.push(o.then(t=>{t.issues.length&&n.issues.push(...y(e,t.issues)),n.value[e]=t.value})):(o.issues.length&&n.issues.push(...y(e,o.issues)),n.value[e]=o.value)}let c;for(let e in i)s.has(e)||(c??=[],c.push(e));c&&c.length>0&&n.issues.push({code:`unrecognized_keys`,input:i,inst:e,keys:c})}else{n.value={};for(let o of Reflect.ownKeys(i)){if(o===`__proto__`)continue;let s=t.keyType._zod.run({value:o,issues:[]},r);if(s instanceof Promise)throw Error(`Async schemas not supported in object keys currently`);if(s.issues.length){n.issues.push({code:`invalid_key`,origin:`record`,issues:s.issues.map(e=>b(e,r,l())),input:o,path:[o],inst:e}),n.value[s.value]=s.value;continue}let c=t.valueType._zod.run({value:i[o],issues:[]},r);c instanceof Promise?a.push(c.then(e=>{e.issues.length&&n.issues.push(...y(o,e.issues)),n.value[s.value]=e.value})):(c.issues.length&&n.issues.push(...y(o,c.issues)),n.value[s.value]=c.value)}}return a.length?Promise.all(a).then(()=>n):n}}),hi=i(`$ZodMap`,(e,t)=>{C.init(e,t),e._zod.parse=(n,r)=>{let i=n.value;if(!(i instanceof Map))return n.issues.push({expected:`map`,code:`invalid_type`,input:i,inst:e}),n;let a=[];n.value=new Map;for(let[o,s]of i){let c=t.keyType._zod.run({value:o,issues:[]},r),l=t.valueType._zod.run({value:s,issues:[]},r);c instanceof Promise||l instanceof Promise?a.push(Promise.all([c,l]).then(([t,a])=>{gi(t,a,n,o,i,e,r)})):gi(c,l,n,o,i,e,r)}return a.length?Promise.all(a).then(()=>n):n}});function gi(e,t,n,r,i,a,o){e.issues.length&&(Te.has(typeof r)?n.issues.push(...y(r,e.issues)):n.issues.push({code:`invalid_key`,origin:`map`,input:i,inst:a,issues:e.issues.map(e=>b(e,o,l()))})),t.issues.length&&(Te.has(typeof r)?n.issues.push(...y(r,t.issues)):n.issues.push({origin:`map`,code:`invalid_element`,input:i,inst:a,key:r,issues:t.issues.map(e=>b(e,o,l()))})),n.value.set(e.value,t.value)}var _i=i(`$ZodSet`,(e,t)=>{C.init(e,t),e._zod.parse=(n,r)=>{let i=n.value;if(!(i instanceof Set))return n.issues.push({input:i,inst:e,expected:`set`,code:`invalid_type`}),n;let a=[];n.value=new Set;for(let e of i){let i=t.valueType._zod.run({value:e,issues:[]},r);i instanceof Promise?a.push(i.then(e=>vi(e,n))):vi(i,n)}return a.length?Promise.all(a).then(()=>n):n}});function vi(e,t){e.issues.length&&t.issues.push(...e.issues),t.value.add(e.value)}var yi=i(`$ZodEnum`,(e,t)=>{C.init(e,t);let n=ne(t.entries),r=new Set(n);e._zod.values=r,e._zod.pattern=RegExp(`^(${n.filter(e=>Te.has(typeof e)).map(e=>typeof e==`string`?De(e):e.toString()).join(`|`)})<!DOCTYPE html>
333
+ )}});let n=t.options.length===1,r=t.options[0]._zod.run;e._zod.parse=(i,a)=>{if(n)return r(i,a);let o=!1,s=[];for(let e of t.options){let t=e._zod.run({value:i.value,issues:[]},a);if(t instanceof Promise)s.push(t),o=!0;else{if(t.issues.length===0)return t;s.push(t)}}return o?Promise.all(s).then(t=>ii(t,i,e,a)):ii(s,i,e,a)}}),oi=i(`$ZodDiscriminatedUnion`,(e,t)=>{ai.init(e,t);let n=e._zod.parse;y(e._zod,`propValues`,()=>{let e={};for(let n of t.options){let r=n._zod.propValues;if(!r||Object.keys(r).length===0)throw Error(`Invalid discriminated union option at index "${t.options.indexOf(n)}"`);for(let[t,n]of Object.entries(r)){e[t]||(e[t]=new Set);for(let r of n)e[t].add(r)}}return e});let r=ee(()=>{let e=t.options,n=new Map;for(let r of e){let e=r._zod.propValues?.[t.discriminator];if(!e||e.size===0)throw Error(`Invalid discriminated union option at index "${t.options.indexOf(r)}"`);for(let t of e){if(n.has(t))throw Error(`Duplicate discriminator value "${String(t)}"`);n.set(t,r)}}return n});e._zod.parse=(i,a)=>{let o=i.value;if(!he(o))return i.issues.push({code:`invalid_type`,expected:`object`,input:o,inst:e}),i;let s=r.value.get(o?.[t.discriminator]);return s?s._zod.run(i,a):t.unionFallback?n(i,a):(i.issues.push({code:`invalid_union`,errors:[],note:`No matching discriminator`,discriminator:t.discriminator,input:o,path:[t.discriminator],inst:e}),i)}}),si=i(`$ZodIntersection`,(e,t)=>{T.init(e,t),e._zod.parse=(e,n)=>{let r=e.value,i=t.left._zod.run({value:r,issues:[]},n),a=t.right._zod.run({value:r,issues:[]},n);return i instanceof Promise||a instanceof Promise?Promise.all([i,a]).then(([t,n])=>li(e,t,n)):li(e,i,a)}});function ci(e,t){if(e===t||e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(_e(e)&&_e(t)){let n=Object.keys(t),r=Object.keys(e).filter(e=>n.indexOf(e)!==-1),i={...e,...t};for(let n of r){let r=ci(e[n],t[n]);if(!r.valid)return{valid:!1,mergeErrorPath:[n,...r.mergeErrorPath]};i[n]=r.data}return{valid:!0,data:i}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};let n=[];for(let r=0;r<e.length;r++){let i=e[r],a=t[r],o=ci(i,a);if(!o.valid)return{valid:!1,mergeErrorPath:[r,...o.mergeErrorPath]};n.push(o.data)}return{valid:!0,data:n}}return{valid:!1,mergeErrorPath:[]}}function li(e,t,n){if(t.issues.length&&e.issues.push(...t.issues),n.issues.length&&e.issues.push(...n.issues),Fe(e))return e;let r=ci(t.value,n.value);if(!r.valid)throw Error(`Unmergable intersection. Error path: ${JSON.stringify(r.mergeErrorPath)}`);return e.value=r.data,e}var ui=i(`$ZodTuple`,(e,t)=>{T.init(e,t);let n=t.items;e._zod.parse=(r,i)=>{let a=r.value;if(!Array.isArray(a))return r.issues.push({input:a,inst:e,expected:`tuple`,code:`invalid_type`}),r;r.value=[];let o=[],s=[...n].reverse().findIndex(e=>e._zod.optin!==`optional`),c=s===-1?0:n.length-s;if(!t.rest){let t=a.length>n.length,i=a.length<c-1;if(t||i)return r.issues.push({...t?{code:`too_big`,maximum:n.length}:{code:`too_small`,minimum:n.length},input:a,inst:e,origin:`array`}),r}let l=-1;for(let e of n){if(l++,l>=a.length&&l>=c)continue;let t=e._zod.run({value:a[l],issues:[]},i);t instanceof Promise?o.push(t.then(e=>di(e,r,l))):di(t,r,l)}if(t.rest){let e=a.slice(n.length);for(let n of e){l++;let e=t.rest._zod.run({value:n,issues:[]},i);e instanceof Promise?o.push(e.then(e=>di(e,r,l))):di(e,r,l)}}return o.length?Promise.all(o).then(()=>r):r}});function di(e,t,n){e.issues.length&&t.issues.push(...Ie(n,e.issues)),t.value[n]=e.value}var fi=i(`$ZodRecord`,(e,t)=>{T.init(e,t),e._zod.parse=(n,r)=>{let i=n.value;if(!_e(i))return n.issues.push({expected:`record`,code:`invalid_type`,input:i,inst:e}),n;let a=[],o=t.keyType._zod.values;if(o){n.value={};let s=new Set;for(let e of o)if(typeof e==`string`||typeof e==`number`||typeof e==`symbol`){s.add(typeof e==`number`?e.toString():e);let o=t.valueType._zod.run({value:i[e],issues:[]},r);o instanceof Promise?a.push(o.then(t=>{t.issues.length&&n.issues.push(...Ie(e,t.issues)),n.value[e]=t.value})):(o.issues.length&&n.issues.push(...Ie(e,o.issues)),n.value[e]=o.value)}let c;for(let e in i)s.has(e)||(c??=[],c.push(e));c&&c.length>0&&n.issues.push({code:`unrecognized_keys`,input:i,inst:e,keys:c})}else{n.value={};for(let o of Reflect.ownKeys(i)){if(o===`__proto__`)continue;let s=t.keyType._zod.run({value:o,issues:[]},r);if(s instanceof Promise)throw Error(`Async schemas not supported in object keys currently`);if(s.issues.length){n.issues.push({code:`invalid_key`,origin:`record`,issues:s.issues.map(e=>Re(e,r,l())),input:o,path:[o],inst:e}),n.value[s.value]=s.value;continue}let c=t.valueType._zod.run({value:i[o],issues:[]},r);c instanceof Promise?a.push(c.then(e=>{e.issues.length&&n.issues.push(...Ie(o,e.issues)),n.value[s.value]=e.value})):(c.issues.length&&n.issues.push(...Ie(o,c.issues)),n.value[s.value]=c.value)}}return a.length?Promise.all(a).then(()=>n):n}}),pi=i(`$ZodMap`,(e,t)=>{T.init(e,t),e._zod.parse=(n,r)=>{let i=n.value;if(!(i instanceof Map))return n.issues.push({expected:`map`,code:`invalid_type`,input:i,inst:e}),n;let a=[];n.value=new Map;for(let[o,s]of i){let c=t.keyType._zod.run({value:o,issues:[]},r),l=t.valueType._zod.run({value:s,issues:[]},r);c instanceof Promise||l instanceof Promise?a.push(Promise.all([c,l]).then(([t,a])=>{mi(t,a,n,o,i,e,r)})):mi(c,l,n,o,i,e,r)}return a.length?Promise.all(a).then(()=>n):n}});function mi(e,t,n,r,i,a,o){e.issues.length&&(xe.has(typeof r)?n.issues.push(...Ie(r,e.issues)):n.issues.push({code:`invalid_key`,origin:`map`,input:i,inst:a,issues:e.issues.map(e=>Re(e,o,l()))})),t.issues.length&&(xe.has(typeof r)?n.issues.push(...Ie(r,t.issues)):n.issues.push({origin:`map`,code:`invalid_element`,input:i,inst:a,key:r,issues:t.issues.map(e=>Re(e,o,l()))})),n.value.set(e.value,t.value)}var hi=i(`$ZodSet`,(e,t)=>{T.init(e,t),e._zod.parse=(n,r)=>{let i=n.value;if(!(i instanceof Set))return n.issues.push({input:i,inst:e,expected:`set`,code:`invalid_type`}),n;let a=[];n.value=new Set;for(let e of i){let i=t.valueType._zod.run({value:e,issues:[]},r);i instanceof Promise?a.push(i.then(e=>gi(e,n))):gi(i,n)}return a.length?Promise.all(a).then(()=>n):n}});function gi(e,t){e.issues.length&&t.issues.push(...e.issues),t.value.add(e.value)}var _i=i(`$ZodEnum`,(e,t)=>{T.init(e,t);let n=g(t.entries),r=new Set(n);e._zod.values=r,e._zod.pattern=RegExp(`^(${n.filter(e=>xe.has(typeof e)).map(e=>typeof e==`string`?Ce(e):e.toString()).join(`|`)})<!DOCTYPE html>
295
334
  <html lang="en">
296
335
  <head>
297
336
  <meta charset="UTF-8" />
@@ -299,7 +338,7 @@
299
338
  <title>Chart Wheel Explorer</title>
300
339
 
301
340
 
302
- <style>:root{--bg:#faf9f5;--surface:#fff;--text:#1a1a2e;--text-secondary:#5a5a7a;--accent:#6366f1;--accent-hover:#4f46e5;--accent-subtle:#6366f11f;--border:#e8e6f0;--border-strong:#c8c4d8;--shadow:0 4px 16px #00000014;--shadow-md:0 8px 32px #0000001f;--radius:10px;--radius-sm:6px;--planet-sun:#f59e0b;--planet-moon:#94a3b8;--planet-mercury:#10b981;--planet-venus:#ec4899;--planet-mars:#ef4444;--planet-jupiter:#8b5cf6;--planet-saturn:#64748b;--planet-uranus:#06b6d4;--planet-neptune:#3b82f6;--planet-pluto:#a78bfa;--aspect-conjunction:#f59e0b;--aspect-opposition:#ef4444;--aspect-trine:#10b981;--aspect-square:#ef4444;--aspect-sextile:#3b82f6}@media (prefers-color-scheme:dark){:root{--bg:#0d1117;--surface:#161b22;--text:#e6edf3;--text-secondary:#8b949e;--accent:#818cf8;--accent-hover:#a5b4fc;--accent-subtle:#818cf826;--border:#21262d;--border-strong:#30363d;--shadow:0 4px 16px #0006;--shadow-md:0 8px 32px #0009}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:var(--bg);color:var(--text);-webkit-user-select:none;user-select:none;font-family:-apple-system,Inter,Segoe UI,system-ui,sans-serif;font-size:13px;line-height:1.5;overflow:hidden}#app{flex-direction:column;height:100vh;display:flex;position:relative}#loading-state{color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}#chart-container{flex:1;justify-content:center;align-items:center;min-height:0;padding:12px;display:flex;position:relative}#chart-container svg{width:auto;max-width:100%;height:auto;max-height:100%}.hit-region{cursor:pointer;fill:#0000;stroke:#0000;transition:fill .15s,stroke .15s}.hit-region:hover{fill:var(--accent-subtle);stroke:var(--accent);stroke-width:1px;stroke-opacity:.5}.hit-region.planet-hit{rx:12px;ry:12px}.hit-region.aspect-hit{stroke-width:6px}#controls-panel{border-top:1px solid var(--border);background:var(--surface);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px;padding:8px 12px;display:flex}.controls-label{color:var(--text-secondary);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;margin-right:2px;font-size:11px;font-weight:600}.control-btn{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;padding:3px 10px;font-family:inherit;font-size:12px;transition:background .12s,color .12s,border-color .12s}.control-btn:hover{background:var(--accent-subtle);color:var(--accent);border-color:var(--accent)}.control-btn.active{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}.controls-divider{background:var(--border);flex-shrink:0;width:1px;height:18px;margin:0 4px}.tooltip{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);pointer-events:none;box-shadow:var(--shadow-md);z-index:1000;opacity:0;max-width:220px;padding:8px 12px;font-size:12px;transition:opacity .12s;position:fixed}.tooltip.visible{opacity:1}.tooltip-title{color:var(--text);margin-bottom:2px;font-weight:700}.tooltip-detail{color:var(--text-secondary);line-height:1.4}.tooltip-hint{color:var(--accent);margin-top:4px;font-size:10px;font-style:italic}.error-state{text-align:center;color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;padding:24px;display:flex}.error-state .error-icon{margin-bottom:4px;font-size:32px}
341
+ <style>:root{--bg:#faf9f5;--surface:#fff;--text:#1a1a2e;--text-secondary:#5a5a7a;--accent:#6366f1;--accent-hover:#4f46e5;--accent-subtle:#6366f11f;--border:#e8e6f0;--border-strong:#c8c4d8;--shadow:0 4px 16px #00000014;--shadow-md:0 8px 32px #0000001f;--radius:10px;--radius-sm:6px;--planet-sun:#f59e0b;--planet-moon:#94a3b8;--planet-mercury:#10b981;--planet-venus:#ec4899;--planet-mars:#ef4444;--planet-jupiter:#8b5cf6;--planet-saturn:#64748b;--planet-uranus:#06b6d4;--planet-neptune:#3b82f6;--planet-pluto:#a78bfa;--aspect-conjunction:#f59e0b;--aspect-opposition:#ef4444;--aspect-trine:#10b981;--aspect-square:#ef4444;--aspect-sextile:#3b82f6;--color-fire:#e8854c;--color-earth:#7aaa6a;--color-air:#5aaad0;--color-water:#8878c8;--color-cardinal:#e05252;--color-fixed:#c0b052;--color-mutable:#52c07a}@media (prefers-color-scheme:dark){:root{--bg:#0d1117;--surface:#161b22;--text:#e6edf3;--text-secondary:#8b949e;--accent:#818cf8;--accent-hover:#a5b4fc;--accent-subtle:#818cf826;--border:#21262d;--border-strong:#30363d;--shadow:0 4px 16px #0006;--shadow-md:0 8px 32px #0009}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:var(--bg);color:var(--text);-webkit-user-select:none;user-select:none;font-family:-apple-system,Inter,Segoe UI,system-ui,sans-serif;font-size:13px;line-height:1.5;overflow:hidden}#app{flex-direction:column;height:100vh;display:flex;position:relative}#loading-state{color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}#chart-container{flex:1;justify-content:center;align-items:center;min-height:0;padding:12px;display:flex;position:relative}#chart-container svg{width:auto;max-width:100%;height:auto;max-height:100%}.hit-region{cursor:pointer;fill:#0000;stroke:#0000;transition:fill .15s,stroke .15s,opacity .2s}.hit-region:hover{fill:var(--accent-subtle);stroke:var(--accent);stroke-width:1px;stroke-opacity:.5}.hit-region.planet-hit{rx:12px;ry:12px}.hit-region.planet-hit:not(.dim){filter:none}.hit-region.dim{opacity:.15}.hit-region.aspect-hit{stroke-width:13px}.hit-region.aspect-hit.highlight{stroke:var(--aspect-color,#888);stroke-opacity:.55}.info-panel{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow-md);z-index:900;opacity:0;pointer-events:none;width:min(340px,92vw);padding:14px 16px 12px;transition:opacity .18s,transform .18s;position:fixed;bottom:126px;left:50%;transform:translate(-50%)translateY(12px)}.info-panel.visible{opacity:1;pointer-events:all;transform:translate(-50%)translateY(0)}.info-header{align-items:flex-start;gap:10px;margin-bottom:12px;display:flex}.info-glyph{text-align:center;flex-shrink:0;width:34px;font-size:28px;line-height:1}.info-title{color:var(--text);flex:1;font-size:13px;font-weight:700}.info-name-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.info-pos{color:var(--text-secondary);margin-top:2px;font-size:11px;font-weight:400}.retro{color:#e05252;font-style:normal}.info-close{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;border-radius:4px;flex-shrink:0;padding:2px 4px;font-size:13px;line-height:1;transition:color .12s}.info-close:hover{color:var(--text)}.aspects-title{text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary);margin-bottom:6px;font-size:10px;font-weight:700}.aspects-list{flex-direction:column;gap:4px;max-height:140px;display:flex;overflow-y:auto}.aspect-row{align-items:center;gap:7px;padding:3px 0;font-size:12px;display:flex}.aspect-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.aspect-sym{text-align:center;flex-shrink:0;width:16px;font-size:14px}.aspect-other{color:var(--text);flex:1}.aspect-meta{color:var(--text-secondary);white-space:nowrap;font-size:11px}.no-aspects{color:var(--text-secondary);padding:4px 0;font-size:11px;font-style:italic}.info-hint{color:var(--accent);text-align:center;margin-top:10px;font-size:10px;font-style:italic}.dignity-badge{white-space:nowrap;border-radius:99px;align-items:center;gap:3px;padding:1px 7px;font-size:10px;font-weight:600;line-height:1.6;display:inline-flex}.dignity-domicile{color:#2e9e5e;background:#52c07a2e;border:1px solid #52c07a66}.dignity-exaltation{color:#9a8600;background:#c0b0522e;border:1px solid #c0b05266}.dignity-detriment{color:#c03030;background:#e0525224;border:1px solid #e0525259}.dignity-fall{color:#707080;background:#9a9a9a24;border:1px solid #9a9a9a4d}@media (prefers-color-scheme:dark){.dignity-domicile{color:#6fe098;background:#52c07a1f}.dignity-exaltation{color:#e0cc60;background:#c0b0521f}.dignity-detriment{color:#e08080;background:#e052521a}.dignity-fall{color:#a0a0b0;background:#9a9a9a1a}}#tally-panel{border-top:1px solid var(--border);background:var(--surface);flex-shrink:0;align-items:center;gap:8px;padding:5px 12px;display:flex}.tally-section{flex-direction:column;gap:3px;display:flex}.tally-row{align-items:center;gap:8px;display:flex}.tally-item{white-space:nowrap;border-radius:4px;padding:1px 6px;font-size:11px;font-weight:600}.tally-item.fire{color:var(--color-fire);background:#e8854c1f}.tally-item.earth{color:var(--color-earth);background:#7aaa6a1f}.tally-item.air{color:var(--color-air);background:#5aaad01f}.tally-item.water{color:var(--color-water);background:#8878c81f}.tally-item.cardinal{color:var(--color-cardinal);background:#e052521a}.tally-item.fixed{color:var(--color-fixed);background:#c0b0521a}.tally-item.mutable{color:var(--color-mutable);background:#52c07a1a}.tally-bar-row{padding:2px 0}.tally-bar{background:var(--border);border-radius:2px;width:90px;height:4px;display:flex;overflow:hidden}.tally-bar-fill{height:100%;transition:width .4s}.tally-bar-fill.fire{background:var(--color-fire)}.tally-bar-fill.earth{background:var(--color-earth)}.tally-bar-fill.air{background:var(--color-air)}.tally-bar-fill.water{background:var(--color-water)}.tally-divider{background:var(--border);flex-shrink:0;width:1px;height:28px}#patterns-strip{border-top:1px solid var(--border);background:var(--surface);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:5px;padding:5px 12px;display:flex}.patterns-label{text-transform:uppercase;letter-spacing:.07em;color:var(--text-secondary);white-space:nowrap;margin-right:2px;font-size:10px;font-weight:700}.pattern-pill{cursor:pointer;white-space:nowrap;opacity:.85;background:0 0;border:1px solid;border-radius:99px;align-items:center;gap:4px;padding:2px 9px;font-family:inherit;font-size:11px;font-weight:600;transition:opacity .14s,box-shadow .14s,transform 80ms;display:inline-flex}.pattern-pill:hover{opacity:1;filter:brightness(1.05);box-shadow:0 0 0 2px #80808040}.pattern-pill.active{color:#fff;opacity:1;border-color:#0000;transform:translateY(-1px);box-shadow:0 2px 8px #00000040}#controls-panel{border-top:1px solid var(--border);background:var(--surface);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px;padding:8px 12px;display:flex}.controls-label{color:var(--text-secondary);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;margin-right:2px;font-size:11px;font-weight:600}.control-btn{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;padding:3px 10px;font-family:inherit;font-size:12px;transition:background .12s,color .12s,border-color .12s}.control-btn:hover{background:var(--accent-subtle);color:var(--accent);border-color:var(--accent)}.control-btn.active{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}.controls-divider{background:var(--border);flex-shrink:0;width:1px;height:18px;margin:0 4px}.tooltip{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);pointer-events:none;box-shadow:var(--shadow-md);z-index:1000;opacity:0;max-width:220px;padding:8px 12px;font-size:12px;transition:opacity .12s;position:fixed}.tooltip.visible{opacity:1}.tooltip-title{color:var(--text);margin-bottom:2px;font-weight:700}.tooltip-detail{color:var(--text-secondary);line-height:1.4}.tooltip-hint{color:var(--accent);margin-top:4px;font-size:10px;font-style:italic}.error-state{text-align:center;color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;padding:24px;display:flex}.error-state .error-icon{margin-bottom:4px;font-size:32px}
303
342
  /*$vite$:1*/</style>
304
343
  </head>
305
344
  <body>
@@ -309,10 +348,13 @@
309
348
  <p>Loading chart…</p>
310
349
  </div>
311
350
  <div id="chart-container" hidden></div>
351
+ <!-- Element/Modality tally + Pattern strip share the bottom bar with controls -->
352
+ <div id="tally-panel" hidden></div>
353
+ <div id="patterns-strip" hidden></div>
312
354
  <div id="controls-panel" hidden></div>
313
355
  <div id="tooltip" class="tooltip" aria-live="polite"></div>
314
356
  </div>
315
- ),e._zod.parse=(t,i)=>{let a=t.value;return r.has(a)||t.issues.push({code:`invalid_value`,values:n,input:a,inst:e}),t}}),bi=i(`$ZodLiteral`,(e,t)=>{if(C.init(e,t),t.values.length===0)throw Error(`Cannot create literal schema with no valid values`);let n=new Set(t.values);e._zod.values=n,e._zod.pattern=RegExp(`^(${t.values.map(e=>typeof e==`string`?De(e):e?De(e.toString()):String(e)).join(`|`)})<!DOCTYPE html>
357
+ ),e._zod.parse=(t,i)=>{let a=t.value;return r.has(a)||t.issues.push({code:`invalid_value`,values:n,input:a,inst:e}),t}}),vi=i(`$ZodLiteral`,(e,t)=>{if(T.init(e,t),t.values.length===0)throw Error(`Cannot create literal schema with no valid values`);let n=new Set(t.values);e._zod.values=n,e._zod.pattern=RegExp(`^(${t.values.map(e=>typeof e==`string`?Ce(e):e?Ce(e.toString()):String(e)).join(`|`)})<!DOCTYPE html>
316
358
  <html lang="en">
317
359
  <head>
318
360
  <meta charset="UTF-8" />
@@ -320,7 +362,7 @@
320
362
  <title>Chart Wheel Explorer</title>
321
363
 
322
364
 
323
- <style>:root{--bg:#faf9f5;--surface:#fff;--text:#1a1a2e;--text-secondary:#5a5a7a;--accent:#6366f1;--accent-hover:#4f46e5;--accent-subtle:#6366f11f;--border:#e8e6f0;--border-strong:#c8c4d8;--shadow:0 4px 16px #00000014;--shadow-md:0 8px 32px #0000001f;--radius:10px;--radius-sm:6px;--planet-sun:#f59e0b;--planet-moon:#94a3b8;--planet-mercury:#10b981;--planet-venus:#ec4899;--planet-mars:#ef4444;--planet-jupiter:#8b5cf6;--planet-saturn:#64748b;--planet-uranus:#06b6d4;--planet-neptune:#3b82f6;--planet-pluto:#a78bfa;--aspect-conjunction:#f59e0b;--aspect-opposition:#ef4444;--aspect-trine:#10b981;--aspect-square:#ef4444;--aspect-sextile:#3b82f6}@media (prefers-color-scheme:dark){:root{--bg:#0d1117;--surface:#161b22;--text:#e6edf3;--text-secondary:#8b949e;--accent:#818cf8;--accent-hover:#a5b4fc;--accent-subtle:#818cf826;--border:#21262d;--border-strong:#30363d;--shadow:0 4px 16px #0006;--shadow-md:0 8px 32px #0009}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:var(--bg);color:var(--text);-webkit-user-select:none;user-select:none;font-family:-apple-system,Inter,Segoe UI,system-ui,sans-serif;font-size:13px;line-height:1.5;overflow:hidden}#app{flex-direction:column;height:100vh;display:flex;position:relative}#loading-state{color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}#chart-container{flex:1;justify-content:center;align-items:center;min-height:0;padding:12px;display:flex;position:relative}#chart-container svg{width:auto;max-width:100%;height:auto;max-height:100%}.hit-region{cursor:pointer;fill:#0000;stroke:#0000;transition:fill .15s,stroke .15s}.hit-region:hover{fill:var(--accent-subtle);stroke:var(--accent);stroke-width:1px;stroke-opacity:.5}.hit-region.planet-hit{rx:12px;ry:12px}.hit-region.aspect-hit{stroke-width:6px}#controls-panel{border-top:1px solid var(--border);background:var(--surface);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px;padding:8px 12px;display:flex}.controls-label{color:var(--text-secondary);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;margin-right:2px;font-size:11px;font-weight:600}.control-btn{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;padding:3px 10px;font-family:inherit;font-size:12px;transition:background .12s,color .12s,border-color .12s}.control-btn:hover{background:var(--accent-subtle);color:var(--accent);border-color:var(--accent)}.control-btn.active{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}.controls-divider{background:var(--border);flex-shrink:0;width:1px;height:18px;margin:0 4px}.tooltip{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);pointer-events:none;box-shadow:var(--shadow-md);z-index:1000;opacity:0;max-width:220px;padding:8px 12px;font-size:12px;transition:opacity .12s;position:fixed}.tooltip.visible{opacity:1}.tooltip-title{color:var(--text);margin-bottom:2px;font-weight:700}.tooltip-detail{color:var(--text-secondary);line-height:1.4}.tooltip-hint{color:var(--accent);margin-top:4px;font-size:10px;font-style:italic}.error-state{text-align:center;color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;padding:24px;display:flex}.error-state .error-icon{margin-bottom:4px;font-size:32px}
365
+ <style>:root{--bg:#faf9f5;--surface:#fff;--text:#1a1a2e;--text-secondary:#5a5a7a;--accent:#6366f1;--accent-hover:#4f46e5;--accent-subtle:#6366f11f;--border:#e8e6f0;--border-strong:#c8c4d8;--shadow:0 4px 16px #00000014;--shadow-md:0 8px 32px #0000001f;--radius:10px;--radius-sm:6px;--planet-sun:#f59e0b;--planet-moon:#94a3b8;--planet-mercury:#10b981;--planet-venus:#ec4899;--planet-mars:#ef4444;--planet-jupiter:#8b5cf6;--planet-saturn:#64748b;--planet-uranus:#06b6d4;--planet-neptune:#3b82f6;--planet-pluto:#a78bfa;--aspect-conjunction:#f59e0b;--aspect-opposition:#ef4444;--aspect-trine:#10b981;--aspect-square:#ef4444;--aspect-sextile:#3b82f6;--color-fire:#e8854c;--color-earth:#7aaa6a;--color-air:#5aaad0;--color-water:#8878c8;--color-cardinal:#e05252;--color-fixed:#c0b052;--color-mutable:#52c07a}@media (prefers-color-scheme:dark){:root{--bg:#0d1117;--surface:#161b22;--text:#e6edf3;--text-secondary:#8b949e;--accent:#818cf8;--accent-hover:#a5b4fc;--accent-subtle:#818cf826;--border:#21262d;--border-strong:#30363d;--shadow:0 4px 16px #0006;--shadow-md:0 8px 32px #0009}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:var(--bg);color:var(--text);-webkit-user-select:none;user-select:none;font-family:-apple-system,Inter,Segoe UI,system-ui,sans-serif;font-size:13px;line-height:1.5;overflow:hidden}#app{flex-direction:column;height:100vh;display:flex;position:relative}#loading-state{color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}#chart-container{flex:1;justify-content:center;align-items:center;min-height:0;padding:12px;display:flex;position:relative}#chart-container svg{width:auto;max-width:100%;height:auto;max-height:100%}.hit-region{cursor:pointer;fill:#0000;stroke:#0000;transition:fill .15s,stroke .15s,opacity .2s}.hit-region:hover{fill:var(--accent-subtle);stroke:var(--accent);stroke-width:1px;stroke-opacity:.5}.hit-region.planet-hit{rx:12px;ry:12px}.hit-region.planet-hit:not(.dim){filter:none}.hit-region.dim{opacity:.15}.hit-region.aspect-hit{stroke-width:13px}.hit-region.aspect-hit.highlight{stroke:var(--aspect-color,#888);stroke-opacity:.55}.info-panel{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow-md);z-index:900;opacity:0;pointer-events:none;width:min(340px,92vw);padding:14px 16px 12px;transition:opacity .18s,transform .18s;position:fixed;bottom:126px;left:50%;transform:translate(-50%)translateY(12px)}.info-panel.visible{opacity:1;pointer-events:all;transform:translate(-50%)translateY(0)}.info-header{align-items:flex-start;gap:10px;margin-bottom:12px;display:flex}.info-glyph{text-align:center;flex-shrink:0;width:34px;font-size:28px;line-height:1}.info-title{color:var(--text);flex:1;font-size:13px;font-weight:700}.info-name-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.info-pos{color:var(--text-secondary);margin-top:2px;font-size:11px;font-weight:400}.retro{color:#e05252;font-style:normal}.info-close{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;border-radius:4px;flex-shrink:0;padding:2px 4px;font-size:13px;line-height:1;transition:color .12s}.info-close:hover{color:var(--text)}.aspects-title{text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary);margin-bottom:6px;font-size:10px;font-weight:700}.aspects-list{flex-direction:column;gap:4px;max-height:140px;display:flex;overflow-y:auto}.aspect-row{align-items:center;gap:7px;padding:3px 0;font-size:12px;display:flex}.aspect-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.aspect-sym{text-align:center;flex-shrink:0;width:16px;font-size:14px}.aspect-other{color:var(--text);flex:1}.aspect-meta{color:var(--text-secondary);white-space:nowrap;font-size:11px}.no-aspects{color:var(--text-secondary);padding:4px 0;font-size:11px;font-style:italic}.info-hint{color:var(--accent);text-align:center;margin-top:10px;font-size:10px;font-style:italic}.dignity-badge{white-space:nowrap;border-radius:99px;align-items:center;gap:3px;padding:1px 7px;font-size:10px;font-weight:600;line-height:1.6;display:inline-flex}.dignity-domicile{color:#2e9e5e;background:#52c07a2e;border:1px solid #52c07a66}.dignity-exaltation{color:#9a8600;background:#c0b0522e;border:1px solid #c0b05266}.dignity-detriment{color:#c03030;background:#e0525224;border:1px solid #e0525259}.dignity-fall{color:#707080;background:#9a9a9a24;border:1px solid #9a9a9a4d}@media (prefers-color-scheme:dark){.dignity-domicile{color:#6fe098;background:#52c07a1f}.dignity-exaltation{color:#e0cc60;background:#c0b0521f}.dignity-detriment{color:#e08080;background:#e052521a}.dignity-fall{color:#a0a0b0;background:#9a9a9a1a}}#tally-panel{border-top:1px solid var(--border);background:var(--surface);flex-shrink:0;align-items:center;gap:8px;padding:5px 12px;display:flex}.tally-section{flex-direction:column;gap:3px;display:flex}.tally-row{align-items:center;gap:8px;display:flex}.tally-item{white-space:nowrap;border-radius:4px;padding:1px 6px;font-size:11px;font-weight:600}.tally-item.fire{color:var(--color-fire);background:#e8854c1f}.tally-item.earth{color:var(--color-earth);background:#7aaa6a1f}.tally-item.air{color:var(--color-air);background:#5aaad01f}.tally-item.water{color:var(--color-water);background:#8878c81f}.tally-item.cardinal{color:var(--color-cardinal);background:#e052521a}.tally-item.fixed{color:var(--color-fixed);background:#c0b0521a}.tally-item.mutable{color:var(--color-mutable);background:#52c07a1a}.tally-bar-row{padding:2px 0}.tally-bar{background:var(--border);border-radius:2px;width:90px;height:4px;display:flex;overflow:hidden}.tally-bar-fill{height:100%;transition:width .4s}.tally-bar-fill.fire{background:var(--color-fire)}.tally-bar-fill.earth{background:var(--color-earth)}.tally-bar-fill.air{background:var(--color-air)}.tally-bar-fill.water{background:var(--color-water)}.tally-divider{background:var(--border);flex-shrink:0;width:1px;height:28px}#patterns-strip{border-top:1px solid var(--border);background:var(--surface);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:5px;padding:5px 12px;display:flex}.patterns-label{text-transform:uppercase;letter-spacing:.07em;color:var(--text-secondary);white-space:nowrap;margin-right:2px;font-size:10px;font-weight:700}.pattern-pill{cursor:pointer;white-space:nowrap;opacity:.85;background:0 0;border:1px solid;border-radius:99px;align-items:center;gap:4px;padding:2px 9px;font-family:inherit;font-size:11px;font-weight:600;transition:opacity .14s,box-shadow .14s,transform 80ms;display:inline-flex}.pattern-pill:hover{opacity:1;filter:brightness(1.05);box-shadow:0 0 0 2px #80808040}.pattern-pill.active{color:#fff;opacity:1;border-color:#0000;transform:translateY(-1px);box-shadow:0 2px 8px #00000040}#controls-panel{border-top:1px solid var(--border);background:var(--surface);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px;padding:8px 12px;display:flex}.controls-label{color:var(--text-secondary);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;margin-right:2px;font-size:11px;font-weight:600}.control-btn{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;padding:3px 10px;font-family:inherit;font-size:12px;transition:background .12s,color .12s,border-color .12s}.control-btn:hover{background:var(--accent-subtle);color:var(--accent);border-color:var(--accent)}.control-btn.active{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}.controls-divider{background:var(--border);flex-shrink:0;width:1px;height:18px;margin:0 4px}.tooltip{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);pointer-events:none;box-shadow:var(--shadow-md);z-index:1000;opacity:0;max-width:220px;padding:8px 12px;font-size:12px;transition:opacity .12s;position:fixed}.tooltip.visible{opacity:1}.tooltip-title{color:var(--text);margin-bottom:2px;font-weight:700}.tooltip-detail{color:var(--text-secondary);line-height:1.4}.tooltip-hint{color:var(--accent);margin-top:4px;font-size:10px;font-style:italic}.error-state{text-align:center;color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;padding:24px;display:flex}.error-state .error-icon{margin-bottom:4px;font-size:32px}
324
366
  /*$vite$:1*/</style>
325
367
  </head>
326
368
  <body>
@@ -330,10 +372,13 @@
330
372
  <p>Loading chart…</p>
331
373
  </div>
332
374
  <div id="chart-container" hidden></div>
375
+ <!-- Element/Modality tally + Pattern strip share the bottom bar with controls -->
376
+ <div id="tally-panel" hidden></div>
377
+ <div id="patterns-strip" hidden></div>
333
378
  <div id="controls-panel" hidden></div>
334
379
  <div id="tooltip" class="tooltip" aria-live="polite"></div>
335
380
  </div>
336
- ),e._zod.parse=(r,i)=>{let a=r.value;return n.has(a)||r.issues.push({code:`invalid_value`,values:t.values,input:a,inst:e}),r}}),xi=i(`$ZodFile`,(e,t)=>{C.init(e,t),e._zod.parse=(t,n)=>{let r=t.value;return r instanceof File||t.issues.push({expected:`file`,code:`invalid_type`,input:r,inst:e}),t}}),Si=i(`$ZodTransform`,(e,t)=>{C.init(e,t),e._zod.parse=(n,r)=>{if(r.direction===`backward`)throw new s(e.constructor.name);let i=t.transform(n.value,n);if(r.async)return(i instanceof Promise?i:Promise.resolve(i)).then(e=>(n.value=e,n));if(i instanceof Promise)throw new o;return n.value=i,n}});function Ci(e,t){return e.issues.length&&t===void 0?{issues:[],value:void 0}:e}var wi=i(`$ZodOptional`,(e,t)=>{C.init(e,t),e._zod.optin=`optional`,e._zod.optout=`optional`,h(e._zod,`values`,()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),h(e._zod,`pattern`,()=>{let e=t.innerType._zod.pattern;return e?RegExp(`^(${oe(e.source)})?<!DOCTYPE html>
381
+ ),e._zod.parse=(r,i)=>{let a=r.value;return n.has(a)||r.issues.push({code:`invalid_value`,values:t.values,input:a,inst:e}),r}}),yi=i(`$ZodFile`,(e,t)=>{T.init(e,t),e._zod.parse=(t,n)=>{let r=t.value;return r instanceof File||t.issues.push({expected:`file`,code:`invalid_type`,input:r,inst:e}),t}}),bi=i(`$ZodTransform`,(e,t)=>{T.init(e,t),e._zod.parse=(n,r)=>{if(r.direction===`backward`)throw new s(e.constructor.name);let i=t.transform(n.value,n);if(r.async)return(i instanceof Promise?i:Promise.resolve(i)).then(e=>(n.value=e,n));if(i instanceof Promise)throw new o;return n.value=i,n}});function xi(e,t){return e.issues.length&&t===void 0?{issues:[],value:void 0}:e}var Si=i(`$ZodOptional`,(e,t)=>{T.init(e,t),e._zod.optin=`optional`,e._zod.optout=`optional`,y(e._zod,`values`,()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),y(e._zod,`pattern`,()=>{let e=t.innerType._zod.pattern;return e?RegExp(`^(${ne(e.source)})?<!DOCTYPE html>
337
382
  <html lang="en">
338
383
  <head>
339
384
  <meta charset="UTF-8" />
@@ -341,7 +386,7 @@
341
386
  <title>Chart Wheel Explorer</title>
342
387
 
343
388
 
344
- <style>:root{--bg:#faf9f5;--surface:#fff;--text:#1a1a2e;--text-secondary:#5a5a7a;--accent:#6366f1;--accent-hover:#4f46e5;--accent-subtle:#6366f11f;--border:#e8e6f0;--border-strong:#c8c4d8;--shadow:0 4px 16px #00000014;--shadow-md:0 8px 32px #0000001f;--radius:10px;--radius-sm:6px;--planet-sun:#f59e0b;--planet-moon:#94a3b8;--planet-mercury:#10b981;--planet-venus:#ec4899;--planet-mars:#ef4444;--planet-jupiter:#8b5cf6;--planet-saturn:#64748b;--planet-uranus:#06b6d4;--planet-neptune:#3b82f6;--planet-pluto:#a78bfa;--aspect-conjunction:#f59e0b;--aspect-opposition:#ef4444;--aspect-trine:#10b981;--aspect-square:#ef4444;--aspect-sextile:#3b82f6}@media (prefers-color-scheme:dark){:root{--bg:#0d1117;--surface:#161b22;--text:#e6edf3;--text-secondary:#8b949e;--accent:#818cf8;--accent-hover:#a5b4fc;--accent-subtle:#818cf826;--border:#21262d;--border-strong:#30363d;--shadow:0 4px 16px #0006;--shadow-md:0 8px 32px #0009}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:var(--bg);color:var(--text);-webkit-user-select:none;user-select:none;font-family:-apple-system,Inter,Segoe UI,system-ui,sans-serif;font-size:13px;line-height:1.5;overflow:hidden}#app{flex-direction:column;height:100vh;display:flex;position:relative}#loading-state{color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}#chart-container{flex:1;justify-content:center;align-items:center;min-height:0;padding:12px;display:flex;position:relative}#chart-container svg{width:auto;max-width:100%;height:auto;max-height:100%}.hit-region{cursor:pointer;fill:#0000;stroke:#0000;transition:fill .15s,stroke .15s}.hit-region:hover{fill:var(--accent-subtle);stroke:var(--accent);stroke-width:1px;stroke-opacity:.5}.hit-region.planet-hit{rx:12px;ry:12px}.hit-region.aspect-hit{stroke-width:6px}#controls-panel{border-top:1px solid var(--border);background:var(--surface);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px;padding:8px 12px;display:flex}.controls-label{color:var(--text-secondary);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;margin-right:2px;font-size:11px;font-weight:600}.control-btn{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;padding:3px 10px;font-family:inherit;font-size:12px;transition:background .12s,color .12s,border-color .12s}.control-btn:hover{background:var(--accent-subtle);color:var(--accent);border-color:var(--accent)}.control-btn.active{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}.controls-divider{background:var(--border);flex-shrink:0;width:1px;height:18px;margin:0 4px}.tooltip{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);pointer-events:none;box-shadow:var(--shadow-md);z-index:1000;opacity:0;max-width:220px;padding:8px 12px;font-size:12px;transition:opacity .12s;position:fixed}.tooltip.visible{opacity:1}.tooltip-title{color:var(--text);margin-bottom:2px;font-weight:700}.tooltip-detail{color:var(--text-secondary);line-height:1.4}.tooltip-hint{color:var(--accent);margin-top:4px;font-size:10px;font-style:italic}.error-state{text-align:center;color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;padding:24px;display:flex}.error-state .error-icon{margin-bottom:4px;font-size:32px}
389
+ <style>:root{--bg:#faf9f5;--surface:#fff;--text:#1a1a2e;--text-secondary:#5a5a7a;--accent:#6366f1;--accent-hover:#4f46e5;--accent-subtle:#6366f11f;--border:#e8e6f0;--border-strong:#c8c4d8;--shadow:0 4px 16px #00000014;--shadow-md:0 8px 32px #0000001f;--radius:10px;--radius-sm:6px;--planet-sun:#f59e0b;--planet-moon:#94a3b8;--planet-mercury:#10b981;--planet-venus:#ec4899;--planet-mars:#ef4444;--planet-jupiter:#8b5cf6;--planet-saturn:#64748b;--planet-uranus:#06b6d4;--planet-neptune:#3b82f6;--planet-pluto:#a78bfa;--aspect-conjunction:#f59e0b;--aspect-opposition:#ef4444;--aspect-trine:#10b981;--aspect-square:#ef4444;--aspect-sextile:#3b82f6;--color-fire:#e8854c;--color-earth:#7aaa6a;--color-air:#5aaad0;--color-water:#8878c8;--color-cardinal:#e05252;--color-fixed:#c0b052;--color-mutable:#52c07a}@media (prefers-color-scheme:dark){:root{--bg:#0d1117;--surface:#161b22;--text:#e6edf3;--text-secondary:#8b949e;--accent:#818cf8;--accent-hover:#a5b4fc;--accent-subtle:#818cf826;--border:#21262d;--border-strong:#30363d;--shadow:0 4px 16px #0006;--shadow-md:0 8px 32px #0009}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:var(--bg);color:var(--text);-webkit-user-select:none;user-select:none;font-family:-apple-system,Inter,Segoe UI,system-ui,sans-serif;font-size:13px;line-height:1.5;overflow:hidden}#app{flex-direction:column;height:100vh;display:flex;position:relative}#loading-state{color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}#chart-container{flex:1;justify-content:center;align-items:center;min-height:0;padding:12px;display:flex;position:relative}#chart-container svg{width:auto;max-width:100%;height:auto;max-height:100%}.hit-region{cursor:pointer;fill:#0000;stroke:#0000;transition:fill .15s,stroke .15s,opacity .2s}.hit-region:hover{fill:var(--accent-subtle);stroke:var(--accent);stroke-width:1px;stroke-opacity:.5}.hit-region.planet-hit{rx:12px;ry:12px}.hit-region.planet-hit:not(.dim){filter:none}.hit-region.dim{opacity:.15}.hit-region.aspect-hit{stroke-width:13px}.hit-region.aspect-hit.highlight{stroke:var(--aspect-color,#888);stroke-opacity:.55}.info-panel{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow-md);z-index:900;opacity:0;pointer-events:none;width:min(340px,92vw);padding:14px 16px 12px;transition:opacity .18s,transform .18s;position:fixed;bottom:126px;left:50%;transform:translate(-50%)translateY(12px)}.info-panel.visible{opacity:1;pointer-events:all;transform:translate(-50%)translateY(0)}.info-header{align-items:flex-start;gap:10px;margin-bottom:12px;display:flex}.info-glyph{text-align:center;flex-shrink:0;width:34px;font-size:28px;line-height:1}.info-title{color:var(--text);flex:1;font-size:13px;font-weight:700}.info-name-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.info-pos{color:var(--text-secondary);margin-top:2px;font-size:11px;font-weight:400}.retro{color:#e05252;font-style:normal}.info-close{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;border-radius:4px;flex-shrink:0;padding:2px 4px;font-size:13px;line-height:1;transition:color .12s}.info-close:hover{color:var(--text)}.aspects-title{text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary);margin-bottom:6px;font-size:10px;font-weight:700}.aspects-list{flex-direction:column;gap:4px;max-height:140px;display:flex;overflow-y:auto}.aspect-row{align-items:center;gap:7px;padding:3px 0;font-size:12px;display:flex}.aspect-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.aspect-sym{text-align:center;flex-shrink:0;width:16px;font-size:14px}.aspect-other{color:var(--text);flex:1}.aspect-meta{color:var(--text-secondary);white-space:nowrap;font-size:11px}.no-aspects{color:var(--text-secondary);padding:4px 0;font-size:11px;font-style:italic}.info-hint{color:var(--accent);text-align:center;margin-top:10px;font-size:10px;font-style:italic}.dignity-badge{white-space:nowrap;border-radius:99px;align-items:center;gap:3px;padding:1px 7px;font-size:10px;font-weight:600;line-height:1.6;display:inline-flex}.dignity-domicile{color:#2e9e5e;background:#52c07a2e;border:1px solid #52c07a66}.dignity-exaltation{color:#9a8600;background:#c0b0522e;border:1px solid #c0b05266}.dignity-detriment{color:#c03030;background:#e0525224;border:1px solid #e0525259}.dignity-fall{color:#707080;background:#9a9a9a24;border:1px solid #9a9a9a4d}@media (prefers-color-scheme:dark){.dignity-domicile{color:#6fe098;background:#52c07a1f}.dignity-exaltation{color:#e0cc60;background:#c0b0521f}.dignity-detriment{color:#e08080;background:#e052521a}.dignity-fall{color:#a0a0b0;background:#9a9a9a1a}}#tally-panel{border-top:1px solid var(--border);background:var(--surface);flex-shrink:0;align-items:center;gap:8px;padding:5px 12px;display:flex}.tally-section{flex-direction:column;gap:3px;display:flex}.tally-row{align-items:center;gap:8px;display:flex}.tally-item{white-space:nowrap;border-radius:4px;padding:1px 6px;font-size:11px;font-weight:600}.tally-item.fire{color:var(--color-fire);background:#e8854c1f}.tally-item.earth{color:var(--color-earth);background:#7aaa6a1f}.tally-item.air{color:var(--color-air);background:#5aaad01f}.tally-item.water{color:var(--color-water);background:#8878c81f}.tally-item.cardinal{color:var(--color-cardinal);background:#e052521a}.tally-item.fixed{color:var(--color-fixed);background:#c0b0521a}.tally-item.mutable{color:var(--color-mutable);background:#52c07a1a}.tally-bar-row{padding:2px 0}.tally-bar{background:var(--border);border-radius:2px;width:90px;height:4px;display:flex;overflow:hidden}.tally-bar-fill{height:100%;transition:width .4s}.tally-bar-fill.fire{background:var(--color-fire)}.tally-bar-fill.earth{background:var(--color-earth)}.tally-bar-fill.air{background:var(--color-air)}.tally-bar-fill.water{background:var(--color-water)}.tally-divider{background:var(--border);flex-shrink:0;width:1px;height:28px}#patterns-strip{border-top:1px solid var(--border);background:var(--surface);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:5px;padding:5px 12px;display:flex}.patterns-label{text-transform:uppercase;letter-spacing:.07em;color:var(--text-secondary);white-space:nowrap;margin-right:2px;font-size:10px;font-weight:700}.pattern-pill{cursor:pointer;white-space:nowrap;opacity:.85;background:0 0;border:1px solid;border-radius:99px;align-items:center;gap:4px;padding:2px 9px;font-family:inherit;font-size:11px;font-weight:600;transition:opacity .14s,box-shadow .14s,transform 80ms;display:inline-flex}.pattern-pill:hover{opacity:1;filter:brightness(1.05);box-shadow:0 0 0 2px #80808040}.pattern-pill.active{color:#fff;opacity:1;border-color:#0000;transform:translateY(-1px);box-shadow:0 2px 8px #00000040}#controls-panel{border-top:1px solid var(--border);background:var(--surface);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px;padding:8px 12px;display:flex}.controls-label{color:var(--text-secondary);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;margin-right:2px;font-size:11px;font-weight:600}.control-btn{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;padding:3px 10px;font-family:inherit;font-size:12px;transition:background .12s,color .12s,border-color .12s}.control-btn:hover{background:var(--accent-subtle);color:var(--accent);border-color:var(--accent)}.control-btn.active{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}.controls-divider{background:var(--border);flex-shrink:0;width:1px;height:18px;margin:0 4px}.tooltip{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);pointer-events:none;box-shadow:var(--shadow-md);z-index:1000;opacity:0;max-width:220px;padding:8px 12px;font-size:12px;transition:opacity .12s;position:fixed}.tooltip.visible{opacity:1}.tooltip-title{color:var(--text);margin-bottom:2px;font-weight:700}.tooltip-detail{color:var(--text-secondary);line-height:1.4}.tooltip-hint{color:var(--accent);margin-top:4px;font-size:10px;font-style:italic}.error-state{text-align:center;color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;padding:24px;display:flex}.error-state .error-icon{margin-bottom:4px;font-size:32px}
345
390
  /*$vite$:1*/</style>
346
391
  </head>
347
392
  <body>
@@ -351,10 +396,13 @@
351
396
  <p>Loading chart…</p>
352
397
  </div>
353
398
  <div id="chart-container" hidden></div>
399
+ <!-- Element/Modality tally + Pattern strip share the bottom bar with controls -->
400
+ <div id="tally-panel" hidden></div>
401
+ <div id="patterns-strip" hidden></div>
354
402
  <div id="controls-panel" hidden></div>
355
403
  <div id="tooltip" class="tooltip" aria-live="polite"></div>
356
404
  </div>
357
- ):void 0}),e._zod.parse=(e,n)=>{if(t.innerType._zod.optin===`optional`){let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(t=>Ci(t,e.value)):Ci(r,e.value)}return e.value===void 0?e:t.innerType._zod.run(e,n)}}),Ti=i(`$ZodNullable`,(e,t)=>{C.init(e,t),h(e._zod,`optin`,()=>t.innerType._zod.optin),h(e._zod,`optout`,()=>t.innerType._zod.optout),h(e._zod,`pattern`,()=>{let e=t.innerType._zod.pattern;return e?RegExp(`^(${oe(e.source)}|null)<!DOCTYPE html>
405
+ ):void 0}),e._zod.parse=(e,n)=>{if(t.innerType._zod.optin===`optional`){let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(t=>xi(t,e.value)):xi(r,e.value)}return e.value===void 0?e:t.innerType._zod.run(e,n)}}),Ci=i(`$ZodNullable`,(e,t)=>{T.init(e,t),y(e._zod,`optin`,()=>t.innerType._zod.optin),y(e._zod,`optout`,()=>t.innerType._zod.optout),y(e._zod,`pattern`,()=>{let e=t.innerType._zod.pattern;return e?RegExp(`^(${ne(e.source)}|null)<!DOCTYPE html>
358
406
  <html lang="en">
359
407
  <head>
360
408
  <meta charset="UTF-8" />
@@ -362,7 +410,7 @@
362
410
  <title>Chart Wheel Explorer</title>
363
411
 
364
412
 
365
- <style>:root{--bg:#faf9f5;--surface:#fff;--text:#1a1a2e;--text-secondary:#5a5a7a;--accent:#6366f1;--accent-hover:#4f46e5;--accent-subtle:#6366f11f;--border:#e8e6f0;--border-strong:#c8c4d8;--shadow:0 4px 16px #00000014;--shadow-md:0 8px 32px #0000001f;--radius:10px;--radius-sm:6px;--planet-sun:#f59e0b;--planet-moon:#94a3b8;--planet-mercury:#10b981;--planet-venus:#ec4899;--planet-mars:#ef4444;--planet-jupiter:#8b5cf6;--planet-saturn:#64748b;--planet-uranus:#06b6d4;--planet-neptune:#3b82f6;--planet-pluto:#a78bfa;--aspect-conjunction:#f59e0b;--aspect-opposition:#ef4444;--aspect-trine:#10b981;--aspect-square:#ef4444;--aspect-sextile:#3b82f6}@media (prefers-color-scheme:dark){:root{--bg:#0d1117;--surface:#161b22;--text:#e6edf3;--text-secondary:#8b949e;--accent:#818cf8;--accent-hover:#a5b4fc;--accent-subtle:#818cf826;--border:#21262d;--border-strong:#30363d;--shadow:0 4px 16px #0006;--shadow-md:0 8px 32px #0009}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:var(--bg);color:var(--text);-webkit-user-select:none;user-select:none;font-family:-apple-system,Inter,Segoe UI,system-ui,sans-serif;font-size:13px;line-height:1.5;overflow:hidden}#app{flex-direction:column;height:100vh;display:flex;position:relative}#loading-state{color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}#chart-container{flex:1;justify-content:center;align-items:center;min-height:0;padding:12px;display:flex;position:relative}#chart-container svg{width:auto;max-width:100%;height:auto;max-height:100%}.hit-region{cursor:pointer;fill:#0000;stroke:#0000;transition:fill .15s,stroke .15s}.hit-region:hover{fill:var(--accent-subtle);stroke:var(--accent);stroke-width:1px;stroke-opacity:.5}.hit-region.planet-hit{rx:12px;ry:12px}.hit-region.aspect-hit{stroke-width:6px}#controls-panel{border-top:1px solid var(--border);background:var(--surface);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px;padding:8px 12px;display:flex}.controls-label{color:var(--text-secondary);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;margin-right:2px;font-size:11px;font-weight:600}.control-btn{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;padding:3px 10px;font-family:inherit;font-size:12px;transition:background .12s,color .12s,border-color .12s}.control-btn:hover{background:var(--accent-subtle);color:var(--accent);border-color:var(--accent)}.control-btn.active{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}.controls-divider{background:var(--border);flex-shrink:0;width:1px;height:18px;margin:0 4px}.tooltip{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);pointer-events:none;box-shadow:var(--shadow-md);z-index:1000;opacity:0;max-width:220px;padding:8px 12px;font-size:12px;transition:opacity .12s;position:fixed}.tooltip.visible{opacity:1}.tooltip-title{color:var(--text);margin-bottom:2px;font-weight:700}.tooltip-detail{color:var(--text-secondary);line-height:1.4}.tooltip-hint{color:var(--accent);margin-top:4px;font-size:10px;font-style:italic}.error-state{text-align:center;color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;padding:24px;display:flex}.error-state .error-icon{margin-bottom:4px;font-size:32px}
413
+ <style>:root{--bg:#faf9f5;--surface:#fff;--text:#1a1a2e;--text-secondary:#5a5a7a;--accent:#6366f1;--accent-hover:#4f46e5;--accent-subtle:#6366f11f;--border:#e8e6f0;--border-strong:#c8c4d8;--shadow:0 4px 16px #00000014;--shadow-md:0 8px 32px #0000001f;--radius:10px;--radius-sm:6px;--planet-sun:#f59e0b;--planet-moon:#94a3b8;--planet-mercury:#10b981;--planet-venus:#ec4899;--planet-mars:#ef4444;--planet-jupiter:#8b5cf6;--planet-saturn:#64748b;--planet-uranus:#06b6d4;--planet-neptune:#3b82f6;--planet-pluto:#a78bfa;--aspect-conjunction:#f59e0b;--aspect-opposition:#ef4444;--aspect-trine:#10b981;--aspect-square:#ef4444;--aspect-sextile:#3b82f6;--color-fire:#e8854c;--color-earth:#7aaa6a;--color-air:#5aaad0;--color-water:#8878c8;--color-cardinal:#e05252;--color-fixed:#c0b052;--color-mutable:#52c07a}@media (prefers-color-scheme:dark){:root{--bg:#0d1117;--surface:#161b22;--text:#e6edf3;--text-secondary:#8b949e;--accent:#818cf8;--accent-hover:#a5b4fc;--accent-subtle:#818cf826;--border:#21262d;--border-strong:#30363d;--shadow:0 4px 16px #0006;--shadow-md:0 8px 32px #0009}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:var(--bg);color:var(--text);-webkit-user-select:none;user-select:none;font-family:-apple-system,Inter,Segoe UI,system-ui,sans-serif;font-size:13px;line-height:1.5;overflow:hidden}#app{flex-direction:column;height:100vh;display:flex;position:relative}#loading-state{color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}#chart-container{flex:1;justify-content:center;align-items:center;min-height:0;padding:12px;display:flex;position:relative}#chart-container svg{width:auto;max-width:100%;height:auto;max-height:100%}.hit-region{cursor:pointer;fill:#0000;stroke:#0000;transition:fill .15s,stroke .15s,opacity .2s}.hit-region:hover{fill:var(--accent-subtle);stroke:var(--accent);stroke-width:1px;stroke-opacity:.5}.hit-region.planet-hit{rx:12px;ry:12px}.hit-region.planet-hit:not(.dim){filter:none}.hit-region.dim{opacity:.15}.hit-region.aspect-hit{stroke-width:13px}.hit-region.aspect-hit.highlight{stroke:var(--aspect-color,#888);stroke-opacity:.55}.info-panel{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow-md);z-index:900;opacity:0;pointer-events:none;width:min(340px,92vw);padding:14px 16px 12px;transition:opacity .18s,transform .18s;position:fixed;bottom:126px;left:50%;transform:translate(-50%)translateY(12px)}.info-panel.visible{opacity:1;pointer-events:all;transform:translate(-50%)translateY(0)}.info-header{align-items:flex-start;gap:10px;margin-bottom:12px;display:flex}.info-glyph{text-align:center;flex-shrink:0;width:34px;font-size:28px;line-height:1}.info-title{color:var(--text);flex:1;font-size:13px;font-weight:700}.info-name-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.info-pos{color:var(--text-secondary);margin-top:2px;font-size:11px;font-weight:400}.retro{color:#e05252;font-style:normal}.info-close{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;border-radius:4px;flex-shrink:0;padding:2px 4px;font-size:13px;line-height:1;transition:color .12s}.info-close:hover{color:var(--text)}.aspects-title{text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary);margin-bottom:6px;font-size:10px;font-weight:700}.aspects-list{flex-direction:column;gap:4px;max-height:140px;display:flex;overflow-y:auto}.aspect-row{align-items:center;gap:7px;padding:3px 0;font-size:12px;display:flex}.aspect-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.aspect-sym{text-align:center;flex-shrink:0;width:16px;font-size:14px}.aspect-other{color:var(--text);flex:1}.aspect-meta{color:var(--text-secondary);white-space:nowrap;font-size:11px}.no-aspects{color:var(--text-secondary);padding:4px 0;font-size:11px;font-style:italic}.info-hint{color:var(--accent);text-align:center;margin-top:10px;font-size:10px;font-style:italic}.dignity-badge{white-space:nowrap;border-radius:99px;align-items:center;gap:3px;padding:1px 7px;font-size:10px;font-weight:600;line-height:1.6;display:inline-flex}.dignity-domicile{color:#2e9e5e;background:#52c07a2e;border:1px solid #52c07a66}.dignity-exaltation{color:#9a8600;background:#c0b0522e;border:1px solid #c0b05266}.dignity-detriment{color:#c03030;background:#e0525224;border:1px solid #e0525259}.dignity-fall{color:#707080;background:#9a9a9a24;border:1px solid #9a9a9a4d}@media (prefers-color-scheme:dark){.dignity-domicile{color:#6fe098;background:#52c07a1f}.dignity-exaltation{color:#e0cc60;background:#c0b0521f}.dignity-detriment{color:#e08080;background:#e052521a}.dignity-fall{color:#a0a0b0;background:#9a9a9a1a}}#tally-panel{border-top:1px solid var(--border);background:var(--surface);flex-shrink:0;align-items:center;gap:8px;padding:5px 12px;display:flex}.tally-section{flex-direction:column;gap:3px;display:flex}.tally-row{align-items:center;gap:8px;display:flex}.tally-item{white-space:nowrap;border-radius:4px;padding:1px 6px;font-size:11px;font-weight:600}.tally-item.fire{color:var(--color-fire);background:#e8854c1f}.tally-item.earth{color:var(--color-earth);background:#7aaa6a1f}.tally-item.air{color:var(--color-air);background:#5aaad01f}.tally-item.water{color:var(--color-water);background:#8878c81f}.tally-item.cardinal{color:var(--color-cardinal);background:#e052521a}.tally-item.fixed{color:var(--color-fixed);background:#c0b0521a}.tally-item.mutable{color:var(--color-mutable);background:#52c07a1a}.tally-bar-row{padding:2px 0}.tally-bar{background:var(--border);border-radius:2px;width:90px;height:4px;display:flex;overflow:hidden}.tally-bar-fill{height:100%;transition:width .4s}.tally-bar-fill.fire{background:var(--color-fire)}.tally-bar-fill.earth{background:var(--color-earth)}.tally-bar-fill.air{background:var(--color-air)}.tally-bar-fill.water{background:var(--color-water)}.tally-divider{background:var(--border);flex-shrink:0;width:1px;height:28px}#patterns-strip{border-top:1px solid var(--border);background:var(--surface);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:5px;padding:5px 12px;display:flex}.patterns-label{text-transform:uppercase;letter-spacing:.07em;color:var(--text-secondary);white-space:nowrap;margin-right:2px;font-size:10px;font-weight:700}.pattern-pill{cursor:pointer;white-space:nowrap;opacity:.85;background:0 0;border:1px solid;border-radius:99px;align-items:center;gap:4px;padding:2px 9px;font-family:inherit;font-size:11px;font-weight:600;transition:opacity .14s,box-shadow .14s,transform 80ms;display:inline-flex}.pattern-pill:hover{opacity:1;filter:brightness(1.05);box-shadow:0 0 0 2px #80808040}.pattern-pill.active{color:#fff;opacity:1;border-color:#0000;transform:translateY(-1px);box-shadow:0 2px 8px #00000040}#controls-panel{border-top:1px solid var(--border);background:var(--surface);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px;padding:8px 12px;display:flex}.controls-label{color:var(--text-secondary);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;margin-right:2px;font-size:11px;font-weight:600}.control-btn{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;padding:3px 10px;font-family:inherit;font-size:12px;transition:background .12s,color .12s,border-color .12s}.control-btn:hover{background:var(--accent-subtle);color:var(--accent);border-color:var(--accent)}.control-btn.active{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}.controls-divider{background:var(--border);flex-shrink:0;width:1px;height:18px;margin:0 4px}.tooltip{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);pointer-events:none;box-shadow:var(--shadow-md);z-index:1000;opacity:0;max-width:220px;padding:8px 12px;font-size:12px;transition:opacity .12s;position:fixed}.tooltip.visible{opacity:1}.tooltip-title{color:var(--text);margin-bottom:2px;font-weight:700}.tooltip-detail{color:var(--text-secondary);line-height:1.4}.tooltip-hint{color:var(--accent);margin-top:4px;font-size:10px;font-style:italic}.error-state{text-align:center;color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;padding:24px;display:flex}.error-state .error-icon{margin-bottom:4px;font-size:32px}
366
414
  /*$vite$:1*/</style>
367
415
  </head>
368
416
  <body>
@@ -372,10 +420,13 @@
372
420
  <p>Loading chart…</p>
373
421
  </div>
374
422
  <div id="chart-container" hidden></div>
423
+ <!-- Element/Modality tally + Pattern strip share the bottom bar with controls -->
424
+ <div id="tally-panel" hidden></div>
425
+ <div id="patterns-strip" hidden></div>
375
426
  <div id="controls-panel" hidden></div>
376
427
  <div id="tooltip" class="tooltip" aria-live="polite"></div>
377
428
  </div>
378
- ):void 0}),h(e._zod,`values`,()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(e,n)=>e.value===null?e:t.innerType._zod.run(e,n)}),Ei=i(`$ZodDefault`,(e,t)=>{C.init(e,t),e._zod.optin=`optional`,h(e._zod,`values`,()=>t.innerType._zod.values),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);if(e.value===void 0)return e.value=t.defaultValue,e;let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(e=>Di(e,t)):Di(r,t)}});function Di(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}var Oi=i(`$ZodPrefault`,(e,t)=>{C.init(e,t),e._zod.optin=`optional`,h(e._zod,`values`,()=>t.innerType._zod.values),e._zod.parse=(e,n)=>(n.direction===`backward`||e.value===void 0&&(e.value=t.defaultValue),t.innerType._zod.run(e,n))}),ki=i(`$ZodNonOptional`,(e,t)=>{C.init(e,t),h(e._zod,`values`,()=>{let e=t.innerType._zod.values;return e?new Set([...e].filter(e=>e!==void 0)):void 0}),e._zod.parse=(n,r)=>{let i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(t=>Ai(t,e)):Ai(i,e)}});function Ai(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:`invalid_type`,expected:`nonoptional`,input:e.value,inst:t}),e}var ji=i(`$ZodSuccess`,(e,t)=>{C.init(e,t),e._zod.parse=(e,n)=>{if(n.direction===`backward`)throw new s(`ZodSuccess`);let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(t=>(e.value=t.issues.length===0,e)):(e.value=r.issues.length===0,e)}}),Mi=i(`$ZodCatch`,(e,t)=>{C.init(e,t),h(e._zod,`optin`,()=>t.innerType._zod.optin),h(e._zod,`optout`,()=>t.innerType._zod.optout),h(e._zod,`values`,()=>t.innerType._zod.values),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(r=>(e.value=r.value,r.issues.length&&(e.value=t.catchValue({...e,error:{issues:r.issues.map(e=>b(e,n,l()))},input:e.value}),e.issues=[]),e)):(e.value=r.value,r.issues.length&&(e.value=t.catchValue({...e,error:{issues:r.issues.map(e=>b(e,n,l()))},input:e.value}),e.issues=[]),e)}}),Ni=i(`$ZodNaN`,(e,t)=>{C.init(e,t),e._zod.parse=(t,n)=>((typeof t.value!=`number`||!Number.isNaN(t.value))&&t.issues.push({input:t.value,inst:e,expected:`nan`,code:`invalid_type`}),t)}),Pi=i(`$ZodPipe`,(e,t)=>{C.init(e,t),h(e._zod,`values`,()=>t.in._zod.values),h(e._zod,`optin`,()=>t.in._zod.optin),h(e._zod,`optout`,()=>t.out._zod.optout),h(e._zod,`propValues`,()=>t.in._zod.propValues),e._zod.parse=(e,n)=>{if(n.direction===`backward`){let r=t.out._zod.run(e,n);return r instanceof Promise?r.then(e=>Fi(e,t.in,n)):Fi(r,t.in,n)}let r=t.in._zod.run(e,n);return r instanceof Promise?r.then(e=>Fi(e,t.out,n)):Fi(r,t.out,n)}});function Fi(e,t,n){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues},n)}var Ii=i(`$ZodCodec`,(e,t)=>{C.init(e,t),h(e._zod,`values`,()=>t.in._zod.values),h(e._zod,`optin`,()=>t.in._zod.optin),h(e._zod,`optout`,()=>t.out._zod.optout),h(e._zod,`propValues`,()=>t.in._zod.propValues),e._zod.parse=(e,n)=>{if((n.direction||`forward`)===`forward`){let r=t.in._zod.run(e,n);return r instanceof Promise?r.then(e=>Li(e,t,n)):Li(r,t,n)}else{let r=t.out._zod.run(e,n);return r instanceof Promise?r.then(e=>Li(e,t,n)):Li(r,t,n)}}});function Li(e,t,n){if(e.issues.length)return e.aborted=!0,e;if((n.direction||`forward`)===`forward`){let r=t.transform(e.value,e);return r instanceof Promise?r.then(r=>Ri(e,r,t.out,n)):Ri(e,r,t.out,n)}else{let r=t.reverseTransform(e.value,e);return r instanceof Promise?r.then(r=>Ri(e,r,t.in,n)):Ri(e,r,t.in,n)}}function Ri(e,t,n,r){return e.issues.length?(e.aborted=!0,e):n._zod.run({value:t,issues:e.issues},r)}var zi=i(`$ZodReadonly`,(e,t)=>{C.init(e,t),h(e._zod,`propValues`,()=>t.innerType._zod.propValues),h(e._zod,`values`,()=>t.innerType._zod.values),h(e._zod,`optin`,()=>t.innerType?._zod?.optin),h(e._zod,`optout`,()=>t.innerType?._zod?.optout),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(Bi):Bi(r)}});function Bi(e){return e.value=Object.freeze(e.value),e}var Vi=i(`$ZodTemplateLiteral`,(e,t)=>{C.init(e,t);let n=[];for(let e of t.parts)if(typeof e==`object`&&e){if(!e._zod.pattern)throw Error(`Invalid template literal part, no pattern found: ${[...e._zod.traits].shift()}`);let t=e._zod.pattern instanceof RegExp?e._zod.pattern.source:e._zod.pattern;if(!t)throw Error(`Invalid template literal part: ${e._zod.traits}`);let r=+!!t.startsWith(`^`),i=t.endsWith(`<!DOCTYPE html>
429
+ ):void 0}),y(e._zod,`values`,()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(e,n)=>e.value===null?e:t.innerType._zod.run(e,n)}),wi=i(`$ZodDefault`,(e,t)=>{T.init(e,t),e._zod.optin=`optional`,y(e._zod,`values`,()=>t.innerType._zod.values),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);if(e.value===void 0)return e.value=t.defaultValue,e;let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(e=>Ti(e,t)):Ti(r,t)}});function Ti(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}var Ei=i(`$ZodPrefault`,(e,t)=>{T.init(e,t),e._zod.optin=`optional`,y(e._zod,`values`,()=>t.innerType._zod.values),e._zod.parse=(e,n)=>(n.direction===`backward`||e.value===void 0&&(e.value=t.defaultValue),t.innerType._zod.run(e,n))}),Di=i(`$ZodNonOptional`,(e,t)=>{T.init(e,t),y(e._zod,`values`,()=>{let e=t.innerType._zod.values;return e?new Set([...e].filter(e=>e!==void 0)):void 0}),e._zod.parse=(n,r)=>{let i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(t=>Oi(t,e)):Oi(i,e)}});function Oi(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:`invalid_type`,expected:`nonoptional`,input:e.value,inst:t}),e}var ki=i(`$ZodSuccess`,(e,t)=>{T.init(e,t),e._zod.parse=(e,n)=>{if(n.direction===`backward`)throw new s(`ZodSuccess`);let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(t=>(e.value=t.issues.length===0,e)):(e.value=r.issues.length===0,e)}}),Ai=i(`$ZodCatch`,(e,t)=>{T.init(e,t),y(e._zod,`optin`,()=>t.innerType._zod.optin),y(e._zod,`optout`,()=>t.innerType._zod.optout),y(e._zod,`values`,()=>t.innerType._zod.values),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(r=>(e.value=r.value,r.issues.length&&(e.value=t.catchValue({...e,error:{issues:r.issues.map(e=>Re(e,n,l()))},input:e.value}),e.issues=[]),e)):(e.value=r.value,r.issues.length&&(e.value=t.catchValue({...e,error:{issues:r.issues.map(e=>Re(e,n,l()))},input:e.value}),e.issues=[]),e)}}),ji=i(`$ZodNaN`,(e,t)=>{T.init(e,t),e._zod.parse=(t,n)=>((typeof t.value!=`number`||!Number.isNaN(t.value))&&t.issues.push({input:t.value,inst:e,expected:`nan`,code:`invalid_type`}),t)}),Mi=i(`$ZodPipe`,(e,t)=>{T.init(e,t),y(e._zod,`values`,()=>t.in._zod.values),y(e._zod,`optin`,()=>t.in._zod.optin),y(e._zod,`optout`,()=>t.out._zod.optout),y(e._zod,`propValues`,()=>t.in._zod.propValues),e._zod.parse=(e,n)=>{if(n.direction===`backward`){let r=t.out._zod.run(e,n);return r instanceof Promise?r.then(e=>Ni(e,t.in,n)):Ni(r,t.in,n)}let r=t.in._zod.run(e,n);return r instanceof Promise?r.then(e=>Ni(e,t.out,n)):Ni(r,t.out,n)}});function Ni(e,t,n){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues},n)}var Pi=i(`$ZodCodec`,(e,t)=>{T.init(e,t),y(e._zod,`values`,()=>t.in._zod.values),y(e._zod,`optin`,()=>t.in._zod.optin),y(e._zod,`optout`,()=>t.out._zod.optout),y(e._zod,`propValues`,()=>t.in._zod.propValues),e._zod.parse=(e,n)=>{if((n.direction||`forward`)===`forward`){let r=t.in._zod.run(e,n);return r instanceof Promise?r.then(e=>Fi(e,t,n)):Fi(r,t,n)}else{let r=t.out._zod.run(e,n);return r instanceof Promise?r.then(e=>Fi(e,t,n)):Fi(r,t,n)}}});function Fi(e,t,n){if(e.issues.length)return e.aborted=!0,e;if((n.direction||`forward`)===`forward`){let r=t.transform(e.value,e);return r instanceof Promise?r.then(r=>Ii(e,r,t.out,n)):Ii(e,r,t.out,n)}else{let r=t.reverseTransform(e.value,e);return r instanceof Promise?r.then(r=>Ii(e,r,t.in,n)):Ii(e,r,t.in,n)}}function Ii(e,t,n,r){return e.issues.length?(e.aborted=!0,e):n._zod.run({value:t,issues:e.issues},r)}var Li=i(`$ZodReadonly`,(e,t)=>{T.init(e,t),y(e._zod,`propValues`,()=>t.innerType._zod.propValues),y(e._zod,`values`,()=>t.innerType._zod.values),y(e._zod,`optin`,()=>t.innerType?._zod?.optin),y(e._zod,`optout`,()=>t.innerType?._zod?.optout),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(Ri):Ri(r)}});function Ri(e){return e.value=Object.freeze(e.value),e}var zi=i(`$ZodTemplateLiteral`,(e,t)=>{T.init(e,t);let n=[];for(let e of t.parts)if(typeof e==`object`&&e){if(!e._zod.pattern)throw Error(`Invalid template literal part, no pattern found: ${[...e._zod.traits].shift()}`);let t=e._zod.pattern instanceof RegExp?e._zod.pattern.source:e._zod.pattern;if(!t)throw Error(`Invalid template literal part: ${e._zod.traits}`);let r=+!!t.startsWith(`^`),i=t.endsWith(`<!DOCTYPE html>
379
430
  <html lang="en">
380
431
  <head>
381
432
  <meta charset="UTF-8" />
@@ -383,7 +434,7 @@
383
434
  <title>Chart Wheel Explorer</title>
384
435
 
385
436
 
386
- <style>:root{--bg:#faf9f5;--surface:#fff;--text:#1a1a2e;--text-secondary:#5a5a7a;--accent:#6366f1;--accent-hover:#4f46e5;--accent-subtle:#6366f11f;--border:#e8e6f0;--border-strong:#c8c4d8;--shadow:0 4px 16px #00000014;--shadow-md:0 8px 32px #0000001f;--radius:10px;--radius-sm:6px;--planet-sun:#f59e0b;--planet-moon:#94a3b8;--planet-mercury:#10b981;--planet-venus:#ec4899;--planet-mars:#ef4444;--planet-jupiter:#8b5cf6;--planet-saturn:#64748b;--planet-uranus:#06b6d4;--planet-neptune:#3b82f6;--planet-pluto:#a78bfa;--aspect-conjunction:#f59e0b;--aspect-opposition:#ef4444;--aspect-trine:#10b981;--aspect-square:#ef4444;--aspect-sextile:#3b82f6}@media (prefers-color-scheme:dark){:root{--bg:#0d1117;--surface:#161b22;--text:#e6edf3;--text-secondary:#8b949e;--accent:#818cf8;--accent-hover:#a5b4fc;--accent-subtle:#818cf826;--border:#21262d;--border-strong:#30363d;--shadow:0 4px 16px #0006;--shadow-md:0 8px 32px #0009}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:var(--bg);color:var(--text);-webkit-user-select:none;user-select:none;font-family:-apple-system,Inter,Segoe UI,system-ui,sans-serif;font-size:13px;line-height:1.5;overflow:hidden}#app{flex-direction:column;height:100vh;display:flex;position:relative}#loading-state{color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}#chart-container{flex:1;justify-content:center;align-items:center;min-height:0;padding:12px;display:flex;position:relative}#chart-container svg{width:auto;max-width:100%;height:auto;max-height:100%}.hit-region{cursor:pointer;fill:#0000;stroke:#0000;transition:fill .15s,stroke .15s}.hit-region:hover{fill:var(--accent-subtle);stroke:var(--accent);stroke-width:1px;stroke-opacity:.5}.hit-region.planet-hit{rx:12px;ry:12px}.hit-region.aspect-hit{stroke-width:6px}#controls-panel{border-top:1px solid var(--border);background:var(--surface);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px;padding:8px 12px;display:flex}.controls-label{color:var(--text-secondary);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;margin-right:2px;font-size:11px;font-weight:600}.control-btn{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;padding:3px 10px;font-family:inherit;font-size:12px;transition:background .12s,color .12s,border-color .12s}.control-btn:hover{background:var(--accent-subtle);color:var(--accent);border-color:var(--accent)}.control-btn.active{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}.controls-divider{background:var(--border);flex-shrink:0;width:1px;height:18px;margin:0 4px}.tooltip{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);pointer-events:none;box-shadow:var(--shadow-md);z-index:1000;opacity:0;max-width:220px;padding:8px 12px;font-size:12px;transition:opacity .12s;position:fixed}.tooltip.visible{opacity:1}.tooltip-title{color:var(--text);margin-bottom:2px;font-weight:700}.tooltip-detail{color:var(--text-secondary);line-height:1.4}.tooltip-hint{color:var(--accent);margin-top:4px;font-size:10px;font-style:italic}.error-state{text-align:center;color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;padding:24px;display:flex}.error-state .error-icon{margin-bottom:4px;font-size:32px}
437
+ <style>:root{--bg:#faf9f5;--surface:#fff;--text:#1a1a2e;--text-secondary:#5a5a7a;--accent:#6366f1;--accent-hover:#4f46e5;--accent-subtle:#6366f11f;--border:#e8e6f0;--border-strong:#c8c4d8;--shadow:0 4px 16px #00000014;--shadow-md:0 8px 32px #0000001f;--radius:10px;--radius-sm:6px;--planet-sun:#f59e0b;--planet-moon:#94a3b8;--planet-mercury:#10b981;--planet-venus:#ec4899;--planet-mars:#ef4444;--planet-jupiter:#8b5cf6;--planet-saturn:#64748b;--planet-uranus:#06b6d4;--planet-neptune:#3b82f6;--planet-pluto:#a78bfa;--aspect-conjunction:#f59e0b;--aspect-opposition:#ef4444;--aspect-trine:#10b981;--aspect-square:#ef4444;--aspect-sextile:#3b82f6;--color-fire:#e8854c;--color-earth:#7aaa6a;--color-air:#5aaad0;--color-water:#8878c8;--color-cardinal:#e05252;--color-fixed:#c0b052;--color-mutable:#52c07a}@media (prefers-color-scheme:dark){:root{--bg:#0d1117;--surface:#161b22;--text:#e6edf3;--text-secondary:#8b949e;--accent:#818cf8;--accent-hover:#a5b4fc;--accent-subtle:#818cf826;--border:#21262d;--border-strong:#30363d;--shadow:0 4px 16px #0006;--shadow-md:0 8px 32px #0009}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:var(--bg);color:var(--text);-webkit-user-select:none;user-select:none;font-family:-apple-system,Inter,Segoe UI,system-ui,sans-serif;font-size:13px;line-height:1.5;overflow:hidden}#app{flex-direction:column;height:100vh;display:flex;position:relative}#loading-state{color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}#chart-container{flex:1;justify-content:center;align-items:center;min-height:0;padding:12px;display:flex;position:relative}#chart-container svg{width:auto;max-width:100%;height:auto;max-height:100%}.hit-region{cursor:pointer;fill:#0000;stroke:#0000;transition:fill .15s,stroke .15s,opacity .2s}.hit-region:hover{fill:var(--accent-subtle);stroke:var(--accent);stroke-width:1px;stroke-opacity:.5}.hit-region.planet-hit{rx:12px;ry:12px}.hit-region.planet-hit:not(.dim){filter:none}.hit-region.dim{opacity:.15}.hit-region.aspect-hit{stroke-width:13px}.hit-region.aspect-hit.highlight{stroke:var(--aspect-color,#888);stroke-opacity:.55}.info-panel{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow-md);z-index:900;opacity:0;pointer-events:none;width:min(340px,92vw);padding:14px 16px 12px;transition:opacity .18s,transform .18s;position:fixed;bottom:126px;left:50%;transform:translate(-50%)translateY(12px)}.info-panel.visible{opacity:1;pointer-events:all;transform:translate(-50%)translateY(0)}.info-header{align-items:flex-start;gap:10px;margin-bottom:12px;display:flex}.info-glyph{text-align:center;flex-shrink:0;width:34px;font-size:28px;line-height:1}.info-title{color:var(--text);flex:1;font-size:13px;font-weight:700}.info-name-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.info-pos{color:var(--text-secondary);margin-top:2px;font-size:11px;font-weight:400}.retro{color:#e05252;font-style:normal}.info-close{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;border-radius:4px;flex-shrink:0;padding:2px 4px;font-size:13px;line-height:1;transition:color .12s}.info-close:hover{color:var(--text)}.aspects-title{text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary);margin-bottom:6px;font-size:10px;font-weight:700}.aspects-list{flex-direction:column;gap:4px;max-height:140px;display:flex;overflow-y:auto}.aspect-row{align-items:center;gap:7px;padding:3px 0;font-size:12px;display:flex}.aspect-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.aspect-sym{text-align:center;flex-shrink:0;width:16px;font-size:14px}.aspect-other{color:var(--text);flex:1}.aspect-meta{color:var(--text-secondary);white-space:nowrap;font-size:11px}.no-aspects{color:var(--text-secondary);padding:4px 0;font-size:11px;font-style:italic}.info-hint{color:var(--accent);text-align:center;margin-top:10px;font-size:10px;font-style:italic}.dignity-badge{white-space:nowrap;border-radius:99px;align-items:center;gap:3px;padding:1px 7px;font-size:10px;font-weight:600;line-height:1.6;display:inline-flex}.dignity-domicile{color:#2e9e5e;background:#52c07a2e;border:1px solid #52c07a66}.dignity-exaltation{color:#9a8600;background:#c0b0522e;border:1px solid #c0b05266}.dignity-detriment{color:#c03030;background:#e0525224;border:1px solid #e0525259}.dignity-fall{color:#707080;background:#9a9a9a24;border:1px solid #9a9a9a4d}@media (prefers-color-scheme:dark){.dignity-domicile{color:#6fe098;background:#52c07a1f}.dignity-exaltation{color:#e0cc60;background:#c0b0521f}.dignity-detriment{color:#e08080;background:#e052521a}.dignity-fall{color:#a0a0b0;background:#9a9a9a1a}}#tally-panel{border-top:1px solid var(--border);background:var(--surface);flex-shrink:0;align-items:center;gap:8px;padding:5px 12px;display:flex}.tally-section{flex-direction:column;gap:3px;display:flex}.tally-row{align-items:center;gap:8px;display:flex}.tally-item{white-space:nowrap;border-radius:4px;padding:1px 6px;font-size:11px;font-weight:600}.tally-item.fire{color:var(--color-fire);background:#e8854c1f}.tally-item.earth{color:var(--color-earth);background:#7aaa6a1f}.tally-item.air{color:var(--color-air);background:#5aaad01f}.tally-item.water{color:var(--color-water);background:#8878c81f}.tally-item.cardinal{color:var(--color-cardinal);background:#e052521a}.tally-item.fixed{color:var(--color-fixed);background:#c0b0521a}.tally-item.mutable{color:var(--color-mutable);background:#52c07a1a}.tally-bar-row{padding:2px 0}.tally-bar{background:var(--border);border-radius:2px;width:90px;height:4px;display:flex;overflow:hidden}.tally-bar-fill{height:100%;transition:width .4s}.tally-bar-fill.fire{background:var(--color-fire)}.tally-bar-fill.earth{background:var(--color-earth)}.tally-bar-fill.air{background:var(--color-air)}.tally-bar-fill.water{background:var(--color-water)}.tally-divider{background:var(--border);flex-shrink:0;width:1px;height:28px}#patterns-strip{border-top:1px solid var(--border);background:var(--surface);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:5px;padding:5px 12px;display:flex}.patterns-label{text-transform:uppercase;letter-spacing:.07em;color:var(--text-secondary);white-space:nowrap;margin-right:2px;font-size:10px;font-weight:700}.pattern-pill{cursor:pointer;white-space:nowrap;opacity:.85;background:0 0;border:1px solid;border-radius:99px;align-items:center;gap:4px;padding:2px 9px;font-family:inherit;font-size:11px;font-weight:600;transition:opacity .14s,box-shadow .14s,transform 80ms;display:inline-flex}.pattern-pill:hover{opacity:1;filter:brightness(1.05);box-shadow:0 0 0 2px #80808040}.pattern-pill.active{color:#fff;opacity:1;border-color:#0000;transform:translateY(-1px);box-shadow:0 2px 8px #00000040}#controls-panel{border-top:1px solid var(--border);background:var(--surface);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px;padding:8px 12px;display:flex}.controls-label{color:var(--text-secondary);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;margin-right:2px;font-size:11px;font-weight:600}.control-btn{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;padding:3px 10px;font-family:inherit;font-size:12px;transition:background .12s,color .12s,border-color .12s}.control-btn:hover{background:var(--accent-subtle);color:var(--accent);border-color:var(--accent)}.control-btn.active{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}.controls-divider{background:var(--border);flex-shrink:0;width:1px;height:18px;margin:0 4px}.tooltip{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);pointer-events:none;box-shadow:var(--shadow-md);z-index:1000;opacity:0;max-width:220px;padding:8px 12px;font-size:12px;transition:opacity .12s;position:fixed}.tooltip.visible{opacity:1}.tooltip-title{color:var(--text);margin-bottom:2px;font-weight:700}.tooltip-detail{color:var(--text-secondary);line-height:1.4}.tooltip-hint{color:var(--accent);margin-top:4px;font-size:10px;font-style:italic}.error-state{text-align:center;color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;padding:24px;display:flex}.error-state .error-icon{margin-bottom:4px;font-size:32px}
387
438
  /*$vite$:1*/</style>
388
439
  </head>
389
440
  <body>
@@ -393,10 +444,13 @@
393
444
  <p>Loading chart…</p>
394
445
  </div>
395
446
  <div id="chart-container" hidden></div>
447
+ <!-- Element/Modality tally + Pattern strip share the bottom bar with controls -->
448
+ <div id="tally-panel" hidden></div>
449
+ <div id="patterns-strip" hidden></div>
396
450
  <div id="controls-panel" hidden></div>
397
451
  <div id="tooltip" class="tooltip" aria-live="polite"></div>
398
452
  </div>
399
- )?t.length-1:t.length;n.push(t.slice(r,i))}else if(e===null||Ee.has(typeof e))n.push(De(`${e}`));else throw Error(`Invalid template literal part: ${e}`);e._zod.pattern=RegExp(`^${n.join(``)}<!DOCTYPE html>
453
+ )?t.length-1:t.length;n.push(t.slice(r,i))}else if(e===null||Se.has(typeof e))n.push(Ce(`${e}`));else throw Error(`Invalid template literal part: ${e}`);e._zod.pattern=RegExp(`^${n.join(``)}<!DOCTYPE html>
400
454
  <html lang="en">
401
455
  <head>
402
456
  <meta charset="UTF-8" />
@@ -404,7 +458,7 @@
404
458
  <title>Chart Wheel Explorer</title>
405
459
 
406
460
 
407
- <style>:root{--bg:#faf9f5;--surface:#fff;--text:#1a1a2e;--text-secondary:#5a5a7a;--accent:#6366f1;--accent-hover:#4f46e5;--accent-subtle:#6366f11f;--border:#e8e6f0;--border-strong:#c8c4d8;--shadow:0 4px 16px #00000014;--shadow-md:0 8px 32px #0000001f;--radius:10px;--radius-sm:6px;--planet-sun:#f59e0b;--planet-moon:#94a3b8;--planet-mercury:#10b981;--planet-venus:#ec4899;--planet-mars:#ef4444;--planet-jupiter:#8b5cf6;--planet-saturn:#64748b;--planet-uranus:#06b6d4;--planet-neptune:#3b82f6;--planet-pluto:#a78bfa;--aspect-conjunction:#f59e0b;--aspect-opposition:#ef4444;--aspect-trine:#10b981;--aspect-square:#ef4444;--aspect-sextile:#3b82f6}@media (prefers-color-scheme:dark){:root{--bg:#0d1117;--surface:#161b22;--text:#e6edf3;--text-secondary:#8b949e;--accent:#818cf8;--accent-hover:#a5b4fc;--accent-subtle:#818cf826;--border:#21262d;--border-strong:#30363d;--shadow:0 4px 16px #0006;--shadow-md:0 8px 32px #0009}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:var(--bg);color:var(--text);-webkit-user-select:none;user-select:none;font-family:-apple-system,Inter,Segoe UI,system-ui,sans-serif;font-size:13px;line-height:1.5;overflow:hidden}#app{flex-direction:column;height:100vh;display:flex;position:relative}#loading-state{color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}#chart-container{flex:1;justify-content:center;align-items:center;min-height:0;padding:12px;display:flex;position:relative}#chart-container svg{width:auto;max-width:100%;height:auto;max-height:100%}.hit-region{cursor:pointer;fill:#0000;stroke:#0000;transition:fill .15s,stroke .15s}.hit-region:hover{fill:var(--accent-subtle);stroke:var(--accent);stroke-width:1px;stroke-opacity:.5}.hit-region.planet-hit{rx:12px;ry:12px}.hit-region.aspect-hit{stroke-width:6px}#controls-panel{border-top:1px solid var(--border);background:var(--surface);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px;padding:8px 12px;display:flex}.controls-label{color:var(--text-secondary);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;margin-right:2px;font-size:11px;font-weight:600}.control-btn{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;padding:3px 10px;font-family:inherit;font-size:12px;transition:background .12s,color .12s,border-color .12s}.control-btn:hover{background:var(--accent-subtle);color:var(--accent);border-color:var(--accent)}.control-btn.active{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}.controls-divider{background:var(--border);flex-shrink:0;width:1px;height:18px;margin:0 4px}.tooltip{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);pointer-events:none;box-shadow:var(--shadow-md);z-index:1000;opacity:0;max-width:220px;padding:8px 12px;font-size:12px;transition:opacity .12s;position:fixed}.tooltip.visible{opacity:1}.tooltip-title{color:var(--text);margin-bottom:2px;font-weight:700}.tooltip-detail{color:var(--text-secondary);line-height:1.4}.tooltip-hint{color:var(--accent);margin-top:4px;font-size:10px;font-style:italic}.error-state{text-align:center;color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;padding:24px;display:flex}.error-state .error-icon{margin-bottom:4px;font-size:32px}
461
+ <style>:root{--bg:#faf9f5;--surface:#fff;--text:#1a1a2e;--text-secondary:#5a5a7a;--accent:#6366f1;--accent-hover:#4f46e5;--accent-subtle:#6366f11f;--border:#e8e6f0;--border-strong:#c8c4d8;--shadow:0 4px 16px #00000014;--shadow-md:0 8px 32px #0000001f;--radius:10px;--radius-sm:6px;--planet-sun:#f59e0b;--planet-moon:#94a3b8;--planet-mercury:#10b981;--planet-venus:#ec4899;--planet-mars:#ef4444;--planet-jupiter:#8b5cf6;--planet-saturn:#64748b;--planet-uranus:#06b6d4;--planet-neptune:#3b82f6;--planet-pluto:#a78bfa;--aspect-conjunction:#f59e0b;--aspect-opposition:#ef4444;--aspect-trine:#10b981;--aspect-square:#ef4444;--aspect-sextile:#3b82f6;--color-fire:#e8854c;--color-earth:#7aaa6a;--color-air:#5aaad0;--color-water:#8878c8;--color-cardinal:#e05252;--color-fixed:#c0b052;--color-mutable:#52c07a}@media (prefers-color-scheme:dark){:root{--bg:#0d1117;--surface:#161b22;--text:#e6edf3;--text-secondary:#8b949e;--accent:#818cf8;--accent-hover:#a5b4fc;--accent-subtle:#818cf826;--border:#21262d;--border-strong:#30363d;--shadow:0 4px 16px #0006;--shadow-md:0 8px 32px #0009}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:var(--bg);color:var(--text);-webkit-user-select:none;user-select:none;font-family:-apple-system,Inter,Segoe UI,system-ui,sans-serif;font-size:13px;line-height:1.5;overflow:hidden}#app{flex-direction:column;height:100vh;display:flex;position:relative}#loading-state{color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}#chart-container{flex:1;justify-content:center;align-items:center;min-height:0;padding:12px;display:flex;position:relative}#chart-container svg{width:auto;max-width:100%;height:auto;max-height:100%}.hit-region{cursor:pointer;fill:#0000;stroke:#0000;transition:fill .15s,stroke .15s,opacity .2s}.hit-region:hover{fill:var(--accent-subtle);stroke:var(--accent);stroke-width:1px;stroke-opacity:.5}.hit-region.planet-hit{rx:12px;ry:12px}.hit-region.planet-hit:not(.dim){filter:none}.hit-region.dim{opacity:.15}.hit-region.aspect-hit{stroke-width:13px}.hit-region.aspect-hit.highlight{stroke:var(--aspect-color,#888);stroke-opacity:.55}.info-panel{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow-md);z-index:900;opacity:0;pointer-events:none;width:min(340px,92vw);padding:14px 16px 12px;transition:opacity .18s,transform .18s;position:fixed;bottom:126px;left:50%;transform:translate(-50%)translateY(12px)}.info-panel.visible{opacity:1;pointer-events:all;transform:translate(-50%)translateY(0)}.info-header{align-items:flex-start;gap:10px;margin-bottom:12px;display:flex}.info-glyph{text-align:center;flex-shrink:0;width:34px;font-size:28px;line-height:1}.info-title{color:var(--text);flex:1;font-size:13px;font-weight:700}.info-name-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.info-pos{color:var(--text-secondary);margin-top:2px;font-size:11px;font-weight:400}.retro{color:#e05252;font-style:normal}.info-close{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;border-radius:4px;flex-shrink:0;padding:2px 4px;font-size:13px;line-height:1;transition:color .12s}.info-close:hover{color:var(--text)}.aspects-title{text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary);margin-bottom:6px;font-size:10px;font-weight:700}.aspects-list{flex-direction:column;gap:4px;max-height:140px;display:flex;overflow-y:auto}.aspect-row{align-items:center;gap:7px;padding:3px 0;font-size:12px;display:flex}.aspect-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.aspect-sym{text-align:center;flex-shrink:0;width:16px;font-size:14px}.aspect-other{color:var(--text);flex:1}.aspect-meta{color:var(--text-secondary);white-space:nowrap;font-size:11px}.no-aspects{color:var(--text-secondary);padding:4px 0;font-size:11px;font-style:italic}.info-hint{color:var(--accent);text-align:center;margin-top:10px;font-size:10px;font-style:italic}.dignity-badge{white-space:nowrap;border-radius:99px;align-items:center;gap:3px;padding:1px 7px;font-size:10px;font-weight:600;line-height:1.6;display:inline-flex}.dignity-domicile{color:#2e9e5e;background:#52c07a2e;border:1px solid #52c07a66}.dignity-exaltation{color:#9a8600;background:#c0b0522e;border:1px solid #c0b05266}.dignity-detriment{color:#c03030;background:#e0525224;border:1px solid #e0525259}.dignity-fall{color:#707080;background:#9a9a9a24;border:1px solid #9a9a9a4d}@media (prefers-color-scheme:dark){.dignity-domicile{color:#6fe098;background:#52c07a1f}.dignity-exaltation{color:#e0cc60;background:#c0b0521f}.dignity-detriment{color:#e08080;background:#e052521a}.dignity-fall{color:#a0a0b0;background:#9a9a9a1a}}#tally-panel{border-top:1px solid var(--border);background:var(--surface);flex-shrink:0;align-items:center;gap:8px;padding:5px 12px;display:flex}.tally-section{flex-direction:column;gap:3px;display:flex}.tally-row{align-items:center;gap:8px;display:flex}.tally-item{white-space:nowrap;border-radius:4px;padding:1px 6px;font-size:11px;font-weight:600}.tally-item.fire{color:var(--color-fire);background:#e8854c1f}.tally-item.earth{color:var(--color-earth);background:#7aaa6a1f}.tally-item.air{color:var(--color-air);background:#5aaad01f}.tally-item.water{color:var(--color-water);background:#8878c81f}.tally-item.cardinal{color:var(--color-cardinal);background:#e052521a}.tally-item.fixed{color:var(--color-fixed);background:#c0b0521a}.tally-item.mutable{color:var(--color-mutable);background:#52c07a1a}.tally-bar-row{padding:2px 0}.tally-bar{background:var(--border);border-radius:2px;width:90px;height:4px;display:flex;overflow:hidden}.tally-bar-fill{height:100%;transition:width .4s}.tally-bar-fill.fire{background:var(--color-fire)}.tally-bar-fill.earth{background:var(--color-earth)}.tally-bar-fill.air{background:var(--color-air)}.tally-bar-fill.water{background:var(--color-water)}.tally-divider{background:var(--border);flex-shrink:0;width:1px;height:28px}#patterns-strip{border-top:1px solid var(--border);background:var(--surface);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:5px;padding:5px 12px;display:flex}.patterns-label{text-transform:uppercase;letter-spacing:.07em;color:var(--text-secondary);white-space:nowrap;margin-right:2px;font-size:10px;font-weight:700}.pattern-pill{cursor:pointer;white-space:nowrap;opacity:.85;background:0 0;border:1px solid;border-radius:99px;align-items:center;gap:4px;padding:2px 9px;font-family:inherit;font-size:11px;font-weight:600;transition:opacity .14s,box-shadow .14s,transform 80ms;display:inline-flex}.pattern-pill:hover{opacity:1;filter:brightness(1.05);box-shadow:0 0 0 2px #80808040}.pattern-pill.active{color:#fff;opacity:1;border-color:#0000;transform:translateY(-1px);box-shadow:0 2px 8px #00000040}#controls-panel{border-top:1px solid var(--border);background:var(--surface);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px;padding:8px 12px;display:flex}.controls-label{color:var(--text-secondary);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;margin-right:2px;font-size:11px;font-weight:600}.control-btn{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;padding:3px 10px;font-family:inherit;font-size:12px;transition:background .12s,color .12s,border-color .12s}.control-btn:hover{background:var(--accent-subtle);color:var(--accent);border-color:var(--accent)}.control-btn.active{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}.controls-divider{background:var(--border);flex-shrink:0;width:1px;height:18px;margin:0 4px}.tooltip{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);pointer-events:none;box-shadow:var(--shadow-md);z-index:1000;opacity:0;max-width:220px;padding:8px 12px;font-size:12px;transition:opacity .12s;position:fixed}.tooltip.visible{opacity:1}.tooltip-title{color:var(--text);margin-bottom:2px;font-weight:700}.tooltip-detail{color:var(--text-secondary);line-height:1.4}.tooltip-hint{color:var(--accent);margin-top:4px;font-size:10px;font-style:italic}.error-state{text-align:center;color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;padding:24px;display:flex}.error-state .error-icon{margin-bottom:4px;font-size:32px}
408
462
  /*$vite$:1*/</style>
409
463
  </head>
410
464
  <body>
@@ -414,18 +468,21 @@
414
468
  <p>Loading chart…</p>
415
469
  </div>
416
470
  <div id="chart-container" hidden></div>
471
+ <!-- Element/Modality tally + Pattern strip share the bottom bar with controls -->
472
+ <div id="tally-panel" hidden></div>
473
+ <div id="patterns-strip" hidden></div>
417
474
  <div id="controls-panel" hidden></div>
418
475
  <div id="tooltip" class="tooltip" aria-live="polite"></div>
419
476
  </div>
420
- ),e._zod.parse=(n,r)=>typeof n.value==`string`?(e._zod.pattern.lastIndex=0,e._zod.pattern.test(n.value)||n.issues.push({input:n.value,inst:e,code:`invalid_format`,format:t.format??`template_literal`,pattern:e._zod.pattern.source}),n):(n.issues.push({input:n.value,inst:e,expected:`template_literal`,code:`invalid_type`}),n)}),Hi=i(`$ZodFunction`,(e,t)=>(C.init(e,t),e._def=t,e._zod.def=t,e.implement=t=>{if(typeof t!=`function`)throw Error(`implement() must be called with a function`);return function(...n){let r=e._def.input?ot(e._def.input,n):n,i=Reflect.apply(t,this,r);return e._def.output?ot(e._def.output,i):i}},e.implementAsync=t=>{if(typeof t!=`function`)throw Error(`implementAsync() must be called with a function`);return async function(...n){let r=e._def.input?await ct(e._def.input,n):n,i=await Reflect.apply(t,this,r);return e._def.output?await ct(e._def.output,i):i}},e._zod.parse=(t,n)=>typeof t.value==`function`?(e._def.output&&e._def.output._zod.def.type===`promise`?t.value=e.implementAsync(t.value):t.value=e.implement(t.value),t):(t.issues.push({code:`invalid_type`,expected:`function`,input:t.value,inst:e}),t),e.input=(...t)=>{let n=e.constructor;return Array.isArray(t[0])?new n({type:`function`,input:new fi({type:`tuple`,items:t[0],rest:t[1]}),output:e._def.output}):new n({type:`function`,input:t[0],output:e._def.output})},e.output=t=>{let n=e.constructor;return new n({type:`function`,input:e._def.input,output:t})},e)),Ui=i(`$ZodPromise`,(e,t)=>{C.init(e,t),e._zod.parse=(e,n)=>Promise.resolve(e.value).then(e=>t.innerType._zod.run({value:e,issues:[]},n))}),Wi=i(`$ZodLazy`,(e,t)=>{C.init(e,t),h(e._zod,`innerType`,()=>t.getter()),h(e._zod,`pattern`,()=>e._zod.innerType?._zod?.pattern),h(e._zod,`propValues`,()=>e._zod.innerType?._zod?.propValues),h(e._zod,`optin`,()=>e._zod.innerType?._zod?.optin??void 0),h(e._zod,`optout`,()=>e._zod.innerType?._zod?.optout??void 0),e._zod.parse=(t,n)=>e._zod.innerType._zod.run(t,n)}),Gi=i(`$ZodCustom`,(e,t)=>{S.init(e,t),C.init(e,t),e._zod.parse=(e,t)=>e,e._zod.check=n=>{let r=n.value,i=t.fn(r);if(i instanceof Promise)return i.then(t=>Ki(t,n,r,e));Ki(i,n,r,e)}});function Ki(e,t,n,r){if(!e){let e={code:`custom`,input:n,inst:r,path:[...r._zod.def.path??[]],continue:!r._zod.def.abort};r._zod.def.params&&(e.params=r._zod.def.params),t.issues.push(Ue(e))}}var qi=()=>{let e={string:{unit:`حرف`,verb:`أن يحوي`},file:{unit:`بايت`,verb:`أن يحوي`},array:{unit:`عنصر`,verb:`أن يحوي`},set:{unit:`عنصر`,verb:`أن يحوي`}};function t(t){return e[t]??null}let n=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`number`;case`object`:if(Array.isArray(e))return`array`;if(e===null)return`null`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},r={regex:`مدخل`,email:`بريد إلكتروني`,url:`رابط`,emoji:`إيموجي`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`تاريخ ووقت بمعيار ISO`,date:`تاريخ بمعيار ISO`,time:`وقت بمعيار ISO`,duration:`مدة بمعيار ISO`,ipv4:`عنوان IPv4`,ipv6:`عنوان IPv6`,cidrv4:`مدى عناوين بصيغة IPv4`,cidrv6:`مدى عناوين بصيغة IPv6`,base64:`نَص بترميز base64-encoded`,base64url:`نَص بترميز base64url-encoded`,json_string:`نَص على هيئة JSON`,e164:`رقم هاتف بمعيار E.164`,jwt:`JWT`,template_literal:`مدخل`};return e=>{switch(e.code){case`invalid_type`:return`مدخلات غير مقبولة: يفترض إدخال ${e.expected}، ولكن تم إدخال ${n(e.input)}`;case`invalid_value`:return e.values.length===1?`مدخلات غير مقبولة: يفترض إدخال ${v(e.values[0])}`:`اختيار غير مقبول: يتوقع انتقاء أحد هذه الخيارات: ${m(e.values,`|`)}`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);return r?` أكبر من اللازم: يفترض أن تكون ${e.origin??`القيمة`} ${n} ${e.maximum.toString()} ${r.unit??`عنصر`}`:`أكبر من اللازم: يفترض أن تكون ${e.origin??`القيمة`} ${n} ${e.maximum.toString()}`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);return r?`أصغر من اللازم: يفترض لـ ${e.origin} أن يكون ${n} ${e.minimum.toString()} ${r.unit}`:`أصغر من اللازم: يفترض لـ ${e.origin} أن يكون ${n} ${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`نَص غير مقبول: يجب أن يبدأ بـ "${e.prefix}"`:t.format===`ends_with`?`نَص غير مقبول: يجب أن ينتهي بـ "${t.suffix}"`:t.format===`includes`?`نَص غير مقبول: يجب أن يتضمَّن "${t.includes}"`:t.format===`regex`?`نَص غير مقبول: يجب أن يطابق النمط ${t.pattern}`:`${r[t.format]??e.format} غير مقبول`}case`not_multiple_of`:return`رقم غير مقبول: يجب أن يكون من مضاعفات ${e.divisor}`;case`unrecognized_keys`:return`معرف${e.keys.length>1?`ات`:``} غريب${e.keys.length>1?`ة`:``}: ${m(e.keys,`، `)}`;case`invalid_key`:return`معرف غير مقبول في ${e.origin}`;case`invalid_union`:return`مدخل غير مقبول`;case`invalid_element`:return`مدخل غير مقبول في ${e.origin}`;default:return`مدخل غير مقبول`}}};function Ji(){return{localeError:qi()}}var Yi=()=>{let e={string:{unit:`simvol`,verb:`olmalıdır`},file:{unit:`bayt`,verb:`olmalıdır`},array:{unit:`element`,verb:`olmalıdır`},set:{unit:`element`,verb:`olmalıdır`}};function t(t){return e[t]??null}let n=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`number`;case`object`:if(Array.isArray(e))return`array`;if(e===null)return`null`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},r={regex:`input`,email:`email address`,url:`URL`,emoji:`emoji`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`ISO datetime`,date:`ISO date`,time:`ISO time`,duration:`ISO duration`,ipv4:`IPv4 address`,ipv6:`IPv6 address`,cidrv4:`IPv4 range`,cidrv6:`IPv6 range`,base64:`base64-encoded string`,base64url:`base64url-encoded string`,json_string:`JSON string`,e164:`E.164 number`,jwt:`JWT`,template_literal:`input`};return e=>{switch(e.code){case`invalid_type`:return`Yanlış dəyər: gözlənilən ${e.expected}, daxil olan ${n(e.input)}`;case`invalid_value`:return e.values.length===1?`Yanlış dəyər: gözlənilən ${v(e.values[0])}`:`Yanlış seçim: aşağıdakılardan biri olmalıdır: ${m(e.values,`|`)}`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);return r?`Çox böyük: gözlənilən ${e.origin??`dəyər`} ${n}${e.maximum.toString()} ${r.unit??`element`}`:`Çox böyük: gözlənilən ${e.origin??`dəyər`} ${n}${e.maximum.toString()}`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);return r?`Çox kiçik: gözlənilən ${e.origin} ${n}${e.minimum.toString()} ${r.unit}`:`Çox kiçik: gözlənilən ${e.origin} ${n}${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`Yanlış mətn: "${t.prefix}" ilə başlamalıdır`:t.format===`ends_with`?`Yanlış mətn: "${t.suffix}" ilə bitməlidir`:t.format===`includes`?`Yanlış mətn: "${t.includes}" daxil olmalıdır`:t.format===`regex`?`Yanlış mətn: ${t.pattern} şablonuna uyğun olmalıdır`:`Yanlış ${r[t.format]??e.format}`}case`not_multiple_of`:return`Yanlış ədəd: ${e.divisor} ilə bölünə bilən olmalıdır`;case`unrecognized_keys`:return`Tanınmayan açar${e.keys.length>1?`lar`:``}: ${m(e.keys,`, `)}`;case`invalid_key`:return`${e.origin} daxilində yanlış açar`;case`invalid_union`:return`Yanlış dəyər`;case`invalid_element`:return`${e.origin} daxilində yanlış dəyər`;default:return`Yanlış dəyər`}}};function Xi(){return{localeError:Yi()}}function Zi(e,t,n,r){let i=Math.abs(e),a=i%10,o=i%100;return o>=11&&o<=19?r:a===1?t:a>=2&&a<=4?n:r}var Qi=()=>{let e={string:{unit:{one:`сімвал`,few:`сімвалы`,many:`сімвалаў`},verb:`мець`},array:{unit:{one:`элемент`,few:`элементы`,many:`элементаў`},verb:`мець`},set:{unit:{one:`элемент`,few:`элементы`,many:`элементаў`},verb:`мець`},file:{unit:{one:`байт`,few:`байты`,many:`байтаў`},verb:`мець`}};function t(t){return e[t]??null}let n=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`лік`;case`object`:if(Array.isArray(e))return`масіў`;if(e===null)return`null`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},r={regex:`увод`,email:`email адрас`,url:`URL`,emoji:`эмодзі`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`ISO дата і час`,date:`ISO дата`,time:`ISO час`,duration:`ISO працягласць`,ipv4:`IPv4 адрас`,ipv6:`IPv6 адрас`,cidrv4:`IPv4 дыяпазон`,cidrv6:`IPv6 дыяпазон`,base64:`радок у фармаце base64`,base64url:`радок у фармаце base64url`,json_string:`JSON радок`,e164:`нумар E.164`,jwt:`JWT`,template_literal:`увод`};return e=>{switch(e.code){case`invalid_type`:return`Няправільны ўвод: чакаўся ${e.expected}, атрымана ${n(e.input)}`;case`invalid_value`:return e.values.length===1?`Няправільны ўвод: чакалася ${v(e.values[0])}`:`Няправільны варыянт: чакаўся адзін з ${m(e.values,`|`)}`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);if(r){let t=Zi(Number(e.maximum),r.unit.one,r.unit.few,r.unit.many);return`Занадта вялікі: чакалася, што ${e.origin??`значэнне`} павінна ${r.verb} ${n}${e.maximum.toString()} ${t}`}return`Занадта вялікі: чакалася, што ${e.origin??`значэнне`} павінна быць ${n}${e.maximum.toString()}`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);if(r){let t=Zi(Number(e.minimum),r.unit.one,r.unit.few,r.unit.many);return`Занадта малы: чакалася, што ${e.origin} павінна ${r.verb} ${n}${e.minimum.toString()} ${t}`}return`Занадта малы: чакалася, што ${e.origin} павінна быць ${n}${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`Няправільны радок: павінен пачынацца з "${t.prefix}"`:t.format===`ends_with`?`Няправільны радок: павінен заканчвацца на "${t.suffix}"`:t.format===`includes`?`Няправільны радок: павінен змяшчаць "${t.includes}"`:t.format===`regex`?`Няправільны радок: павінен адпавядаць шаблону ${t.pattern}`:`Няправільны ${r[t.format]??e.format}`}case`not_multiple_of`:return`Няправільны лік: павінен быць кратным ${e.divisor}`;case`unrecognized_keys`:return`Нераспазнаны ${e.keys.length>1?`ключы`:`ключ`}: ${m(e.keys,`, `)}`;case`invalid_key`:return`Няправільны ключ у ${e.origin}`;case`invalid_union`:return`Няправільны ўвод`;case`invalid_element`:return`Няправільнае значэнне ў ${e.origin}`;default:return`Няправільны ўвод`}}};function $i(){return{localeError:Qi()}}var ea=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`число`;case`object`:if(Array.isArray(e))return`масив`;if(e===null)return`null`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},ta=()=>{let e={string:{unit:`символа`,verb:`да съдържа`},file:{unit:`байта`,verb:`да съдържа`},array:{unit:`елемента`,verb:`да съдържа`},set:{unit:`елемента`,verb:`да съдържа`}};function t(t){return e[t]??null}let n={regex:`вход`,email:`имейл адрес`,url:`URL`,emoji:`емоджи`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`ISO време`,date:`ISO дата`,time:`ISO време`,duration:`ISO продължителност`,ipv4:`IPv4 адрес`,ipv6:`IPv6 адрес`,cidrv4:`IPv4 диапазон`,cidrv6:`IPv6 диапазон`,base64:`base64-кодиран низ`,base64url:`base64url-кодиран низ`,json_string:`JSON низ`,e164:`E.164 номер`,jwt:`JWT`,template_literal:`вход`};return e=>{switch(e.code){case`invalid_type`:return`Невалиден вход: очакван ${e.expected}, получен ${ea(e.input)}`;case`invalid_value`:return e.values.length===1?`Невалиден вход: очакван ${v(e.values[0])}`:`Невалидна опция: очаквано едно от ${m(e.values,`|`)}`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);return r?`Твърде голямо: очаква се ${e.origin??`стойност`} да съдържа ${n}${e.maximum.toString()} ${r.unit??`елемента`}`:`Твърде голямо: очаква се ${e.origin??`стойност`} да бъде ${n}${e.maximum.toString()}`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);return r?`Твърде малко: очаква се ${e.origin} да съдържа ${n}${e.minimum.toString()} ${r.unit}`:`Твърде малко: очаква се ${e.origin} да бъде ${n}${e.minimum.toString()}`}case`invalid_format`:{let t=e;if(t.format===`starts_with`)return`Невалиден низ: трябва да започва с "${t.prefix}"`;if(t.format===`ends_with`)return`Невалиден низ: трябва да завършва с "${t.suffix}"`;if(t.format===`includes`)return`Невалиден низ: трябва да включва "${t.includes}"`;if(t.format===`regex`)return`Невалиден низ: трябва да съвпада с ${t.pattern}`;let r=`Невалиден`;return t.format===`emoji`&&(r=`Невалидно`),t.format===`datetime`&&(r=`Невалидно`),t.format===`date`&&(r=`Невалидна`),t.format===`time`&&(r=`Невалидно`),t.format===`duration`&&(r=`Невалидна`),`${r} ${n[t.format]??e.format}`}case`not_multiple_of`:return`Невалидно число: трябва да бъде кратно на ${e.divisor}`;case`unrecognized_keys`:return`Неразпознат${e.keys.length>1?`и`:``} ключ${e.keys.length>1?`ове`:``}: ${m(e.keys,`, `)}`;case`invalid_key`:return`Невалиден ключ в ${e.origin}`;case`invalid_union`:return`Невалиден вход`;case`invalid_element`:return`Невалидна стойност в ${e.origin}`;default:return`Невалиден вход`}}};function na(){return{localeError:ta()}}var ra=()=>{let e={string:{unit:`caràcters`,verb:`contenir`},file:{unit:`bytes`,verb:`contenir`},array:{unit:`elements`,verb:`contenir`},set:{unit:`elements`,verb:`contenir`}};function t(t){return e[t]??null}let n=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`number`;case`object`:if(Array.isArray(e))return`array`;if(e===null)return`null`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},r={regex:`entrada`,email:`adreça electrònica`,url:`URL`,emoji:`emoji`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`data i hora ISO`,date:`data ISO`,time:`hora ISO`,duration:`durada ISO`,ipv4:`adreça IPv4`,ipv6:`adreça IPv6`,cidrv4:`rang IPv4`,cidrv6:`rang IPv6`,base64:`cadena codificada en base64`,base64url:`cadena codificada en base64url`,json_string:`cadena JSON`,e164:`número E.164`,jwt:`JWT`,template_literal:`entrada`};return e=>{switch(e.code){case`invalid_type`:return`Tipus invàlid: s'esperava ${e.expected}, s'ha rebut ${n(e.input)}`;case`invalid_value`:return e.values.length===1?`Valor invàlid: s'esperava ${v(e.values[0])}`:`Opció invàlida: s'esperava una de ${m(e.values,` o `)}`;case`too_big`:{let n=e.inclusive?`com a màxim`:`menys de`,r=t(e.origin);return r?`Massa gran: s'esperava que ${e.origin??`el valor`} contingués ${n} ${e.maximum.toString()} ${r.unit??`elements`}`:`Massa gran: s'esperava que ${e.origin??`el valor`} fos ${n} ${e.maximum.toString()}`}case`too_small`:{let n=e.inclusive?`com a mínim`:`més de`,r=t(e.origin);return r?`Massa petit: s'esperava que ${e.origin} contingués ${n} ${e.minimum.toString()} ${r.unit}`:`Massa petit: s'esperava que ${e.origin} fos ${n} ${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`Format invàlid: ha de començar amb "${t.prefix}"`:t.format===`ends_with`?`Format invàlid: ha d'acabar amb "${t.suffix}"`:t.format===`includes`?`Format invàlid: ha d'incloure "${t.includes}"`:t.format===`regex`?`Format invàlid: ha de coincidir amb el patró ${t.pattern}`:`Format invàlid per a ${r[t.format]??e.format}`}case`not_multiple_of`:return`Número invàlid: ha de ser múltiple de ${e.divisor}`;case`unrecognized_keys`:return`Clau${e.keys.length>1?`s`:``} no reconeguda${e.keys.length>1?`s`:``}: ${m(e.keys,`, `)}`;case`invalid_key`:return`Clau invàlida a ${e.origin}`;case`invalid_union`:return`Entrada invàlida`;case`invalid_element`:return`Element invàlid a ${e.origin}`;default:return`Entrada invàlida`}}};function ia(){return{localeError:ra()}}var aa=()=>{let e={string:{unit:`znaků`,verb:`mít`},file:{unit:`bajtů`,verb:`mít`},array:{unit:`prvků`,verb:`mít`},set:{unit:`prvků`,verb:`mít`}};function t(t){return e[t]??null}let n=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`číslo`;case`string`:return`řetězec`;case`boolean`:return`boolean`;case`bigint`:return`bigint`;case`function`:return`funkce`;case`symbol`:return`symbol`;case`undefined`:return`undefined`;case`object`:if(Array.isArray(e))return`pole`;if(e===null)return`null`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},r={regex:`regulární výraz`,email:`e-mailová adresa`,url:`URL`,emoji:`emoji`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`datum a čas ve formátu ISO`,date:`datum ve formátu ISO`,time:`čas ve formátu ISO`,duration:`doba trvání ISO`,ipv4:`IPv4 adresa`,ipv6:`IPv6 adresa`,cidrv4:`rozsah IPv4`,cidrv6:`rozsah IPv6`,base64:`řetězec zakódovaný ve formátu base64`,base64url:`řetězec zakódovaný ve formátu base64url`,json_string:`řetězec ve formátu JSON`,e164:`číslo E.164`,jwt:`JWT`,template_literal:`vstup`};return e=>{switch(e.code){case`invalid_type`:return`Neplatný vstup: očekáváno ${e.expected}, obdrženo ${n(e.input)}`;case`invalid_value`:return e.values.length===1?`Neplatný vstup: očekáváno ${v(e.values[0])}`:`Neplatná možnost: očekávána jedna z hodnot ${m(e.values,`|`)}`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);return r?`Hodnota je příliš velká: ${e.origin??`hodnota`} musí mít ${n}${e.maximum.toString()} ${r.unit??`prvků`}`:`Hodnota je příliš velká: ${e.origin??`hodnota`} musí být ${n}${e.maximum.toString()}`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);return r?`Hodnota je příliš malá: ${e.origin??`hodnota`} musí mít ${n}${e.minimum.toString()} ${r.unit??`prvků`}`:`Hodnota je příliš malá: ${e.origin??`hodnota`} musí být ${n}${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`Neplatný řetězec: musí začínat na "${t.prefix}"`:t.format===`ends_with`?`Neplatný řetězec: musí končit na "${t.suffix}"`:t.format===`includes`?`Neplatný řetězec: musí obsahovat "${t.includes}"`:t.format===`regex`?`Neplatný řetězec: musí odpovídat vzoru ${t.pattern}`:`Neplatný formát ${r[t.format]??e.format}`}case`not_multiple_of`:return`Neplatné číslo: musí být násobkem ${e.divisor}`;case`unrecognized_keys`:return`Neznámé klíče: ${m(e.keys,`, `)}`;case`invalid_key`:return`Neplatný klíč v ${e.origin}`;case`invalid_union`:return`Neplatný vstup`;case`invalid_element`:return`Neplatná hodnota v ${e.origin}`;default:return`Neplatný vstup`}}};function oa(){return{localeError:aa()}}var sa=()=>{let e={string:{unit:`tegn`,verb:`havde`},file:{unit:`bytes`,verb:`havde`},array:{unit:`elementer`,verb:`indeholdt`},set:{unit:`elementer`,verb:`indeholdt`}},t={string:`streng`,number:`tal`,boolean:`boolean`,array:`liste`,object:`objekt`,set:`sæt`,file:`fil`};function n(t){return e[t]??null}function r(e){return t[e]??e}let i=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`tal`;case`object`:return Array.isArray(e)?`liste`:e===null?`null`:Object.getPrototypeOf(e)!==Object.prototype&&e.constructor?e.constructor.name:`objekt`}return t},a={regex:`input`,email:`e-mailadresse`,url:`URL`,emoji:`emoji`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`ISO dato- og klokkeslæt`,date:`ISO-dato`,time:`ISO-klokkeslæt`,duration:`ISO-varighed`,ipv4:`IPv4-område`,ipv6:`IPv6-område`,cidrv4:`IPv4-spektrum`,cidrv6:`IPv6-spektrum`,base64:`base64-kodet streng`,base64url:`base64url-kodet streng`,json_string:`JSON-streng`,e164:`E.164-nummer`,jwt:`JWT`,template_literal:`input`};return e=>{switch(e.code){case`invalid_type`:return`Ugyldigt input: forventede ${r(e.expected)}, fik ${r(i(e.input))}`;case`invalid_value`:return e.values.length===1?`Ugyldig værdi: forventede ${v(e.values[0])}`:`Ugyldigt valg: forventede en af følgende ${m(e.values,`|`)}`;case`too_big`:{let t=e.inclusive?`<=`:`<`,i=n(e.origin),a=r(e.origin);return i?`For stor: forventede ${a??`value`} ${i.verb} ${t} ${e.maximum.toString()} ${i.unit??`elementer`}`:`For stor: forventede ${a??`value`} havde ${t} ${e.maximum.toString()}`}case`too_small`:{let t=e.inclusive?`>=`:`>`,i=n(e.origin),a=r(e.origin);return i?`For lille: forventede ${a} ${i.verb} ${t} ${e.minimum.toString()} ${i.unit}`:`For lille: forventede ${a} havde ${t} ${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`Ugyldig streng: skal starte med "${t.prefix}"`:t.format===`ends_with`?`Ugyldig streng: skal ende med "${t.suffix}"`:t.format===`includes`?`Ugyldig streng: skal indeholde "${t.includes}"`:t.format===`regex`?`Ugyldig streng: skal matche mønsteret ${t.pattern}`:`Ugyldig ${a[t.format]??e.format}`}case`not_multiple_of`:return`Ugyldigt tal: skal være deleligt med ${e.divisor}`;case`unrecognized_keys`:return`${e.keys.length>1?`Ukendte nøgler`:`Ukendt nøgle`}: ${m(e.keys,`, `)}`;case`invalid_key`:return`Ugyldig nøgle i ${e.origin}`;case`invalid_union`:return`Ugyldigt input: matcher ingen af de tilladte typer`;case`invalid_element`:return`Ugyldig værdi i ${e.origin}`;default:return`Ugyldigt input`}}};function ca(){return{localeError:sa()}}var la=()=>{let e={string:{unit:`Zeichen`,verb:`zu haben`},file:{unit:`Bytes`,verb:`zu haben`},array:{unit:`Elemente`,verb:`zu haben`},set:{unit:`Elemente`,verb:`zu haben`}};function t(t){return e[t]??null}let n=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`Zahl`;case`object`:if(Array.isArray(e))return`Array`;if(e===null)return`null`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},r={regex:`Eingabe`,email:`E-Mail-Adresse`,url:`URL`,emoji:`Emoji`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`ISO-Datum und -Uhrzeit`,date:`ISO-Datum`,time:`ISO-Uhrzeit`,duration:`ISO-Dauer`,ipv4:`IPv4-Adresse`,ipv6:`IPv6-Adresse`,cidrv4:`IPv4-Bereich`,cidrv6:`IPv6-Bereich`,base64:`Base64-codierter String`,base64url:`Base64-URL-codierter String`,json_string:`JSON-String`,e164:`E.164-Nummer`,jwt:`JWT`,template_literal:`Eingabe`};return e=>{switch(e.code){case`invalid_type`:return`Ungültige Eingabe: erwartet ${e.expected}, erhalten ${n(e.input)}`;case`invalid_value`:return e.values.length===1?`Ungültige Eingabe: erwartet ${v(e.values[0])}`:`Ungültige Option: erwartet eine von ${m(e.values,`|`)}`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);return r?`Zu groß: erwartet, dass ${e.origin??`Wert`} ${n}${e.maximum.toString()} ${r.unit??`Elemente`} hat`:`Zu groß: erwartet, dass ${e.origin??`Wert`} ${n}${e.maximum.toString()} ist`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);return r?`Zu klein: erwartet, dass ${e.origin} ${n}${e.minimum.toString()} ${r.unit} hat`:`Zu klein: erwartet, dass ${e.origin} ${n}${e.minimum.toString()} ist`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`Ungültiger String: muss mit "${t.prefix}" beginnen`:t.format===`ends_with`?`Ungültiger String: muss mit "${t.suffix}" enden`:t.format===`includes`?`Ungültiger String: muss "${t.includes}" enthalten`:t.format===`regex`?`Ungültiger String: muss dem Muster ${t.pattern} entsprechen`:`Ungültig: ${r[t.format]??e.format}`}case`not_multiple_of`:return`Ungültige Zahl: muss ein Vielfaches von ${e.divisor} sein`;case`unrecognized_keys`:return`${e.keys.length>1?`Unbekannte Schlüssel`:`Unbekannter Schlüssel`}: ${m(e.keys,`, `)}`;case`invalid_key`:return`Ungültiger Schlüssel in ${e.origin}`;case`invalid_union`:return`Ungültige Eingabe`;case`invalid_element`:return`Ungültiger Wert in ${e.origin}`;default:return`Ungültige Eingabe`}}};function ua(){return{localeError:la()}}var da=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`number`;case`object`:if(Array.isArray(e))return`array`;if(e===null)return`null`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},fa=()=>{let e={string:{unit:`characters`,verb:`to have`},file:{unit:`bytes`,verb:`to have`},array:{unit:`items`,verb:`to have`},set:{unit:`items`,verb:`to have`}};function t(t){return e[t]??null}let n={regex:`input`,email:`email address`,url:`URL`,emoji:`emoji`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`ISO datetime`,date:`ISO date`,time:`ISO time`,duration:`ISO duration`,ipv4:`IPv4 address`,ipv6:`IPv6 address`,mac:`MAC address`,cidrv4:`IPv4 range`,cidrv6:`IPv6 range`,base64:`base64-encoded string`,base64url:`base64url-encoded string`,json_string:`JSON string`,e164:`E.164 number`,jwt:`JWT`,template_literal:`input`};return e=>{switch(e.code){case`invalid_type`:return`Invalid input: expected ${e.expected}, received ${da(e.input)}`;case`invalid_value`:return e.values.length===1?`Invalid input: expected ${v(e.values[0])}`:`Invalid option: expected one of ${m(e.values,`|`)}`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);return r?`Too big: expected ${e.origin??`value`} to have ${n}${e.maximum.toString()} ${r.unit??`elements`}`:`Too big: expected ${e.origin??`value`} to be ${n}${e.maximum.toString()}`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);return r?`Too small: expected ${e.origin} to have ${n}${e.minimum.toString()} ${r.unit}`:`Too small: expected ${e.origin} to be ${n}${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`Invalid string: must start with "${t.prefix}"`:t.format===`ends_with`?`Invalid string: must end with "${t.suffix}"`:t.format===`includes`?`Invalid string: must include "${t.includes}"`:t.format===`regex`?`Invalid string: must match pattern ${t.pattern}`:`Invalid ${n[t.format]??e.format}`}case`not_multiple_of`:return`Invalid number: must be a multiple of ${e.divisor}`;case`unrecognized_keys`:return`Unrecognized key${e.keys.length>1?`s`:``}: ${m(e.keys,`, `)}`;case`invalid_key`:return`Invalid key in ${e.origin}`;case`invalid_union`:return`Invalid input`;case`invalid_element`:return`Invalid value in ${e.origin}`;default:return`Invalid input`}}};function pa(){return{localeError:fa()}}var ma=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`nombro`;case`object`:if(Array.isArray(e))return`tabelo`;if(e===null)return`senvalora`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},ha=()=>{let e={string:{unit:`karaktrojn`,verb:`havi`},file:{unit:`bajtojn`,verb:`havi`},array:{unit:`elementojn`,verb:`havi`},set:{unit:`elementojn`,verb:`havi`}};function t(t){return e[t]??null}let n={regex:`enigo`,email:`retadreso`,url:`URL`,emoji:`emoĝio`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`ISO-datotempo`,date:`ISO-dato`,time:`ISO-tempo`,duration:`ISO-daŭro`,ipv4:`IPv4-adreso`,ipv6:`IPv6-adreso`,cidrv4:`IPv4-rango`,cidrv6:`IPv6-rango`,base64:`64-ume kodita karaktraro`,base64url:`URL-64-ume kodita karaktraro`,json_string:`JSON-karaktraro`,e164:`E.164-nombro`,jwt:`JWT`,template_literal:`enigo`};return e=>{switch(e.code){case`invalid_type`:return`Nevalida enigo: atendiĝis ${e.expected}, riceviĝis ${ma(e.input)}`;case`invalid_value`:return e.values.length===1?`Nevalida enigo: atendiĝis ${v(e.values[0])}`:`Nevalida opcio: atendiĝis unu el ${m(e.values,`|`)}`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);return r?`Tro granda: atendiĝis ke ${e.origin??`valoro`} havu ${n}${e.maximum.toString()} ${r.unit??`elementojn`}`:`Tro granda: atendiĝis ke ${e.origin??`valoro`} havu ${n}${e.maximum.toString()}`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);return r?`Tro malgranda: atendiĝis ke ${e.origin} havu ${n}${e.minimum.toString()} ${r.unit}`:`Tro malgranda: atendiĝis ke ${e.origin} estu ${n}${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`Nevalida karaktraro: devas komenciĝi per "${t.prefix}"`:t.format===`ends_with`?`Nevalida karaktraro: devas finiĝi per "${t.suffix}"`:t.format===`includes`?`Nevalida karaktraro: devas inkluzivi "${t.includes}"`:t.format===`regex`?`Nevalida karaktraro: devas kongrui kun la modelo ${t.pattern}`:`Nevalida ${n[t.format]??e.format}`}case`not_multiple_of`:return`Nevalida nombro: devas esti oblo de ${e.divisor}`;case`unrecognized_keys`:return`Nekonata${e.keys.length>1?`j`:``} ŝlosilo${e.keys.length>1?`j`:``}: ${m(e.keys,`, `)}`;case`invalid_key`:return`Nevalida ŝlosilo en ${e.origin}`;case`invalid_union`:return`Nevalida enigo`;case`invalid_element`:return`Nevalida valoro en ${e.origin}`;default:return`Nevalida enigo`}}};function ga(){return{localeError:ha()}}var _a=()=>{let e={string:{unit:`caracteres`,verb:`tener`},file:{unit:`bytes`,verb:`tener`},array:{unit:`elementos`,verb:`tener`},set:{unit:`elementos`,verb:`tener`}},t={string:`texto`,number:`número`,boolean:`booleano`,array:`arreglo`,object:`objeto`,set:`conjunto`,file:`archivo`,date:`fecha`,bigint:`número grande`,symbol:`símbolo`,undefined:`indefinido`,null:`nulo`,function:`función`,map:`mapa`,record:`registro`,tuple:`tupla`,enum:`enumeración`,union:`unión`,literal:`literal`,promise:`promesa`,void:`vacío`,never:`nunca`,unknown:`desconocido`,any:`cualquiera`};function n(t){return e[t]??null}function r(e){return t[e]??e}let i=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`number`;case`object`:return Array.isArray(e)?`array`:e===null?`null`:Object.getPrototypeOf(e)===Object.prototype?`object`:e.constructor.name}return t},a={regex:`entrada`,email:`dirección de correo electrónico`,url:`URL`,emoji:`emoji`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`fecha y hora ISO`,date:`fecha ISO`,time:`hora ISO`,duration:`duración ISO`,ipv4:`dirección IPv4`,ipv6:`dirección IPv6`,cidrv4:`rango IPv4`,cidrv6:`rango IPv6`,base64:`cadena codificada en base64`,base64url:`URL codificada en base64`,json_string:`cadena JSON`,e164:`número E.164`,jwt:`JWT`,template_literal:`entrada`};return e=>{switch(e.code){case`invalid_type`:return`Entrada inválida: se esperaba ${r(e.expected)}, recibido ${r(i(e.input))}`;case`invalid_value`:return e.values.length===1?`Entrada inválida: se esperaba ${v(e.values[0])}`:`Opción inválida: se esperaba una de ${m(e.values,`|`)}`;case`too_big`:{let t=e.inclusive?`<=`:`<`,i=n(e.origin),a=r(e.origin);return i?`Demasiado grande: se esperaba que ${a??`valor`} tuviera ${t}${e.maximum.toString()} ${i.unit??`elementos`}`:`Demasiado grande: se esperaba que ${a??`valor`} fuera ${t}${e.maximum.toString()}`}case`too_small`:{let t=e.inclusive?`>=`:`>`,i=n(e.origin),a=r(e.origin);return i?`Demasiado pequeño: se esperaba que ${a} tuviera ${t}${e.minimum.toString()} ${i.unit}`:`Demasiado pequeño: se esperaba que ${a} fuera ${t}${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`Cadena inválida: debe comenzar con "${t.prefix}"`:t.format===`ends_with`?`Cadena inválida: debe terminar en "${t.suffix}"`:t.format===`includes`?`Cadena inválida: debe incluir "${t.includes}"`:t.format===`regex`?`Cadena inválida: debe coincidir con el patrón ${t.pattern}`:`Inválido ${a[t.format]??e.format}`}case`not_multiple_of`:return`Número inválido: debe ser múltiplo de ${e.divisor}`;case`unrecognized_keys`:return`Llave${e.keys.length>1?`s`:``} desconocida${e.keys.length>1?`s`:``}: ${m(e.keys,`, `)}`;case`invalid_key`:return`Llave inválida en ${r(e.origin)}`;case`invalid_union`:return`Entrada inválida`;case`invalid_element`:return`Valor inválido en ${r(e.origin)}`;default:return`Entrada inválida`}}};function va(){return{localeError:_a()}}var ya=()=>{let e={string:{unit:`کاراکتر`,verb:`داشته باشد`},file:{unit:`بایت`,verb:`داشته باشد`},array:{unit:`آیتم`,verb:`داشته باشد`},set:{unit:`آیتم`,verb:`داشته باشد`}};function t(t){return e[t]??null}let n=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`عدد`;case`object`:if(Array.isArray(e))return`آرایه`;if(e===null)return`null`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},r={regex:`ورودی`,email:`آدرس ایمیل`,url:`URL`,emoji:`ایموجی`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`تاریخ و زمان ایزو`,date:`تاریخ ایزو`,time:`زمان ایزو`,duration:`مدت زمان ایزو`,ipv4:`IPv4 آدرس`,ipv6:`IPv6 آدرس`,cidrv4:`IPv4 دامنه`,cidrv6:`IPv6 دامنه`,base64:`base64-encoded رشته`,base64url:`base64url-encoded رشته`,json_string:`JSON رشته`,e164:`E.164 عدد`,jwt:`JWT`,template_literal:`ورودی`};return e=>{switch(e.code){case`invalid_type`:return`ورودی نامعتبر: می‌بایست ${e.expected} می‌بود، ${n(e.input)} دریافت شد`;case`invalid_value`:return e.values.length===1?`ورودی نامعتبر: می‌بایست ${v(e.values[0])} می‌بود`:`گزینه نامعتبر: می‌بایست یکی از ${m(e.values,`|`)} می‌بود`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);return r?`خیلی بزرگ: ${e.origin??`مقدار`} باید ${n}${e.maximum.toString()} ${r.unit??`عنصر`} باشد`:`خیلی بزرگ: ${e.origin??`مقدار`} باید ${n}${e.maximum.toString()} باشد`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);return r?`خیلی کوچک: ${e.origin} باید ${n}${e.minimum.toString()} ${r.unit} باشد`:`خیلی کوچک: ${e.origin} باید ${n}${e.minimum.toString()} باشد`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`رشته نامعتبر: باید با "${t.prefix}" شروع شود`:t.format===`ends_with`?`رشته نامعتبر: باید با "${t.suffix}" تمام شود`:t.format===`includes`?`رشته نامعتبر: باید شامل "${t.includes}" باشد`:t.format===`regex`?`رشته نامعتبر: باید با الگوی ${t.pattern} مطابقت داشته باشد`:`${r[t.format]??e.format} نامعتبر`}case`not_multiple_of`:return`عدد نامعتبر: باید مضرب ${e.divisor} باشد`;case`unrecognized_keys`:return`کلید${e.keys.length>1?`های`:``} ناشناس: ${m(e.keys,`, `)}`;case`invalid_key`:return`کلید ناشناس در ${e.origin}`;case`invalid_union`:return`ورودی نامعتبر`;case`invalid_element`:return`مقدار نامعتبر در ${e.origin}`;default:return`ورودی نامعتبر`}}};function ba(){return{localeError:ya()}}var xa=()=>{let e={string:{unit:`merkkiä`,subject:`merkkijonon`},file:{unit:`tavua`,subject:`tiedoston`},array:{unit:`alkiota`,subject:`listan`},set:{unit:`alkiota`,subject:`joukon`},number:{unit:``,subject:`luvun`},bigint:{unit:``,subject:`suuren kokonaisluvun`},int:{unit:``,subject:`kokonaisluvun`},date:{unit:``,subject:`päivämäärän`}};function t(t){return e[t]??null}let n=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`number`;case`object`:if(Array.isArray(e))return`array`;if(e===null)return`null`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},r={regex:`säännöllinen lauseke`,email:`sähköpostiosoite`,url:`URL-osoite`,emoji:`emoji`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`ISO-aikaleima`,date:`ISO-päivämäärä`,time:`ISO-aika`,duration:`ISO-kesto`,ipv4:`IPv4-osoite`,ipv6:`IPv6-osoite`,cidrv4:`IPv4-alue`,cidrv6:`IPv6-alue`,base64:`base64-koodattu merkkijono`,base64url:`base64url-koodattu merkkijono`,json_string:`JSON-merkkijono`,e164:`E.164-luku`,jwt:`JWT`,template_literal:`templaattimerkkijono`};return e=>{switch(e.code){case`invalid_type`:return`Virheellinen tyyppi: odotettiin ${e.expected}, oli ${n(e.input)}`;case`invalid_value`:return e.values.length===1?`Virheellinen syöte: täytyy olla ${v(e.values[0])}`:`Virheellinen valinta: täytyy olla yksi seuraavista: ${m(e.values,`|`)}`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);return r?`Liian suuri: ${r.subject} täytyy olla ${n}${e.maximum.toString()} ${r.unit}`.trim():`Liian suuri: arvon täytyy olla ${n}${e.maximum.toString()}`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);return r?`Liian pieni: ${r.subject} täytyy olla ${n}${e.minimum.toString()} ${r.unit}`.trim():`Liian pieni: arvon täytyy olla ${n}${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`Virheellinen syöte: täytyy alkaa "${t.prefix}"`:t.format===`ends_with`?`Virheellinen syöte: täytyy loppua "${t.suffix}"`:t.format===`includes`?`Virheellinen syöte: täytyy sisältää "${t.includes}"`:t.format===`regex`?`Virheellinen syöte: täytyy vastata säännöllistä lauseketta ${t.pattern}`:`Virheellinen ${r[t.format]??e.format}`}case`not_multiple_of`:return`Virheellinen luku: täytyy olla luvun ${e.divisor} monikerta`;case`unrecognized_keys`:return`${e.keys.length>1?`Tuntemattomat avaimet`:`Tuntematon avain`}: ${m(e.keys,`, `)}`;case`invalid_key`:return`Virheellinen avain tietueessa`;case`invalid_union`:return`Virheellinen unioni`;case`invalid_element`:return`Virheellinen arvo joukossa`;default:return`Virheellinen syöte`}}};function Sa(){return{localeError:xa()}}var Ca=()=>{let e={string:{unit:`caractères`,verb:`avoir`},file:{unit:`octets`,verb:`avoir`},array:{unit:`éléments`,verb:`avoir`},set:{unit:`éléments`,verb:`avoir`}};function t(t){return e[t]??null}let n=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`nombre`;case`object`:if(Array.isArray(e))return`tableau`;if(e===null)return`null`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},r={regex:`entrée`,email:`adresse e-mail`,url:`URL`,emoji:`emoji`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`date et heure ISO`,date:`date ISO`,time:`heure ISO`,duration:`durée ISO`,ipv4:`adresse IPv4`,ipv6:`adresse IPv6`,cidrv4:`plage IPv4`,cidrv6:`plage IPv6`,base64:`chaîne encodée en base64`,base64url:`chaîne encodée en base64url`,json_string:`chaîne JSON`,e164:`numéro E.164`,jwt:`JWT`,template_literal:`entrée`};return e=>{switch(e.code){case`invalid_type`:return`Entrée invalide : ${e.expected} attendu, ${n(e.input)} reçu`;case`invalid_value`:return e.values.length===1?`Entrée invalide : ${v(e.values[0])} attendu`:`Option invalide : une valeur parmi ${m(e.values,`|`)} attendue`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);return r?`Trop grand : ${e.origin??`valeur`} doit ${r.verb} ${n}${e.maximum.toString()} ${r.unit??`élément(s)`}`:`Trop grand : ${e.origin??`valeur`} doit être ${n}${e.maximum.toString()}`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);return r?`Trop petit : ${e.origin} doit ${r.verb} ${n}${e.minimum.toString()} ${r.unit}`:`Trop petit : ${e.origin} doit être ${n}${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`Chaîne invalide : doit commencer par "${t.prefix}"`:t.format===`ends_with`?`Chaîne invalide : doit se terminer par "${t.suffix}"`:t.format===`includes`?`Chaîne invalide : doit inclure "${t.includes}"`:t.format===`regex`?`Chaîne invalide : doit correspondre au modèle ${t.pattern}`:`${r[t.format]??e.format} invalide`}case`not_multiple_of`:return`Nombre invalide : doit être un multiple de ${e.divisor}`;case`unrecognized_keys`:return`Clé${e.keys.length>1?`s`:``} non reconnue${e.keys.length>1?`s`:``} : ${m(e.keys,`, `)}`;case`invalid_key`:return`Clé invalide dans ${e.origin}`;case`invalid_union`:return`Entrée invalide`;case`invalid_element`:return`Valeur invalide dans ${e.origin}`;default:return`Entrée invalide`}}};function wa(){return{localeError:Ca()}}var Ta=()=>{let e={string:{unit:`caractères`,verb:`avoir`},file:{unit:`octets`,verb:`avoir`},array:{unit:`éléments`,verb:`avoir`},set:{unit:`éléments`,verb:`avoir`}};function t(t){return e[t]??null}let n=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`number`;case`object`:if(Array.isArray(e))return`array`;if(e===null)return`null`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},r={regex:`entrée`,email:`adresse courriel`,url:`URL`,emoji:`emoji`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`date-heure ISO`,date:`date ISO`,time:`heure ISO`,duration:`durée ISO`,ipv4:`adresse IPv4`,ipv6:`adresse IPv6`,cidrv4:`plage IPv4`,cidrv6:`plage IPv6`,base64:`chaîne encodée en base64`,base64url:`chaîne encodée en base64url`,json_string:`chaîne JSON`,e164:`numéro E.164`,jwt:`JWT`,template_literal:`entrée`};return e=>{switch(e.code){case`invalid_type`:return`Entrée invalide : attendu ${e.expected}, reçu ${n(e.input)}`;case`invalid_value`:return e.values.length===1?`Entrée invalide : attendu ${v(e.values[0])}`:`Option invalide : attendu l'une des valeurs suivantes ${m(e.values,`|`)}`;case`too_big`:{let n=e.inclusive?`≤`:`<`,r=t(e.origin);return r?`Trop grand : attendu que ${e.origin??`la valeur`} ait ${n}${e.maximum.toString()} ${r.unit}`:`Trop grand : attendu que ${e.origin??`la valeur`} soit ${n}${e.maximum.toString()}`}case`too_small`:{let n=e.inclusive?`≥`:`>`,r=t(e.origin);return r?`Trop petit : attendu que ${e.origin} ait ${n}${e.minimum.toString()} ${r.unit}`:`Trop petit : attendu que ${e.origin} soit ${n}${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`Chaîne invalide : doit commencer par "${t.prefix}"`:t.format===`ends_with`?`Chaîne invalide : doit se terminer par "${t.suffix}"`:t.format===`includes`?`Chaîne invalide : doit inclure "${t.includes}"`:t.format===`regex`?`Chaîne invalide : doit correspondre au motif ${t.pattern}`:`${r[t.format]??e.format} invalide`}case`not_multiple_of`:return`Nombre invalide : doit être un multiple de ${e.divisor}`;case`unrecognized_keys`:return`Clé${e.keys.length>1?`s`:``} non reconnue${e.keys.length>1?`s`:``} : ${m(e.keys,`, `)}`;case`invalid_key`:return`Clé invalide dans ${e.origin}`;case`invalid_union`:return`Entrée invalide`;case`invalid_element`:return`Valeur invalide dans ${e.origin}`;default:return`Entrée invalide`}}};function Ea(){return{localeError:Ta()}}var Da=()=>{let e={string:{label:`מחרוזת`,gender:`f`},number:{label:`מספר`,gender:`m`},boolean:{label:`ערך בוליאני`,gender:`m`},bigint:{label:`BigInt`,gender:`m`},date:{label:`תאריך`,gender:`m`},array:{label:`מערך`,gender:`m`},object:{label:`אובייקט`,gender:`m`},null:{label:`ערך ריק (null)`,gender:`m`},undefined:{label:`ערך לא מוגדר (undefined)`,gender:`m`},symbol:{label:`סימבול (Symbol)`,gender:`m`},function:{label:`פונקציה`,gender:`f`},map:{label:`מפה (Map)`,gender:`f`},set:{label:`קבוצה (Set)`,gender:`f`},file:{label:`קובץ`,gender:`m`},promise:{label:`Promise`,gender:`m`},NaN:{label:`NaN`,gender:`m`},unknown:{label:`ערך לא ידוע`,gender:`m`},value:{label:`ערך`,gender:`m`}},t={string:{unit:`תווים`,shortLabel:`קצר`,longLabel:`ארוך`},file:{unit:`בייטים`,shortLabel:`קטן`,longLabel:`גדול`},array:{unit:`פריטים`,shortLabel:`קטן`,longLabel:`גדול`},set:{unit:`פריטים`,shortLabel:`קטן`,longLabel:`גדול`},number:{unit:``,shortLabel:`קטן`,longLabel:`גדול`}},n=t=>t?e[t]:void 0,r=t=>{let r=n(t);return r?r.label:t??e.unknown.label},i=e=>`ה${r(e)}`,a=e=>(n(e)?.gender??`m`)===`f`?`צריכה להיות`:`צריך להיות`,o=e=>e?t[e]??null:null,s=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`number`;case`object`:return Array.isArray(e)?`array`:e===null?`null`:Object.getPrototypeOf(e)!==Object.prototype&&e.constructor?e.constructor.name:`object`;default:return t}},c={regex:{label:`קלט`,gender:`m`},email:{label:`כתובת אימייל`,gender:`f`},url:{label:`כתובת רשת`,gender:`f`},emoji:{label:`אימוג'י`,gender:`m`},uuid:{label:`UUID`,gender:`m`},nanoid:{label:`nanoid`,gender:`m`},guid:{label:`GUID`,gender:`m`},cuid:{label:`cuid`,gender:`m`},cuid2:{label:`cuid2`,gender:`m`},ulid:{label:`ULID`,gender:`m`},xid:{label:`XID`,gender:`m`},ksuid:{label:`KSUID`,gender:`m`},datetime:{label:`תאריך וזמן ISO`,gender:`m`},date:{label:`תאריך ISO`,gender:`m`},time:{label:`זמן ISO`,gender:`m`},duration:{label:`משך זמן ISO`,gender:`m`},ipv4:{label:`כתובת IPv4`,gender:`f`},ipv6:{label:`כתובת IPv6`,gender:`f`},cidrv4:{label:`טווח IPv4`,gender:`m`},cidrv6:{label:`טווח IPv6`,gender:`m`},base64:{label:`מחרוזת בבסיס 64`,gender:`f`},base64url:{label:`מחרוזת בבסיס 64 לכתובות רשת`,gender:`f`},json_string:{label:`מחרוזת JSON`,gender:`f`},e164:{label:`מספר E.164`,gender:`m`},jwt:{label:`JWT`,gender:`m`},ends_with:{label:`קלט`,gender:`m`},includes:{label:`קלט`,gender:`m`},lowercase:{label:`קלט`,gender:`m`},starts_with:{label:`קלט`,gender:`m`},uppercase:{label:`קלט`,gender:`m`}};return t=>{switch(t.code){case`invalid_type`:{let n=t.expected,i=r(n),a=s(t.input);return`קלט לא תקין: צריך להיות ${i}, התקבל ${e[a]?.label??a}`}case`invalid_value`:{if(t.values.length===1)return`ערך לא תקין: הערך חייב להיות ${v(t.values[0])}`;let e=t.values.map(e=>v(e));if(t.values.length===2)return`ערך לא תקין: האפשרויות המתאימות הן ${e[0]} או ${e[1]}`;let n=e[e.length-1];return`ערך לא תקין: האפשרויות המתאימות הן ${e.slice(0,-1).join(`, `)} או ${n}`}case`too_big`:{let e=o(t.origin),n=i(t.origin??`value`);if(t.origin===`string`)return`${e?.longLabel??`ארוך`} מדי: ${n} צריכה להכיל ${t.maximum.toString()} ${e?.unit??``} ${t.inclusive?`או פחות`:`לכל היותר`}`.trim();if(t.origin===`number`)return`גדול מדי: ${n} צריך להיות ${t.inclusive?`קטן או שווה ל-${t.maximum}`:`קטן מ-${t.maximum}`}`;if(t.origin===`array`||t.origin===`set`)return`גדול מדי: ${n} ${t.origin===`set`?`צריכה`:`צריך`} להכיל ${t.inclusive?`${t.maximum} ${e?.unit??``} או פחות`:`פחות מ-${t.maximum} ${e?.unit??``}`}`.trim();let r=t.inclusive?`<=`:`<`,s=a(t.origin??`value`);return e?.unit?`${e.longLabel} מדי: ${n} ${s} ${r}${t.maximum.toString()} ${e.unit}`:`${e?.longLabel??`גדול`} מדי: ${n} ${s} ${r}${t.maximum.toString()}`}case`too_small`:{let e=o(t.origin),n=i(t.origin??`value`);if(t.origin===`string`)return`${e?.shortLabel??`קצר`} מדי: ${n} צריכה להכיל ${t.minimum.toString()} ${e?.unit??``} ${t.inclusive?`או יותר`:`לפחות`}`.trim();if(t.origin===`number`)return`קטן מדי: ${n} צריך להיות ${t.inclusive?`גדול או שווה ל-${t.minimum}`:`גדול מ-${t.minimum}`}`;if(t.origin===`array`||t.origin===`set`){let r=t.origin===`set`?`צריכה`:`צריך`;return t.minimum===1&&t.inclusive?`קטן מדי: ${n} ${r} להכיל ${t.origin,`לפחות פריט אחד`}`:`קטן מדי: ${n} ${r} להכיל ${t.inclusive?`${t.minimum} ${e?.unit??``} או יותר`:`יותר מ-${t.minimum} ${e?.unit??``}`}`.trim()}let r=t.inclusive?`>=`:`>`,s=a(t.origin??`value`);return e?.unit?`${e.shortLabel} מדי: ${n} ${s} ${r}${t.minimum.toString()} ${e.unit}`:`${e?.shortLabel??`קטן`} מדי: ${n} ${s} ${r}${t.minimum.toString()}`}case`invalid_format`:{let e=t;if(e.format===`starts_with`)return`המחרוזת חייבת להתחיל ב "${e.prefix}"`;if(e.format===`ends_with`)return`המחרוזת חייבת להסתיים ב "${e.suffix}"`;if(e.format===`includes`)return`המחרוזת חייבת לכלול "${e.includes}"`;if(e.format===`regex`)return`המחרוזת חייבת להתאים לתבנית ${e.pattern}`;let n=c[e.format];return`${n?.label??e.format} לא ${(n?.gender??`m`)===`f`?`תקינה`:`תקין`}`}case`not_multiple_of`:return`מספר לא תקין: חייב להיות מכפלה של ${t.divisor}`;case`unrecognized_keys`:return`מפתח${t.keys.length>1?`ות`:``} לא מזוה${t.keys.length>1?`ים`:`ה`}: ${m(t.keys,`, `)}`;case`invalid_key`:return`שדה לא תקין באובייקט`;case`invalid_union`:return`קלט לא תקין`;case`invalid_element`:return`ערך לא תקין ב${i(t.origin??`array`)}`;default:return`קלט לא תקין`}}};function Oa(){return{localeError:Da()}}var ka=()=>{let e={string:{unit:`karakter`,verb:`legyen`},file:{unit:`byte`,verb:`legyen`},array:{unit:`elem`,verb:`legyen`},set:{unit:`elem`,verb:`legyen`}};function t(t){return e[t]??null}let n=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`szám`;case`object`:if(Array.isArray(e))return`tömb`;if(e===null)return`null`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},r={regex:`bemenet`,email:`email cím`,url:`URL`,emoji:`emoji`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`ISO időbélyeg`,date:`ISO dátum`,time:`ISO idő`,duration:`ISO időintervallum`,ipv4:`IPv4 cím`,ipv6:`IPv6 cím`,cidrv4:`IPv4 tartomány`,cidrv6:`IPv6 tartomány`,base64:`base64-kódolt string`,base64url:`base64url-kódolt string`,json_string:`JSON string`,e164:`E.164 szám`,jwt:`JWT`,template_literal:`bemenet`};return e=>{switch(e.code){case`invalid_type`:return`Érvénytelen bemenet: a várt érték ${e.expected}, a kapott érték ${n(e.input)}`;case`invalid_value`:return e.values.length===1?`Érvénytelen bemenet: a várt érték ${v(e.values[0])}`:`Érvénytelen opció: valamelyik érték várt ${m(e.values,`|`)}`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);return r?`Túl nagy: ${e.origin??`érték`} mérete túl nagy ${n}${e.maximum.toString()} ${r.unit??`elem`}`:`Túl nagy: a bemeneti érték ${e.origin??`érték`} túl nagy: ${n}${e.maximum.toString()}`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);return r?`Túl kicsi: a bemeneti érték ${e.origin} mérete túl kicsi ${n}${e.minimum.toString()} ${r.unit}`:`Túl kicsi: a bemeneti érték ${e.origin} túl kicsi ${n}${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`Érvénytelen string: "${t.prefix}" értékkel kell kezdődnie`:t.format===`ends_with`?`Érvénytelen string: "${t.suffix}" értékkel kell végződnie`:t.format===`includes`?`Érvénytelen string: "${t.includes}" értéket kell tartalmaznia`:t.format===`regex`?`Érvénytelen string: ${t.pattern} mintának kell megfelelnie`:`Érvénytelen ${r[t.format]??e.format}`}case`not_multiple_of`:return`Érvénytelen szám: ${e.divisor} többszörösének kell lennie`;case`unrecognized_keys`:return`Ismeretlen kulcs${e.keys.length>1?`s`:``}: ${m(e.keys,`, `)}`;case`invalid_key`:return`Érvénytelen kulcs ${e.origin}`;case`invalid_union`:return`Érvénytelen bemenet`;case`invalid_element`:return`Érvénytelen érték: ${e.origin}`;default:return`Érvénytelen bemenet`}}};function Aa(){return{localeError:ka()}}var ja=()=>{let e={string:{unit:`karakter`,verb:`memiliki`},file:{unit:`byte`,verb:`memiliki`},array:{unit:`item`,verb:`memiliki`},set:{unit:`item`,verb:`memiliki`}};function t(t){return e[t]??null}let n=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`number`;case`object`:if(Array.isArray(e))return`array`;if(e===null)return`null`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},r={regex:`input`,email:`alamat email`,url:`URL`,emoji:`emoji`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`tanggal dan waktu format ISO`,date:`tanggal format ISO`,time:`jam format ISO`,duration:`durasi format ISO`,ipv4:`alamat IPv4`,ipv6:`alamat IPv6`,cidrv4:`rentang alamat IPv4`,cidrv6:`rentang alamat IPv6`,base64:`string dengan enkode base64`,base64url:`string dengan enkode base64url`,json_string:`string JSON`,e164:`angka E.164`,jwt:`JWT`,template_literal:`input`};return e=>{switch(e.code){case`invalid_type`:return`Input tidak valid: diharapkan ${e.expected}, diterima ${n(e.input)}`;case`invalid_value`:return e.values.length===1?`Input tidak valid: diharapkan ${v(e.values[0])}`:`Pilihan tidak valid: diharapkan salah satu dari ${m(e.values,`|`)}`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);return r?`Terlalu besar: diharapkan ${e.origin??`value`} memiliki ${n}${e.maximum.toString()} ${r.unit??`elemen`}`:`Terlalu besar: diharapkan ${e.origin??`value`} menjadi ${n}${e.maximum.toString()}`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);return r?`Terlalu kecil: diharapkan ${e.origin} memiliki ${n}${e.minimum.toString()} ${r.unit}`:`Terlalu kecil: diharapkan ${e.origin} menjadi ${n}${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`String tidak valid: harus dimulai dengan "${t.prefix}"`:t.format===`ends_with`?`String tidak valid: harus berakhir dengan "${t.suffix}"`:t.format===`includes`?`String tidak valid: harus menyertakan "${t.includes}"`:t.format===`regex`?`String tidak valid: harus sesuai pola ${t.pattern}`:`${r[t.format]??e.format} tidak valid`}case`not_multiple_of`:return`Angka tidak valid: harus kelipatan dari ${e.divisor}`;case`unrecognized_keys`:return`Kunci tidak dikenali ${e.keys.length>1?`s`:``}: ${m(e.keys,`, `)}`;case`invalid_key`:return`Kunci tidak valid di ${e.origin}`;case`invalid_union`:return`Input tidak valid`;case`invalid_element`:return`Nilai tidak valid di ${e.origin}`;default:return`Input tidak valid`}}};function Ma(){return{localeError:ja()}}var Na=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`númer`;case`object`:if(Array.isArray(e))return`fylki`;if(e===null)return`null`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},Pa=()=>{let e={string:{unit:`stafi`,verb:`að hafa`},file:{unit:`bæti`,verb:`að hafa`},array:{unit:`hluti`,verb:`að hafa`},set:{unit:`hluti`,verb:`að hafa`}};function t(t){return e[t]??null}let n={regex:`gildi`,email:`netfang`,url:`vefslóð`,emoji:`emoji`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`ISO dagsetning og tími`,date:`ISO dagsetning`,time:`ISO tími`,duration:`ISO tímalengd`,ipv4:`IPv4 address`,ipv6:`IPv6 address`,cidrv4:`IPv4 range`,cidrv6:`IPv6 range`,base64:`base64-encoded strengur`,base64url:`base64url-encoded strengur`,json_string:`JSON strengur`,e164:`E.164 tölugildi`,jwt:`JWT`,template_literal:`gildi`};return e=>{switch(e.code){case`invalid_type`:return`Rangt gildi: Þú slóst inn ${Na(e.input)} þar sem á að vera ${e.expected}`;case`invalid_value`:return e.values.length===1?`Rangt gildi: gert ráð fyrir ${v(e.values[0])}`:`Ógilt val: má vera eitt af eftirfarandi ${m(e.values,`|`)}`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);return r?`Of stórt: gert er ráð fyrir að ${e.origin??`gildi`} hafi ${n}${e.maximum.toString()} ${r.unit??`hluti`}`:`Of stórt: gert er ráð fyrir að ${e.origin??`gildi`} sé ${n}${e.maximum.toString()}`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);return r?`Of lítið: gert er ráð fyrir að ${e.origin} hafi ${n}${e.minimum.toString()} ${r.unit}`:`Of lítið: gert er ráð fyrir að ${e.origin} sé ${n}${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`Ógildur strengur: verður að byrja á "${t.prefix}"`:t.format===`ends_with`?`Ógildur strengur: verður að enda á "${t.suffix}"`:t.format===`includes`?`Ógildur strengur: verður að innihalda "${t.includes}"`:t.format===`regex`?`Ógildur strengur: verður að fylgja mynstri ${t.pattern}`:`Rangt ${n[t.format]??e.format}`}case`not_multiple_of`:return`Röng tala: verður að vera margfeldi af ${e.divisor}`;case`unrecognized_keys`:return`Óþekkt ${e.keys.length>1?`ir lyklar`:`ur lykill`}: ${m(e.keys,`, `)}`;case`invalid_key`:return`Rangur lykill í ${e.origin}`;case`invalid_union`:return`Rangt gildi`;case`invalid_element`:return`Rangt gildi í ${e.origin}`;default:return`Rangt gildi`}}};function Fa(){return{localeError:Pa()}}var Ia=()=>{let e={string:{unit:`caratteri`,verb:`avere`},file:{unit:`byte`,verb:`avere`},array:{unit:`elementi`,verb:`avere`},set:{unit:`elementi`,verb:`avere`}};function t(t){return e[t]??null}let n=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`numero`;case`object`:if(Array.isArray(e))return`vettore`;if(e===null)return`null`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},r={regex:`input`,email:`indirizzo email`,url:`URL`,emoji:`emoji`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`data e ora ISO`,date:`data ISO`,time:`ora ISO`,duration:`durata ISO`,ipv4:`indirizzo IPv4`,ipv6:`indirizzo IPv6`,cidrv4:`intervallo IPv4`,cidrv6:`intervallo IPv6`,base64:`stringa codificata in base64`,base64url:`URL codificata in base64`,json_string:`stringa JSON`,e164:`numero E.164`,jwt:`JWT`,template_literal:`input`};return e=>{switch(e.code){case`invalid_type`:return`Input non valido: atteso ${e.expected}, ricevuto ${n(e.input)}`;case`invalid_value`:return e.values.length===1?`Input non valido: atteso ${v(e.values[0])}`:`Opzione non valida: atteso uno tra ${m(e.values,`|`)}`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);return r?`Troppo grande: ${e.origin??`valore`} deve avere ${n}${e.maximum.toString()} ${r.unit??`elementi`}`:`Troppo grande: ${e.origin??`valore`} deve essere ${n}${e.maximum.toString()}`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);return r?`Troppo piccolo: ${e.origin} deve avere ${n}${e.minimum.toString()} ${r.unit}`:`Troppo piccolo: ${e.origin} deve essere ${n}${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`Stringa non valida: deve iniziare con "${t.prefix}"`:t.format===`ends_with`?`Stringa non valida: deve terminare con "${t.suffix}"`:t.format===`includes`?`Stringa non valida: deve includere "${t.includes}"`:t.format===`regex`?`Stringa non valida: deve corrispondere al pattern ${t.pattern}`:`Invalid ${r[t.format]??e.format}`}case`not_multiple_of`:return`Numero non valido: deve essere un multiplo di ${e.divisor}`;case`unrecognized_keys`:return`Chiav${e.keys.length>1?`i`:`e`} non riconosciut${e.keys.length>1?`e`:`a`}: ${m(e.keys,`, `)}`;case`invalid_key`:return`Chiave non valida in ${e.origin}`;case`invalid_union`:return`Input non valido`;case`invalid_element`:return`Valore non valido in ${e.origin}`;default:return`Input non valido`}}};function La(){return{localeError:Ia()}}var Ra=()=>{let e={string:{unit:`文字`,verb:`である`},file:{unit:`バイト`,verb:`である`},array:{unit:`要素`,verb:`である`},set:{unit:`要素`,verb:`である`}};function t(t){return e[t]??null}let n=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`数値`;case`object`:if(Array.isArray(e))return`配列`;if(e===null)return`null`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},r={regex:`入力値`,email:`メールアドレス`,url:`URL`,emoji:`絵文字`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`ISO日時`,date:`ISO日付`,time:`ISO時刻`,duration:`ISO期間`,ipv4:`IPv4アドレス`,ipv6:`IPv6アドレス`,cidrv4:`IPv4範囲`,cidrv6:`IPv6範囲`,base64:`base64エンコード文字列`,base64url:`base64urlエンコード文字列`,json_string:`JSON文字列`,e164:`E.164番号`,jwt:`JWT`,template_literal:`入力値`};return e=>{switch(e.code){case`invalid_type`:return`無効な入力: ${e.expected}が期待されましたが、${n(e.input)}が入力されました`;case`invalid_value`:return e.values.length===1?`無効な入力: ${v(e.values[0])}が期待されました`:`無効な選択: ${m(e.values,`、`)}のいずれかである必要があります`;case`too_big`:{let n=e.inclusive?`以下である`:`より小さい`,r=t(e.origin);return r?`大きすぎる値: ${e.origin??`値`}は${e.maximum.toString()}${r.unit??`要素`}${n}必要があります`:`大きすぎる値: ${e.origin??`値`}は${e.maximum.toString()}${n}必要があります`}case`too_small`:{let n=e.inclusive?`以上である`:`より大きい`,r=t(e.origin);return r?`小さすぎる値: ${e.origin}は${e.minimum.toString()}${r.unit}${n}必要があります`:`小さすぎる値: ${e.origin}は${e.minimum.toString()}${n}必要があります`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`無効な文字列: "${t.prefix}"で始まる必要があります`:t.format===`ends_with`?`無効な文字列: "${t.suffix}"で終わる必要があります`:t.format===`includes`?`無効な文字列: "${t.includes}"を含む必要があります`:t.format===`regex`?`無効な文字列: パターン${t.pattern}に一致する必要があります`:`無効な${r[t.format]??e.format}`}case`not_multiple_of`:return`無効な数値: ${e.divisor}の倍数である必要があります`;case`unrecognized_keys`:return`認識されていないキー${e.keys.length>1?`群`:``}: ${m(e.keys,`、`)}`;case`invalid_key`:return`${e.origin}内の無効なキー`;case`invalid_union`:return`無効な入力`;case`invalid_element`:return`${e.origin}内の無効な値`;default:return`無効な入力`}}};function za(){return{localeError:Ra()}}var Ba=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`რიცხვი`;case`object`:if(Array.isArray(e))return`მასივი`;if(e===null)return`null`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return{string:`სტრინგი`,boolean:`ბულეანი`,undefined:`undefined`,bigint:`bigint`,symbol:`symbol`,function:`ფუნქცია`}[t]??t},Va=()=>{let e={string:{unit:`სიმბოლო`,verb:`უნდა შეიცავდეს`},file:{unit:`ბაიტი`,verb:`უნდა შეიცავდეს`},array:{unit:`ელემენტი`,verb:`უნდა შეიცავდეს`},set:{unit:`ელემენტი`,verb:`უნდა შეიცავდეს`}};function t(t){return e[t]??null}let n={regex:`შეყვანა`,email:`ელ-ფოსტის მისამართი`,url:`URL`,emoji:`ემოჯი`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`თარიღი-დრო`,date:`თარიღი`,time:`დრო`,duration:`ხანგრძლივობა`,ipv4:`IPv4 მისამართი`,ipv6:`IPv6 მისამართი`,cidrv4:`IPv4 დიაპაზონი`,cidrv6:`IPv6 დიაპაზონი`,base64:`base64-კოდირებული სტრინგი`,base64url:`base64url-კოდირებული სტრინგი`,json_string:`JSON სტრინგი`,e164:`E.164 ნომერი`,jwt:`JWT`,template_literal:`შეყვანა`};return e=>{switch(e.code){case`invalid_type`:return`არასწორი შეყვანა: მოსალოდნელი ${e.expected}, მიღებული ${Ba(e.input)}`;case`invalid_value`:return e.values.length===1?`არასწორი შეყვანა: მოსალოდნელი ${v(e.values[0])}`:`არასწორი ვარიანტი: მოსალოდნელია ერთ-ერთი ${m(e.values,`|`)}-დან`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);return r?`ზედმეტად დიდი: მოსალოდნელი ${e.origin??`მნიშვნელობა`} ${r.verb} ${n}${e.maximum.toString()} ${r.unit}`:`ზედმეტად დიდი: მოსალოდნელი ${e.origin??`მნიშვნელობა`} იყოს ${n}${e.maximum.toString()}`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);return r?`ზედმეტად პატარა: მოსალოდნელი ${e.origin} ${r.verb} ${n}${e.minimum.toString()} ${r.unit}`:`ზედმეტად პატარა: მოსალოდნელი ${e.origin} იყოს ${n}${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`არასწორი სტრინგი: უნდა იწყებოდეს "${t.prefix}"-ით`:t.format===`ends_with`?`არასწორი სტრინგი: უნდა მთავრდებოდეს "${t.suffix}"-ით`:t.format===`includes`?`არასწორი სტრინგი: უნდა შეიცავდეს "${t.includes}"-ს`:t.format===`regex`?`არასწორი სტრინგი: უნდა შეესაბამებოდეს შაბლონს ${t.pattern}`:`არასწორი ${n[t.format]??e.format}`}case`not_multiple_of`:return`არასწორი რიცხვი: უნდა იყოს ${e.divisor}-ის ჯერადი`;case`unrecognized_keys`:return`უცნობი გასაღებ${e.keys.length>1?`ები`:`ი`}: ${m(e.keys,`, `)}`;case`invalid_key`:return`არასწორი გასაღები ${e.origin}-ში`;case`invalid_union`:return`არასწორი შეყვანა`;case`invalid_element`:return`არასწორი მნიშვნელობა ${e.origin}-ში`;default:return`არასწორი შეყვანა`}}};function Ha(){return{localeError:Va()}}var Ua=()=>{let e={string:{unit:`តួអក្សរ`,verb:`គួរមាន`},file:{unit:`បៃ`,verb:`គួរមាន`},array:{unit:`ធាតុ`,verb:`គួរមាន`},set:{unit:`ធាតុ`,verb:`គួរមាន`}};function t(t){return e[t]??null}let n=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`មិនមែនជាលេខ (NaN)`:`លេខ`;case`object`:if(Array.isArray(e))return`អារេ (Array)`;if(e===null)return`គ្មានតម្លៃ (null)`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},r={regex:`ទិន្នន័យបញ្ចូល`,email:`អាសយដ្ឋានអ៊ីមែល`,url:`URL`,emoji:`សញ្ញាអារម្មណ៍`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`កាលបរិច្ឆេទ និងម៉ោង ISO`,date:`កាលបរិច្ឆេទ ISO`,time:`ម៉ោង ISO`,duration:`រយៈពេល ISO`,ipv4:`អាសយដ្ឋាន IPv4`,ipv6:`អាសយដ្ឋាន IPv6`,cidrv4:`ដែនអាសយដ្ឋាន IPv4`,cidrv6:`ដែនអាសយដ្ឋាន IPv6`,base64:`ខ្សែអក្សរអ៊ិកូដ base64`,base64url:`ខ្សែអក្សរអ៊ិកូដ base64url`,json_string:`ខ្សែអក្សរ JSON`,e164:`លេខ E.164`,jwt:`JWT`,template_literal:`ទិន្នន័យបញ្ចូល`};return e=>{switch(e.code){case`invalid_type`:return`ទិន្នន័យបញ្ចូលមិនត្រឹមត្រូវ៖ ត្រូវការ ${e.expected} ប៉ុន្តែទទួលបាន ${n(e.input)}`;case`invalid_value`:return e.values.length===1?`ទិន្នន័យបញ្ចូលមិនត្រឹមត្រូវ៖ ត្រូវការ ${v(e.values[0])}`:`ជម្រើសមិនត្រឹមត្រូវ៖ ត្រូវជាមួយក្នុងចំណោម ${m(e.values,`|`)}`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);return r?`ធំពេក៖ ត្រូវការ ${e.origin??`តម្លៃ`} ${n} ${e.maximum.toString()} ${r.unit??`ធាតុ`}`:`ធំពេក៖ ត្រូវការ ${e.origin??`តម្លៃ`} ${n} ${e.maximum.toString()}`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);return r?`តូចពេក៖ ត្រូវការ ${e.origin} ${n} ${e.minimum.toString()} ${r.unit}`:`តូចពេក៖ ត្រូវការ ${e.origin} ${n} ${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវចាប់ផ្តើមដោយ "${t.prefix}"`:t.format===`ends_with`?`ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវបញ្ចប់ដោយ "${t.suffix}"`:t.format===`includes`?`ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវមាន "${t.includes}"`:t.format===`regex`?`ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវតែផ្គូផ្គងនឹងទម្រង់ដែលបានកំណត់ ${t.pattern}`:`មិនត្រឹមត្រូវ៖ ${r[t.format]??e.format}`}case`not_multiple_of`:return`លេខមិនត្រឹមត្រូវ៖ ត្រូវតែជាពហុគុណនៃ ${e.divisor}`;case`unrecognized_keys`:return`រកឃើញសោមិនស្គាល់៖ ${m(e.keys,`, `)}`;case`invalid_key`:return`សោមិនត្រឹមត្រូវនៅក្នុង ${e.origin}`;case`invalid_union`:return`ទិន្នន័យមិនត្រឹមត្រូវ`;case`invalid_element`:return`ទិន្នន័យមិនត្រឹមត្រូវនៅក្នុង ${e.origin}`;default:return`ទិន្នន័យមិនត្រឹមត្រូវ`}}};function Wa(){return{localeError:Ua()}}function Ga(){return Wa()}var Ka=()=>{let e={string:{unit:`문자`,verb:`to have`},file:{unit:`바이트`,verb:`to have`},array:{unit:`개`,verb:`to have`},set:{unit:`개`,verb:`to have`}};function t(t){return e[t]??null}let n=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`number`;case`object`:if(Array.isArray(e))return`array`;if(e===null)return`null`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},r={regex:`입력`,email:`이메일 주소`,url:`URL`,emoji:`이모지`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`ISO 날짜시간`,date:`ISO 날짜`,time:`ISO 시간`,duration:`ISO 기간`,ipv4:`IPv4 주소`,ipv6:`IPv6 주소`,cidrv4:`IPv4 범위`,cidrv6:`IPv6 범위`,base64:`base64 인코딩 문자열`,base64url:`base64url 인코딩 문자열`,json_string:`JSON 문자열`,e164:`E.164 번호`,jwt:`JWT`,template_literal:`입력`};return e=>{switch(e.code){case`invalid_type`:return`잘못된 입력: 예상 타입은 ${e.expected}, 받은 타입은 ${n(e.input)}입니다`;case`invalid_value`:return e.values.length===1?`잘못된 입력: 값은 ${v(e.values[0])} 이어야 합니다`:`잘못된 옵션: ${m(e.values,`또는 `)} 중 하나여야 합니다`;case`too_big`:{let n=e.inclusive?`이하`:`미만`,r=n===`미만`?`이어야 합니다`:`여야 합니다`,i=t(e.origin),a=i?.unit??`요소`;return i?`${e.origin??`값`}이 너무 큽니다: ${e.maximum.toString()}${a} ${n}${r}`:`${e.origin??`값`}이 너무 큽니다: ${e.maximum.toString()} ${n}${r}`}case`too_small`:{let n=e.inclusive?`이상`:`초과`,r=n===`이상`?`이어야 합니다`:`여야 합니다`,i=t(e.origin),a=i?.unit??`요소`;return i?`${e.origin??`값`}이 너무 작습니다: ${e.minimum.toString()}${a} ${n}${r}`:`${e.origin??`값`}이 너무 작습니다: ${e.minimum.toString()} ${n}${r}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`잘못된 문자열: "${t.prefix}"(으)로 시작해야 합니다`:t.format===`ends_with`?`잘못된 문자열: "${t.suffix}"(으)로 끝나야 합니다`:t.format===`includes`?`잘못된 문자열: "${t.includes}"을(를) 포함해야 합니다`:t.format===`regex`?`잘못된 문자열: 정규식 ${t.pattern} 패턴과 일치해야 합니다`:`잘못된 ${r[t.format]??e.format}`}case`not_multiple_of`:return`잘못된 숫자: ${e.divisor}의 배수여야 합니다`;case`unrecognized_keys`:return`인식할 수 없는 키: ${m(e.keys,`, `)}`;case`invalid_key`:return`잘못된 키: ${e.origin}`;case`invalid_union`:return`잘못된 입력`;case`invalid_element`:return`잘못된 값: ${e.origin}`;default:return`잘못된 입력`}}};function qa(){return{localeError:Ka()}}var Ja=e=>Ya(typeof e,e),Ya=(e,t=void 0)=>{switch(e){case`number`:return Number.isNaN(t)?`NaN`:`skaičius`;case`bigint`:return`sveikasis skaičius`;case`string`:return`eilutė`;case`boolean`:return`loginė reikšmė`;case`undefined`:case`void`:return`neapibrėžta reikšmė`;case`function`:return`funkcija`;case`symbol`:return`simbolis`;case`object`:return t===void 0?`nežinomas objektas`:t===null?`nulinė reikšmė`:Array.isArray(t)?`masyvas`:Object.getPrototypeOf(t)!==Object.prototype&&t.constructor?t.constructor.name:`objektas`;case`null`:return`nulinė reikšmė`}return e},Xa=e=>e.charAt(0).toUpperCase()+e.slice(1);function Za(e){let t=Math.abs(e),n=t%10,r=t%100;return r>=11&&r<=19||n===0?`many`:n===1?`one`:`few`}var Qa=()=>{let e={string:{unit:{one:`simbolis`,few:`simboliai`,many:`simbolių`},verb:{smaller:{inclusive:`turi būti ne ilgesnė kaip`,notInclusive:`turi būti trumpesnė kaip`},bigger:{inclusive:`turi būti ne trumpesnė kaip`,notInclusive:`turi būti ilgesnė kaip`}}},file:{unit:{one:`baitas`,few:`baitai`,many:`baitų`},verb:{smaller:{inclusive:`turi būti ne didesnis kaip`,notInclusive:`turi būti mažesnis kaip`},bigger:{inclusive:`turi būti ne mažesnis kaip`,notInclusive:`turi būti didesnis kaip`}}},array:{unit:{one:`elementą`,few:`elementus`,many:`elementų`},verb:{smaller:{inclusive:`turi turėti ne daugiau kaip`,notInclusive:`turi turėti mažiau kaip`},bigger:{inclusive:`turi turėti ne mažiau kaip`,notInclusive:`turi turėti daugiau kaip`}}},set:{unit:{one:`elementą`,few:`elementus`,many:`elementų`},verb:{smaller:{inclusive:`turi turėti ne daugiau kaip`,notInclusive:`turi turėti mažiau kaip`},bigger:{inclusive:`turi turėti ne mažiau kaip`,notInclusive:`turi turėti daugiau kaip`}}}};function t(t,n,r,i){let a=e[t]??null;return a===null?a:{unit:a.unit[n],verb:a.verb[i][r?`inclusive`:`notInclusive`]}}let n={regex:`įvestis`,email:`el. pašto adresas`,url:`URL`,emoji:`jaustukas`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`ISO data ir laikas`,date:`ISO data`,time:`ISO laikas`,duration:`ISO trukmė`,ipv4:`IPv4 adresas`,ipv6:`IPv6 adresas`,cidrv4:`IPv4 tinklo prefiksas (CIDR)`,cidrv6:`IPv6 tinklo prefiksas (CIDR)`,base64:`base64 užkoduota eilutė`,base64url:`base64url užkoduota eilutė`,json_string:`JSON eilutė`,e164:`E.164 numeris`,jwt:`JWT`,template_literal:`įvestis`};return e=>{switch(e.code){case`invalid_type`:return`Gautas tipas ${Ja(e.input)}, o tikėtasi - ${Ya(e.expected)}`;case`invalid_value`:return e.values.length===1?`Privalo būti ${v(e.values[0])}`:`Privalo būti vienas iš ${m(e.values,`|`)} pasirinkimų`;case`too_big`:{let n=Ya(e.origin),r=t(e.origin,Za(Number(e.maximum)),e.inclusive??!1,`smaller`);if(r?.verb)return`${Xa(n??e.origin??`reikšmė`)} ${r.verb} ${e.maximum.toString()} ${r.unit??`elementų`}`;let i=e.inclusive?`ne didesnis kaip`:`mažesnis kaip`;return`${Xa(n??e.origin??`reikšmė`)} turi būti ${i} ${e.maximum.toString()} ${r?.unit}`}case`too_small`:{let n=Ya(e.origin),r=t(e.origin,Za(Number(e.minimum)),e.inclusive??!1,`bigger`);if(r?.verb)return`${Xa(n??e.origin??`reikšmė`)} ${r.verb} ${e.minimum.toString()} ${r.unit??`elementų`}`;let i=e.inclusive?`ne mažesnis kaip`:`didesnis kaip`;return`${Xa(n??e.origin??`reikšmė`)} turi būti ${i} ${e.minimum.toString()} ${r?.unit}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`Eilutė privalo prasidėti "${t.prefix}"`:t.format===`ends_with`?`Eilutė privalo pasibaigti "${t.suffix}"`:t.format===`includes`?`Eilutė privalo įtraukti "${t.includes}"`:t.format===`regex`?`Eilutė privalo atitikti ${t.pattern}`:`Neteisingas ${n[t.format]??e.format}`}case`not_multiple_of`:return`Skaičius privalo būti ${e.divisor} kartotinis.`;case`unrecognized_keys`:return`Neatpažint${e.keys.length>1?`i`:`as`} rakt${e.keys.length>1?`ai`:`as`}: ${m(e.keys,`, `)}`;case`invalid_key`:return`Rastas klaidingas raktas`;case`invalid_union`:return`Klaidinga įvestis`;case`invalid_element`:return`${Xa(Ya(e.origin)??e.origin??`reikšmė`)} turi klaidingą įvestį`;default:return`Klaidinga įvestis`}}};function $a(){return{localeError:Qa()}}var eo=()=>{let e={string:{unit:`знаци`,verb:`да имаат`},file:{unit:`бајти`,verb:`да имаат`},array:{unit:`ставки`,verb:`да имаат`},set:{unit:`ставки`,verb:`да имаат`}};function t(t){return e[t]??null}let n=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`број`;case`object`:if(Array.isArray(e))return`низа`;if(e===null)return`null`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},r={regex:`внес`,email:`адреса на е-пошта`,url:`URL`,emoji:`емоџи`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`ISO датум и време`,date:`ISO датум`,time:`ISO време`,duration:`ISO времетраење`,ipv4:`IPv4 адреса`,ipv6:`IPv6 адреса`,cidrv4:`IPv4 опсег`,cidrv6:`IPv6 опсег`,base64:`base64-енкодирана низа`,base64url:`base64url-енкодирана низа`,json_string:`JSON низа`,e164:`E.164 број`,jwt:`JWT`,template_literal:`внес`};return e=>{switch(e.code){case`invalid_type`:return`Грешен внес: се очекува ${e.expected}, примено ${n(e.input)}`;case`invalid_value`:return e.values.length===1?`Invalid input: expected ${v(e.values[0])}`:`Грешана опција: се очекува една ${m(e.values,`|`)}`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);return r?`Премногу голем: се очекува ${e.origin??`вредноста`} да има ${n}${e.maximum.toString()} ${r.unit??`елементи`}`:`Премногу голем: се очекува ${e.origin??`вредноста`} да биде ${n}${e.maximum.toString()}`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);return r?`Премногу мал: се очекува ${e.origin} да има ${n}${e.minimum.toString()} ${r.unit}`:`Премногу мал: се очекува ${e.origin} да биде ${n}${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`Неважечка низа: мора да започнува со "${t.prefix}"`:t.format===`ends_with`?`Неважечка низа: мора да завршува со "${t.suffix}"`:t.format===`includes`?`Неважечка низа: мора да вклучува "${t.includes}"`:t.format===`regex`?`Неважечка низа: мора да одгоара на патернот ${t.pattern}`:`Invalid ${r[t.format]??e.format}`}case`not_multiple_of`:return`Грешен број: мора да биде делив со ${e.divisor}`;case`unrecognized_keys`:return`${e.keys.length>1?`Непрепознаени клучеви`:`Непрепознаен клуч`}: ${m(e.keys,`, `)}`;case`invalid_key`:return`Грешен клуч во ${e.origin}`;case`invalid_union`:return`Грешен внес`;case`invalid_element`:return`Грешна вредност во ${e.origin}`;default:return`Грешен внес`}}};function to(){return{localeError:eo()}}var no=()=>{let e={string:{unit:`aksara`,verb:`mempunyai`},file:{unit:`bait`,verb:`mempunyai`},array:{unit:`elemen`,verb:`mempunyai`},set:{unit:`elemen`,verb:`mempunyai`}};function t(t){return e[t]??null}let n=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`nombor`;case`object`:if(Array.isArray(e))return`array`;if(e===null)return`null`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},r={regex:`input`,email:`alamat e-mel`,url:`URL`,emoji:`emoji`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`tarikh masa ISO`,date:`tarikh ISO`,time:`masa ISO`,duration:`tempoh ISO`,ipv4:`alamat IPv4`,ipv6:`alamat IPv6`,cidrv4:`julat IPv4`,cidrv6:`julat IPv6`,base64:`string dikodkan base64`,base64url:`string dikodkan base64url`,json_string:`string JSON`,e164:`nombor E.164`,jwt:`JWT`,template_literal:`input`};return e=>{switch(e.code){case`invalid_type`:return`Input tidak sah: dijangka ${e.expected}, diterima ${n(e.input)}`;case`invalid_value`:return e.values.length===1?`Input tidak sah: dijangka ${v(e.values[0])}`:`Pilihan tidak sah: dijangka salah satu daripada ${m(e.values,`|`)}`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);return r?`Terlalu besar: dijangka ${e.origin??`nilai`} ${r.verb} ${n}${e.maximum.toString()} ${r.unit??`elemen`}`:`Terlalu besar: dijangka ${e.origin??`nilai`} adalah ${n}${e.maximum.toString()}`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);return r?`Terlalu kecil: dijangka ${e.origin} ${r.verb} ${n}${e.minimum.toString()} ${r.unit}`:`Terlalu kecil: dijangka ${e.origin} adalah ${n}${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`String tidak sah: mesti bermula dengan "${t.prefix}"`:t.format===`ends_with`?`String tidak sah: mesti berakhir dengan "${t.suffix}"`:t.format===`includes`?`String tidak sah: mesti mengandungi "${t.includes}"`:t.format===`regex`?`String tidak sah: mesti sepadan dengan corak ${t.pattern}`:`${r[t.format]??e.format} tidak sah`}case`not_multiple_of`:return`Nombor tidak sah: perlu gandaan ${e.divisor}`;case`unrecognized_keys`:return`Kunci tidak dikenali: ${m(e.keys,`, `)}`;case`invalid_key`:return`Kunci tidak sah dalam ${e.origin}`;case`invalid_union`:return`Input tidak sah`;case`invalid_element`:return`Nilai tidak sah dalam ${e.origin}`;default:return`Input tidak sah`}}};function ro(){return{localeError:no()}}var io=()=>{let e={string:{unit:`tekens`,verb:`te hebben`},file:{unit:`bytes`,verb:`te hebben`},array:{unit:`elementen`,verb:`te hebben`},set:{unit:`elementen`,verb:`te hebben`}};function t(t){return e[t]??null}let n=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`getal`;case`object`:if(Array.isArray(e))return`array`;if(e===null)return`null`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},r={regex:`invoer`,email:`emailadres`,url:`URL`,emoji:`emoji`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`ISO datum en tijd`,date:`ISO datum`,time:`ISO tijd`,duration:`ISO duur`,ipv4:`IPv4-adres`,ipv6:`IPv6-adres`,cidrv4:`IPv4-bereik`,cidrv6:`IPv6-bereik`,base64:`base64-gecodeerde tekst`,base64url:`base64 URL-gecodeerde tekst`,json_string:`JSON string`,e164:`E.164-nummer`,jwt:`JWT`,template_literal:`invoer`};return e=>{switch(e.code){case`invalid_type`:return`Ongeldige invoer: verwacht ${e.expected}, ontving ${n(e.input)}`;case`invalid_value`:return e.values.length===1?`Ongeldige invoer: verwacht ${v(e.values[0])}`:`Ongeldige optie: verwacht één van ${m(e.values,`|`)}`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);return r?`Te groot: verwacht dat ${e.origin??`waarde`} ${r.verb} ${n}${e.maximum.toString()} ${r.unit??`elementen`}`:`Te groot: verwacht dat ${e.origin??`waarde`} ${n}${e.maximum.toString()} is`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);return r?`Te klein: verwacht dat ${e.origin} ${r.verb} ${n}${e.minimum.toString()} ${r.unit}`:`Te klein: verwacht dat ${e.origin} ${n}${e.minimum.toString()} is`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`Ongeldige tekst: moet met "${t.prefix}" beginnen`:t.format===`ends_with`?`Ongeldige tekst: moet op "${t.suffix}" eindigen`:t.format===`includes`?`Ongeldige tekst: moet "${t.includes}" bevatten`:t.format===`regex`?`Ongeldige tekst: moet overeenkomen met patroon ${t.pattern}`:`Ongeldig: ${r[t.format]??e.format}`}case`not_multiple_of`:return`Ongeldig getal: moet een veelvoud van ${e.divisor} zijn`;case`unrecognized_keys`:return`Onbekende key${e.keys.length>1?`s`:``}: ${m(e.keys,`, `)}`;case`invalid_key`:return`Ongeldige key in ${e.origin}`;case`invalid_union`:return`Ongeldige invoer`;case`invalid_element`:return`Ongeldige waarde in ${e.origin}`;default:return`Ongeldige invoer`}}};function ao(){return{localeError:io()}}var oo=()=>{let e={string:{unit:`tegn`,verb:`å ha`},file:{unit:`bytes`,verb:`å ha`},array:{unit:`elementer`,verb:`å inneholde`},set:{unit:`elementer`,verb:`å inneholde`}};function t(t){return e[t]??null}let n=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`tall`;case`object`:if(Array.isArray(e))return`liste`;if(e===null)return`null`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},r={regex:`input`,email:`e-postadresse`,url:`URL`,emoji:`emoji`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`ISO dato- og klokkeslett`,date:`ISO-dato`,time:`ISO-klokkeslett`,duration:`ISO-varighet`,ipv4:`IPv4-område`,ipv6:`IPv6-område`,cidrv4:`IPv4-spekter`,cidrv6:`IPv6-spekter`,base64:`base64-enkodet streng`,base64url:`base64url-enkodet streng`,json_string:`JSON-streng`,e164:`E.164-nummer`,jwt:`JWT`,template_literal:`input`};return e=>{switch(e.code){case`invalid_type`:return`Ugyldig input: forventet ${e.expected}, fikk ${n(e.input)}`;case`invalid_value`:return e.values.length===1?`Ugyldig verdi: forventet ${v(e.values[0])}`:`Ugyldig valg: forventet en av ${m(e.values,`|`)}`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);return r?`For stor(t): forventet ${e.origin??`value`} til å ha ${n}${e.maximum.toString()} ${r.unit??`elementer`}`:`For stor(t): forventet ${e.origin??`value`} til å ha ${n}${e.maximum.toString()}`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);return r?`For lite(n): forventet ${e.origin} til å ha ${n}${e.minimum.toString()} ${r.unit}`:`For lite(n): forventet ${e.origin} til å ha ${n}${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`Ugyldig streng: må starte med "${t.prefix}"`:t.format===`ends_with`?`Ugyldig streng: må ende med "${t.suffix}"`:t.format===`includes`?`Ugyldig streng: må inneholde "${t.includes}"`:t.format===`regex`?`Ugyldig streng: må matche mønsteret ${t.pattern}`:`Ugyldig ${r[t.format]??e.format}`}case`not_multiple_of`:return`Ugyldig tall: må være et multiplum av ${e.divisor}`;case`unrecognized_keys`:return`${e.keys.length>1?`Ukjente nøkler`:`Ukjent nøkkel`}: ${m(e.keys,`, `)}`;case`invalid_key`:return`Ugyldig nøkkel i ${e.origin}`;case`invalid_union`:return`Ugyldig input`;case`invalid_element`:return`Ugyldig verdi i ${e.origin}`;default:return`Ugyldig input`}}};function so(){return{localeError:oo()}}var co=()=>{let e={string:{unit:`harf`,verb:`olmalıdır`},file:{unit:`bayt`,verb:`olmalıdır`},array:{unit:`unsur`,verb:`olmalıdır`},set:{unit:`unsur`,verb:`olmalıdır`}};function t(t){return e[t]??null}let n=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`numara`;case`object`:if(Array.isArray(e))return`saf`;if(e===null)return`gayb`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},r={regex:`giren`,email:`epostagâh`,url:`URL`,emoji:`emoji`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`ISO hengâmı`,date:`ISO tarihi`,time:`ISO zamanı`,duration:`ISO müddeti`,ipv4:`IPv4 nişânı`,ipv6:`IPv6 nişânı`,cidrv4:`IPv4 menzili`,cidrv6:`IPv6 menzili`,base64:`base64-şifreli metin`,base64url:`base64url-şifreli metin`,json_string:`JSON metin`,e164:`E.164 sayısı`,jwt:`JWT`,template_literal:`giren`};return e=>{switch(e.code){case`invalid_type`:return`Fâsit giren: umulan ${e.expected}, alınan ${n(e.input)}`;case`invalid_value`:return e.values.length===1?`Fâsit giren: umulan ${v(e.values[0])}`:`Fâsit tercih: mûteberler ${m(e.values,`|`)}`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);return r?`Fazla büyük: ${e.origin??`value`}, ${n}${e.maximum.toString()} ${r.unit??`elements`} sahip olmalıydı.`:`Fazla büyük: ${e.origin??`value`}, ${n}${e.maximum.toString()} olmalıydı.`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);return r?`Fazla küçük: ${e.origin}, ${n}${e.minimum.toString()} ${r.unit} sahip olmalıydı.`:`Fazla küçük: ${e.origin}, ${n}${e.minimum.toString()} olmalıydı.`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`Fâsit metin: "${t.prefix}" ile başlamalı.`:t.format===`ends_with`?`Fâsit metin: "${t.suffix}" ile bitmeli.`:t.format===`includes`?`Fâsit metin: "${t.includes}" ihtivâ etmeli.`:t.format===`regex`?`Fâsit metin: ${t.pattern} nakşına uymalı.`:`Fâsit ${r[t.format]??e.format}`}case`not_multiple_of`:return`Fâsit sayı: ${e.divisor} katı olmalıydı.`;case`unrecognized_keys`:return`Tanınmayan anahtar ${e.keys.length>1?`s`:``}: ${m(e.keys,`, `)}`;case`invalid_key`:return`${e.origin} için tanınmayan anahtar var.`;case`invalid_union`:return`Giren tanınamadı.`;case`invalid_element`:return`${e.origin} için tanınmayan kıymet var.`;default:return`Kıymet tanınamadı.`}}};function lo(){return{localeError:co()}}var uo=()=>{let e={string:{unit:`توکي`,verb:`ولري`},file:{unit:`بایټس`,verb:`ولري`},array:{unit:`توکي`,verb:`ولري`},set:{unit:`توکي`,verb:`ولري`}};function t(t){return e[t]??null}let n=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`عدد`;case`object`:if(Array.isArray(e))return`ارې`;if(e===null)return`null`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},r={regex:`ورودي`,email:`بریښنالیک`,url:`یو آر ال`,emoji:`ایموجي`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`نیټه او وخت`,date:`نېټه`,time:`وخت`,duration:`موده`,ipv4:`د IPv4 پته`,ipv6:`د IPv6 پته`,cidrv4:`د IPv4 ساحه`,cidrv6:`د IPv6 ساحه`,base64:`base64-encoded متن`,base64url:`base64url-encoded متن`,json_string:`JSON متن`,e164:`د E.164 شمېره`,jwt:`JWT`,template_literal:`ورودي`};return e=>{switch(e.code){case`invalid_type`:return`ناسم ورودي: باید ${e.expected} وای, مګر ${n(e.input)} ترلاسه شو`;case`invalid_value`:return e.values.length===1?`ناسم ورودي: باید ${v(e.values[0])} وای`:`ناسم انتخاب: باید یو له ${m(e.values,`|`)} څخه وای`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);return r?`ډیر لوی: ${e.origin??`ارزښت`} باید ${n}${e.maximum.toString()} ${r.unit??`عنصرونه`} ولري`:`ډیر لوی: ${e.origin??`ارزښت`} باید ${n}${e.maximum.toString()} وي`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);return r?`ډیر کوچنی: ${e.origin} باید ${n}${e.minimum.toString()} ${r.unit} ولري`:`ډیر کوچنی: ${e.origin} باید ${n}${e.minimum.toString()} وي`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`ناسم متن: باید د "${t.prefix}" سره پیل شي`:t.format===`ends_with`?`ناسم متن: باید د "${t.suffix}" سره پای ته ورسيږي`:t.format===`includes`?`ناسم متن: باید "${t.includes}" ولري`:t.format===`regex`?`ناسم متن: باید د ${t.pattern} سره مطابقت ولري`:`${r[t.format]??e.format} ناسم دی`}case`not_multiple_of`:return`ناسم عدد: باید د ${e.divisor} مضرب وي`;case`unrecognized_keys`:return`ناسم ${e.keys.length>1?`کلیډونه`:`کلیډ`}: ${m(e.keys,`, `)}`;case`invalid_key`:return`ناسم کلیډ په ${e.origin} کې`;case`invalid_union`:return`ناسمه ورودي`;case`invalid_element`:return`ناسم عنصر په ${e.origin} کې`;default:return`ناسمه ورودي`}}};function fo(){return{localeError:uo()}}var po=()=>{let e={string:{unit:`znaków`,verb:`mieć`},file:{unit:`bajtów`,verb:`mieć`},array:{unit:`elementów`,verb:`mieć`},set:{unit:`elementów`,verb:`mieć`}};function t(t){return e[t]??null}let n=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`liczba`;case`object`:if(Array.isArray(e))return`tablica`;if(e===null)return`null`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},r={regex:`wyrażenie`,email:`adres email`,url:`URL`,emoji:`emoji`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`data i godzina w formacie ISO`,date:`data w formacie ISO`,time:`godzina w formacie ISO`,duration:`czas trwania ISO`,ipv4:`adres IPv4`,ipv6:`adres IPv6`,cidrv4:`zakres IPv4`,cidrv6:`zakres IPv6`,base64:`ciąg znaków zakodowany w formacie base64`,base64url:`ciąg znaków zakodowany w formacie base64url`,json_string:`ciąg znaków w formacie JSON`,e164:`liczba E.164`,jwt:`JWT`,template_literal:`wejście`};return e=>{switch(e.code){case`invalid_type`:return`Nieprawidłowe dane wejściowe: oczekiwano ${e.expected}, otrzymano ${n(e.input)}`;case`invalid_value`:return e.values.length===1?`Nieprawidłowe dane wejściowe: oczekiwano ${v(e.values[0])}`:`Nieprawidłowa opcja: oczekiwano jednej z wartości ${m(e.values,`|`)}`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);return r?`Za duża wartość: oczekiwano, że ${e.origin??`wartość`} będzie mieć ${n}${e.maximum.toString()} ${r.unit??`elementów`}`:`Zbyt duż(y/a/e): oczekiwano, że ${e.origin??`wartość`} będzie wynosić ${n}${e.maximum.toString()}`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);return r?`Za mała wartość: oczekiwano, że ${e.origin??`wartość`} będzie mieć ${n}${e.minimum.toString()} ${r.unit??`elementów`}`:`Zbyt mał(y/a/e): oczekiwano, że ${e.origin??`wartość`} będzie wynosić ${n}${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`Nieprawidłowy ciąg znaków: musi zaczynać się od "${t.prefix}"`:t.format===`ends_with`?`Nieprawidłowy ciąg znaków: musi kończyć się na "${t.suffix}"`:t.format===`includes`?`Nieprawidłowy ciąg znaków: musi zawierać "${t.includes}"`:t.format===`regex`?`Nieprawidłowy ciąg znaków: musi odpowiadać wzorcowi ${t.pattern}`:`Nieprawidłow(y/a/e) ${r[t.format]??e.format}`}case`not_multiple_of`:return`Nieprawidłowa liczba: musi być wielokrotnością ${e.divisor}`;case`unrecognized_keys`:return`Nierozpoznane klucze${e.keys.length>1?`s`:``}: ${m(e.keys,`, `)}`;case`invalid_key`:return`Nieprawidłowy klucz w ${e.origin}`;case`invalid_union`:return`Nieprawidłowe dane wejściowe`;case`invalid_element`:return`Nieprawidłowa wartość w ${e.origin}`;default:return`Nieprawidłowe dane wejściowe`}}};function mo(){return{localeError:po()}}var ho=()=>{let e={string:{unit:`caracteres`,verb:`ter`},file:{unit:`bytes`,verb:`ter`},array:{unit:`itens`,verb:`ter`},set:{unit:`itens`,verb:`ter`}};function t(t){return e[t]??null}let n=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`número`;case`object`:if(Array.isArray(e))return`array`;if(e===null)return`nulo`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},r={regex:`padrão`,email:`endereço de e-mail`,url:`URL`,emoji:`emoji`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`data e hora ISO`,date:`data ISO`,time:`hora ISO`,duration:`duração ISO`,ipv4:`endereço IPv4`,ipv6:`endereço IPv6`,cidrv4:`faixa de IPv4`,cidrv6:`faixa de IPv6`,base64:`texto codificado em base64`,base64url:`URL codificada em base64`,json_string:`texto JSON`,e164:`número E.164`,jwt:`JWT`,template_literal:`entrada`};return e=>{switch(e.code){case`invalid_type`:return`Tipo inválido: esperado ${e.expected}, recebido ${n(e.input)}`;case`invalid_value`:return e.values.length===1?`Entrada inválida: esperado ${v(e.values[0])}`:`Opção inválida: esperada uma das ${m(e.values,`|`)}`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);return r?`Muito grande: esperado que ${e.origin??`valor`} tivesse ${n}${e.maximum.toString()} ${r.unit??`elementos`}`:`Muito grande: esperado que ${e.origin??`valor`} fosse ${n}${e.maximum.toString()}`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);return r?`Muito pequeno: esperado que ${e.origin} tivesse ${n}${e.minimum.toString()} ${r.unit}`:`Muito pequeno: esperado que ${e.origin} fosse ${n}${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`Texto inválido: deve começar com "${t.prefix}"`:t.format===`ends_with`?`Texto inválido: deve terminar com "${t.suffix}"`:t.format===`includes`?`Texto inválido: deve incluir "${t.includes}"`:t.format===`regex`?`Texto inválido: deve corresponder ao padrão ${t.pattern}`:`${r[t.format]??e.format} inválido`}case`not_multiple_of`:return`Número inválido: deve ser múltiplo de ${e.divisor}`;case`unrecognized_keys`:return`Chave${e.keys.length>1?`s`:``} desconhecida${e.keys.length>1?`s`:``}: ${m(e.keys,`, `)}`;case`invalid_key`:return`Chave inválida em ${e.origin}`;case`invalid_union`:return`Entrada inválida`;case`invalid_element`:return`Valor inválido em ${e.origin}`;default:return`Campo inválido`}}};function go(){return{localeError:ho()}}function _o(e,t,n,r){let i=Math.abs(e),a=i%10,o=i%100;return o>=11&&o<=19?r:a===1?t:a>=2&&a<=4?n:r}var vo=()=>{let e={string:{unit:{one:`символ`,few:`символа`,many:`символов`},verb:`иметь`},file:{unit:{one:`байт`,few:`байта`,many:`байт`},verb:`иметь`},array:{unit:{one:`элемент`,few:`элемента`,many:`элементов`},verb:`иметь`},set:{unit:{one:`элемент`,few:`элемента`,many:`элементов`},verb:`иметь`}};function t(t){return e[t]??null}let n=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`число`;case`object`:if(Array.isArray(e))return`массив`;if(e===null)return`null`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},r={regex:`ввод`,email:`email адрес`,url:`URL`,emoji:`эмодзи`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`ISO дата и время`,date:`ISO дата`,time:`ISO время`,duration:`ISO длительность`,ipv4:`IPv4 адрес`,ipv6:`IPv6 адрес`,cidrv4:`IPv4 диапазон`,cidrv6:`IPv6 диапазон`,base64:`строка в формате base64`,base64url:`строка в формате base64url`,json_string:`JSON строка`,e164:`номер E.164`,jwt:`JWT`,template_literal:`ввод`};return e=>{switch(e.code){case`invalid_type`:return`Неверный ввод: ожидалось ${e.expected}, получено ${n(e.input)}`;case`invalid_value`:return e.values.length===1?`Неверный ввод: ожидалось ${v(e.values[0])}`:`Неверный вариант: ожидалось одно из ${m(e.values,`|`)}`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);if(r){let t=_o(Number(e.maximum),r.unit.one,r.unit.few,r.unit.many);return`Слишком большое значение: ожидалось, что ${e.origin??`значение`} будет иметь ${n}${e.maximum.toString()} ${t}`}return`Слишком большое значение: ожидалось, что ${e.origin??`значение`} будет ${n}${e.maximum.toString()}`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);if(r){let t=_o(Number(e.minimum),r.unit.one,r.unit.few,r.unit.many);return`Слишком маленькое значение: ожидалось, что ${e.origin} будет иметь ${n}${e.minimum.toString()} ${t}`}return`Слишком маленькое значение: ожидалось, что ${e.origin} будет ${n}${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`Неверная строка: должна начинаться с "${t.prefix}"`:t.format===`ends_with`?`Неверная строка: должна заканчиваться на "${t.suffix}"`:t.format===`includes`?`Неверная строка: должна содержать "${t.includes}"`:t.format===`regex`?`Неверная строка: должна соответствовать шаблону ${t.pattern}`:`Неверный ${r[t.format]??e.format}`}case`not_multiple_of`:return`Неверное число: должно быть кратным ${e.divisor}`;case`unrecognized_keys`:return`Нераспознанн${e.keys.length>1?`ые`:`ый`} ключ${e.keys.length>1?`и`:``}: ${m(e.keys,`, `)}`;case`invalid_key`:return`Неверный ключ в ${e.origin}`;case`invalid_union`:return`Неверные входные данные`;case`invalid_element`:return`Неверное значение в ${e.origin}`;default:return`Неверные входные данные`}}};function yo(){return{localeError:vo()}}var bo=()=>{let e={string:{unit:`znakov`,verb:`imeti`},file:{unit:`bajtov`,verb:`imeti`},array:{unit:`elementov`,verb:`imeti`},set:{unit:`elementov`,verb:`imeti`}};function t(t){return e[t]??null}let n=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`število`;case`object`:if(Array.isArray(e))return`tabela`;if(e===null)return`null`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},r={regex:`vnos`,email:`e-poštni naslov`,url:`URL`,emoji:`emoji`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`ISO datum in čas`,date:`ISO datum`,time:`ISO čas`,duration:`ISO trajanje`,ipv4:`IPv4 naslov`,ipv6:`IPv6 naslov`,cidrv4:`obseg IPv4`,cidrv6:`obseg IPv6`,base64:`base64 kodiran niz`,base64url:`base64url kodiran niz`,json_string:`JSON niz`,e164:`E.164 številka`,jwt:`JWT`,template_literal:`vnos`};return e=>{switch(e.code){case`invalid_type`:return`Neveljaven vnos: pričakovano ${e.expected}, prejeto ${n(e.input)}`;case`invalid_value`:return e.values.length===1?`Neveljaven vnos: pričakovano ${v(e.values[0])}`:`Neveljavna možnost: pričakovano eno izmed ${m(e.values,`|`)}`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);return r?`Preveliko: pričakovano, da bo ${e.origin??`vrednost`} imelo ${n}${e.maximum.toString()} ${r.unit??`elementov`}`:`Preveliko: pričakovano, da bo ${e.origin??`vrednost`} ${n}${e.maximum.toString()}`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);return r?`Premajhno: pričakovano, da bo ${e.origin} imelo ${n}${e.minimum.toString()} ${r.unit}`:`Premajhno: pričakovano, da bo ${e.origin} ${n}${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`Neveljaven niz: mora se začeti z "${t.prefix}"`:t.format===`ends_with`?`Neveljaven niz: mora se končati z "${t.suffix}"`:t.format===`includes`?`Neveljaven niz: mora vsebovati "${t.includes}"`:t.format===`regex`?`Neveljaven niz: mora ustrezati vzorcu ${t.pattern}`:`Neveljaven ${r[t.format]??e.format}`}case`not_multiple_of`:return`Neveljavno število: mora biti večkratnik ${e.divisor}`;case`unrecognized_keys`:return`Neprepoznan${e.keys.length>1?`i ključi`:` ključ`}: ${m(e.keys,`, `)}`;case`invalid_key`:return`Neveljaven ključ v ${e.origin}`;case`invalid_union`:return`Neveljaven vnos`;case`invalid_element`:return`Neveljavna vrednost v ${e.origin}`;default:return`Neveljaven vnos`}}};function xo(){return{localeError:bo()}}var So=()=>{let e={string:{unit:`tecken`,verb:`att ha`},file:{unit:`bytes`,verb:`att ha`},array:{unit:`objekt`,verb:`att innehålla`},set:{unit:`objekt`,verb:`att innehålla`}};function t(t){return e[t]??null}let n=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`antal`;case`object`:if(Array.isArray(e))return`lista`;if(e===null)return`null`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},r={regex:`reguljärt uttryck`,email:`e-postadress`,url:`URL`,emoji:`emoji`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`ISO-datum och tid`,date:`ISO-datum`,time:`ISO-tid`,duration:`ISO-varaktighet`,ipv4:`IPv4-intervall`,ipv6:`IPv6-intervall`,cidrv4:`IPv4-spektrum`,cidrv6:`IPv6-spektrum`,base64:`base64-kodad sträng`,base64url:`base64url-kodad sträng`,json_string:`JSON-sträng`,e164:`E.164-nummer`,jwt:`JWT`,template_literal:`mall-literal`};return e=>{switch(e.code){case`invalid_type`:return`Ogiltig inmatning: förväntat ${e.expected}, fick ${n(e.input)}`;case`invalid_value`:return e.values.length===1?`Ogiltig inmatning: förväntat ${v(e.values[0])}`:`Ogiltigt val: förväntade en av ${m(e.values,`|`)}`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);return r?`För stor(t): förväntade ${e.origin??`värdet`} att ha ${n}${e.maximum.toString()} ${r.unit??`element`}`:`För stor(t): förväntat ${e.origin??`värdet`} att ha ${n}${e.maximum.toString()}`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);return r?`För lite(t): förväntade ${e.origin??`värdet`} att ha ${n}${e.minimum.toString()} ${r.unit}`:`För lite(t): förväntade ${e.origin??`värdet`} att ha ${n}${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`Ogiltig sträng: måste börja med "${t.prefix}"`:t.format===`ends_with`?`Ogiltig sträng: måste sluta med "${t.suffix}"`:t.format===`includes`?`Ogiltig sträng: måste innehålla "${t.includes}"`:t.format===`regex`?`Ogiltig sträng: måste matcha mönstret "${t.pattern}"`:`Ogiltig(t) ${r[t.format]??e.format}`}case`not_multiple_of`:return`Ogiltigt tal: måste vara en multipel av ${e.divisor}`;case`unrecognized_keys`:return`${e.keys.length>1?`Okända nycklar`:`Okänd nyckel`}: ${m(e.keys,`, `)}`;case`invalid_key`:return`Ogiltig nyckel i ${e.origin??`värdet`}`;case`invalid_union`:return`Ogiltig input`;case`invalid_element`:return`Ogiltigt värde i ${e.origin??`värdet`}`;default:return`Ogiltig input`}}};function Co(){return{localeError:So()}}var wo=()=>{let e={string:{unit:`எழுத்துக்கள்`,verb:`கொண்டிருக்க வேண்டும்`},file:{unit:`பைட்டுகள்`,verb:`கொண்டிருக்க வேண்டும்`},array:{unit:`உறுப்புகள்`,verb:`கொண்டிருக்க வேண்டும்`},set:{unit:`உறுப்புகள்`,verb:`கொண்டிருக்க வேண்டும்`}};function t(t){return e[t]??null}let n=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`எண் அல்லாதது`:`எண்`;case`object`:if(Array.isArray(e))return`அணி`;if(e===null)return`வெறுமை`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},r={regex:`உள்ளீடு`,email:`மின்னஞ்சல் முகவரி`,url:`URL`,emoji:`emoji`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`ISO தேதி நேரம்`,date:`ISO தேதி`,time:`ISO நேரம்`,duration:`ISO கால அளவு`,ipv4:`IPv4 முகவரி`,ipv6:`IPv6 முகவரி`,cidrv4:`IPv4 வரம்பு`,cidrv6:`IPv6 வரம்பு`,base64:`base64-encoded சரம்`,base64url:`base64url-encoded சரம்`,json_string:`JSON சரம்`,e164:`E.164 எண்`,jwt:`JWT`,template_literal:`input`};return e=>{switch(e.code){case`invalid_type`:return`தவறான உள்ளீடு: எதிர்பார்க்கப்பட்டது ${e.expected}, பெறப்பட்டது ${n(e.input)}`;case`invalid_value`:return e.values.length===1?`தவறான உள்ளீடு: எதிர்பார்க்கப்பட்டது ${v(e.values[0])}`:`தவறான விருப்பம்: எதிர்பார்க்கப்பட்டது ${m(e.values,`|`)} இல் ஒன்று`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);return r?`மிக பெரியது: எதிர்பார்க்கப்பட்டது ${e.origin??`மதிப்பு`} ${n}${e.maximum.toString()} ${r.unit??`உறுப்புகள்`} ஆக இருக்க வேண்டும்`:`மிக பெரியது: எதிர்பார்க்கப்பட்டது ${e.origin??`மதிப்பு`} ${n}${e.maximum.toString()} ஆக இருக்க வேண்டும்`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);return r?`மிகச் சிறியது: எதிர்பார்க்கப்பட்டது ${e.origin} ${n}${e.minimum.toString()} ${r.unit} ஆக இருக்க வேண்டும்`:`மிகச் சிறியது: எதிர்பார்க்கப்பட்டது ${e.origin} ${n}${e.minimum.toString()} ஆக இருக்க வேண்டும்`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`தவறான சரம்: "${t.prefix}" இல் தொடங்க வேண்டும்`:t.format===`ends_with`?`தவறான சரம்: "${t.suffix}" இல் முடிவடைய வேண்டும்`:t.format===`includes`?`தவறான சரம்: "${t.includes}" ஐ உள்ளடக்க வேண்டும்`:t.format===`regex`?`தவறான சரம்: ${t.pattern} முறைபாட்டுடன் பொருந்த வேண்டும்`:`தவறான ${r[t.format]??e.format}`}case`not_multiple_of`:return`தவறான எண்: ${e.divisor} இன் பலமாக இருக்க வேண்டும்`;case`unrecognized_keys`:return`அடையாளம் தெரியாத விசை${e.keys.length>1?`கள்`:``}: ${m(e.keys,`, `)}`;case`invalid_key`:return`${e.origin} இல் தவறான விசை`;case`invalid_union`:return`தவறான உள்ளீடு`;case`invalid_element`:return`${e.origin} இல் தவறான மதிப்பு`;default:return`தவறான உள்ளீடு`}}};function To(){return{localeError:wo()}}var Eo=()=>{let e={string:{unit:`ตัวอักษร`,verb:`ควรมี`},file:{unit:`ไบต์`,verb:`ควรมี`},array:{unit:`รายการ`,verb:`ควรมี`},set:{unit:`รายการ`,verb:`ควรมี`}};function t(t){return e[t]??null}let n=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`ไม่ใช่ตัวเลข (NaN)`:`ตัวเลข`;case`object`:if(Array.isArray(e))return`อาร์เรย์ (Array)`;if(e===null)return`ไม่มีค่า (null)`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},r={regex:`ข้อมูลที่ป้อน`,email:`ที่อยู่อีเมล`,url:`URL`,emoji:`อิโมจิ`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`วันที่เวลาแบบ ISO`,date:`วันที่แบบ ISO`,time:`เวลาแบบ ISO`,duration:`ช่วงเวลาแบบ ISO`,ipv4:`ที่อยู่ IPv4`,ipv6:`ที่อยู่ IPv6`,cidrv4:`ช่วง IP แบบ IPv4`,cidrv6:`ช่วง IP แบบ IPv6`,base64:`ข้อความแบบ Base64`,base64url:`ข้อความแบบ Base64 สำหรับ URL`,json_string:`ข้อความแบบ JSON`,e164:`เบอร์โทรศัพท์ระหว่างประเทศ (E.164)`,jwt:`โทเคน JWT`,template_literal:`ข้อมูลที่ป้อน`};return e=>{switch(e.code){case`invalid_type`:return`ประเภทข้อมูลไม่ถูกต้อง: ควรเป็น ${e.expected} แต่ได้รับ ${n(e.input)}`;case`invalid_value`:return e.values.length===1?`ค่าไม่ถูกต้อง: ควรเป็น ${v(e.values[0])}`:`ตัวเลือกไม่ถูกต้อง: ควรเป็นหนึ่งใน ${m(e.values,`|`)}`;case`too_big`:{let n=e.inclusive?`ไม่เกิน`:`น้อยกว่า`,r=t(e.origin);return r?`เกินกำหนด: ${e.origin??`ค่า`} ควรมี${n} ${e.maximum.toString()} ${r.unit??`รายการ`}`:`เกินกำหนด: ${e.origin??`ค่า`} ควรมี${n} ${e.maximum.toString()}`}case`too_small`:{let n=e.inclusive?`อย่างน้อย`:`มากกว่า`,r=t(e.origin);return r?`น้อยกว่ากำหนด: ${e.origin} ควรมี${n} ${e.minimum.toString()} ${r.unit}`:`น้อยกว่ากำหนด: ${e.origin} ควรมี${n} ${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`รูปแบบไม่ถูกต้อง: ข้อความต้องขึ้นต้นด้วย "${t.prefix}"`:t.format===`ends_with`?`รูปแบบไม่ถูกต้อง: ข้อความต้องลงท้ายด้วย "${t.suffix}"`:t.format===`includes`?`รูปแบบไม่ถูกต้อง: ข้อความต้องมี "${t.includes}" อยู่ในข้อความ`:t.format===`regex`?`รูปแบบไม่ถูกต้อง: ต้องตรงกับรูปแบบที่กำหนด ${t.pattern}`:`รูปแบบไม่ถูกต้อง: ${r[t.format]??e.format}`}case`not_multiple_of`:return`ตัวเลขไม่ถูกต้อง: ต้องเป็นจำนวนที่หารด้วย ${e.divisor} ได้ลงตัว`;case`unrecognized_keys`:return`พบคีย์ที่ไม่รู้จัก: ${m(e.keys,`, `)}`;case`invalid_key`:return`คีย์ไม่ถูกต้องใน ${e.origin}`;case`invalid_union`:return`ข้อมูลไม่ถูกต้อง: ไม่ตรงกับรูปแบบยูเนียนที่กำหนดไว้`;case`invalid_element`:return`ข้อมูลไม่ถูกต้องใน ${e.origin}`;default:return`ข้อมูลไม่ถูกต้อง`}}};function Do(){return{localeError:Eo()}}var Oo=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`number`;case`object`:if(Array.isArray(e))return`array`;if(e===null)return`null`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},ko=()=>{let e={string:{unit:`karakter`,verb:`olmalı`},file:{unit:`bayt`,verb:`olmalı`},array:{unit:`öğe`,verb:`olmalı`},set:{unit:`öğe`,verb:`olmalı`}};function t(t){return e[t]??null}let n={regex:`girdi`,email:`e-posta adresi`,url:`URL`,emoji:`emoji`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`ISO tarih ve saat`,date:`ISO tarih`,time:`ISO saat`,duration:`ISO süre`,ipv4:`IPv4 adresi`,ipv6:`IPv6 adresi`,cidrv4:`IPv4 aralığı`,cidrv6:`IPv6 aralığı`,base64:`base64 ile şifrelenmiş metin`,base64url:`base64url ile şifrelenmiş metin`,json_string:`JSON dizesi`,e164:`E.164 sayısı`,jwt:`JWT`,template_literal:`Şablon dizesi`};return e=>{switch(e.code){case`invalid_type`:return`Geçersiz değer: beklenen ${e.expected}, alınan ${Oo(e.input)}`;case`invalid_value`:return e.values.length===1?`Geçersiz değer: beklenen ${v(e.values[0])}`:`Geçersiz seçenek: aşağıdakilerden biri olmalı: ${m(e.values,`|`)}`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);return r?`Çok büyük: beklenen ${e.origin??`değer`} ${n}${e.maximum.toString()} ${r.unit??`öğe`}`:`Çok büyük: beklenen ${e.origin??`değer`} ${n}${e.maximum.toString()}`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);return r?`Çok küçük: beklenen ${e.origin} ${n}${e.minimum.toString()} ${r.unit}`:`Çok küçük: beklenen ${e.origin} ${n}${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`Geçersiz metin: "${t.prefix}" ile başlamalı`:t.format===`ends_with`?`Geçersiz metin: "${t.suffix}" ile bitmeli`:t.format===`includes`?`Geçersiz metin: "${t.includes}" içermeli`:t.format===`regex`?`Geçersiz metin: ${t.pattern} desenine uymalı`:`Geçersiz ${n[t.format]??e.format}`}case`not_multiple_of`:return`Geçersiz sayı: ${e.divisor} ile tam bölünebilmeli`;case`unrecognized_keys`:return`Tanınmayan anahtar${e.keys.length>1?`lar`:``}: ${m(e.keys,`, `)}`;case`invalid_key`:return`${e.origin} içinde geçersiz anahtar`;case`invalid_union`:return`Geçersiz değer`;case`invalid_element`:return`${e.origin} içinde geçersiz değer`;default:return`Geçersiz değer`}}};function Ao(){return{localeError:ko()}}var jo=()=>{let e={string:{unit:`символів`,verb:`матиме`},file:{unit:`байтів`,verb:`матиме`},array:{unit:`елементів`,verb:`матиме`},set:{unit:`елементів`,verb:`матиме`}};function t(t){return e[t]??null}let n=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`число`;case`object`:if(Array.isArray(e))return`масив`;if(e===null)return`null`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},r={regex:`вхідні дані`,email:`адреса електронної пошти`,url:`URL`,emoji:`емодзі`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`дата та час ISO`,date:`дата ISO`,time:`час ISO`,duration:`тривалість ISO`,ipv4:`адреса IPv4`,ipv6:`адреса IPv6`,cidrv4:`діапазон IPv4`,cidrv6:`діапазон IPv6`,base64:`рядок у кодуванні base64`,base64url:`рядок у кодуванні base64url`,json_string:`рядок JSON`,e164:`номер E.164`,jwt:`JWT`,template_literal:`вхідні дані`};return e=>{switch(e.code){case`invalid_type`:return`Неправильні вхідні дані: очікується ${e.expected}, отримано ${n(e.input)}`;case`invalid_value`:return e.values.length===1?`Неправильні вхідні дані: очікується ${v(e.values[0])}`:`Неправильна опція: очікується одне з ${m(e.values,`|`)}`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);return r?`Занадто велике: очікується, що ${e.origin??`значення`} ${r.verb} ${n}${e.maximum.toString()} ${r.unit??`елементів`}`:`Занадто велике: очікується, що ${e.origin??`значення`} буде ${n}${e.maximum.toString()}`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);return r?`Занадто мале: очікується, що ${e.origin} ${r.verb} ${n}${e.minimum.toString()} ${r.unit}`:`Занадто мале: очікується, що ${e.origin} буде ${n}${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`Неправильний рядок: повинен починатися з "${t.prefix}"`:t.format===`ends_with`?`Неправильний рядок: повинен закінчуватися на "${t.suffix}"`:t.format===`includes`?`Неправильний рядок: повинен містити "${t.includes}"`:t.format===`regex`?`Неправильний рядок: повинен відповідати шаблону ${t.pattern}`:`Неправильний ${r[t.format]??e.format}`}case`not_multiple_of`:return`Неправильне число: повинно бути кратним ${e.divisor}`;case`unrecognized_keys`:return`Нерозпізнаний ключ${e.keys.length>1?`і`:``}: ${m(e.keys,`, `)}`;case`invalid_key`:return`Неправильний ключ у ${e.origin}`;case`invalid_union`:return`Неправильні вхідні дані`;case`invalid_element`:return`Неправильне значення у ${e.origin}`;default:return`Неправильні вхідні дані`}}};function Mo(){return{localeError:jo()}}function No(){return Mo()}var Po=()=>{let e={string:{unit:`حروف`,verb:`ہونا`},file:{unit:`بائٹس`,verb:`ہونا`},array:{unit:`آئٹمز`,verb:`ہونا`},set:{unit:`آئٹمز`,verb:`ہونا`}};function t(t){return e[t]??null}let n=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`نمبر`;case`object`:if(Array.isArray(e))return`آرے`;if(e===null)return`نل`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},r={regex:`ان پٹ`,email:`ای میل ایڈریس`,url:`یو آر ایل`,emoji:`ایموجی`,uuid:`یو یو آئی ڈی`,uuidv4:`یو یو آئی ڈی وی 4`,uuidv6:`یو یو آئی ڈی وی 6`,nanoid:`نینو آئی ڈی`,guid:`جی یو آئی ڈی`,cuid:`سی یو آئی ڈی`,cuid2:`سی یو آئی ڈی 2`,ulid:`یو ایل آئی ڈی`,xid:`ایکس آئی ڈی`,ksuid:`کے ایس یو آئی ڈی`,datetime:`آئی ایس او ڈیٹ ٹائم`,date:`آئی ایس او تاریخ`,time:`آئی ایس او وقت`,duration:`آئی ایس او مدت`,ipv4:`آئی پی وی 4 ایڈریس`,ipv6:`آئی پی وی 6 ایڈریس`,cidrv4:`آئی پی وی 4 رینج`,cidrv6:`آئی پی وی 6 رینج`,base64:`بیس 64 ان کوڈڈ سٹرنگ`,base64url:`بیس 64 یو آر ایل ان کوڈڈ سٹرنگ`,json_string:`جے ایس او این سٹرنگ`,e164:`ای 164 نمبر`,jwt:`جے ڈبلیو ٹی`,template_literal:`ان پٹ`};return e=>{switch(e.code){case`invalid_type`:return`غلط ان پٹ: ${e.expected} متوقع تھا، ${n(e.input)} موصول ہوا`;case`invalid_value`:return e.values.length===1?`غلط ان پٹ: ${v(e.values[0])} متوقع تھا`:`غلط آپشن: ${m(e.values,`|`)} میں سے ایک متوقع تھا`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);return r?`بہت بڑا: ${e.origin??`ویلیو`} کے ${n}${e.maximum.toString()} ${r.unit??`عناصر`} ہونے متوقع تھے`:`بہت بڑا: ${e.origin??`ویلیو`} کا ${n}${e.maximum.toString()} ہونا متوقع تھا`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);return r?`بہت چھوٹا: ${e.origin} کے ${n}${e.minimum.toString()} ${r.unit} ہونے متوقع تھے`:`بہت چھوٹا: ${e.origin} کا ${n}${e.minimum.toString()} ہونا متوقع تھا`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`غلط سٹرنگ: "${t.prefix}" سے شروع ہونا چاہیے`:t.format===`ends_with`?`غلط سٹرنگ: "${t.suffix}" پر ختم ہونا چاہیے`:t.format===`includes`?`غلط سٹرنگ: "${t.includes}" شامل ہونا چاہیے`:t.format===`regex`?`غلط سٹرنگ: پیٹرن ${t.pattern} سے میچ ہونا چاہیے`:`غلط ${r[t.format]??e.format}`}case`not_multiple_of`:return`غلط نمبر: ${e.divisor} کا مضاعف ہونا چاہیے`;case`unrecognized_keys`:return`غیر تسلیم شدہ کی${e.keys.length>1?`ز`:``}: ${m(e.keys,`، `)}`;case`invalid_key`:return`${e.origin} میں غلط کی`;case`invalid_union`:return`غلط ان پٹ`;case`invalid_element`:return`${e.origin} میں غلط ویلیو`;default:return`غلط ان پٹ`}}};function Fo(){return{localeError:Po()}}var Io=()=>{let e={string:{unit:`ký tự`,verb:`có`},file:{unit:`byte`,verb:`có`},array:{unit:`phần tử`,verb:`có`},set:{unit:`phần tử`,verb:`có`}};function t(t){return e[t]??null}let n=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`số`;case`object`:if(Array.isArray(e))return`mảng`;if(e===null)return`null`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},r={regex:`đầu vào`,email:`địa chỉ email`,url:`URL`,emoji:`emoji`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`ngày giờ ISO`,date:`ngày ISO`,time:`giờ ISO`,duration:`khoảng thời gian ISO`,ipv4:`địa chỉ IPv4`,ipv6:`địa chỉ IPv6`,cidrv4:`dải IPv4`,cidrv6:`dải IPv6`,base64:`chuỗi mã hóa base64`,base64url:`chuỗi mã hóa base64url`,json_string:`chuỗi JSON`,e164:`số E.164`,jwt:`JWT`,template_literal:`đầu vào`};return e=>{switch(e.code){case`invalid_type`:return`Đầu vào không hợp lệ: mong đợi ${e.expected}, nhận được ${n(e.input)}`;case`invalid_value`:return e.values.length===1?`Đầu vào không hợp lệ: mong đợi ${v(e.values[0])}`:`Tùy chọn không hợp lệ: mong đợi một trong các giá trị ${m(e.values,`|`)}`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);return r?`Quá lớn: mong đợi ${e.origin??`giá trị`} ${r.verb} ${n}${e.maximum.toString()} ${r.unit??`phần tử`}`:`Quá lớn: mong đợi ${e.origin??`giá trị`} ${n}${e.maximum.toString()}`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);return r?`Quá nhỏ: mong đợi ${e.origin} ${r.verb} ${n}${e.minimum.toString()} ${r.unit}`:`Quá nhỏ: mong đợi ${e.origin} ${n}${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`Chuỗi không hợp lệ: phải bắt đầu bằng "${t.prefix}"`:t.format===`ends_with`?`Chuỗi không hợp lệ: phải kết thúc bằng "${t.suffix}"`:t.format===`includes`?`Chuỗi không hợp lệ: phải bao gồm "${t.includes}"`:t.format===`regex`?`Chuỗi không hợp lệ: phải khớp với mẫu ${t.pattern}`:`${r[t.format]??e.format} không hợp lệ`}case`not_multiple_of`:return`Số không hợp lệ: phải là bội số của ${e.divisor}`;case`unrecognized_keys`:return`Khóa không được nhận dạng: ${m(e.keys,`, `)}`;case`invalid_key`:return`Khóa không hợp lệ trong ${e.origin}`;case`invalid_union`:return`Đầu vào không hợp lệ`;case`invalid_element`:return`Giá trị không hợp lệ trong ${e.origin}`;default:return`Đầu vào không hợp lệ`}}};function Lo(){return{localeError:Io()}}var Ro=()=>{let e={string:{unit:`字符`,verb:`包含`},file:{unit:`字节`,verb:`包含`},array:{unit:`项`,verb:`包含`},set:{unit:`项`,verb:`包含`}};function t(t){return e[t]??null}let n=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`非数字(NaN)`:`数字`;case`object`:if(Array.isArray(e))return`数组`;if(e===null)return`空值(null)`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},r={regex:`输入`,email:`电子邮件`,url:`URL`,emoji:`表情符号`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`ISO日期时间`,date:`ISO日期`,time:`ISO时间`,duration:`ISO时长`,ipv4:`IPv4地址`,ipv6:`IPv6地址`,cidrv4:`IPv4网段`,cidrv6:`IPv6网段`,base64:`base64编码字符串`,base64url:`base64url编码字符串`,json_string:`JSON字符串`,e164:`E.164号码`,jwt:`JWT`,template_literal:`输入`};return e=>{switch(e.code){case`invalid_type`:return`无效输入:期望 ${e.expected},实际接收 ${n(e.input)}`;case`invalid_value`:return e.values.length===1?`无效输入:期望 ${v(e.values[0])}`:`无效选项:期望以下之一 ${m(e.values,`|`)}`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);return r?`数值过大:期望 ${e.origin??`值`} ${n}${e.maximum.toString()} ${r.unit??`个元素`}`:`数值过大:期望 ${e.origin??`值`} ${n}${e.maximum.toString()}`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);return r?`数值过小:期望 ${e.origin} ${n}${e.minimum.toString()} ${r.unit}`:`数值过小:期望 ${e.origin} ${n}${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`无效字符串:必须以 "${t.prefix}" 开头`:t.format===`ends_with`?`无效字符串:必须以 "${t.suffix}" 结尾`:t.format===`includes`?`无效字符串:必须包含 "${t.includes}"`:t.format===`regex`?`无效字符串:必须满足正则表达式 ${t.pattern}`:`无效${r[t.format]??e.format}`}case`not_multiple_of`:return`无效数字:必须是 ${e.divisor} 的倍数`;case`unrecognized_keys`:return`出现未知的键(key): ${m(e.keys,`, `)}`;case`invalid_key`:return`${e.origin} 中的键(key)无效`;case`invalid_union`:return`无效输入`;case`invalid_element`:return`${e.origin} 中包含无效值(value)`;default:return`无效输入`}}};function zo(){return{localeError:Ro()}}var Bo=()=>{let e={string:{unit:`字元`,verb:`擁有`},file:{unit:`位元組`,verb:`擁有`},array:{unit:`項目`,verb:`擁有`},set:{unit:`項目`,verb:`擁有`}};function t(t){return e[t]??null}let n=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`number`;case`object`:if(Array.isArray(e))return`array`;if(e===null)return`null`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},r={regex:`輸入`,email:`郵件地址`,url:`URL`,emoji:`emoji`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`ISO 日期時間`,date:`ISO 日期`,time:`ISO 時間`,duration:`ISO 期間`,ipv4:`IPv4 位址`,ipv6:`IPv6 位址`,cidrv4:`IPv4 範圍`,cidrv6:`IPv6 範圍`,base64:`base64 編碼字串`,base64url:`base64url 編碼字串`,json_string:`JSON 字串`,e164:`E.164 數值`,jwt:`JWT`,template_literal:`輸入`};return e=>{switch(e.code){case`invalid_type`:return`無效的輸入值:預期為 ${e.expected},但收到 ${n(e.input)}`;case`invalid_value`:return e.values.length===1?`無效的輸入值:預期為 ${v(e.values[0])}`:`無效的選項:預期為以下其中之一 ${m(e.values,`|`)}`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);return r?`數值過大:預期 ${e.origin??`值`} 應為 ${n}${e.maximum.toString()} ${r.unit??`個元素`}`:`數值過大:預期 ${e.origin??`值`} 應為 ${n}${e.maximum.toString()}`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);return r?`數值過小:預期 ${e.origin} 應為 ${n}${e.minimum.toString()} ${r.unit}`:`數值過小:預期 ${e.origin} 應為 ${n}${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`無效的字串:必須以 "${t.prefix}" 開頭`:t.format===`ends_with`?`無效的字串:必須以 "${t.suffix}" 結尾`:t.format===`includes`?`無效的字串:必須包含 "${t.includes}"`:t.format===`regex`?`無效的字串:必須符合格式 ${t.pattern}`:`無效的 ${r[t.format]??e.format}`}case`not_multiple_of`:return`無效的數字:必須為 ${e.divisor} 的倍數`;case`unrecognized_keys`:return`無法識別的鍵值${e.keys.length>1?`們`:``}:${m(e.keys,`、`)}`;case`invalid_key`:return`${e.origin} 中有無效的鍵值`;case`invalid_union`:return`無效的輸入值`;case`invalid_element`:return`${e.origin} 中有無效的值`;default:return`無效的輸入值`}}};function Vo(){return{localeError:Bo()}}var Ho=()=>{let e={string:{unit:`àmi`,verb:`ní`},file:{unit:`bytes`,verb:`ní`},array:{unit:`nkan`,verb:`ní`},set:{unit:`nkan`,verb:`ní`}};function t(t){return e[t]??null}let n=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`nọ́mbà`;case`object`:if(Array.isArray(e))return`akopọ`;if(e===null)return`null`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},r={regex:`ẹ̀rọ ìbáwọlé`,email:`àdírẹ́sì ìmẹ́lì`,url:`URL`,emoji:`emoji`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`àkókò ISO`,date:`ọjọ́ ISO`,time:`àkókò ISO`,duration:`àkókò tó pé ISO`,ipv4:`àdírẹ́sì IPv4`,ipv6:`àdírẹ́sì IPv6`,cidrv4:`àgbègbè IPv4`,cidrv6:`àgbègbè IPv6`,base64:`ọ̀rọ̀ tí a kọ́ ní base64`,base64url:`ọ̀rọ̀ base64url`,json_string:`ọ̀rọ̀ JSON`,e164:`nọ́mbà E.164`,jwt:`JWT`,template_literal:`ẹ̀rọ ìbáwọlé`};return e=>{switch(e.code){case`invalid_type`:return`Ìbáwọlé aṣìṣe: a ní láti fi ${e.expected}, àmọ̀ a rí ${n(e.input)}`;case`invalid_value`:return e.values.length===1?`Ìbáwọlé aṣìṣe: a ní láti fi ${v(e.values[0])}`:`Àṣàyàn aṣìṣe: yan ọ̀kan lára ${m(e.values,`|`)}`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);return r?`Tó pọ̀ jù: a ní láti jẹ́ pé ${e.origin??`iye`} ${r.verb} ${n}${e.maximum} ${r.unit}`:`Tó pọ̀ jù: a ní láti jẹ́ ${n}${e.maximum}`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);return r?`Kéré ju: a ní láti jẹ́ pé ${e.origin} ${r.verb} ${n}${e.minimum} ${r.unit}`:`Kéré ju: a ní láti jẹ́ ${n}${e.minimum}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`Ọ̀rọ̀ aṣìṣe: gbọ́dọ̀ bẹ̀rẹ̀ pẹ̀lú "${t.prefix}"`:t.format===`ends_with`?`Ọ̀rọ̀ aṣìṣe: gbọ́dọ̀ parí pẹ̀lú "${t.suffix}"`:t.format===`includes`?`Ọ̀rọ̀ aṣìṣe: gbọ́dọ̀ ní "${t.includes}"`:t.format===`regex`?`Ọ̀rọ̀ aṣìṣe: gbọ́dọ̀ bá àpẹẹrẹ mu ${t.pattern}`:`Aṣìṣe: ${r[t.format]??e.format}`}case`not_multiple_of`:return`Nọ́mbà aṣìṣe: gbọ́dọ̀ jẹ́ èyà pípín ti ${e.divisor}`;case`unrecognized_keys`:return`Bọtìnì àìmọ̀: ${m(e.keys,`, `)}`;case`invalid_key`:return`Bọtìnì aṣìṣe nínú ${e.origin}`;case`invalid_union`:return`Ìbáwọlé aṣìṣe`;case`invalid_element`:return`Iye aṣìṣe nínú ${e.origin}`;default:return`Ìbáwọlé aṣìṣe`}}};function Uo(){return{localeError:Ho()}}var Wo=t({ar:()=>Ji,az:()=>Xi,be:()=>$i,bg:()=>na,ca:()=>ia,cs:()=>oa,da:()=>ca,de:()=>ua,en:()=>pa,eo:()=>ga,es:()=>va,fa:()=>ba,fi:()=>Sa,fr:()=>wa,frCA:()=>Ea,he:()=>Oa,hu:()=>Aa,id:()=>Ma,is:()=>Fa,it:()=>La,ja:()=>za,ka:()=>Ha,kh:()=>Ga,km:()=>Wa,ko:()=>qa,lt:()=>$a,mk:()=>to,ms:()=>ro,nl:()=>ao,no:()=>so,ota:()=>lo,pl:()=>mo,ps:()=>fo,pt:()=>go,ru:()=>yo,sl:()=>xo,sv:()=>Co,ta:()=>To,th:()=>Do,tr:()=>Ao,ua:()=>No,uk:()=>Mo,ur:()=>Fo,vi:()=>Lo,yo:()=>Uo,zhCN:()=>zo,zhTW:()=>Vo}),Go,Ko=Symbol(`ZodOutput`),qo=Symbol(`ZodInput`),Jo=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...t){let n=t[0];if(this._map.set(e,n),n&&typeof n==`object`&&`id`in n){if(this._idmap.has(n.id))throw Error(`ID ${n.id} already exists in the registry`);this._idmap.set(n.id,e)}return this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(e){let t=this._map.get(e);return t&&typeof t==`object`&&`id`in t&&this._idmap.delete(t.id),this._map.delete(e),this}get(e){let t=e._zod.parent;if(t){let n={...this.get(t)??{}};delete n.id;let r={...n,...this._map.get(e)};return Object.keys(r).length?r:void 0}return this._map.get(e)}has(e){return this._map.has(e)}};function Yo(){return new Jo}(Go=globalThis).__zod_globalRegistry??(Go.__zod_globalRegistry=Yo());var T=globalThis.__zod_globalRegistry;function Xo(e,t){return new e({type:`string`,..._(t)})}function Zo(e,t){return new e({type:`string`,coerce:!0,..._(t)})}function Qo(e,t){return new e({type:`string`,format:`email`,check:`string_format`,abort:!1,..._(t)})}function $o(e,t){return new e({type:`string`,format:`guid`,check:`string_format`,abort:!1,..._(t)})}function es(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,..._(t)})}function ts(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v4`,..._(t)})}function ns(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v6`,..._(t)})}function rs(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v7`,..._(t)})}function is(e,t){return new e({type:`string`,format:`url`,check:`string_format`,abort:!1,..._(t)})}function as(e,t){return new e({type:`string`,format:`emoji`,check:`string_format`,abort:!1,..._(t)})}function os(e,t){return new e({type:`string`,format:`nanoid`,check:`string_format`,abort:!1,..._(t)})}function ss(e,t){return new e({type:`string`,format:`cuid`,check:`string_format`,abort:!1,..._(t)})}function cs(e,t){return new e({type:`string`,format:`cuid2`,check:`string_format`,abort:!1,..._(t)})}function ls(e,t){return new e({type:`string`,format:`ulid`,check:`string_format`,abort:!1,..._(t)})}function us(e,t){return new e({type:`string`,format:`xid`,check:`string_format`,abort:!1,..._(t)})}function ds(e,t){return new e({type:`string`,format:`ksuid`,check:`string_format`,abort:!1,..._(t)})}function fs(e,t){return new e({type:`string`,format:`ipv4`,check:`string_format`,abort:!1,..._(t)})}function ps(e,t){return new e({type:`string`,format:`ipv6`,check:`string_format`,abort:!1,..._(t)})}function ms(e,t){return new e({type:`string`,format:`mac`,check:`string_format`,abort:!1,..._(t)})}function hs(e,t){return new e({type:`string`,format:`cidrv4`,check:`string_format`,abort:!1,..._(t)})}function gs(e,t){return new e({type:`string`,format:`cidrv6`,check:`string_format`,abort:!1,..._(t)})}function _s(e,t){return new e({type:`string`,format:`base64`,check:`string_format`,abort:!1,..._(t)})}function vs(e,t){return new e({type:`string`,format:`base64url`,check:`string_format`,abort:!1,..._(t)})}function ys(e,t){return new e({type:`string`,format:`e164`,check:`string_format`,abort:!1,..._(t)})}function bs(e,t){return new e({type:`string`,format:`jwt`,check:`string_format`,abort:!1,..._(t)})}var xs={Any:null,Minute:-1,Second:0,Millisecond:3,Microsecond:6};function Ss(e,t){return new e({type:`string`,format:`datetime`,check:`string_format`,offset:!1,local:!1,precision:null,..._(t)})}function Cs(e,t){return new e({type:`string`,format:`date`,check:`string_format`,..._(t)})}function ws(e,t){return new e({type:`string`,format:`time`,check:`string_format`,precision:null,..._(t)})}function Ts(e,t){return new e({type:`string`,format:`duration`,check:`string_format`,..._(t)})}function Es(e,t){return new e({type:`number`,checks:[],..._(t)})}function Ds(e,t){return new e({type:`number`,coerce:!0,checks:[],..._(t)})}function Os(e,t){return new e({type:`number`,check:`number_format`,abort:!1,format:`safeint`,..._(t)})}function ks(e,t){return new e({type:`number`,check:`number_format`,abort:!1,format:`float32`,..._(t)})}function As(e,t){return new e({type:`number`,check:`number_format`,abort:!1,format:`float64`,..._(t)})}function js(e,t){return new e({type:`number`,check:`number_format`,abort:!1,format:`int32`,..._(t)})}function Ms(e,t){return new e({type:`number`,check:`number_format`,abort:!1,format:`uint32`,..._(t)})}function Ns(e,t){return new e({type:`boolean`,..._(t)})}function Ps(e,t){return new e({type:`boolean`,coerce:!0,..._(t)})}function Fs(e,t){return new e({type:`bigint`,..._(t)})}function Is(e,t){return new e({type:`bigint`,coerce:!0,..._(t)})}function Ls(e,t){return new e({type:`bigint`,check:`bigint_format`,abort:!1,format:`int64`,..._(t)})}function Rs(e,t){return new e({type:`bigint`,check:`bigint_format`,abort:!1,format:`uint64`,..._(t)})}function zs(e,t){return new e({type:`symbol`,..._(t)})}function Bs(e,t){return new e({type:`undefined`,..._(t)})}function Vs(e,t){return new e({type:`null`,..._(t)})}function Hs(e){return new e({type:`any`})}function Us(e){return new e({type:`unknown`})}function Ws(e,t){return new e({type:`never`,..._(t)})}function Gs(e,t){return new e({type:`void`,..._(t)})}function Ks(e,t){return new e({type:`date`,..._(t)})}function qs(e,t){return new e({type:`date`,coerce:!0,..._(t)})}function Js(e,t){return new e({type:`nan`,..._(t)})}function Ys(e,t){return new Vn({check:`less_than`,..._(t),value:e,inclusive:!1})}function E(e,t){return new Vn({check:`less_than`,..._(t),value:e,inclusive:!0})}function Xs(e,t){return new Hn({check:`greater_than`,..._(t),value:e,inclusive:!1})}function D(e,t){return new Hn({check:`greater_than`,..._(t),value:e,inclusive:!0})}function Zs(e){return Xs(0,e)}function Qs(e){return Ys(0,e)}function $s(e){return E(0,e)}function ec(e){return D(0,e)}function tc(e,t){return new Un({check:`multiple_of`,..._(t),value:e})}function nc(e,t){return new Kn({check:`max_size`,..._(t),maximum:e})}function rc(e,t){return new qn({check:`min_size`,..._(t),minimum:e})}function ic(e,t){return new Jn({check:`size_equals`,..._(t),size:e})}function ac(e,t){return new Yn({check:`max_length`,..._(t),maximum:e})}function oc(e,t){return new Xn({check:`min_length`,..._(t),minimum:e})}function sc(e,t){return new Zn({check:`length_equals`,..._(t),length:e})}function cc(e,t){return new $n({check:`string_format`,format:`regex`,..._(t),pattern:e})}function lc(e){return new er({check:`string_format`,format:`lowercase`,..._(e)})}function uc(e){return new tr({check:`string_format`,format:`uppercase`,..._(e)})}function dc(e,t){return new nr({check:`string_format`,format:`includes`,..._(t),includes:e})}function fc(e,t){return new rr({check:`string_format`,format:`starts_with`,..._(t),prefix:e})}function pc(e,t){return new ir({check:`string_format`,format:`ends_with`,..._(t),suffix:e})}function mc(e,t,n){return new or({check:`property`,property:e,schema:t,..._(n)})}function hc(e,t){return new sr({check:`mime_type`,mime:e,..._(t)})}function O(e){return new cr({check:`overwrite`,tx:e})}function gc(e){return O(t=>t.normalize(e))}function _c(){return O(e=>e.trim())}function vc(){return O(e=>e.toLowerCase())}function yc(){return O(e=>e.toUpperCase())}function bc(){return O(e=>_e(e))}function xc(e,t,n){return new e({type:`array`,element:t,..._(n)})}function Sc(e,t,n){return new e({type:`union`,options:t,..._(n)})}function Cc(e,t,n,r){return new e({type:`union`,options:n,discriminator:t,..._(r)})}function wc(e,t,n){return new e({type:`intersection`,left:t,right:n})}function Tc(e,t,n,r){let i=n instanceof C;return new e({type:`tuple`,items:t,rest:i?n:null,..._(i?r:n)})}function Ec(e,t,n,r){return new e({type:`record`,keyType:t,valueType:n,..._(r)})}function Dc(e,t,n,r){return new e({type:`map`,keyType:t,valueType:n,..._(r)})}function Oc(e,t,n){return new e({type:`set`,valueType:t,..._(n)})}function kc(e,t,n){return new e({type:`enum`,entries:Array.isArray(t)?Object.fromEntries(t.map(e=>[e,e])):t,..._(n)})}function Ac(e,t,n){return new e({type:`enum`,entries:t,..._(n)})}function jc(e,t,n){return new e({type:`literal`,values:Array.isArray(t)?t:[t],..._(n)})}function Mc(e,t){return new e({type:`file`,..._(t)})}function Nc(e,t){return new e({type:`transform`,transform:t})}function Pc(e,t){return new e({type:`optional`,innerType:t})}function Fc(e,t){return new e({type:`nullable`,innerType:t})}function Ic(e,t,n){return new e({type:`default`,innerType:t,get defaultValue(){return typeof n==`function`?n():Se(n)}})}function Lc(e,t,n){return new e({type:`nonoptional`,innerType:t,..._(n)})}function Rc(e,t){return new e({type:`success`,innerType:t})}function zc(e,t,n){return new e({type:`catch`,innerType:t,catchValue:typeof n==`function`?n:()=>n})}function Bc(e,t,n){return new e({type:`pipe`,in:t,out:n})}function Vc(e,t){return new e({type:`readonly`,innerType:t})}function Hc(e,t,n){return new e({type:`template_literal`,parts:t,..._(n)})}function Uc(e,t){return new e({type:`lazy`,getter:t})}function Wc(e,t){return new e({type:`promise`,innerType:t})}function Gc(e,t,n){let r=_(n);return r.abort??=!0,new e({type:`custom`,check:`custom`,fn:t,...r})}function Kc(e,t,n){return new e({type:`custom`,check:`custom`,fn:t,..._(n)})}function qc(e){let t=Jc(n=>(n.addIssue=e=>{if(typeof e==`string`)n.issues.push(Ue(e,n.value,t._zod.def));else{let r=e;r.fatal&&(r.continue=!1),r.code??=`custom`,r.input??=n.value,r.inst??=t,r.continue??=!t._zod.def.abort,n.issues.push(Ue(r))}},e(n.value,n)));return t}function Jc(e,t){let n=new S({check:`custom`,..._(t)});return n._zod.check=e,n}function Yc(e){let t=new S({check:`describe`});return t._zod.onattach=[t=>{let n=T.get(t)??{};T.add(t,{...n,description:e})}],t._zod.check=()=>{},t}function Xc(e){let t=new S({check:`meta`});return t._zod.onattach=[t=>{let n=T.get(t)??{};T.add(t,{...n,...e})}],t._zod.check=()=>{},t}function Zc(e,t){let n=_(t),r=n.truthy??[`true`,`1`,`yes`,`on`,`y`,`enabled`],i=n.falsy??[`false`,`0`,`no`,`off`,`n`,`disabled`];n.case!==`sensitive`&&(r=r.map(e=>typeof e==`string`?e.toLowerCase():e),i=i.map(e=>typeof e==`string`?e.toLowerCase():e));let a=new Set(r),o=new Set(i),s=e.Codec??Ii,c=e.Boolean??Hr,l=new s({type:`pipe`,in:new(e.String??dr)({type:`string`,error:n.error}),out:new c({type:`boolean`,error:n.error}),transform:((e,t)=>{let r=e;return n.case!==`sensitive`&&(r=r.toLowerCase()),a.has(r)?!0:o.has(r)?!1:(t.issues.push({code:`invalid_value`,expected:`stringbool`,values:[...a,...o],input:t.value,inst:l,continue:!1}),{})}),reverseTransform:((e,t)=>e===!0?r[0]||`true`:i[0]||`false`),error:n.error});return l}function Qc(e,t,n,r={}){let i=_(r),a={..._(r),check:`string_format`,type:`string`,format:t,fn:typeof n==`function`?n:e=>n.test(e),...i};return n instanceof RegExp&&(a.pattern=n),new e(a)}var $c=class{constructor(e){this.counter=0,this.metadataRegistry=e?.metadata??T,this.target=e?.target??`draft-2020-12`,this.unrepresentable=e?.unrepresentable??`throw`,this.override=e?.override??(()=>{}),this.io=e?.io??`output`,this.seen=new Map}process(e,t={path:[],schemaPath:[]}){var n;let r=e._zod.def,i={guid:`uuid`,url:`uri`,datetime:`date-time`,json_string:`json-string`,regex:``},a=this.seen.get(e);if(a)return a.count++,t.schemaPath.includes(e)&&(a.cycle=t.path),a.schema;let o={schema:{},count:1,cycle:void 0,path:t.path};this.seen.set(e,o);let s=e._zod.toJSONSchema?.();if(s)o.schema=s;else{let n={...t,schemaPath:[...t.schemaPath,e],path:t.path},a=e._zod.parent;if(a)o.ref=a,this.process(a,n),this.seen.get(a).isParent=!0;else{let t=o.schema;switch(r.type){case`string`:{let n=t;n.type=`string`;let{minimum:r,maximum:a,format:s,patterns:c,contentEncoding:l}=e._zod.bag;if(typeof r==`number`&&(n.minLength=r),typeof a==`number`&&(n.maxLength=a),s&&(n.format=i[s]??s,n.format===``&&delete n.format),l&&(n.contentEncoding=l),c&&c.size>0){let e=[...c];e.length===1?n.pattern=e[0].source:e.length>1&&(o.schema.allOf=[...e.map(e=>({...this.target===`draft-7`||this.target===`draft-4`||this.target===`openapi-3.0`?{type:`string`}:{},pattern:e.source}))])}break}case`number`:{let n=t,{minimum:r,maximum:i,format:a,multipleOf:o,exclusiveMaximum:s,exclusiveMinimum:c}=e._zod.bag;typeof a==`string`&&a.includes(`int`)?n.type=`integer`:n.type=`number`,typeof c==`number`&&(this.target===`draft-4`||this.target===`openapi-3.0`?(n.minimum=c,n.exclusiveMinimum=!0):n.exclusiveMinimum=c),typeof r==`number`&&(n.minimum=r,typeof c==`number`&&this.target!==`draft-4`&&(c>=r?delete n.minimum:delete n.exclusiveMinimum)),typeof s==`number`&&(this.target===`draft-4`||this.target===`openapi-3.0`?(n.maximum=s,n.exclusiveMaximum=!0):n.exclusiveMaximum=s),typeof i==`number`&&(n.maximum=i,typeof s==`number`&&this.target!==`draft-4`&&(s<=i?delete n.maximum:delete n.exclusiveMaximum)),typeof o==`number`&&(n.multipleOf=o);break}case`boolean`:{let e=t;e.type=`boolean`;break}case`bigint`:if(this.unrepresentable===`throw`)throw Error(`BigInt cannot be represented in JSON Schema`);break;case`symbol`:if(this.unrepresentable===`throw`)throw Error(`Symbols cannot be represented in JSON Schema`);break;case`null`:this.target===`openapi-3.0`?(t.type=`string`,t.nullable=!0,t.enum=[null]):t.type=`null`;break;case`any`:break;case`unknown`:break;case`undefined`:if(this.unrepresentable===`throw`)throw Error(`Undefined cannot be represented in JSON Schema`);break;case`void`:if(this.unrepresentable===`throw`)throw Error(`Void cannot be represented in JSON Schema`);break;case`never`:t.not={};break;case`date`:if(this.unrepresentable===`throw`)throw Error(`Date cannot be represented in JSON Schema`);break;case`array`:{let i=t,{minimum:a,maximum:o}=e._zod.bag;typeof a==`number`&&(i.minItems=a),typeof o==`number`&&(i.maxItems=o),i.type=`array`,i.items=this.process(r.element,{...n,path:[...n.path,`items`]});break}case`object`:{let e=t;e.type=`object`,e.properties={};let i=r.shape;for(let t in i)e.properties[t]=this.process(i[t],{...n,path:[...n.path,`properties`,t]});let a=new Set(Object.keys(i)),o=new Set([...a].filter(e=>{let t=r.shape[e]._zod;return this.io===`input`?t.optin===void 0:t.optout===void 0}));o.size>0&&(e.required=Array.from(o)),r.catchall?._zod.def.type===`never`?e.additionalProperties=!1:r.catchall?r.catchall&&(e.additionalProperties=this.process(r.catchall,{...n,path:[...n.path,`additionalProperties`]})):this.io===`output`&&(e.additionalProperties=!1);break}case`union`:{let e=t,i=r.discriminator!==void 0,a=r.options.map((e,t)=>this.process(e,{...n,path:[...n.path,i?`oneOf`:`anyOf`,t]}));i?e.oneOf=a:e.anyOf=a;break}case`intersection`:{let e=t,i=this.process(r.left,{...n,path:[...n.path,`allOf`,0]}),a=this.process(r.right,{...n,path:[...n.path,`allOf`,1]}),o=e=>`allOf`in e&&Object.keys(e).length===1;e.allOf=[...o(i)?i.allOf:[i],...o(a)?a.allOf:[a]];break}case`tuple`:{let i=t;i.type=`array`;let a=this.target===`draft-2020-12`?`prefixItems`:`items`,o=this.target===`draft-2020-12`||this.target===`openapi-3.0`?`items`:`additionalItems`,s=r.items.map((e,t)=>this.process(e,{...n,path:[...n.path,a,t]})),c=r.rest?this.process(r.rest,{...n,path:[...n.path,o,...this.target===`openapi-3.0`?[r.items.length]:[]]}):null;this.target===`draft-2020-12`?(i.prefixItems=s,c&&(i.items=c)):this.target===`openapi-3.0`?(i.items={anyOf:s},c&&i.items.anyOf.push(c),i.minItems=s.length,c||(i.maxItems=s.length)):(i.items=s,c&&(i.additionalItems=c));let{minimum:l,maximum:u}=e._zod.bag;typeof l==`number`&&(i.minItems=l),typeof u==`number`&&(i.maxItems=u);break}case`record`:{let e=t;e.type=`object`,(this.target===`draft-7`||this.target===`draft-2020-12`)&&(e.propertyNames=this.process(r.keyType,{...n,path:[...n.path,`propertyNames`]})),e.additionalProperties=this.process(r.valueType,{...n,path:[...n.path,`additionalProperties`]});break}case`map`:if(this.unrepresentable===`throw`)throw Error(`Map cannot be represented in JSON Schema`);break;case`set`:if(this.unrepresentable===`throw`)throw Error(`Set cannot be represented in JSON Schema`);break;case`enum`:{let e=t,n=ne(r.entries);n.every(e=>typeof e==`number`)&&(e.type=`number`),n.every(e=>typeof e==`string`)&&(e.type=`string`),e.enum=n;break}case`literal`:{let e=t,n=[];for(let e of r.values)if(e===void 0){if(this.unrepresentable===`throw`)throw Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof e==`bigint`){if(this.unrepresentable===`throw`)throw Error(`BigInt literals cannot be represented in JSON Schema`);n.push(Number(e))}else n.push(e);if(n.length!==0)if(n.length===1){let t=n[0];e.type=t===null?`null`:typeof t,this.target===`draft-4`||this.target===`openapi-3.0`?e.enum=[t]:e.const=t}else n.every(e=>typeof e==`number`)&&(e.type=`number`),n.every(e=>typeof e==`string`)&&(e.type=`string`),n.every(e=>typeof e==`boolean`)&&(e.type=`string`),n.every(e=>e===null)&&(e.type=`null`),e.enum=n;break}case`file`:{let n=t,r={type:`string`,format:`binary`,contentEncoding:`binary`},{minimum:i,maximum:a,mime:o}=e._zod.bag;i!==void 0&&(r.minLength=i),a!==void 0&&(r.maxLength=a),o?o.length===1?(r.contentMediaType=o[0],Object.assign(n,r)):n.anyOf=o.map(e=>({...r,contentMediaType:e})):Object.assign(n,r);break}case`transform`:if(this.unrepresentable===`throw`)throw Error(`Transforms cannot be represented in JSON Schema`);break;case`nullable`:{let e=this.process(r.innerType,n);this.target===`openapi-3.0`?(o.ref=r.innerType,t.nullable=!0):t.anyOf=[e,{type:`null`}];break}case`nonoptional`:this.process(r.innerType,n),o.ref=r.innerType;break;case`success`:{let e=t;e.type=`boolean`;break}case`default`:this.process(r.innerType,n),o.ref=r.innerType,t.default=JSON.parse(JSON.stringify(r.defaultValue));break;case`prefault`:this.process(r.innerType,n),o.ref=r.innerType,this.io===`input`&&(t._prefault=JSON.parse(JSON.stringify(r.defaultValue)));break;case`catch`:{this.process(r.innerType,n),o.ref=r.innerType;let e;try{e=r.catchValue(void 0)}catch{throw Error(`Dynamic catch values are not supported in JSON Schema`)}t.default=e;break}case`nan`:if(this.unrepresentable===`throw`)throw Error(`NaN cannot be represented in JSON Schema`);break;case`template_literal`:{let n=t,r=e._zod.pattern;if(!r)throw Error(`Pattern not found in template literal`);n.type=`string`,n.pattern=r.source;break}case`pipe`:{let e=this.io===`input`?r.in._zod.def.type===`transform`?r.out:r.in:r.out;this.process(e,n),o.ref=e;break}case`readonly`:this.process(r.innerType,n),o.ref=r.innerType,t.readOnly=!0;break;case`promise`:this.process(r.innerType,n),o.ref=r.innerType;break;case`optional`:this.process(r.innerType,n),o.ref=r.innerType;break;case`lazy`:{let t=e._zod.innerType;this.process(t,n),o.ref=t;break}case`custom`:if(this.unrepresentable===`throw`)throw Error(`Custom types cannot be represented in JSON Schema`);break;case`function`:if(this.unrepresentable===`throw`)throw Error(`Function types cannot be represented in JSON Schema`);break;default:}}}let c=this.metadataRegistry.get(e);return c&&Object.assign(o.schema,c),this.io===`input`&&k(e)&&(delete o.schema.examples,delete o.schema.default),this.io===`input`&&o.schema._prefault&&((n=o.schema).default??(n.default=o.schema._prefault)),delete o.schema._prefault,this.seen.get(e).schema}emit(e,t){let n={cycles:t?.cycles??`ref`,reused:t?.reused??`inline`,external:t?.external??void 0},r=this.seen.get(e);if(!r)throw Error(`Unprocessed schema. This is a bug in Zod.`);let i=e=>{let t=this.target===`draft-2020-12`?`$defs`:`definitions`;if(n.external){let r=n.external.registry.get(e[0])?.id,i=n.external.uri??(e=>e);if(r)return{ref:i(r)};let a=e[1].defId??e[1].schema.id??`schema${this.counter++}`;return e[1].defId=a,{defId:a,ref:`${i(`__shared`)}#/${t}/${a}`}}if(e[1]===r)return{ref:`#`};let i=`#/${t}/`,a=e[1].schema.id??`__schema${this.counter++}`;return{defId:a,ref:i+a}},a=e=>{if(e[1].schema.$ref)return;let t=e[1],{ref:n,defId:r}=i(e);t.def={...t.schema},r&&(t.defId=r);let a=t.schema;for(let e in a)delete a[e];a.$ref=n};if(n.cycles===`throw`)for(let e of this.seen.entries()){let t=e[1];if(t.cycle)throw Error(`Cycle detected: #/${t.cycle?.join(`/`)}/<root>
477
+ ),e._zod.parse=(n,r)=>typeof n.value==`string`?(e._zod.pattern.lastIndex=0,e._zod.pattern.test(n.value)||n.issues.push({input:n.value,inst:e,code:`invalid_format`,format:t.format??`template_literal`,pattern:e._zod.pattern.source}),n):(n.issues.push({input:n.value,inst:e,expected:`template_literal`,code:`invalid_type`}),n)}),Bi=i(`$ZodFunction`,(e,t)=>(T.init(e,t),e._def=t,e._zod.def=t,e.implement=t=>{if(typeof t!=`function`)throw Error(`implement() must be called with a function`);return function(...n){let r=e._def.input?it(e._def.input,n):n,i=Reflect.apply(t,this,r);return e._def.output?it(e._def.output,i):i}},e.implementAsync=t=>{if(typeof t!=`function`)throw Error(`implementAsync() must be called with a function`);return async function(...n){let r=e._def.input?await ot(e._def.input,n):n,i=await Reflect.apply(t,this,r);return e._def.output?await ot(e._def.output,i):i}},e._zod.parse=(t,n)=>typeof t.value==`function`?(e._def.output&&e._def.output._zod.def.type===`promise`?t.value=e.implementAsync(t.value):t.value=e.implement(t.value),t):(t.issues.push({code:`invalid_type`,expected:`function`,input:t.value,inst:e}),t),e.input=(...t)=>{let n=e.constructor;return Array.isArray(t[0])?new n({type:`function`,input:new ui({type:`tuple`,items:t[0],rest:t[1]}),output:e._def.output}):new n({type:`function`,input:t[0],output:e._def.output})},e.output=t=>{let n=e.constructor;return new n({type:`function`,input:e._def.input,output:t})},e)),Vi=i(`$ZodPromise`,(e,t)=>{T.init(e,t),e._zod.parse=(e,n)=>Promise.resolve(e.value).then(e=>t.innerType._zod.run({value:e,issues:[]},n))}),Hi=i(`$ZodLazy`,(e,t)=>{T.init(e,t),y(e._zod,`innerType`,()=>t.getter()),y(e._zod,`pattern`,()=>e._zod.innerType?._zod?.pattern),y(e._zod,`propValues`,()=>e._zod.innerType?._zod?.propValues),y(e._zod,`optin`,()=>e._zod.innerType?._zod?.optin??void 0),y(e._zod,`optout`,()=>e._zod.innerType?._zod?.optout??void 0),e._zod.parse=(t,n)=>e._zod.innerType._zod.run(t,n)}),Ui=i(`$ZodCustom`,(e,t)=>{w.init(e,t),T.init(e,t),e._zod.parse=(e,t)=>e,e._zod.check=n=>{let r=n.value,i=t.fn(r);if(i instanceof Promise)return i.then(t=>Wi(t,n,r,e));Wi(i,n,r,e)}});function Wi(e,t,n,r){if(!e){let e={code:`custom`,input:n,inst:r,path:[...r._zod.def.path??[]],continue:!r._zod.def.abort};r._zod.def.params&&(e.params=r._zod.def.params),t.issues.push(Ve(e))}}var Gi=()=>{let e={string:{unit:`حرف`,verb:`أن يحوي`},file:{unit:`بايت`,verb:`أن يحوي`},array:{unit:`عنصر`,verb:`أن يحوي`},set:{unit:`عنصر`,verb:`أن يحوي`}};function t(t){return e[t]??null}let n=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`number`;case`object`:if(Array.isArray(e))return`array`;if(e===null)return`null`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},r={regex:`مدخل`,email:`بريد إلكتروني`,url:`رابط`,emoji:`إيموجي`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`تاريخ ووقت بمعيار ISO`,date:`تاريخ بمعيار ISO`,time:`وقت بمعيار ISO`,duration:`مدة بمعيار ISO`,ipv4:`عنوان IPv4`,ipv6:`عنوان IPv6`,cidrv4:`مدى عناوين بصيغة IPv4`,cidrv6:`مدى عناوين بصيغة IPv6`,base64:`نَص بترميز base64-encoded`,base64url:`نَص بترميز base64url-encoded`,json_string:`نَص على هيئة JSON`,e164:`رقم هاتف بمعيار E.164`,jwt:`JWT`,template_literal:`مدخل`};return e=>{switch(e.code){case`invalid_type`:return`مدخلات غير مقبولة: يفترض إدخال ${e.expected}، ولكن تم إدخال ${n(e.input)}`;case`invalid_value`:return e.values.length===1?`مدخلات غير مقبولة: يفترض إدخال ${S(e.values[0])}`:`اختيار غير مقبول: يتوقع انتقاء أحد هذه الخيارات: ${_(e.values,`|`)}`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);return r?` أكبر من اللازم: يفترض أن تكون ${e.origin??`القيمة`} ${n} ${e.maximum.toString()} ${r.unit??`عنصر`}`:`أكبر من اللازم: يفترض أن تكون ${e.origin??`القيمة`} ${n} ${e.maximum.toString()}`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);return r?`أصغر من اللازم: يفترض لـ ${e.origin} أن يكون ${n} ${e.minimum.toString()} ${r.unit}`:`أصغر من اللازم: يفترض لـ ${e.origin} أن يكون ${n} ${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`نَص غير مقبول: يجب أن يبدأ بـ "${e.prefix}"`:t.format===`ends_with`?`نَص غير مقبول: يجب أن ينتهي بـ "${t.suffix}"`:t.format===`includes`?`نَص غير مقبول: يجب أن يتضمَّن "${t.includes}"`:t.format===`regex`?`نَص غير مقبول: يجب أن يطابق النمط ${t.pattern}`:`${r[t.format]??e.format} غير مقبول`}case`not_multiple_of`:return`رقم غير مقبول: يجب أن يكون من مضاعفات ${e.divisor}`;case`unrecognized_keys`:return`معرف${e.keys.length>1?`ات`:``} غريب${e.keys.length>1?`ة`:``}: ${_(e.keys,`، `)}`;case`invalid_key`:return`معرف غير مقبول في ${e.origin}`;case`invalid_union`:return`مدخل غير مقبول`;case`invalid_element`:return`مدخل غير مقبول في ${e.origin}`;default:return`مدخل غير مقبول`}}};function Ki(){return{localeError:Gi()}}var qi=()=>{let e={string:{unit:`simvol`,verb:`olmalıdır`},file:{unit:`bayt`,verb:`olmalıdır`},array:{unit:`element`,verb:`olmalıdır`},set:{unit:`element`,verb:`olmalıdır`}};function t(t){return e[t]??null}let n=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`number`;case`object`:if(Array.isArray(e))return`array`;if(e===null)return`null`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},r={regex:`input`,email:`email address`,url:`URL`,emoji:`emoji`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`ISO datetime`,date:`ISO date`,time:`ISO time`,duration:`ISO duration`,ipv4:`IPv4 address`,ipv6:`IPv6 address`,cidrv4:`IPv4 range`,cidrv6:`IPv6 range`,base64:`base64-encoded string`,base64url:`base64url-encoded string`,json_string:`JSON string`,e164:`E.164 number`,jwt:`JWT`,template_literal:`input`};return e=>{switch(e.code){case`invalid_type`:return`Yanlış dəyər: gözlənilən ${e.expected}, daxil olan ${n(e.input)}`;case`invalid_value`:return e.values.length===1?`Yanlış dəyər: gözlənilən ${S(e.values[0])}`:`Yanlış seçim: aşağıdakılardan biri olmalıdır: ${_(e.values,`|`)}`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);return r?`Çox böyük: gözlənilən ${e.origin??`dəyər`} ${n}${e.maximum.toString()} ${r.unit??`element`}`:`Çox böyük: gözlənilən ${e.origin??`dəyər`} ${n}${e.maximum.toString()}`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);return r?`Çox kiçik: gözlənilən ${e.origin} ${n}${e.minimum.toString()} ${r.unit}`:`Çox kiçik: gözlənilən ${e.origin} ${n}${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`Yanlış mətn: "${t.prefix}" ilə başlamalıdır`:t.format===`ends_with`?`Yanlış mətn: "${t.suffix}" ilə bitməlidir`:t.format===`includes`?`Yanlış mətn: "${t.includes}" daxil olmalıdır`:t.format===`regex`?`Yanlış mətn: ${t.pattern} şablonuna uyğun olmalıdır`:`Yanlış ${r[t.format]??e.format}`}case`not_multiple_of`:return`Yanlış ədəd: ${e.divisor} ilə bölünə bilən olmalıdır`;case`unrecognized_keys`:return`Tanınmayan açar${e.keys.length>1?`lar`:``}: ${_(e.keys,`, `)}`;case`invalid_key`:return`${e.origin} daxilində yanlış açar`;case`invalid_union`:return`Yanlış dəyər`;case`invalid_element`:return`${e.origin} daxilində yanlış dəyər`;default:return`Yanlış dəyər`}}};function Ji(){return{localeError:qi()}}function Yi(e,t,n,r){let i=Math.abs(e),a=i%10,o=i%100;return o>=11&&o<=19?r:a===1?t:a>=2&&a<=4?n:r}var Xi=()=>{let e={string:{unit:{one:`сімвал`,few:`сімвалы`,many:`сімвалаў`},verb:`мець`},array:{unit:{one:`элемент`,few:`элементы`,many:`элементаў`},verb:`мець`},set:{unit:{one:`элемент`,few:`элементы`,many:`элементаў`},verb:`мець`},file:{unit:{one:`байт`,few:`байты`,many:`байтаў`},verb:`мець`}};function t(t){return e[t]??null}let n=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`лік`;case`object`:if(Array.isArray(e))return`масіў`;if(e===null)return`null`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},r={regex:`увод`,email:`email адрас`,url:`URL`,emoji:`эмодзі`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`ISO дата і час`,date:`ISO дата`,time:`ISO час`,duration:`ISO працягласць`,ipv4:`IPv4 адрас`,ipv6:`IPv6 адрас`,cidrv4:`IPv4 дыяпазон`,cidrv6:`IPv6 дыяпазон`,base64:`радок у фармаце base64`,base64url:`радок у фармаце base64url`,json_string:`JSON радок`,e164:`нумар E.164`,jwt:`JWT`,template_literal:`увод`};return e=>{switch(e.code){case`invalid_type`:return`Няправільны ўвод: чакаўся ${e.expected}, атрымана ${n(e.input)}`;case`invalid_value`:return e.values.length===1?`Няправільны ўвод: чакалася ${S(e.values[0])}`:`Няправільны варыянт: чакаўся адзін з ${_(e.values,`|`)}`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);if(r){let t=Yi(Number(e.maximum),r.unit.one,r.unit.few,r.unit.many);return`Занадта вялікі: чакалася, што ${e.origin??`значэнне`} павінна ${r.verb} ${n}${e.maximum.toString()} ${t}`}return`Занадта вялікі: чакалася, што ${e.origin??`значэнне`} павінна быць ${n}${e.maximum.toString()}`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);if(r){let t=Yi(Number(e.minimum),r.unit.one,r.unit.few,r.unit.many);return`Занадта малы: чакалася, што ${e.origin} павінна ${r.verb} ${n}${e.minimum.toString()} ${t}`}return`Занадта малы: чакалася, што ${e.origin} павінна быць ${n}${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`Няправільны радок: павінен пачынацца з "${t.prefix}"`:t.format===`ends_with`?`Няправільны радок: павінен заканчвацца на "${t.suffix}"`:t.format===`includes`?`Няправільны радок: павінен змяшчаць "${t.includes}"`:t.format===`regex`?`Няправільны радок: павінен адпавядаць шаблону ${t.pattern}`:`Няправільны ${r[t.format]??e.format}`}case`not_multiple_of`:return`Няправільны лік: павінен быць кратным ${e.divisor}`;case`unrecognized_keys`:return`Нераспазнаны ${e.keys.length>1?`ключы`:`ключ`}: ${_(e.keys,`, `)}`;case`invalid_key`:return`Няправільны ключ у ${e.origin}`;case`invalid_union`:return`Няправільны ўвод`;case`invalid_element`:return`Няправільнае значэнне ў ${e.origin}`;default:return`Няправільны ўвод`}}};function Zi(){return{localeError:Xi()}}var Qi=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`число`;case`object`:if(Array.isArray(e))return`масив`;if(e===null)return`null`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},$i=()=>{let e={string:{unit:`символа`,verb:`да съдържа`},file:{unit:`байта`,verb:`да съдържа`},array:{unit:`елемента`,verb:`да съдържа`},set:{unit:`елемента`,verb:`да съдържа`}};function t(t){return e[t]??null}let n={regex:`вход`,email:`имейл адрес`,url:`URL`,emoji:`емоджи`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`ISO време`,date:`ISO дата`,time:`ISO време`,duration:`ISO продължителност`,ipv4:`IPv4 адрес`,ipv6:`IPv6 адрес`,cidrv4:`IPv4 диапазон`,cidrv6:`IPv6 диапазон`,base64:`base64-кодиран низ`,base64url:`base64url-кодиран низ`,json_string:`JSON низ`,e164:`E.164 номер`,jwt:`JWT`,template_literal:`вход`};return e=>{switch(e.code){case`invalid_type`:return`Невалиден вход: очакван ${e.expected}, получен ${Qi(e.input)}`;case`invalid_value`:return e.values.length===1?`Невалиден вход: очакван ${S(e.values[0])}`:`Невалидна опция: очаквано едно от ${_(e.values,`|`)}`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);return r?`Твърде голямо: очаква се ${e.origin??`стойност`} да съдържа ${n}${e.maximum.toString()} ${r.unit??`елемента`}`:`Твърде голямо: очаква се ${e.origin??`стойност`} да бъде ${n}${e.maximum.toString()}`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);return r?`Твърде малко: очаква се ${e.origin} да съдържа ${n}${e.minimum.toString()} ${r.unit}`:`Твърде малко: очаква се ${e.origin} да бъде ${n}${e.minimum.toString()}`}case`invalid_format`:{let t=e;if(t.format===`starts_with`)return`Невалиден низ: трябва да започва с "${t.prefix}"`;if(t.format===`ends_with`)return`Невалиден низ: трябва да завършва с "${t.suffix}"`;if(t.format===`includes`)return`Невалиден низ: трябва да включва "${t.includes}"`;if(t.format===`regex`)return`Невалиден низ: трябва да съвпада с ${t.pattern}`;let r=`Невалиден`;return t.format===`emoji`&&(r=`Невалидно`),t.format===`datetime`&&(r=`Невалидно`),t.format===`date`&&(r=`Невалидна`),t.format===`time`&&(r=`Невалидно`),t.format===`duration`&&(r=`Невалидна`),`${r} ${n[t.format]??e.format}`}case`not_multiple_of`:return`Невалидно число: трябва да бъде кратно на ${e.divisor}`;case`unrecognized_keys`:return`Неразпознат${e.keys.length>1?`и`:``} ключ${e.keys.length>1?`ове`:``}: ${_(e.keys,`, `)}`;case`invalid_key`:return`Невалиден ключ в ${e.origin}`;case`invalid_union`:return`Невалиден вход`;case`invalid_element`:return`Невалидна стойност в ${e.origin}`;default:return`Невалиден вход`}}};function ea(){return{localeError:$i()}}var ta=()=>{let e={string:{unit:`caràcters`,verb:`contenir`},file:{unit:`bytes`,verb:`contenir`},array:{unit:`elements`,verb:`contenir`},set:{unit:`elements`,verb:`contenir`}};function t(t){return e[t]??null}let n=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`number`;case`object`:if(Array.isArray(e))return`array`;if(e===null)return`null`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},r={regex:`entrada`,email:`adreça electrònica`,url:`URL`,emoji:`emoji`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`data i hora ISO`,date:`data ISO`,time:`hora ISO`,duration:`durada ISO`,ipv4:`adreça IPv4`,ipv6:`adreça IPv6`,cidrv4:`rang IPv4`,cidrv6:`rang IPv6`,base64:`cadena codificada en base64`,base64url:`cadena codificada en base64url`,json_string:`cadena JSON`,e164:`número E.164`,jwt:`JWT`,template_literal:`entrada`};return e=>{switch(e.code){case`invalid_type`:return`Tipus invàlid: s'esperava ${e.expected}, s'ha rebut ${n(e.input)}`;case`invalid_value`:return e.values.length===1?`Valor invàlid: s'esperava ${S(e.values[0])}`:`Opció invàlida: s'esperava una de ${_(e.values,` o `)}`;case`too_big`:{let n=e.inclusive?`com a màxim`:`menys de`,r=t(e.origin);return r?`Massa gran: s'esperava que ${e.origin??`el valor`} contingués ${n} ${e.maximum.toString()} ${r.unit??`elements`}`:`Massa gran: s'esperava que ${e.origin??`el valor`} fos ${n} ${e.maximum.toString()}`}case`too_small`:{let n=e.inclusive?`com a mínim`:`més de`,r=t(e.origin);return r?`Massa petit: s'esperava que ${e.origin} contingués ${n} ${e.minimum.toString()} ${r.unit}`:`Massa petit: s'esperava que ${e.origin} fos ${n} ${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`Format invàlid: ha de començar amb "${t.prefix}"`:t.format===`ends_with`?`Format invàlid: ha d'acabar amb "${t.suffix}"`:t.format===`includes`?`Format invàlid: ha d'incloure "${t.includes}"`:t.format===`regex`?`Format invàlid: ha de coincidir amb el patró ${t.pattern}`:`Format invàlid per a ${r[t.format]??e.format}`}case`not_multiple_of`:return`Número invàlid: ha de ser múltiple de ${e.divisor}`;case`unrecognized_keys`:return`Clau${e.keys.length>1?`s`:``} no reconeguda${e.keys.length>1?`s`:``}: ${_(e.keys,`, `)}`;case`invalid_key`:return`Clau invàlida a ${e.origin}`;case`invalid_union`:return`Entrada invàlida`;case`invalid_element`:return`Element invàlid a ${e.origin}`;default:return`Entrada invàlida`}}};function na(){return{localeError:ta()}}var ra=()=>{let e={string:{unit:`znaků`,verb:`mít`},file:{unit:`bajtů`,verb:`mít`},array:{unit:`prvků`,verb:`mít`},set:{unit:`prvků`,verb:`mít`}};function t(t){return e[t]??null}let n=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`číslo`;case`string`:return`řetězec`;case`boolean`:return`boolean`;case`bigint`:return`bigint`;case`function`:return`funkce`;case`symbol`:return`symbol`;case`undefined`:return`undefined`;case`object`:if(Array.isArray(e))return`pole`;if(e===null)return`null`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},r={regex:`regulární výraz`,email:`e-mailová adresa`,url:`URL`,emoji:`emoji`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`datum a čas ve formátu ISO`,date:`datum ve formátu ISO`,time:`čas ve formátu ISO`,duration:`doba trvání ISO`,ipv4:`IPv4 adresa`,ipv6:`IPv6 adresa`,cidrv4:`rozsah IPv4`,cidrv6:`rozsah IPv6`,base64:`řetězec zakódovaný ve formátu base64`,base64url:`řetězec zakódovaný ve formátu base64url`,json_string:`řetězec ve formátu JSON`,e164:`číslo E.164`,jwt:`JWT`,template_literal:`vstup`};return e=>{switch(e.code){case`invalid_type`:return`Neplatný vstup: očekáváno ${e.expected}, obdrženo ${n(e.input)}`;case`invalid_value`:return e.values.length===1?`Neplatný vstup: očekáváno ${S(e.values[0])}`:`Neplatná možnost: očekávána jedna z hodnot ${_(e.values,`|`)}`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);return r?`Hodnota je příliš velká: ${e.origin??`hodnota`} musí mít ${n}${e.maximum.toString()} ${r.unit??`prvků`}`:`Hodnota je příliš velká: ${e.origin??`hodnota`} musí být ${n}${e.maximum.toString()}`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);return r?`Hodnota je příliš malá: ${e.origin??`hodnota`} musí mít ${n}${e.minimum.toString()} ${r.unit??`prvků`}`:`Hodnota je příliš malá: ${e.origin??`hodnota`} musí být ${n}${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`Neplatný řetězec: musí začínat na "${t.prefix}"`:t.format===`ends_with`?`Neplatný řetězec: musí končit na "${t.suffix}"`:t.format===`includes`?`Neplatný řetězec: musí obsahovat "${t.includes}"`:t.format===`regex`?`Neplatný řetězec: musí odpovídat vzoru ${t.pattern}`:`Neplatný formát ${r[t.format]??e.format}`}case`not_multiple_of`:return`Neplatné číslo: musí být násobkem ${e.divisor}`;case`unrecognized_keys`:return`Neznámé klíče: ${_(e.keys,`, `)}`;case`invalid_key`:return`Neplatný klíč v ${e.origin}`;case`invalid_union`:return`Neplatný vstup`;case`invalid_element`:return`Neplatná hodnota v ${e.origin}`;default:return`Neplatný vstup`}}};function ia(){return{localeError:ra()}}var aa=()=>{let e={string:{unit:`tegn`,verb:`havde`},file:{unit:`bytes`,verb:`havde`},array:{unit:`elementer`,verb:`indeholdt`},set:{unit:`elementer`,verb:`indeholdt`}},t={string:`streng`,number:`tal`,boolean:`boolean`,array:`liste`,object:`objekt`,set:`sæt`,file:`fil`};function n(t){return e[t]??null}function r(e){return t[e]??e}let i=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`tal`;case`object`:return Array.isArray(e)?`liste`:e===null?`null`:Object.getPrototypeOf(e)!==Object.prototype&&e.constructor?e.constructor.name:`objekt`}return t},a={regex:`input`,email:`e-mailadresse`,url:`URL`,emoji:`emoji`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`ISO dato- og klokkeslæt`,date:`ISO-dato`,time:`ISO-klokkeslæt`,duration:`ISO-varighed`,ipv4:`IPv4-område`,ipv6:`IPv6-område`,cidrv4:`IPv4-spektrum`,cidrv6:`IPv6-spektrum`,base64:`base64-kodet streng`,base64url:`base64url-kodet streng`,json_string:`JSON-streng`,e164:`E.164-nummer`,jwt:`JWT`,template_literal:`input`};return e=>{switch(e.code){case`invalid_type`:return`Ugyldigt input: forventede ${r(e.expected)}, fik ${r(i(e.input))}`;case`invalid_value`:return e.values.length===1?`Ugyldig værdi: forventede ${S(e.values[0])}`:`Ugyldigt valg: forventede en af følgende ${_(e.values,`|`)}`;case`too_big`:{let t=e.inclusive?`<=`:`<`,i=n(e.origin),a=r(e.origin);return i?`For stor: forventede ${a??`value`} ${i.verb} ${t} ${e.maximum.toString()} ${i.unit??`elementer`}`:`For stor: forventede ${a??`value`} havde ${t} ${e.maximum.toString()}`}case`too_small`:{let t=e.inclusive?`>=`:`>`,i=n(e.origin),a=r(e.origin);return i?`For lille: forventede ${a} ${i.verb} ${t} ${e.minimum.toString()} ${i.unit}`:`For lille: forventede ${a} havde ${t} ${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`Ugyldig streng: skal starte med "${t.prefix}"`:t.format===`ends_with`?`Ugyldig streng: skal ende med "${t.suffix}"`:t.format===`includes`?`Ugyldig streng: skal indeholde "${t.includes}"`:t.format===`regex`?`Ugyldig streng: skal matche mønsteret ${t.pattern}`:`Ugyldig ${a[t.format]??e.format}`}case`not_multiple_of`:return`Ugyldigt tal: skal være deleligt med ${e.divisor}`;case`unrecognized_keys`:return`${e.keys.length>1?`Ukendte nøgler`:`Ukendt nøgle`}: ${_(e.keys,`, `)}`;case`invalid_key`:return`Ugyldig nøgle i ${e.origin}`;case`invalid_union`:return`Ugyldigt input: matcher ingen af de tilladte typer`;case`invalid_element`:return`Ugyldig værdi i ${e.origin}`;default:return`Ugyldigt input`}}};function oa(){return{localeError:aa()}}var sa=()=>{let e={string:{unit:`Zeichen`,verb:`zu haben`},file:{unit:`Bytes`,verb:`zu haben`},array:{unit:`Elemente`,verb:`zu haben`},set:{unit:`Elemente`,verb:`zu haben`}};function t(t){return e[t]??null}let n=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`Zahl`;case`object`:if(Array.isArray(e))return`Array`;if(e===null)return`null`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},r={regex:`Eingabe`,email:`E-Mail-Adresse`,url:`URL`,emoji:`Emoji`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`ISO-Datum und -Uhrzeit`,date:`ISO-Datum`,time:`ISO-Uhrzeit`,duration:`ISO-Dauer`,ipv4:`IPv4-Adresse`,ipv6:`IPv6-Adresse`,cidrv4:`IPv4-Bereich`,cidrv6:`IPv6-Bereich`,base64:`Base64-codierter String`,base64url:`Base64-URL-codierter String`,json_string:`JSON-String`,e164:`E.164-Nummer`,jwt:`JWT`,template_literal:`Eingabe`};return e=>{switch(e.code){case`invalid_type`:return`Ungültige Eingabe: erwartet ${e.expected}, erhalten ${n(e.input)}`;case`invalid_value`:return e.values.length===1?`Ungültige Eingabe: erwartet ${S(e.values[0])}`:`Ungültige Option: erwartet eine von ${_(e.values,`|`)}`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);return r?`Zu groß: erwartet, dass ${e.origin??`Wert`} ${n}${e.maximum.toString()} ${r.unit??`Elemente`} hat`:`Zu groß: erwartet, dass ${e.origin??`Wert`} ${n}${e.maximum.toString()} ist`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);return r?`Zu klein: erwartet, dass ${e.origin} ${n}${e.minimum.toString()} ${r.unit} hat`:`Zu klein: erwartet, dass ${e.origin} ${n}${e.minimum.toString()} ist`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`Ungültiger String: muss mit "${t.prefix}" beginnen`:t.format===`ends_with`?`Ungültiger String: muss mit "${t.suffix}" enden`:t.format===`includes`?`Ungültiger String: muss "${t.includes}" enthalten`:t.format===`regex`?`Ungültiger String: muss dem Muster ${t.pattern} entsprechen`:`Ungültig: ${r[t.format]??e.format}`}case`not_multiple_of`:return`Ungültige Zahl: muss ein Vielfaches von ${e.divisor} sein`;case`unrecognized_keys`:return`${e.keys.length>1?`Unbekannte Schlüssel`:`Unbekannter Schlüssel`}: ${_(e.keys,`, `)}`;case`invalid_key`:return`Ungültiger Schlüssel in ${e.origin}`;case`invalid_union`:return`Ungültige Eingabe`;case`invalid_element`:return`Ungültiger Wert in ${e.origin}`;default:return`Ungültige Eingabe`}}};function ca(){return{localeError:sa()}}var la=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`number`;case`object`:if(Array.isArray(e))return`array`;if(e===null)return`null`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},ua=()=>{let e={string:{unit:`characters`,verb:`to have`},file:{unit:`bytes`,verb:`to have`},array:{unit:`items`,verb:`to have`},set:{unit:`items`,verb:`to have`}};function t(t){return e[t]??null}let n={regex:`input`,email:`email address`,url:`URL`,emoji:`emoji`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`ISO datetime`,date:`ISO date`,time:`ISO time`,duration:`ISO duration`,ipv4:`IPv4 address`,ipv6:`IPv6 address`,mac:`MAC address`,cidrv4:`IPv4 range`,cidrv6:`IPv6 range`,base64:`base64-encoded string`,base64url:`base64url-encoded string`,json_string:`JSON string`,e164:`E.164 number`,jwt:`JWT`,template_literal:`input`};return e=>{switch(e.code){case`invalid_type`:return`Invalid input: expected ${e.expected}, received ${la(e.input)}`;case`invalid_value`:return e.values.length===1?`Invalid input: expected ${S(e.values[0])}`:`Invalid option: expected one of ${_(e.values,`|`)}`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);return r?`Too big: expected ${e.origin??`value`} to have ${n}${e.maximum.toString()} ${r.unit??`elements`}`:`Too big: expected ${e.origin??`value`} to be ${n}${e.maximum.toString()}`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);return r?`Too small: expected ${e.origin} to have ${n}${e.minimum.toString()} ${r.unit}`:`Too small: expected ${e.origin} to be ${n}${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`Invalid string: must start with "${t.prefix}"`:t.format===`ends_with`?`Invalid string: must end with "${t.suffix}"`:t.format===`includes`?`Invalid string: must include "${t.includes}"`:t.format===`regex`?`Invalid string: must match pattern ${t.pattern}`:`Invalid ${n[t.format]??e.format}`}case`not_multiple_of`:return`Invalid number: must be a multiple of ${e.divisor}`;case`unrecognized_keys`:return`Unrecognized key${e.keys.length>1?`s`:``}: ${_(e.keys,`, `)}`;case`invalid_key`:return`Invalid key in ${e.origin}`;case`invalid_union`:return`Invalid input`;case`invalid_element`:return`Invalid value in ${e.origin}`;default:return`Invalid input`}}};function da(){return{localeError:ua()}}var fa=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`nombro`;case`object`:if(Array.isArray(e))return`tabelo`;if(e===null)return`senvalora`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},pa=()=>{let e={string:{unit:`karaktrojn`,verb:`havi`},file:{unit:`bajtojn`,verb:`havi`},array:{unit:`elementojn`,verb:`havi`},set:{unit:`elementojn`,verb:`havi`}};function t(t){return e[t]??null}let n={regex:`enigo`,email:`retadreso`,url:`URL`,emoji:`emoĝio`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`ISO-datotempo`,date:`ISO-dato`,time:`ISO-tempo`,duration:`ISO-daŭro`,ipv4:`IPv4-adreso`,ipv6:`IPv6-adreso`,cidrv4:`IPv4-rango`,cidrv6:`IPv6-rango`,base64:`64-ume kodita karaktraro`,base64url:`URL-64-ume kodita karaktraro`,json_string:`JSON-karaktraro`,e164:`E.164-nombro`,jwt:`JWT`,template_literal:`enigo`};return e=>{switch(e.code){case`invalid_type`:return`Nevalida enigo: atendiĝis ${e.expected}, riceviĝis ${fa(e.input)}`;case`invalid_value`:return e.values.length===1?`Nevalida enigo: atendiĝis ${S(e.values[0])}`:`Nevalida opcio: atendiĝis unu el ${_(e.values,`|`)}`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);return r?`Tro granda: atendiĝis ke ${e.origin??`valoro`} havu ${n}${e.maximum.toString()} ${r.unit??`elementojn`}`:`Tro granda: atendiĝis ke ${e.origin??`valoro`} havu ${n}${e.maximum.toString()}`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);return r?`Tro malgranda: atendiĝis ke ${e.origin} havu ${n}${e.minimum.toString()} ${r.unit}`:`Tro malgranda: atendiĝis ke ${e.origin} estu ${n}${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`Nevalida karaktraro: devas komenciĝi per "${t.prefix}"`:t.format===`ends_with`?`Nevalida karaktraro: devas finiĝi per "${t.suffix}"`:t.format===`includes`?`Nevalida karaktraro: devas inkluzivi "${t.includes}"`:t.format===`regex`?`Nevalida karaktraro: devas kongrui kun la modelo ${t.pattern}`:`Nevalida ${n[t.format]??e.format}`}case`not_multiple_of`:return`Nevalida nombro: devas esti oblo de ${e.divisor}`;case`unrecognized_keys`:return`Nekonata${e.keys.length>1?`j`:``} ŝlosilo${e.keys.length>1?`j`:``}: ${_(e.keys,`, `)}`;case`invalid_key`:return`Nevalida ŝlosilo en ${e.origin}`;case`invalid_union`:return`Nevalida enigo`;case`invalid_element`:return`Nevalida valoro en ${e.origin}`;default:return`Nevalida enigo`}}};function ma(){return{localeError:pa()}}var ha=()=>{let e={string:{unit:`caracteres`,verb:`tener`},file:{unit:`bytes`,verb:`tener`},array:{unit:`elementos`,verb:`tener`},set:{unit:`elementos`,verb:`tener`}},t={string:`texto`,number:`número`,boolean:`booleano`,array:`arreglo`,object:`objeto`,set:`conjunto`,file:`archivo`,date:`fecha`,bigint:`número grande`,symbol:`símbolo`,undefined:`indefinido`,null:`nulo`,function:`función`,map:`mapa`,record:`registro`,tuple:`tupla`,enum:`enumeración`,union:`unión`,literal:`literal`,promise:`promesa`,void:`vacío`,never:`nunca`,unknown:`desconocido`,any:`cualquiera`};function n(t){return e[t]??null}function r(e){return t[e]??e}let i=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`number`;case`object`:return Array.isArray(e)?`array`:e===null?`null`:Object.getPrototypeOf(e)===Object.prototype?`object`:e.constructor.name}return t},a={regex:`entrada`,email:`dirección de correo electrónico`,url:`URL`,emoji:`emoji`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`fecha y hora ISO`,date:`fecha ISO`,time:`hora ISO`,duration:`duración ISO`,ipv4:`dirección IPv4`,ipv6:`dirección IPv6`,cidrv4:`rango IPv4`,cidrv6:`rango IPv6`,base64:`cadena codificada en base64`,base64url:`URL codificada en base64`,json_string:`cadena JSON`,e164:`número E.164`,jwt:`JWT`,template_literal:`entrada`};return e=>{switch(e.code){case`invalid_type`:return`Entrada inválida: se esperaba ${r(e.expected)}, recibido ${r(i(e.input))}`;case`invalid_value`:return e.values.length===1?`Entrada inválida: se esperaba ${S(e.values[0])}`:`Opción inválida: se esperaba una de ${_(e.values,`|`)}`;case`too_big`:{let t=e.inclusive?`<=`:`<`,i=n(e.origin),a=r(e.origin);return i?`Demasiado grande: se esperaba que ${a??`valor`} tuviera ${t}${e.maximum.toString()} ${i.unit??`elementos`}`:`Demasiado grande: se esperaba que ${a??`valor`} fuera ${t}${e.maximum.toString()}`}case`too_small`:{let t=e.inclusive?`>=`:`>`,i=n(e.origin),a=r(e.origin);return i?`Demasiado pequeño: se esperaba que ${a} tuviera ${t}${e.minimum.toString()} ${i.unit}`:`Demasiado pequeño: se esperaba que ${a} fuera ${t}${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`Cadena inválida: debe comenzar con "${t.prefix}"`:t.format===`ends_with`?`Cadena inválida: debe terminar en "${t.suffix}"`:t.format===`includes`?`Cadena inválida: debe incluir "${t.includes}"`:t.format===`regex`?`Cadena inválida: debe coincidir con el patrón ${t.pattern}`:`Inválido ${a[t.format]??e.format}`}case`not_multiple_of`:return`Número inválido: debe ser múltiplo de ${e.divisor}`;case`unrecognized_keys`:return`Llave${e.keys.length>1?`s`:``} desconocida${e.keys.length>1?`s`:``}: ${_(e.keys,`, `)}`;case`invalid_key`:return`Llave inválida en ${r(e.origin)}`;case`invalid_union`:return`Entrada inválida`;case`invalid_element`:return`Valor inválido en ${r(e.origin)}`;default:return`Entrada inválida`}}};function ga(){return{localeError:ha()}}var _a=()=>{let e={string:{unit:`کاراکتر`,verb:`داشته باشد`},file:{unit:`بایت`,verb:`داشته باشد`},array:{unit:`آیتم`,verb:`داشته باشد`},set:{unit:`آیتم`,verb:`داشته باشد`}};function t(t){return e[t]??null}let n=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`عدد`;case`object`:if(Array.isArray(e))return`آرایه`;if(e===null)return`null`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},r={regex:`ورودی`,email:`آدرس ایمیل`,url:`URL`,emoji:`ایموجی`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`تاریخ و زمان ایزو`,date:`تاریخ ایزو`,time:`زمان ایزو`,duration:`مدت زمان ایزو`,ipv4:`IPv4 آدرس`,ipv6:`IPv6 آدرس`,cidrv4:`IPv4 دامنه`,cidrv6:`IPv6 دامنه`,base64:`base64-encoded رشته`,base64url:`base64url-encoded رشته`,json_string:`JSON رشته`,e164:`E.164 عدد`,jwt:`JWT`,template_literal:`ورودی`};return e=>{switch(e.code){case`invalid_type`:return`ورودی نامعتبر: می‌بایست ${e.expected} می‌بود، ${n(e.input)} دریافت شد`;case`invalid_value`:return e.values.length===1?`ورودی نامعتبر: می‌بایست ${S(e.values[0])} می‌بود`:`گزینه نامعتبر: می‌بایست یکی از ${_(e.values,`|`)} می‌بود`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);return r?`خیلی بزرگ: ${e.origin??`مقدار`} باید ${n}${e.maximum.toString()} ${r.unit??`عنصر`} باشد`:`خیلی بزرگ: ${e.origin??`مقدار`} باید ${n}${e.maximum.toString()} باشد`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);return r?`خیلی کوچک: ${e.origin} باید ${n}${e.minimum.toString()} ${r.unit} باشد`:`خیلی کوچک: ${e.origin} باید ${n}${e.minimum.toString()} باشد`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`رشته نامعتبر: باید با "${t.prefix}" شروع شود`:t.format===`ends_with`?`رشته نامعتبر: باید با "${t.suffix}" تمام شود`:t.format===`includes`?`رشته نامعتبر: باید شامل "${t.includes}" باشد`:t.format===`regex`?`رشته نامعتبر: باید با الگوی ${t.pattern} مطابقت داشته باشد`:`${r[t.format]??e.format} نامعتبر`}case`not_multiple_of`:return`عدد نامعتبر: باید مضرب ${e.divisor} باشد`;case`unrecognized_keys`:return`کلید${e.keys.length>1?`های`:``} ناشناس: ${_(e.keys,`, `)}`;case`invalid_key`:return`کلید ناشناس در ${e.origin}`;case`invalid_union`:return`ورودی نامعتبر`;case`invalid_element`:return`مقدار نامعتبر در ${e.origin}`;default:return`ورودی نامعتبر`}}};function va(){return{localeError:_a()}}var ya=()=>{let e={string:{unit:`merkkiä`,subject:`merkkijonon`},file:{unit:`tavua`,subject:`tiedoston`},array:{unit:`alkiota`,subject:`listan`},set:{unit:`alkiota`,subject:`joukon`},number:{unit:``,subject:`luvun`},bigint:{unit:``,subject:`suuren kokonaisluvun`},int:{unit:``,subject:`kokonaisluvun`},date:{unit:``,subject:`päivämäärän`}};function t(t){return e[t]??null}let n=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`number`;case`object`:if(Array.isArray(e))return`array`;if(e===null)return`null`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},r={regex:`säännöllinen lauseke`,email:`sähköpostiosoite`,url:`URL-osoite`,emoji:`emoji`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`ISO-aikaleima`,date:`ISO-päivämäärä`,time:`ISO-aika`,duration:`ISO-kesto`,ipv4:`IPv4-osoite`,ipv6:`IPv6-osoite`,cidrv4:`IPv4-alue`,cidrv6:`IPv6-alue`,base64:`base64-koodattu merkkijono`,base64url:`base64url-koodattu merkkijono`,json_string:`JSON-merkkijono`,e164:`E.164-luku`,jwt:`JWT`,template_literal:`templaattimerkkijono`};return e=>{switch(e.code){case`invalid_type`:return`Virheellinen tyyppi: odotettiin ${e.expected}, oli ${n(e.input)}`;case`invalid_value`:return e.values.length===1?`Virheellinen syöte: täytyy olla ${S(e.values[0])}`:`Virheellinen valinta: täytyy olla yksi seuraavista: ${_(e.values,`|`)}`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);return r?`Liian suuri: ${r.subject} täytyy olla ${n}${e.maximum.toString()} ${r.unit}`.trim():`Liian suuri: arvon täytyy olla ${n}${e.maximum.toString()}`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);return r?`Liian pieni: ${r.subject} täytyy olla ${n}${e.minimum.toString()} ${r.unit}`.trim():`Liian pieni: arvon täytyy olla ${n}${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`Virheellinen syöte: täytyy alkaa "${t.prefix}"`:t.format===`ends_with`?`Virheellinen syöte: täytyy loppua "${t.suffix}"`:t.format===`includes`?`Virheellinen syöte: täytyy sisältää "${t.includes}"`:t.format===`regex`?`Virheellinen syöte: täytyy vastata säännöllistä lauseketta ${t.pattern}`:`Virheellinen ${r[t.format]??e.format}`}case`not_multiple_of`:return`Virheellinen luku: täytyy olla luvun ${e.divisor} monikerta`;case`unrecognized_keys`:return`${e.keys.length>1?`Tuntemattomat avaimet`:`Tuntematon avain`}: ${_(e.keys,`, `)}`;case`invalid_key`:return`Virheellinen avain tietueessa`;case`invalid_union`:return`Virheellinen unioni`;case`invalid_element`:return`Virheellinen arvo joukossa`;default:return`Virheellinen syöte`}}};function ba(){return{localeError:ya()}}var xa=()=>{let e={string:{unit:`caractères`,verb:`avoir`},file:{unit:`octets`,verb:`avoir`},array:{unit:`éléments`,verb:`avoir`},set:{unit:`éléments`,verb:`avoir`}};function t(t){return e[t]??null}let n=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`nombre`;case`object`:if(Array.isArray(e))return`tableau`;if(e===null)return`null`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},r={regex:`entrée`,email:`adresse e-mail`,url:`URL`,emoji:`emoji`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`date et heure ISO`,date:`date ISO`,time:`heure ISO`,duration:`durée ISO`,ipv4:`adresse IPv4`,ipv6:`adresse IPv6`,cidrv4:`plage IPv4`,cidrv6:`plage IPv6`,base64:`chaîne encodée en base64`,base64url:`chaîne encodée en base64url`,json_string:`chaîne JSON`,e164:`numéro E.164`,jwt:`JWT`,template_literal:`entrée`};return e=>{switch(e.code){case`invalid_type`:return`Entrée invalide : ${e.expected} attendu, ${n(e.input)} reçu`;case`invalid_value`:return e.values.length===1?`Entrée invalide : ${S(e.values[0])} attendu`:`Option invalide : une valeur parmi ${_(e.values,`|`)} attendue`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);return r?`Trop grand : ${e.origin??`valeur`} doit ${r.verb} ${n}${e.maximum.toString()} ${r.unit??`élément(s)`}`:`Trop grand : ${e.origin??`valeur`} doit être ${n}${e.maximum.toString()}`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);return r?`Trop petit : ${e.origin} doit ${r.verb} ${n}${e.minimum.toString()} ${r.unit}`:`Trop petit : ${e.origin} doit être ${n}${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`Chaîne invalide : doit commencer par "${t.prefix}"`:t.format===`ends_with`?`Chaîne invalide : doit se terminer par "${t.suffix}"`:t.format===`includes`?`Chaîne invalide : doit inclure "${t.includes}"`:t.format===`regex`?`Chaîne invalide : doit correspondre au modèle ${t.pattern}`:`${r[t.format]??e.format} invalide`}case`not_multiple_of`:return`Nombre invalide : doit être un multiple de ${e.divisor}`;case`unrecognized_keys`:return`Clé${e.keys.length>1?`s`:``} non reconnue${e.keys.length>1?`s`:``} : ${_(e.keys,`, `)}`;case`invalid_key`:return`Clé invalide dans ${e.origin}`;case`invalid_union`:return`Entrée invalide`;case`invalid_element`:return`Valeur invalide dans ${e.origin}`;default:return`Entrée invalide`}}};function Sa(){return{localeError:xa()}}var Ca=()=>{let e={string:{unit:`caractères`,verb:`avoir`},file:{unit:`octets`,verb:`avoir`},array:{unit:`éléments`,verb:`avoir`},set:{unit:`éléments`,verb:`avoir`}};function t(t){return e[t]??null}let n=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`number`;case`object`:if(Array.isArray(e))return`array`;if(e===null)return`null`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},r={regex:`entrée`,email:`adresse courriel`,url:`URL`,emoji:`emoji`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`date-heure ISO`,date:`date ISO`,time:`heure ISO`,duration:`durée ISO`,ipv4:`adresse IPv4`,ipv6:`adresse IPv6`,cidrv4:`plage IPv4`,cidrv6:`plage IPv6`,base64:`chaîne encodée en base64`,base64url:`chaîne encodée en base64url`,json_string:`chaîne JSON`,e164:`numéro E.164`,jwt:`JWT`,template_literal:`entrée`};return e=>{switch(e.code){case`invalid_type`:return`Entrée invalide : attendu ${e.expected}, reçu ${n(e.input)}`;case`invalid_value`:return e.values.length===1?`Entrée invalide : attendu ${S(e.values[0])}`:`Option invalide : attendu l'une des valeurs suivantes ${_(e.values,`|`)}`;case`too_big`:{let n=e.inclusive?`≤`:`<`,r=t(e.origin);return r?`Trop grand : attendu que ${e.origin??`la valeur`} ait ${n}${e.maximum.toString()} ${r.unit}`:`Trop grand : attendu que ${e.origin??`la valeur`} soit ${n}${e.maximum.toString()}`}case`too_small`:{let n=e.inclusive?`≥`:`>`,r=t(e.origin);return r?`Trop petit : attendu que ${e.origin} ait ${n}${e.minimum.toString()} ${r.unit}`:`Trop petit : attendu que ${e.origin} soit ${n}${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`Chaîne invalide : doit commencer par "${t.prefix}"`:t.format===`ends_with`?`Chaîne invalide : doit se terminer par "${t.suffix}"`:t.format===`includes`?`Chaîne invalide : doit inclure "${t.includes}"`:t.format===`regex`?`Chaîne invalide : doit correspondre au motif ${t.pattern}`:`${r[t.format]??e.format} invalide`}case`not_multiple_of`:return`Nombre invalide : doit être un multiple de ${e.divisor}`;case`unrecognized_keys`:return`Clé${e.keys.length>1?`s`:``} non reconnue${e.keys.length>1?`s`:``} : ${_(e.keys,`, `)}`;case`invalid_key`:return`Clé invalide dans ${e.origin}`;case`invalid_union`:return`Entrée invalide`;case`invalid_element`:return`Valeur invalide dans ${e.origin}`;default:return`Entrée invalide`}}};function wa(){return{localeError:Ca()}}var Ta=()=>{let e={string:{label:`מחרוזת`,gender:`f`},number:{label:`מספר`,gender:`m`},boolean:{label:`ערך בוליאני`,gender:`m`},bigint:{label:`BigInt`,gender:`m`},date:{label:`תאריך`,gender:`m`},array:{label:`מערך`,gender:`m`},object:{label:`אובייקט`,gender:`m`},null:{label:`ערך ריק (null)`,gender:`m`},undefined:{label:`ערך לא מוגדר (undefined)`,gender:`m`},symbol:{label:`סימבול (Symbol)`,gender:`m`},function:{label:`פונקציה`,gender:`f`},map:{label:`מפה (Map)`,gender:`f`},set:{label:`קבוצה (Set)`,gender:`f`},file:{label:`קובץ`,gender:`m`},promise:{label:`Promise`,gender:`m`},NaN:{label:`NaN`,gender:`m`},unknown:{label:`ערך לא ידוע`,gender:`m`},value:{label:`ערך`,gender:`m`}},t={string:{unit:`תווים`,shortLabel:`קצר`,longLabel:`ארוך`},file:{unit:`בייטים`,shortLabel:`קטן`,longLabel:`גדול`},array:{unit:`פריטים`,shortLabel:`קטן`,longLabel:`גדול`},set:{unit:`פריטים`,shortLabel:`קטן`,longLabel:`גדול`},number:{unit:``,shortLabel:`קטן`,longLabel:`גדול`}},n=t=>t?e[t]:void 0,r=t=>{let r=n(t);return r?r.label:t??e.unknown.label},i=e=>`ה${r(e)}`,a=e=>(n(e)?.gender??`m`)===`f`?`צריכה להיות`:`צריך להיות`,o=e=>e?t[e]??null:null,s=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`number`;case`object`:return Array.isArray(e)?`array`:e===null?`null`:Object.getPrototypeOf(e)!==Object.prototype&&e.constructor?e.constructor.name:`object`;default:return t}},c={regex:{label:`קלט`,gender:`m`},email:{label:`כתובת אימייל`,gender:`f`},url:{label:`כתובת רשת`,gender:`f`},emoji:{label:`אימוג'י`,gender:`m`},uuid:{label:`UUID`,gender:`m`},nanoid:{label:`nanoid`,gender:`m`},guid:{label:`GUID`,gender:`m`},cuid:{label:`cuid`,gender:`m`},cuid2:{label:`cuid2`,gender:`m`},ulid:{label:`ULID`,gender:`m`},xid:{label:`XID`,gender:`m`},ksuid:{label:`KSUID`,gender:`m`},datetime:{label:`תאריך וזמן ISO`,gender:`m`},date:{label:`תאריך ISO`,gender:`m`},time:{label:`זמן ISO`,gender:`m`},duration:{label:`משך זמן ISO`,gender:`m`},ipv4:{label:`כתובת IPv4`,gender:`f`},ipv6:{label:`כתובת IPv6`,gender:`f`},cidrv4:{label:`טווח IPv4`,gender:`m`},cidrv6:{label:`טווח IPv6`,gender:`m`},base64:{label:`מחרוזת בבסיס 64`,gender:`f`},base64url:{label:`מחרוזת בבסיס 64 לכתובות רשת`,gender:`f`},json_string:{label:`מחרוזת JSON`,gender:`f`},e164:{label:`מספר E.164`,gender:`m`},jwt:{label:`JWT`,gender:`m`},ends_with:{label:`קלט`,gender:`m`},includes:{label:`קלט`,gender:`m`},lowercase:{label:`קלט`,gender:`m`},starts_with:{label:`קלט`,gender:`m`},uppercase:{label:`קלט`,gender:`m`}};return t=>{switch(t.code){case`invalid_type`:{let n=t.expected,i=r(n),a=s(t.input);return`קלט לא תקין: צריך להיות ${i}, התקבל ${e[a]?.label??a}`}case`invalid_value`:{if(t.values.length===1)return`ערך לא תקין: הערך חייב להיות ${S(t.values[0])}`;let e=t.values.map(e=>S(e));if(t.values.length===2)return`ערך לא תקין: האפשרויות המתאימות הן ${e[0]} או ${e[1]}`;let n=e[e.length-1];return`ערך לא תקין: האפשרויות המתאימות הן ${e.slice(0,-1).join(`, `)} או ${n}`}case`too_big`:{let e=o(t.origin),n=i(t.origin??`value`);if(t.origin===`string`)return`${e?.longLabel??`ארוך`} מדי: ${n} צריכה להכיל ${t.maximum.toString()} ${e?.unit??``} ${t.inclusive?`או פחות`:`לכל היותר`}`.trim();if(t.origin===`number`)return`גדול מדי: ${n} צריך להיות ${t.inclusive?`קטן או שווה ל-${t.maximum}`:`קטן מ-${t.maximum}`}`;if(t.origin===`array`||t.origin===`set`)return`גדול מדי: ${n} ${t.origin===`set`?`צריכה`:`צריך`} להכיל ${t.inclusive?`${t.maximum} ${e?.unit??``} או פחות`:`פחות מ-${t.maximum} ${e?.unit??``}`}`.trim();let r=t.inclusive?`<=`:`<`,s=a(t.origin??`value`);return e?.unit?`${e.longLabel} מדי: ${n} ${s} ${r}${t.maximum.toString()} ${e.unit}`:`${e?.longLabel??`גדול`} מדי: ${n} ${s} ${r}${t.maximum.toString()}`}case`too_small`:{let e=o(t.origin),n=i(t.origin??`value`);if(t.origin===`string`)return`${e?.shortLabel??`קצר`} מדי: ${n} צריכה להכיל ${t.minimum.toString()} ${e?.unit??``} ${t.inclusive?`או יותר`:`לפחות`}`.trim();if(t.origin===`number`)return`קטן מדי: ${n} צריך להיות ${t.inclusive?`גדול או שווה ל-${t.minimum}`:`גדול מ-${t.minimum}`}`;if(t.origin===`array`||t.origin===`set`){let r=t.origin===`set`?`צריכה`:`צריך`;return t.minimum===1&&t.inclusive?`קטן מדי: ${n} ${r} להכיל ${t.origin,`לפחות פריט אחד`}`:`קטן מדי: ${n} ${r} להכיל ${t.inclusive?`${t.minimum} ${e?.unit??``} או יותר`:`יותר מ-${t.minimum} ${e?.unit??``}`}`.trim()}let r=t.inclusive?`>=`:`>`,s=a(t.origin??`value`);return e?.unit?`${e.shortLabel} מדי: ${n} ${s} ${r}${t.minimum.toString()} ${e.unit}`:`${e?.shortLabel??`קטן`} מדי: ${n} ${s} ${r}${t.minimum.toString()}`}case`invalid_format`:{let e=t;if(e.format===`starts_with`)return`המחרוזת חייבת להתחיל ב "${e.prefix}"`;if(e.format===`ends_with`)return`המחרוזת חייבת להסתיים ב "${e.suffix}"`;if(e.format===`includes`)return`המחרוזת חייבת לכלול "${e.includes}"`;if(e.format===`regex`)return`המחרוזת חייבת להתאים לתבנית ${e.pattern}`;let n=c[e.format];return`${n?.label??e.format} לא ${(n?.gender??`m`)===`f`?`תקינה`:`תקין`}`}case`not_multiple_of`:return`מספר לא תקין: חייב להיות מכפלה של ${t.divisor}`;case`unrecognized_keys`:return`מפתח${t.keys.length>1?`ות`:``} לא מזוה${t.keys.length>1?`ים`:`ה`}: ${_(t.keys,`, `)}`;case`invalid_key`:return`שדה לא תקין באובייקט`;case`invalid_union`:return`קלט לא תקין`;case`invalid_element`:return`ערך לא תקין ב${i(t.origin??`array`)}`;default:return`קלט לא תקין`}}};function Ea(){return{localeError:Ta()}}var Da=()=>{let e={string:{unit:`karakter`,verb:`legyen`},file:{unit:`byte`,verb:`legyen`},array:{unit:`elem`,verb:`legyen`},set:{unit:`elem`,verb:`legyen`}};function t(t){return e[t]??null}let n=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`szám`;case`object`:if(Array.isArray(e))return`tömb`;if(e===null)return`null`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},r={regex:`bemenet`,email:`email cím`,url:`URL`,emoji:`emoji`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`ISO időbélyeg`,date:`ISO dátum`,time:`ISO idő`,duration:`ISO időintervallum`,ipv4:`IPv4 cím`,ipv6:`IPv6 cím`,cidrv4:`IPv4 tartomány`,cidrv6:`IPv6 tartomány`,base64:`base64-kódolt string`,base64url:`base64url-kódolt string`,json_string:`JSON string`,e164:`E.164 szám`,jwt:`JWT`,template_literal:`bemenet`};return e=>{switch(e.code){case`invalid_type`:return`Érvénytelen bemenet: a várt érték ${e.expected}, a kapott érték ${n(e.input)}`;case`invalid_value`:return e.values.length===1?`Érvénytelen bemenet: a várt érték ${S(e.values[0])}`:`Érvénytelen opció: valamelyik érték várt ${_(e.values,`|`)}`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);return r?`Túl nagy: ${e.origin??`érték`} mérete túl nagy ${n}${e.maximum.toString()} ${r.unit??`elem`}`:`Túl nagy: a bemeneti érték ${e.origin??`érték`} túl nagy: ${n}${e.maximum.toString()}`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);return r?`Túl kicsi: a bemeneti érték ${e.origin} mérete túl kicsi ${n}${e.minimum.toString()} ${r.unit}`:`Túl kicsi: a bemeneti érték ${e.origin} túl kicsi ${n}${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`Érvénytelen string: "${t.prefix}" értékkel kell kezdődnie`:t.format===`ends_with`?`Érvénytelen string: "${t.suffix}" értékkel kell végződnie`:t.format===`includes`?`Érvénytelen string: "${t.includes}" értéket kell tartalmaznia`:t.format===`regex`?`Érvénytelen string: ${t.pattern} mintának kell megfelelnie`:`Érvénytelen ${r[t.format]??e.format}`}case`not_multiple_of`:return`Érvénytelen szám: ${e.divisor} többszörösének kell lennie`;case`unrecognized_keys`:return`Ismeretlen kulcs${e.keys.length>1?`s`:``}: ${_(e.keys,`, `)}`;case`invalid_key`:return`Érvénytelen kulcs ${e.origin}`;case`invalid_union`:return`Érvénytelen bemenet`;case`invalid_element`:return`Érvénytelen érték: ${e.origin}`;default:return`Érvénytelen bemenet`}}};function Oa(){return{localeError:Da()}}var ka=()=>{let e={string:{unit:`karakter`,verb:`memiliki`},file:{unit:`byte`,verb:`memiliki`},array:{unit:`item`,verb:`memiliki`},set:{unit:`item`,verb:`memiliki`}};function t(t){return e[t]??null}let n=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`number`;case`object`:if(Array.isArray(e))return`array`;if(e===null)return`null`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},r={regex:`input`,email:`alamat email`,url:`URL`,emoji:`emoji`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`tanggal dan waktu format ISO`,date:`tanggal format ISO`,time:`jam format ISO`,duration:`durasi format ISO`,ipv4:`alamat IPv4`,ipv6:`alamat IPv6`,cidrv4:`rentang alamat IPv4`,cidrv6:`rentang alamat IPv6`,base64:`string dengan enkode base64`,base64url:`string dengan enkode base64url`,json_string:`string JSON`,e164:`angka E.164`,jwt:`JWT`,template_literal:`input`};return e=>{switch(e.code){case`invalid_type`:return`Input tidak valid: diharapkan ${e.expected}, diterima ${n(e.input)}`;case`invalid_value`:return e.values.length===1?`Input tidak valid: diharapkan ${S(e.values[0])}`:`Pilihan tidak valid: diharapkan salah satu dari ${_(e.values,`|`)}`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);return r?`Terlalu besar: diharapkan ${e.origin??`value`} memiliki ${n}${e.maximum.toString()} ${r.unit??`elemen`}`:`Terlalu besar: diharapkan ${e.origin??`value`} menjadi ${n}${e.maximum.toString()}`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);return r?`Terlalu kecil: diharapkan ${e.origin} memiliki ${n}${e.minimum.toString()} ${r.unit}`:`Terlalu kecil: diharapkan ${e.origin} menjadi ${n}${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`String tidak valid: harus dimulai dengan "${t.prefix}"`:t.format===`ends_with`?`String tidak valid: harus berakhir dengan "${t.suffix}"`:t.format===`includes`?`String tidak valid: harus menyertakan "${t.includes}"`:t.format===`regex`?`String tidak valid: harus sesuai pola ${t.pattern}`:`${r[t.format]??e.format} tidak valid`}case`not_multiple_of`:return`Angka tidak valid: harus kelipatan dari ${e.divisor}`;case`unrecognized_keys`:return`Kunci tidak dikenali ${e.keys.length>1?`s`:``}: ${_(e.keys,`, `)}`;case`invalid_key`:return`Kunci tidak valid di ${e.origin}`;case`invalid_union`:return`Input tidak valid`;case`invalid_element`:return`Nilai tidak valid di ${e.origin}`;default:return`Input tidak valid`}}};function Aa(){return{localeError:ka()}}var ja=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`númer`;case`object`:if(Array.isArray(e))return`fylki`;if(e===null)return`null`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},Ma=()=>{let e={string:{unit:`stafi`,verb:`að hafa`},file:{unit:`bæti`,verb:`að hafa`},array:{unit:`hluti`,verb:`að hafa`},set:{unit:`hluti`,verb:`að hafa`}};function t(t){return e[t]??null}let n={regex:`gildi`,email:`netfang`,url:`vefslóð`,emoji:`emoji`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`ISO dagsetning og tími`,date:`ISO dagsetning`,time:`ISO tími`,duration:`ISO tímalengd`,ipv4:`IPv4 address`,ipv6:`IPv6 address`,cidrv4:`IPv4 range`,cidrv6:`IPv6 range`,base64:`base64-encoded strengur`,base64url:`base64url-encoded strengur`,json_string:`JSON strengur`,e164:`E.164 tölugildi`,jwt:`JWT`,template_literal:`gildi`};return e=>{switch(e.code){case`invalid_type`:return`Rangt gildi: Þú slóst inn ${ja(e.input)} þar sem á að vera ${e.expected}`;case`invalid_value`:return e.values.length===1?`Rangt gildi: gert ráð fyrir ${S(e.values[0])}`:`Ógilt val: má vera eitt af eftirfarandi ${_(e.values,`|`)}`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);return r?`Of stórt: gert er ráð fyrir að ${e.origin??`gildi`} hafi ${n}${e.maximum.toString()} ${r.unit??`hluti`}`:`Of stórt: gert er ráð fyrir að ${e.origin??`gildi`} sé ${n}${e.maximum.toString()}`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);return r?`Of lítið: gert er ráð fyrir að ${e.origin} hafi ${n}${e.minimum.toString()} ${r.unit}`:`Of lítið: gert er ráð fyrir að ${e.origin} sé ${n}${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`Ógildur strengur: verður að byrja á "${t.prefix}"`:t.format===`ends_with`?`Ógildur strengur: verður að enda á "${t.suffix}"`:t.format===`includes`?`Ógildur strengur: verður að innihalda "${t.includes}"`:t.format===`regex`?`Ógildur strengur: verður að fylgja mynstri ${t.pattern}`:`Rangt ${n[t.format]??e.format}`}case`not_multiple_of`:return`Röng tala: verður að vera margfeldi af ${e.divisor}`;case`unrecognized_keys`:return`Óþekkt ${e.keys.length>1?`ir lyklar`:`ur lykill`}: ${_(e.keys,`, `)}`;case`invalid_key`:return`Rangur lykill í ${e.origin}`;case`invalid_union`:return`Rangt gildi`;case`invalid_element`:return`Rangt gildi í ${e.origin}`;default:return`Rangt gildi`}}};function Na(){return{localeError:Ma()}}var Pa=()=>{let e={string:{unit:`caratteri`,verb:`avere`},file:{unit:`byte`,verb:`avere`},array:{unit:`elementi`,verb:`avere`},set:{unit:`elementi`,verb:`avere`}};function t(t){return e[t]??null}let n=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`numero`;case`object`:if(Array.isArray(e))return`vettore`;if(e===null)return`null`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},r={regex:`input`,email:`indirizzo email`,url:`URL`,emoji:`emoji`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`data e ora ISO`,date:`data ISO`,time:`ora ISO`,duration:`durata ISO`,ipv4:`indirizzo IPv4`,ipv6:`indirizzo IPv6`,cidrv4:`intervallo IPv4`,cidrv6:`intervallo IPv6`,base64:`stringa codificata in base64`,base64url:`URL codificata in base64`,json_string:`stringa JSON`,e164:`numero E.164`,jwt:`JWT`,template_literal:`input`};return e=>{switch(e.code){case`invalid_type`:return`Input non valido: atteso ${e.expected}, ricevuto ${n(e.input)}`;case`invalid_value`:return e.values.length===1?`Input non valido: atteso ${S(e.values[0])}`:`Opzione non valida: atteso uno tra ${_(e.values,`|`)}`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);return r?`Troppo grande: ${e.origin??`valore`} deve avere ${n}${e.maximum.toString()} ${r.unit??`elementi`}`:`Troppo grande: ${e.origin??`valore`} deve essere ${n}${e.maximum.toString()}`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);return r?`Troppo piccolo: ${e.origin} deve avere ${n}${e.minimum.toString()} ${r.unit}`:`Troppo piccolo: ${e.origin} deve essere ${n}${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`Stringa non valida: deve iniziare con "${t.prefix}"`:t.format===`ends_with`?`Stringa non valida: deve terminare con "${t.suffix}"`:t.format===`includes`?`Stringa non valida: deve includere "${t.includes}"`:t.format===`regex`?`Stringa non valida: deve corrispondere al pattern ${t.pattern}`:`Invalid ${r[t.format]??e.format}`}case`not_multiple_of`:return`Numero non valido: deve essere un multiplo di ${e.divisor}`;case`unrecognized_keys`:return`Chiav${e.keys.length>1?`i`:`e`} non riconosciut${e.keys.length>1?`e`:`a`}: ${_(e.keys,`, `)}`;case`invalid_key`:return`Chiave non valida in ${e.origin}`;case`invalid_union`:return`Input non valido`;case`invalid_element`:return`Valore non valido in ${e.origin}`;default:return`Input non valido`}}};function Fa(){return{localeError:Pa()}}var Ia=()=>{let e={string:{unit:`文字`,verb:`である`},file:{unit:`バイト`,verb:`である`},array:{unit:`要素`,verb:`である`},set:{unit:`要素`,verb:`である`}};function t(t){return e[t]??null}let n=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`数値`;case`object`:if(Array.isArray(e))return`配列`;if(e===null)return`null`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},r={regex:`入力値`,email:`メールアドレス`,url:`URL`,emoji:`絵文字`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`ISO日時`,date:`ISO日付`,time:`ISO時刻`,duration:`ISO期間`,ipv4:`IPv4アドレス`,ipv6:`IPv6アドレス`,cidrv4:`IPv4範囲`,cidrv6:`IPv6範囲`,base64:`base64エンコード文字列`,base64url:`base64urlエンコード文字列`,json_string:`JSON文字列`,e164:`E.164番号`,jwt:`JWT`,template_literal:`入力値`};return e=>{switch(e.code){case`invalid_type`:return`無効な入力: ${e.expected}が期待されましたが、${n(e.input)}が入力されました`;case`invalid_value`:return e.values.length===1?`無効な入力: ${S(e.values[0])}が期待されました`:`無効な選択: ${_(e.values,`、`)}のいずれかである必要があります`;case`too_big`:{let n=e.inclusive?`以下である`:`より小さい`,r=t(e.origin);return r?`大きすぎる値: ${e.origin??`値`}は${e.maximum.toString()}${r.unit??`要素`}${n}必要があります`:`大きすぎる値: ${e.origin??`値`}は${e.maximum.toString()}${n}必要があります`}case`too_small`:{let n=e.inclusive?`以上である`:`より大きい`,r=t(e.origin);return r?`小さすぎる値: ${e.origin}は${e.minimum.toString()}${r.unit}${n}必要があります`:`小さすぎる値: ${e.origin}は${e.minimum.toString()}${n}必要があります`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`無効な文字列: "${t.prefix}"で始まる必要があります`:t.format===`ends_with`?`無効な文字列: "${t.suffix}"で終わる必要があります`:t.format===`includes`?`無効な文字列: "${t.includes}"を含む必要があります`:t.format===`regex`?`無効な文字列: パターン${t.pattern}に一致する必要があります`:`無効な${r[t.format]??e.format}`}case`not_multiple_of`:return`無効な数値: ${e.divisor}の倍数である必要があります`;case`unrecognized_keys`:return`認識されていないキー${e.keys.length>1?`群`:``}: ${_(e.keys,`、`)}`;case`invalid_key`:return`${e.origin}内の無効なキー`;case`invalid_union`:return`無効な入力`;case`invalid_element`:return`${e.origin}内の無効な値`;default:return`無効な入力`}}};function La(){return{localeError:Ia()}}var Ra=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`რიცხვი`;case`object`:if(Array.isArray(e))return`მასივი`;if(e===null)return`null`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return{string:`სტრინგი`,boolean:`ბულეანი`,undefined:`undefined`,bigint:`bigint`,symbol:`symbol`,function:`ფუნქცია`}[t]??t},za=()=>{let e={string:{unit:`სიმბოლო`,verb:`უნდა შეიცავდეს`},file:{unit:`ბაიტი`,verb:`უნდა შეიცავდეს`},array:{unit:`ელემენტი`,verb:`უნდა შეიცავდეს`},set:{unit:`ელემენტი`,verb:`უნდა შეიცავდეს`}};function t(t){return e[t]??null}let n={regex:`შეყვანა`,email:`ელ-ფოსტის მისამართი`,url:`URL`,emoji:`ემოჯი`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`თარიღი-დრო`,date:`თარიღი`,time:`დრო`,duration:`ხანგრძლივობა`,ipv4:`IPv4 მისამართი`,ipv6:`IPv6 მისამართი`,cidrv4:`IPv4 დიაპაზონი`,cidrv6:`IPv6 დიაპაზონი`,base64:`base64-კოდირებული სტრინგი`,base64url:`base64url-კოდირებული სტრინგი`,json_string:`JSON სტრინგი`,e164:`E.164 ნომერი`,jwt:`JWT`,template_literal:`შეყვანა`};return e=>{switch(e.code){case`invalid_type`:return`არასწორი შეყვანა: მოსალოდნელი ${e.expected}, მიღებული ${Ra(e.input)}`;case`invalid_value`:return e.values.length===1?`არასწორი შეყვანა: მოსალოდნელი ${S(e.values[0])}`:`არასწორი ვარიანტი: მოსალოდნელია ერთ-ერთი ${_(e.values,`|`)}-დან`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);return r?`ზედმეტად დიდი: მოსალოდნელი ${e.origin??`მნიშვნელობა`} ${r.verb} ${n}${e.maximum.toString()} ${r.unit}`:`ზედმეტად დიდი: მოსალოდნელი ${e.origin??`მნიშვნელობა`} იყოს ${n}${e.maximum.toString()}`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);return r?`ზედმეტად პატარა: მოსალოდნელი ${e.origin} ${r.verb} ${n}${e.minimum.toString()} ${r.unit}`:`ზედმეტად პატარა: მოსალოდნელი ${e.origin} იყოს ${n}${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`არასწორი სტრინგი: უნდა იწყებოდეს "${t.prefix}"-ით`:t.format===`ends_with`?`არასწორი სტრინგი: უნდა მთავრდებოდეს "${t.suffix}"-ით`:t.format===`includes`?`არასწორი სტრინგი: უნდა შეიცავდეს "${t.includes}"-ს`:t.format===`regex`?`არასწორი სტრინგი: უნდა შეესაბამებოდეს შაბლონს ${t.pattern}`:`არასწორი ${n[t.format]??e.format}`}case`not_multiple_of`:return`არასწორი რიცხვი: უნდა იყოს ${e.divisor}-ის ჯერადი`;case`unrecognized_keys`:return`უცნობი გასაღებ${e.keys.length>1?`ები`:`ი`}: ${_(e.keys,`, `)}`;case`invalid_key`:return`არასწორი გასაღები ${e.origin}-ში`;case`invalid_union`:return`არასწორი შეყვანა`;case`invalid_element`:return`არასწორი მნიშვნელობა ${e.origin}-ში`;default:return`არასწორი შეყვანა`}}};function Ba(){return{localeError:za()}}var Va=()=>{let e={string:{unit:`តួអក្សរ`,verb:`គួរមាន`},file:{unit:`បៃ`,verb:`គួរមាន`},array:{unit:`ធាតុ`,verb:`គួរមាន`},set:{unit:`ធាតុ`,verb:`គួរមាន`}};function t(t){return e[t]??null}let n=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`មិនមែនជាលេខ (NaN)`:`លេខ`;case`object`:if(Array.isArray(e))return`អារេ (Array)`;if(e===null)return`គ្មានតម្លៃ (null)`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},r={regex:`ទិន្នន័យបញ្ចូល`,email:`អាសយដ្ឋានអ៊ីមែល`,url:`URL`,emoji:`សញ្ញាអារម្មណ៍`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`កាលបរិច្ឆេទ និងម៉ោង ISO`,date:`កាលបរិច្ឆេទ ISO`,time:`ម៉ោង ISO`,duration:`រយៈពេល ISO`,ipv4:`អាសយដ្ឋាន IPv4`,ipv6:`អាសយដ្ឋាន IPv6`,cidrv4:`ដែនអាសយដ្ឋាន IPv4`,cidrv6:`ដែនអាសយដ្ឋាន IPv6`,base64:`ខ្សែអក្សរអ៊ិកូដ base64`,base64url:`ខ្សែអក្សរអ៊ិកូដ base64url`,json_string:`ខ្សែអក្សរ JSON`,e164:`លេខ E.164`,jwt:`JWT`,template_literal:`ទិន្នន័យបញ្ចូល`};return e=>{switch(e.code){case`invalid_type`:return`ទិន្នន័យបញ្ចូលមិនត្រឹមត្រូវ៖ ត្រូវការ ${e.expected} ប៉ុន្តែទទួលបាន ${n(e.input)}`;case`invalid_value`:return e.values.length===1?`ទិន្នន័យបញ្ចូលមិនត្រឹមត្រូវ៖ ត្រូវការ ${S(e.values[0])}`:`ជម្រើសមិនត្រឹមត្រូវ៖ ត្រូវជាមួយក្នុងចំណោម ${_(e.values,`|`)}`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);return r?`ធំពេក៖ ត្រូវការ ${e.origin??`តម្លៃ`} ${n} ${e.maximum.toString()} ${r.unit??`ធាតុ`}`:`ធំពេក៖ ត្រូវការ ${e.origin??`តម្លៃ`} ${n} ${e.maximum.toString()}`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);return r?`តូចពេក៖ ត្រូវការ ${e.origin} ${n} ${e.minimum.toString()} ${r.unit}`:`តូចពេក៖ ត្រូវការ ${e.origin} ${n} ${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវចាប់ផ្តើមដោយ "${t.prefix}"`:t.format===`ends_with`?`ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវបញ្ចប់ដោយ "${t.suffix}"`:t.format===`includes`?`ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវមាន "${t.includes}"`:t.format===`regex`?`ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវតែផ្គូផ្គងនឹងទម្រង់ដែលបានកំណត់ ${t.pattern}`:`មិនត្រឹមត្រូវ៖ ${r[t.format]??e.format}`}case`not_multiple_of`:return`លេខមិនត្រឹមត្រូវ៖ ត្រូវតែជាពហុគុណនៃ ${e.divisor}`;case`unrecognized_keys`:return`រកឃើញសោមិនស្គាល់៖ ${_(e.keys,`, `)}`;case`invalid_key`:return`សោមិនត្រឹមត្រូវនៅក្នុង ${e.origin}`;case`invalid_union`:return`ទិន្នន័យមិនត្រឹមត្រូវ`;case`invalid_element`:return`ទិន្នន័យមិនត្រឹមត្រូវនៅក្នុង ${e.origin}`;default:return`ទិន្នន័យមិនត្រឹមត្រូវ`}}};function Ha(){return{localeError:Va()}}function Ua(){return Ha()}var Wa=()=>{let e={string:{unit:`문자`,verb:`to have`},file:{unit:`바이트`,verb:`to have`},array:{unit:`개`,verb:`to have`},set:{unit:`개`,verb:`to have`}};function t(t){return e[t]??null}let n=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`number`;case`object`:if(Array.isArray(e))return`array`;if(e===null)return`null`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},r={regex:`입력`,email:`이메일 주소`,url:`URL`,emoji:`이모지`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`ISO 날짜시간`,date:`ISO 날짜`,time:`ISO 시간`,duration:`ISO 기간`,ipv4:`IPv4 주소`,ipv6:`IPv6 주소`,cidrv4:`IPv4 범위`,cidrv6:`IPv6 범위`,base64:`base64 인코딩 문자열`,base64url:`base64url 인코딩 문자열`,json_string:`JSON 문자열`,e164:`E.164 번호`,jwt:`JWT`,template_literal:`입력`};return e=>{switch(e.code){case`invalid_type`:return`잘못된 입력: 예상 타입은 ${e.expected}, 받은 타입은 ${n(e.input)}입니다`;case`invalid_value`:return e.values.length===1?`잘못된 입력: 값은 ${S(e.values[0])} 이어야 합니다`:`잘못된 옵션: ${_(e.values,`또는 `)} 중 하나여야 합니다`;case`too_big`:{let n=e.inclusive?`이하`:`미만`,r=n===`미만`?`이어야 합니다`:`여야 합니다`,i=t(e.origin),a=i?.unit??`요소`;return i?`${e.origin??`값`}이 너무 큽니다: ${e.maximum.toString()}${a} ${n}${r}`:`${e.origin??`값`}이 너무 큽니다: ${e.maximum.toString()} ${n}${r}`}case`too_small`:{let n=e.inclusive?`이상`:`초과`,r=n===`이상`?`이어야 합니다`:`여야 합니다`,i=t(e.origin),a=i?.unit??`요소`;return i?`${e.origin??`값`}이 너무 작습니다: ${e.minimum.toString()}${a} ${n}${r}`:`${e.origin??`값`}이 너무 작습니다: ${e.minimum.toString()} ${n}${r}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`잘못된 문자열: "${t.prefix}"(으)로 시작해야 합니다`:t.format===`ends_with`?`잘못된 문자열: "${t.suffix}"(으)로 끝나야 합니다`:t.format===`includes`?`잘못된 문자열: "${t.includes}"을(를) 포함해야 합니다`:t.format===`regex`?`잘못된 문자열: 정규식 ${t.pattern} 패턴과 일치해야 합니다`:`잘못된 ${r[t.format]??e.format}`}case`not_multiple_of`:return`잘못된 숫자: ${e.divisor}의 배수여야 합니다`;case`unrecognized_keys`:return`인식할 수 없는 키: ${_(e.keys,`, `)}`;case`invalid_key`:return`잘못된 키: ${e.origin}`;case`invalid_union`:return`잘못된 입력`;case`invalid_element`:return`잘못된 값: ${e.origin}`;default:return`잘못된 입력`}}};function Ga(){return{localeError:Wa()}}var Ka=e=>qa(typeof e,e),qa=(e,t=void 0)=>{switch(e){case`number`:return Number.isNaN(t)?`NaN`:`skaičius`;case`bigint`:return`sveikasis skaičius`;case`string`:return`eilutė`;case`boolean`:return`loginė reikšmė`;case`undefined`:case`void`:return`neapibrėžta reikšmė`;case`function`:return`funkcija`;case`symbol`:return`simbolis`;case`object`:return t===void 0?`nežinomas objektas`:t===null?`nulinė reikšmė`:Array.isArray(t)?`masyvas`:Object.getPrototypeOf(t)!==Object.prototype&&t.constructor?t.constructor.name:`objektas`;case`null`:return`nulinė reikšmė`}return e},Ja=e=>e.charAt(0).toUpperCase()+e.slice(1);function Ya(e){let t=Math.abs(e),n=t%10,r=t%100;return r>=11&&r<=19||n===0?`many`:n===1?`one`:`few`}var Xa=()=>{let e={string:{unit:{one:`simbolis`,few:`simboliai`,many:`simbolių`},verb:{smaller:{inclusive:`turi būti ne ilgesnė kaip`,notInclusive:`turi būti trumpesnė kaip`},bigger:{inclusive:`turi būti ne trumpesnė kaip`,notInclusive:`turi būti ilgesnė kaip`}}},file:{unit:{one:`baitas`,few:`baitai`,many:`baitų`},verb:{smaller:{inclusive:`turi būti ne didesnis kaip`,notInclusive:`turi būti mažesnis kaip`},bigger:{inclusive:`turi būti ne mažesnis kaip`,notInclusive:`turi būti didesnis kaip`}}},array:{unit:{one:`elementą`,few:`elementus`,many:`elementų`},verb:{smaller:{inclusive:`turi turėti ne daugiau kaip`,notInclusive:`turi turėti mažiau kaip`},bigger:{inclusive:`turi turėti ne mažiau kaip`,notInclusive:`turi turėti daugiau kaip`}}},set:{unit:{one:`elementą`,few:`elementus`,many:`elementų`},verb:{smaller:{inclusive:`turi turėti ne daugiau kaip`,notInclusive:`turi turėti mažiau kaip`},bigger:{inclusive:`turi turėti ne mažiau kaip`,notInclusive:`turi turėti daugiau kaip`}}}};function t(t,n,r,i){let a=e[t]??null;return a===null?a:{unit:a.unit[n],verb:a.verb[i][r?`inclusive`:`notInclusive`]}}let n={regex:`įvestis`,email:`el. pašto adresas`,url:`URL`,emoji:`jaustukas`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`ISO data ir laikas`,date:`ISO data`,time:`ISO laikas`,duration:`ISO trukmė`,ipv4:`IPv4 adresas`,ipv6:`IPv6 adresas`,cidrv4:`IPv4 tinklo prefiksas (CIDR)`,cidrv6:`IPv6 tinklo prefiksas (CIDR)`,base64:`base64 užkoduota eilutė`,base64url:`base64url užkoduota eilutė`,json_string:`JSON eilutė`,e164:`E.164 numeris`,jwt:`JWT`,template_literal:`įvestis`};return e=>{switch(e.code){case`invalid_type`:return`Gautas tipas ${Ka(e.input)}, o tikėtasi - ${qa(e.expected)}`;case`invalid_value`:return e.values.length===1?`Privalo būti ${S(e.values[0])}`:`Privalo būti vienas iš ${_(e.values,`|`)} pasirinkimų`;case`too_big`:{let n=qa(e.origin),r=t(e.origin,Ya(Number(e.maximum)),e.inclusive??!1,`smaller`);if(r?.verb)return`${Ja(n??e.origin??`reikšmė`)} ${r.verb} ${e.maximum.toString()} ${r.unit??`elementų`}`;let i=e.inclusive?`ne didesnis kaip`:`mažesnis kaip`;return`${Ja(n??e.origin??`reikšmė`)} turi būti ${i} ${e.maximum.toString()} ${r?.unit}`}case`too_small`:{let n=qa(e.origin),r=t(e.origin,Ya(Number(e.minimum)),e.inclusive??!1,`bigger`);if(r?.verb)return`${Ja(n??e.origin??`reikšmė`)} ${r.verb} ${e.minimum.toString()} ${r.unit??`elementų`}`;let i=e.inclusive?`ne mažesnis kaip`:`didesnis kaip`;return`${Ja(n??e.origin??`reikšmė`)} turi būti ${i} ${e.minimum.toString()} ${r?.unit}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`Eilutė privalo prasidėti "${t.prefix}"`:t.format===`ends_with`?`Eilutė privalo pasibaigti "${t.suffix}"`:t.format===`includes`?`Eilutė privalo įtraukti "${t.includes}"`:t.format===`regex`?`Eilutė privalo atitikti ${t.pattern}`:`Neteisingas ${n[t.format]??e.format}`}case`not_multiple_of`:return`Skaičius privalo būti ${e.divisor} kartotinis.`;case`unrecognized_keys`:return`Neatpažint${e.keys.length>1?`i`:`as`} rakt${e.keys.length>1?`ai`:`as`}: ${_(e.keys,`, `)}`;case`invalid_key`:return`Rastas klaidingas raktas`;case`invalid_union`:return`Klaidinga įvestis`;case`invalid_element`:return`${Ja(qa(e.origin)??e.origin??`reikšmė`)} turi klaidingą įvestį`;default:return`Klaidinga įvestis`}}};function Za(){return{localeError:Xa()}}var Qa=()=>{let e={string:{unit:`знаци`,verb:`да имаат`},file:{unit:`бајти`,verb:`да имаат`},array:{unit:`ставки`,verb:`да имаат`},set:{unit:`ставки`,verb:`да имаат`}};function t(t){return e[t]??null}let n=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`број`;case`object`:if(Array.isArray(e))return`низа`;if(e===null)return`null`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},r={regex:`внес`,email:`адреса на е-пошта`,url:`URL`,emoji:`емоџи`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`ISO датум и време`,date:`ISO датум`,time:`ISO време`,duration:`ISO времетраење`,ipv4:`IPv4 адреса`,ipv6:`IPv6 адреса`,cidrv4:`IPv4 опсег`,cidrv6:`IPv6 опсег`,base64:`base64-енкодирана низа`,base64url:`base64url-енкодирана низа`,json_string:`JSON низа`,e164:`E.164 број`,jwt:`JWT`,template_literal:`внес`};return e=>{switch(e.code){case`invalid_type`:return`Грешен внес: се очекува ${e.expected}, примено ${n(e.input)}`;case`invalid_value`:return e.values.length===1?`Invalid input: expected ${S(e.values[0])}`:`Грешана опција: се очекува една ${_(e.values,`|`)}`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);return r?`Премногу голем: се очекува ${e.origin??`вредноста`} да има ${n}${e.maximum.toString()} ${r.unit??`елементи`}`:`Премногу голем: се очекува ${e.origin??`вредноста`} да биде ${n}${e.maximum.toString()}`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);return r?`Премногу мал: се очекува ${e.origin} да има ${n}${e.minimum.toString()} ${r.unit}`:`Премногу мал: се очекува ${e.origin} да биде ${n}${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`Неважечка низа: мора да започнува со "${t.prefix}"`:t.format===`ends_with`?`Неважечка низа: мора да завршува со "${t.suffix}"`:t.format===`includes`?`Неважечка низа: мора да вклучува "${t.includes}"`:t.format===`regex`?`Неважечка низа: мора да одгоара на патернот ${t.pattern}`:`Invalid ${r[t.format]??e.format}`}case`not_multiple_of`:return`Грешен број: мора да биде делив со ${e.divisor}`;case`unrecognized_keys`:return`${e.keys.length>1?`Непрепознаени клучеви`:`Непрепознаен клуч`}: ${_(e.keys,`, `)}`;case`invalid_key`:return`Грешен клуч во ${e.origin}`;case`invalid_union`:return`Грешен внес`;case`invalid_element`:return`Грешна вредност во ${e.origin}`;default:return`Грешен внес`}}};function $a(){return{localeError:Qa()}}var eo=()=>{let e={string:{unit:`aksara`,verb:`mempunyai`},file:{unit:`bait`,verb:`mempunyai`},array:{unit:`elemen`,verb:`mempunyai`},set:{unit:`elemen`,verb:`mempunyai`}};function t(t){return e[t]??null}let n=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`nombor`;case`object`:if(Array.isArray(e))return`array`;if(e===null)return`null`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},r={regex:`input`,email:`alamat e-mel`,url:`URL`,emoji:`emoji`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`tarikh masa ISO`,date:`tarikh ISO`,time:`masa ISO`,duration:`tempoh ISO`,ipv4:`alamat IPv4`,ipv6:`alamat IPv6`,cidrv4:`julat IPv4`,cidrv6:`julat IPv6`,base64:`string dikodkan base64`,base64url:`string dikodkan base64url`,json_string:`string JSON`,e164:`nombor E.164`,jwt:`JWT`,template_literal:`input`};return e=>{switch(e.code){case`invalid_type`:return`Input tidak sah: dijangka ${e.expected}, diterima ${n(e.input)}`;case`invalid_value`:return e.values.length===1?`Input tidak sah: dijangka ${S(e.values[0])}`:`Pilihan tidak sah: dijangka salah satu daripada ${_(e.values,`|`)}`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);return r?`Terlalu besar: dijangka ${e.origin??`nilai`} ${r.verb} ${n}${e.maximum.toString()} ${r.unit??`elemen`}`:`Terlalu besar: dijangka ${e.origin??`nilai`} adalah ${n}${e.maximum.toString()}`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);return r?`Terlalu kecil: dijangka ${e.origin} ${r.verb} ${n}${e.minimum.toString()} ${r.unit}`:`Terlalu kecil: dijangka ${e.origin} adalah ${n}${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`String tidak sah: mesti bermula dengan "${t.prefix}"`:t.format===`ends_with`?`String tidak sah: mesti berakhir dengan "${t.suffix}"`:t.format===`includes`?`String tidak sah: mesti mengandungi "${t.includes}"`:t.format===`regex`?`String tidak sah: mesti sepadan dengan corak ${t.pattern}`:`${r[t.format]??e.format} tidak sah`}case`not_multiple_of`:return`Nombor tidak sah: perlu gandaan ${e.divisor}`;case`unrecognized_keys`:return`Kunci tidak dikenali: ${_(e.keys,`, `)}`;case`invalid_key`:return`Kunci tidak sah dalam ${e.origin}`;case`invalid_union`:return`Input tidak sah`;case`invalid_element`:return`Nilai tidak sah dalam ${e.origin}`;default:return`Input tidak sah`}}};function to(){return{localeError:eo()}}var no=()=>{let e={string:{unit:`tekens`,verb:`te hebben`},file:{unit:`bytes`,verb:`te hebben`},array:{unit:`elementen`,verb:`te hebben`},set:{unit:`elementen`,verb:`te hebben`}};function t(t){return e[t]??null}let n=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`getal`;case`object`:if(Array.isArray(e))return`array`;if(e===null)return`null`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},r={regex:`invoer`,email:`emailadres`,url:`URL`,emoji:`emoji`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`ISO datum en tijd`,date:`ISO datum`,time:`ISO tijd`,duration:`ISO duur`,ipv4:`IPv4-adres`,ipv6:`IPv6-adres`,cidrv4:`IPv4-bereik`,cidrv6:`IPv6-bereik`,base64:`base64-gecodeerde tekst`,base64url:`base64 URL-gecodeerde tekst`,json_string:`JSON string`,e164:`E.164-nummer`,jwt:`JWT`,template_literal:`invoer`};return e=>{switch(e.code){case`invalid_type`:return`Ongeldige invoer: verwacht ${e.expected}, ontving ${n(e.input)}`;case`invalid_value`:return e.values.length===1?`Ongeldige invoer: verwacht ${S(e.values[0])}`:`Ongeldige optie: verwacht één van ${_(e.values,`|`)}`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);return r?`Te groot: verwacht dat ${e.origin??`waarde`} ${r.verb} ${n}${e.maximum.toString()} ${r.unit??`elementen`}`:`Te groot: verwacht dat ${e.origin??`waarde`} ${n}${e.maximum.toString()} is`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);return r?`Te klein: verwacht dat ${e.origin} ${r.verb} ${n}${e.minimum.toString()} ${r.unit}`:`Te klein: verwacht dat ${e.origin} ${n}${e.minimum.toString()} is`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`Ongeldige tekst: moet met "${t.prefix}" beginnen`:t.format===`ends_with`?`Ongeldige tekst: moet op "${t.suffix}" eindigen`:t.format===`includes`?`Ongeldige tekst: moet "${t.includes}" bevatten`:t.format===`regex`?`Ongeldige tekst: moet overeenkomen met patroon ${t.pattern}`:`Ongeldig: ${r[t.format]??e.format}`}case`not_multiple_of`:return`Ongeldig getal: moet een veelvoud van ${e.divisor} zijn`;case`unrecognized_keys`:return`Onbekende key${e.keys.length>1?`s`:``}: ${_(e.keys,`, `)}`;case`invalid_key`:return`Ongeldige key in ${e.origin}`;case`invalid_union`:return`Ongeldige invoer`;case`invalid_element`:return`Ongeldige waarde in ${e.origin}`;default:return`Ongeldige invoer`}}};function ro(){return{localeError:no()}}var io=()=>{let e={string:{unit:`tegn`,verb:`å ha`},file:{unit:`bytes`,verb:`å ha`},array:{unit:`elementer`,verb:`å inneholde`},set:{unit:`elementer`,verb:`å inneholde`}};function t(t){return e[t]??null}let n=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`tall`;case`object`:if(Array.isArray(e))return`liste`;if(e===null)return`null`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},r={regex:`input`,email:`e-postadresse`,url:`URL`,emoji:`emoji`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`ISO dato- og klokkeslett`,date:`ISO-dato`,time:`ISO-klokkeslett`,duration:`ISO-varighet`,ipv4:`IPv4-område`,ipv6:`IPv6-område`,cidrv4:`IPv4-spekter`,cidrv6:`IPv6-spekter`,base64:`base64-enkodet streng`,base64url:`base64url-enkodet streng`,json_string:`JSON-streng`,e164:`E.164-nummer`,jwt:`JWT`,template_literal:`input`};return e=>{switch(e.code){case`invalid_type`:return`Ugyldig input: forventet ${e.expected}, fikk ${n(e.input)}`;case`invalid_value`:return e.values.length===1?`Ugyldig verdi: forventet ${S(e.values[0])}`:`Ugyldig valg: forventet en av ${_(e.values,`|`)}`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);return r?`For stor(t): forventet ${e.origin??`value`} til å ha ${n}${e.maximum.toString()} ${r.unit??`elementer`}`:`For stor(t): forventet ${e.origin??`value`} til å ha ${n}${e.maximum.toString()}`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);return r?`For lite(n): forventet ${e.origin} til å ha ${n}${e.minimum.toString()} ${r.unit}`:`For lite(n): forventet ${e.origin} til å ha ${n}${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`Ugyldig streng: må starte med "${t.prefix}"`:t.format===`ends_with`?`Ugyldig streng: må ende med "${t.suffix}"`:t.format===`includes`?`Ugyldig streng: må inneholde "${t.includes}"`:t.format===`regex`?`Ugyldig streng: må matche mønsteret ${t.pattern}`:`Ugyldig ${r[t.format]??e.format}`}case`not_multiple_of`:return`Ugyldig tall: må være et multiplum av ${e.divisor}`;case`unrecognized_keys`:return`${e.keys.length>1?`Ukjente nøkler`:`Ukjent nøkkel`}: ${_(e.keys,`, `)}`;case`invalid_key`:return`Ugyldig nøkkel i ${e.origin}`;case`invalid_union`:return`Ugyldig input`;case`invalid_element`:return`Ugyldig verdi i ${e.origin}`;default:return`Ugyldig input`}}};function ao(){return{localeError:io()}}var oo=()=>{let e={string:{unit:`harf`,verb:`olmalıdır`},file:{unit:`bayt`,verb:`olmalıdır`},array:{unit:`unsur`,verb:`olmalıdır`},set:{unit:`unsur`,verb:`olmalıdır`}};function t(t){return e[t]??null}let n=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`numara`;case`object`:if(Array.isArray(e))return`saf`;if(e===null)return`gayb`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},r={regex:`giren`,email:`epostagâh`,url:`URL`,emoji:`emoji`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`ISO hengâmı`,date:`ISO tarihi`,time:`ISO zamanı`,duration:`ISO müddeti`,ipv4:`IPv4 nişânı`,ipv6:`IPv6 nişânı`,cidrv4:`IPv4 menzili`,cidrv6:`IPv6 menzili`,base64:`base64-şifreli metin`,base64url:`base64url-şifreli metin`,json_string:`JSON metin`,e164:`E.164 sayısı`,jwt:`JWT`,template_literal:`giren`};return e=>{switch(e.code){case`invalid_type`:return`Fâsit giren: umulan ${e.expected}, alınan ${n(e.input)}`;case`invalid_value`:return e.values.length===1?`Fâsit giren: umulan ${S(e.values[0])}`:`Fâsit tercih: mûteberler ${_(e.values,`|`)}`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);return r?`Fazla büyük: ${e.origin??`value`}, ${n}${e.maximum.toString()} ${r.unit??`elements`} sahip olmalıydı.`:`Fazla büyük: ${e.origin??`value`}, ${n}${e.maximum.toString()} olmalıydı.`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);return r?`Fazla küçük: ${e.origin}, ${n}${e.minimum.toString()} ${r.unit} sahip olmalıydı.`:`Fazla küçük: ${e.origin}, ${n}${e.minimum.toString()} olmalıydı.`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`Fâsit metin: "${t.prefix}" ile başlamalı.`:t.format===`ends_with`?`Fâsit metin: "${t.suffix}" ile bitmeli.`:t.format===`includes`?`Fâsit metin: "${t.includes}" ihtivâ etmeli.`:t.format===`regex`?`Fâsit metin: ${t.pattern} nakşına uymalı.`:`Fâsit ${r[t.format]??e.format}`}case`not_multiple_of`:return`Fâsit sayı: ${e.divisor} katı olmalıydı.`;case`unrecognized_keys`:return`Tanınmayan anahtar ${e.keys.length>1?`s`:``}: ${_(e.keys,`, `)}`;case`invalid_key`:return`${e.origin} için tanınmayan anahtar var.`;case`invalid_union`:return`Giren tanınamadı.`;case`invalid_element`:return`${e.origin} için tanınmayan kıymet var.`;default:return`Kıymet tanınamadı.`}}};function so(){return{localeError:oo()}}var co=()=>{let e={string:{unit:`توکي`,verb:`ولري`},file:{unit:`بایټس`,verb:`ولري`},array:{unit:`توکي`,verb:`ولري`},set:{unit:`توکي`,verb:`ولري`}};function t(t){return e[t]??null}let n=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`عدد`;case`object`:if(Array.isArray(e))return`ارې`;if(e===null)return`null`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},r={regex:`ورودي`,email:`بریښنالیک`,url:`یو آر ال`,emoji:`ایموجي`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`نیټه او وخت`,date:`نېټه`,time:`وخت`,duration:`موده`,ipv4:`د IPv4 پته`,ipv6:`د IPv6 پته`,cidrv4:`د IPv4 ساحه`,cidrv6:`د IPv6 ساحه`,base64:`base64-encoded متن`,base64url:`base64url-encoded متن`,json_string:`JSON متن`,e164:`د E.164 شمېره`,jwt:`JWT`,template_literal:`ورودي`};return e=>{switch(e.code){case`invalid_type`:return`ناسم ورودي: باید ${e.expected} وای, مګر ${n(e.input)} ترلاسه شو`;case`invalid_value`:return e.values.length===1?`ناسم ورودي: باید ${S(e.values[0])} وای`:`ناسم انتخاب: باید یو له ${_(e.values,`|`)} څخه وای`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);return r?`ډیر لوی: ${e.origin??`ارزښت`} باید ${n}${e.maximum.toString()} ${r.unit??`عنصرونه`} ولري`:`ډیر لوی: ${e.origin??`ارزښت`} باید ${n}${e.maximum.toString()} وي`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);return r?`ډیر کوچنی: ${e.origin} باید ${n}${e.minimum.toString()} ${r.unit} ولري`:`ډیر کوچنی: ${e.origin} باید ${n}${e.minimum.toString()} وي`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`ناسم متن: باید د "${t.prefix}" سره پیل شي`:t.format===`ends_with`?`ناسم متن: باید د "${t.suffix}" سره پای ته ورسيږي`:t.format===`includes`?`ناسم متن: باید "${t.includes}" ولري`:t.format===`regex`?`ناسم متن: باید د ${t.pattern} سره مطابقت ولري`:`${r[t.format]??e.format} ناسم دی`}case`not_multiple_of`:return`ناسم عدد: باید د ${e.divisor} مضرب وي`;case`unrecognized_keys`:return`ناسم ${e.keys.length>1?`کلیډونه`:`کلیډ`}: ${_(e.keys,`, `)}`;case`invalid_key`:return`ناسم کلیډ په ${e.origin} کې`;case`invalid_union`:return`ناسمه ورودي`;case`invalid_element`:return`ناسم عنصر په ${e.origin} کې`;default:return`ناسمه ورودي`}}};function lo(){return{localeError:co()}}var uo=()=>{let e={string:{unit:`znaków`,verb:`mieć`},file:{unit:`bajtów`,verb:`mieć`},array:{unit:`elementów`,verb:`mieć`},set:{unit:`elementów`,verb:`mieć`}};function t(t){return e[t]??null}let n=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`liczba`;case`object`:if(Array.isArray(e))return`tablica`;if(e===null)return`null`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},r={regex:`wyrażenie`,email:`adres email`,url:`URL`,emoji:`emoji`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`data i godzina w formacie ISO`,date:`data w formacie ISO`,time:`godzina w formacie ISO`,duration:`czas trwania ISO`,ipv4:`adres IPv4`,ipv6:`adres IPv6`,cidrv4:`zakres IPv4`,cidrv6:`zakres IPv6`,base64:`ciąg znaków zakodowany w formacie base64`,base64url:`ciąg znaków zakodowany w formacie base64url`,json_string:`ciąg znaków w formacie JSON`,e164:`liczba E.164`,jwt:`JWT`,template_literal:`wejście`};return e=>{switch(e.code){case`invalid_type`:return`Nieprawidłowe dane wejściowe: oczekiwano ${e.expected}, otrzymano ${n(e.input)}`;case`invalid_value`:return e.values.length===1?`Nieprawidłowe dane wejściowe: oczekiwano ${S(e.values[0])}`:`Nieprawidłowa opcja: oczekiwano jednej z wartości ${_(e.values,`|`)}`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);return r?`Za duża wartość: oczekiwano, że ${e.origin??`wartość`} będzie mieć ${n}${e.maximum.toString()} ${r.unit??`elementów`}`:`Zbyt duż(y/a/e): oczekiwano, że ${e.origin??`wartość`} będzie wynosić ${n}${e.maximum.toString()}`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);return r?`Za mała wartość: oczekiwano, że ${e.origin??`wartość`} będzie mieć ${n}${e.minimum.toString()} ${r.unit??`elementów`}`:`Zbyt mał(y/a/e): oczekiwano, że ${e.origin??`wartość`} będzie wynosić ${n}${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`Nieprawidłowy ciąg znaków: musi zaczynać się od "${t.prefix}"`:t.format===`ends_with`?`Nieprawidłowy ciąg znaków: musi kończyć się na "${t.suffix}"`:t.format===`includes`?`Nieprawidłowy ciąg znaków: musi zawierać "${t.includes}"`:t.format===`regex`?`Nieprawidłowy ciąg znaków: musi odpowiadać wzorcowi ${t.pattern}`:`Nieprawidłow(y/a/e) ${r[t.format]??e.format}`}case`not_multiple_of`:return`Nieprawidłowa liczba: musi być wielokrotnością ${e.divisor}`;case`unrecognized_keys`:return`Nierozpoznane klucze${e.keys.length>1?`s`:``}: ${_(e.keys,`, `)}`;case`invalid_key`:return`Nieprawidłowy klucz w ${e.origin}`;case`invalid_union`:return`Nieprawidłowe dane wejściowe`;case`invalid_element`:return`Nieprawidłowa wartość w ${e.origin}`;default:return`Nieprawidłowe dane wejściowe`}}};function fo(){return{localeError:uo()}}var po=()=>{let e={string:{unit:`caracteres`,verb:`ter`},file:{unit:`bytes`,verb:`ter`},array:{unit:`itens`,verb:`ter`},set:{unit:`itens`,verb:`ter`}};function t(t){return e[t]??null}let n=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`número`;case`object`:if(Array.isArray(e))return`array`;if(e===null)return`nulo`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},r={regex:`padrão`,email:`endereço de e-mail`,url:`URL`,emoji:`emoji`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`data e hora ISO`,date:`data ISO`,time:`hora ISO`,duration:`duração ISO`,ipv4:`endereço IPv4`,ipv6:`endereço IPv6`,cidrv4:`faixa de IPv4`,cidrv6:`faixa de IPv6`,base64:`texto codificado em base64`,base64url:`URL codificada em base64`,json_string:`texto JSON`,e164:`número E.164`,jwt:`JWT`,template_literal:`entrada`};return e=>{switch(e.code){case`invalid_type`:return`Tipo inválido: esperado ${e.expected}, recebido ${n(e.input)}`;case`invalid_value`:return e.values.length===1?`Entrada inválida: esperado ${S(e.values[0])}`:`Opção inválida: esperada uma das ${_(e.values,`|`)}`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);return r?`Muito grande: esperado que ${e.origin??`valor`} tivesse ${n}${e.maximum.toString()} ${r.unit??`elementos`}`:`Muito grande: esperado que ${e.origin??`valor`} fosse ${n}${e.maximum.toString()}`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);return r?`Muito pequeno: esperado que ${e.origin} tivesse ${n}${e.minimum.toString()} ${r.unit}`:`Muito pequeno: esperado que ${e.origin} fosse ${n}${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`Texto inválido: deve começar com "${t.prefix}"`:t.format===`ends_with`?`Texto inválido: deve terminar com "${t.suffix}"`:t.format===`includes`?`Texto inválido: deve incluir "${t.includes}"`:t.format===`regex`?`Texto inválido: deve corresponder ao padrão ${t.pattern}`:`${r[t.format]??e.format} inválido`}case`not_multiple_of`:return`Número inválido: deve ser múltiplo de ${e.divisor}`;case`unrecognized_keys`:return`Chave${e.keys.length>1?`s`:``} desconhecida${e.keys.length>1?`s`:``}: ${_(e.keys,`, `)}`;case`invalid_key`:return`Chave inválida em ${e.origin}`;case`invalid_union`:return`Entrada inválida`;case`invalid_element`:return`Valor inválido em ${e.origin}`;default:return`Campo inválido`}}};function mo(){return{localeError:po()}}function ho(e,t,n,r){let i=Math.abs(e),a=i%10,o=i%100;return o>=11&&o<=19?r:a===1?t:a>=2&&a<=4?n:r}var go=()=>{let e={string:{unit:{one:`символ`,few:`символа`,many:`символов`},verb:`иметь`},file:{unit:{one:`байт`,few:`байта`,many:`байт`},verb:`иметь`},array:{unit:{one:`элемент`,few:`элемента`,many:`элементов`},verb:`иметь`},set:{unit:{one:`элемент`,few:`элемента`,many:`элементов`},verb:`иметь`}};function t(t){return e[t]??null}let n=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`число`;case`object`:if(Array.isArray(e))return`массив`;if(e===null)return`null`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},r={regex:`ввод`,email:`email адрес`,url:`URL`,emoji:`эмодзи`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`ISO дата и время`,date:`ISO дата`,time:`ISO время`,duration:`ISO длительность`,ipv4:`IPv4 адрес`,ipv6:`IPv6 адрес`,cidrv4:`IPv4 диапазон`,cidrv6:`IPv6 диапазон`,base64:`строка в формате base64`,base64url:`строка в формате base64url`,json_string:`JSON строка`,e164:`номер E.164`,jwt:`JWT`,template_literal:`ввод`};return e=>{switch(e.code){case`invalid_type`:return`Неверный ввод: ожидалось ${e.expected}, получено ${n(e.input)}`;case`invalid_value`:return e.values.length===1?`Неверный ввод: ожидалось ${S(e.values[0])}`:`Неверный вариант: ожидалось одно из ${_(e.values,`|`)}`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);if(r){let t=ho(Number(e.maximum),r.unit.one,r.unit.few,r.unit.many);return`Слишком большое значение: ожидалось, что ${e.origin??`значение`} будет иметь ${n}${e.maximum.toString()} ${t}`}return`Слишком большое значение: ожидалось, что ${e.origin??`значение`} будет ${n}${e.maximum.toString()}`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);if(r){let t=ho(Number(e.minimum),r.unit.one,r.unit.few,r.unit.many);return`Слишком маленькое значение: ожидалось, что ${e.origin} будет иметь ${n}${e.minimum.toString()} ${t}`}return`Слишком маленькое значение: ожидалось, что ${e.origin} будет ${n}${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`Неверная строка: должна начинаться с "${t.prefix}"`:t.format===`ends_with`?`Неверная строка: должна заканчиваться на "${t.suffix}"`:t.format===`includes`?`Неверная строка: должна содержать "${t.includes}"`:t.format===`regex`?`Неверная строка: должна соответствовать шаблону ${t.pattern}`:`Неверный ${r[t.format]??e.format}`}case`not_multiple_of`:return`Неверное число: должно быть кратным ${e.divisor}`;case`unrecognized_keys`:return`Нераспознанн${e.keys.length>1?`ые`:`ый`} ключ${e.keys.length>1?`и`:``}: ${_(e.keys,`, `)}`;case`invalid_key`:return`Неверный ключ в ${e.origin}`;case`invalid_union`:return`Неверные входные данные`;case`invalid_element`:return`Неверное значение в ${e.origin}`;default:return`Неверные входные данные`}}};function _o(){return{localeError:go()}}var vo=()=>{let e={string:{unit:`znakov`,verb:`imeti`},file:{unit:`bajtov`,verb:`imeti`},array:{unit:`elementov`,verb:`imeti`},set:{unit:`elementov`,verb:`imeti`}};function t(t){return e[t]??null}let n=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`število`;case`object`:if(Array.isArray(e))return`tabela`;if(e===null)return`null`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},r={regex:`vnos`,email:`e-poštni naslov`,url:`URL`,emoji:`emoji`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`ISO datum in čas`,date:`ISO datum`,time:`ISO čas`,duration:`ISO trajanje`,ipv4:`IPv4 naslov`,ipv6:`IPv6 naslov`,cidrv4:`obseg IPv4`,cidrv6:`obseg IPv6`,base64:`base64 kodiran niz`,base64url:`base64url kodiran niz`,json_string:`JSON niz`,e164:`E.164 številka`,jwt:`JWT`,template_literal:`vnos`};return e=>{switch(e.code){case`invalid_type`:return`Neveljaven vnos: pričakovano ${e.expected}, prejeto ${n(e.input)}`;case`invalid_value`:return e.values.length===1?`Neveljaven vnos: pričakovano ${S(e.values[0])}`:`Neveljavna možnost: pričakovano eno izmed ${_(e.values,`|`)}`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);return r?`Preveliko: pričakovano, da bo ${e.origin??`vrednost`} imelo ${n}${e.maximum.toString()} ${r.unit??`elementov`}`:`Preveliko: pričakovano, da bo ${e.origin??`vrednost`} ${n}${e.maximum.toString()}`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);return r?`Premajhno: pričakovano, da bo ${e.origin} imelo ${n}${e.minimum.toString()} ${r.unit}`:`Premajhno: pričakovano, da bo ${e.origin} ${n}${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`Neveljaven niz: mora se začeti z "${t.prefix}"`:t.format===`ends_with`?`Neveljaven niz: mora se končati z "${t.suffix}"`:t.format===`includes`?`Neveljaven niz: mora vsebovati "${t.includes}"`:t.format===`regex`?`Neveljaven niz: mora ustrezati vzorcu ${t.pattern}`:`Neveljaven ${r[t.format]??e.format}`}case`not_multiple_of`:return`Neveljavno število: mora biti večkratnik ${e.divisor}`;case`unrecognized_keys`:return`Neprepoznan${e.keys.length>1?`i ključi`:` ključ`}: ${_(e.keys,`, `)}`;case`invalid_key`:return`Neveljaven ključ v ${e.origin}`;case`invalid_union`:return`Neveljaven vnos`;case`invalid_element`:return`Neveljavna vrednost v ${e.origin}`;default:return`Neveljaven vnos`}}};function yo(){return{localeError:vo()}}var bo=()=>{let e={string:{unit:`tecken`,verb:`att ha`},file:{unit:`bytes`,verb:`att ha`},array:{unit:`objekt`,verb:`att innehålla`},set:{unit:`objekt`,verb:`att innehålla`}};function t(t){return e[t]??null}let n=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`antal`;case`object`:if(Array.isArray(e))return`lista`;if(e===null)return`null`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},r={regex:`reguljärt uttryck`,email:`e-postadress`,url:`URL`,emoji:`emoji`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`ISO-datum och tid`,date:`ISO-datum`,time:`ISO-tid`,duration:`ISO-varaktighet`,ipv4:`IPv4-intervall`,ipv6:`IPv6-intervall`,cidrv4:`IPv4-spektrum`,cidrv6:`IPv6-spektrum`,base64:`base64-kodad sträng`,base64url:`base64url-kodad sträng`,json_string:`JSON-sträng`,e164:`E.164-nummer`,jwt:`JWT`,template_literal:`mall-literal`};return e=>{switch(e.code){case`invalid_type`:return`Ogiltig inmatning: förväntat ${e.expected}, fick ${n(e.input)}`;case`invalid_value`:return e.values.length===1?`Ogiltig inmatning: förväntat ${S(e.values[0])}`:`Ogiltigt val: förväntade en av ${_(e.values,`|`)}`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);return r?`För stor(t): förväntade ${e.origin??`värdet`} att ha ${n}${e.maximum.toString()} ${r.unit??`element`}`:`För stor(t): förväntat ${e.origin??`värdet`} att ha ${n}${e.maximum.toString()}`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);return r?`För lite(t): förväntade ${e.origin??`värdet`} att ha ${n}${e.minimum.toString()} ${r.unit}`:`För lite(t): förväntade ${e.origin??`värdet`} att ha ${n}${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`Ogiltig sträng: måste börja med "${t.prefix}"`:t.format===`ends_with`?`Ogiltig sträng: måste sluta med "${t.suffix}"`:t.format===`includes`?`Ogiltig sträng: måste innehålla "${t.includes}"`:t.format===`regex`?`Ogiltig sträng: måste matcha mönstret "${t.pattern}"`:`Ogiltig(t) ${r[t.format]??e.format}`}case`not_multiple_of`:return`Ogiltigt tal: måste vara en multipel av ${e.divisor}`;case`unrecognized_keys`:return`${e.keys.length>1?`Okända nycklar`:`Okänd nyckel`}: ${_(e.keys,`, `)}`;case`invalid_key`:return`Ogiltig nyckel i ${e.origin??`värdet`}`;case`invalid_union`:return`Ogiltig input`;case`invalid_element`:return`Ogiltigt värde i ${e.origin??`värdet`}`;default:return`Ogiltig input`}}};function xo(){return{localeError:bo()}}var So=()=>{let e={string:{unit:`எழுத்துக்கள்`,verb:`கொண்டிருக்க வேண்டும்`},file:{unit:`பைட்டுகள்`,verb:`கொண்டிருக்க வேண்டும்`},array:{unit:`உறுப்புகள்`,verb:`கொண்டிருக்க வேண்டும்`},set:{unit:`உறுப்புகள்`,verb:`கொண்டிருக்க வேண்டும்`}};function t(t){return e[t]??null}let n=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`எண் அல்லாதது`:`எண்`;case`object`:if(Array.isArray(e))return`அணி`;if(e===null)return`வெறுமை`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},r={regex:`உள்ளீடு`,email:`மின்னஞ்சல் முகவரி`,url:`URL`,emoji:`emoji`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`ISO தேதி நேரம்`,date:`ISO தேதி`,time:`ISO நேரம்`,duration:`ISO கால அளவு`,ipv4:`IPv4 முகவரி`,ipv6:`IPv6 முகவரி`,cidrv4:`IPv4 வரம்பு`,cidrv6:`IPv6 வரம்பு`,base64:`base64-encoded சரம்`,base64url:`base64url-encoded சரம்`,json_string:`JSON சரம்`,e164:`E.164 எண்`,jwt:`JWT`,template_literal:`input`};return e=>{switch(e.code){case`invalid_type`:return`தவறான உள்ளீடு: எதிர்பார்க்கப்பட்டது ${e.expected}, பெறப்பட்டது ${n(e.input)}`;case`invalid_value`:return e.values.length===1?`தவறான உள்ளீடு: எதிர்பார்க்கப்பட்டது ${S(e.values[0])}`:`தவறான விருப்பம்: எதிர்பார்க்கப்பட்டது ${_(e.values,`|`)} இல் ஒன்று`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);return r?`மிக பெரியது: எதிர்பார்க்கப்பட்டது ${e.origin??`மதிப்பு`} ${n}${e.maximum.toString()} ${r.unit??`உறுப்புகள்`} ஆக இருக்க வேண்டும்`:`மிக பெரியது: எதிர்பார்க்கப்பட்டது ${e.origin??`மதிப்பு`} ${n}${e.maximum.toString()} ஆக இருக்க வேண்டும்`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);return r?`மிகச் சிறியது: எதிர்பார்க்கப்பட்டது ${e.origin} ${n}${e.minimum.toString()} ${r.unit} ஆக இருக்க வேண்டும்`:`மிகச் சிறியது: எதிர்பார்க்கப்பட்டது ${e.origin} ${n}${e.minimum.toString()} ஆக இருக்க வேண்டும்`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`தவறான சரம்: "${t.prefix}" இல் தொடங்க வேண்டும்`:t.format===`ends_with`?`தவறான சரம்: "${t.suffix}" இல் முடிவடைய வேண்டும்`:t.format===`includes`?`தவறான சரம்: "${t.includes}" ஐ உள்ளடக்க வேண்டும்`:t.format===`regex`?`தவறான சரம்: ${t.pattern} முறைபாட்டுடன் பொருந்த வேண்டும்`:`தவறான ${r[t.format]??e.format}`}case`not_multiple_of`:return`தவறான எண்: ${e.divisor} இன் பலமாக இருக்க வேண்டும்`;case`unrecognized_keys`:return`அடையாளம் தெரியாத விசை${e.keys.length>1?`கள்`:``}: ${_(e.keys,`, `)}`;case`invalid_key`:return`${e.origin} இல் தவறான விசை`;case`invalid_union`:return`தவறான உள்ளீடு`;case`invalid_element`:return`${e.origin} இல் தவறான மதிப்பு`;default:return`தவறான உள்ளீடு`}}};function Co(){return{localeError:So()}}var wo=()=>{let e={string:{unit:`ตัวอักษร`,verb:`ควรมี`},file:{unit:`ไบต์`,verb:`ควรมี`},array:{unit:`รายการ`,verb:`ควรมี`},set:{unit:`รายการ`,verb:`ควรมี`}};function t(t){return e[t]??null}let n=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`ไม่ใช่ตัวเลข (NaN)`:`ตัวเลข`;case`object`:if(Array.isArray(e))return`อาร์เรย์ (Array)`;if(e===null)return`ไม่มีค่า (null)`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},r={regex:`ข้อมูลที่ป้อน`,email:`ที่อยู่อีเมล`,url:`URL`,emoji:`อิโมจิ`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`วันที่เวลาแบบ ISO`,date:`วันที่แบบ ISO`,time:`เวลาแบบ ISO`,duration:`ช่วงเวลาแบบ ISO`,ipv4:`ที่อยู่ IPv4`,ipv6:`ที่อยู่ IPv6`,cidrv4:`ช่วง IP แบบ IPv4`,cidrv6:`ช่วง IP แบบ IPv6`,base64:`ข้อความแบบ Base64`,base64url:`ข้อความแบบ Base64 สำหรับ URL`,json_string:`ข้อความแบบ JSON`,e164:`เบอร์โทรศัพท์ระหว่างประเทศ (E.164)`,jwt:`โทเคน JWT`,template_literal:`ข้อมูลที่ป้อน`};return e=>{switch(e.code){case`invalid_type`:return`ประเภทข้อมูลไม่ถูกต้อง: ควรเป็น ${e.expected} แต่ได้รับ ${n(e.input)}`;case`invalid_value`:return e.values.length===1?`ค่าไม่ถูกต้อง: ควรเป็น ${S(e.values[0])}`:`ตัวเลือกไม่ถูกต้อง: ควรเป็นหนึ่งใน ${_(e.values,`|`)}`;case`too_big`:{let n=e.inclusive?`ไม่เกิน`:`น้อยกว่า`,r=t(e.origin);return r?`เกินกำหนด: ${e.origin??`ค่า`} ควรมี${n} ${e.maximum.toString()} ${r.unit??`รายการ`}`:`เกินกำหนด: ${e.origin??`ค่า`} ควรมี${n} ${e.maximum.toString()}`}case`too_small`:{let n=e.inclusive?`อย่างน้อย`:`มากกว่า`,r=t(e.origin);return r?`น้อยกว่ากำหนด: ${e.origin} ควรมี${n} ${e.minimum.toString()} ${r.unit}`:`น้อยกว่ากำหนด: ${e.origin} ควรมี${n} ${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`รูปแบบไม่ถูกต้อง: ข้อความต้องขึ้นต้นด้วย "${t.prefix}"`:t.format===`ends_with`?`รูปแบบไม่ถูกต้อง: ข้อความต้องลงท้ายด้วย "${t.suffix}"`:t.format===`includes`?`รูปแบบไม่ถูกต้อง: ข้อความต้องมี "${t.includes}" อยู่ในข้อความ`:t.format===`regex`?`รูปแบบไม่ถูกต้อง: ต้องตรงกับรูปแบบที่กำหนด ${t.pattern}`:`รูปแบบไม่ถูกต้อง: ${r[t.format]??e.format}`}case`not_multiple_of`:return`ตัวเลขไม่ถูกต้อง: ต้องเป็นจำนวนที่หารด้วย ${e.divisor} ได้ลงตัว`;case`unrecognized_keys`:return`พบคีย์ที่ไม่รู้จัก: ${_(e.keys,`, `)}`;case`invalid_key`:return`คีย์ไม่ถูกต้องใน ${e.origin}`;case`invalid_union`:return`ข้อมูลไม่ถูกต้อง: ไม่ตรงกับรูปแบบยูเนียนที่กำหนดไว้`;case`invalid_element`:return`ข้อมูลไม่ถูกต้องใน ${e.origin}`;default:return`ข้อมูลไม่ถูกต้อง`}}};function To(){return{localeError:wo()}}var Eo=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`number`;case`object`:if(Array.isArray(e))return`array`;if(e===null)return`null`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},Do=()=>{let e={string:{unit:`karakter`,verb:`olmalı`},file:{unit:`bayt`,verb:`olmalı`},array:{unit:`öğe`,verb:`olmalı`},set:{unit:`öğe`,verb:`olmalı`}};function t(t){return e[t]??null}let n={regex:`girdi`,email:`e-posta adresi`,url:`URL`,emoji:`emoji`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`ISO tarih ve saat`,date:`ISO tarih`,time:`ISO saat`,duration:`ISO süre`,ipv4:`IPv4 adresi`,ipv6:`IPv6 adresi`,cidrv4:`IPv4 aralığı`,cidrv6:`IPv6 aralığı`,base64:`base64 ile şifrelenmiş metin`,base64url:`base64url ile şifrelenmiş metin`,json_string:`JSON dizesi`,e164:`E.164 sayısı`,jwt:`JWT`,template_literal:`Şablon dizesi`};return e=>{switch(e.code){case`invalid_type`:return`Geçersiz değer: beklenen ${e.expected}, alınan ${Eo(e.input)}`;case`invalid_value`:return e.values.length===1?`Geçersiz değer: beklenen ${S(e.values[0])}`:`Geçersiz seçenek: aşağıdakilerden biri olmalı: ${_(e.values,`|`)}`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);return r?`Çok büyük: beklenen ${e.origin??`değer`} ${n}${e.maximum.toString()} ${r.unit??`öğe`}`:`Çok büyük: beklenen ${e.origin??`değer`} ${n}${e.maximum.toString()}`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);return r?`Çok küçük: beklenen ${e.origin} ${n}${e.minimum.toString()} ${r.unit}`:`Çok küçük: beklenen ${e.origin} ${n}${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`Geçersiz metin: "${t.prefix}" ile başlamalı`:t.format===`ends_with`?`Geçersiz metin: "${t.suffix}" ile bitmeli`:t.format===`includes`?`Geçersiz metin: "${t.includes}" içermeli`:t.format===`regex`?`Geçersiz metin: ${t.pattern} desenine uymalı`:`Geçersiz ${n[t.format]??e.format}`}case`not_multiple_of`:return`Geçersiz sayı: ${e.divisor} ile tam bölünebilmeli`;case`unrecognized_keys`:return`Tanınmayan anahtar${e.keys.length>1?`lar`:``}: ${_(e.keys,`, `)}`;case`invalid_key`:return`${e.origin} içinde geçersiz anahtar`;case`invalid_union`:return`Geçersiz değer`;case`invalid_element`:return`${e.origin} içinde geçersiz değer`;default:return`Geçersiz değer`}}};function Oo(){return{localeError:Do()}}var ko=()=>{let e={string:{unit:`символів`,verb:`матиме`},file:{unit:`байтів`,verb:`матиме`},array:{unit:`елементів`,verb:`матиме`},set:{unit:`елементів`,verb:`матиме`}};function t(t){return e[t]??null}let n=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`число`;case`object`:if(Array.isArray(e))return`масив`;if(e===null)return`null`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},r={regex:`вхідні дані`,email:`адреса електронної пошти`,url:`URL`,emoji:`емодзі`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`дата та час ISO`,date:`дата ISO`,time:`час ISO`,duration:`тривалість ISO`,ipv4:`адреса IPv4`,ipv6:`адреса IPv6`,cidrv4:`діапазон IPv4`,cidrv6:`діапазон IPv6`,base64:`рядок у кодуванні base64`,base64url:`рядок у кодуванні base64url`,json_string:`рядок JSON`,e164:`номер E.164`,jwt:`JWT`,template_literal:`вхідні дані`};return e=>{switch(e.code){case`invalid_type`:return`Неправильні вхідні дані: очікується ${e.expected}, отримано ${n(e.input)}`;case`invalid_value`:return e.values.length===1?`Неправильні вхідні дані: очікується ${S(e.values[0])}`:`Неправильна опція: очікується одне з ${_(e.values,`|`)}`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);return r?`Занадто велике: очікується, що ${e.origin??`значення`} ${r.verb} ${n}${e.maximum.toString()} ${r.unit??`елементів`}`:`Занадто велике: очікується, що ${e.origin??`значення`} буде ${n}${e.maximum.toString()}`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);return r?`Занадто мале: очікується, що ${e.origin} ${r.verb} ${n}${e.minimum.toString()} ${r.unit}`:`Занадто мале: очікується, що ${e.origin} буде ${n}${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`Неправильний рядок: повинен починатися з "${t.prefix}"`:t.format===`ends_with`?`Неправильний рядок: повинен закінчуватися на "${t.suffix}"`:t.format===`includes`?`Неправильний рядок: повинен містити "${t.includes}"`:t.format===`regex`?`Неправильний рядок: повинен відповідати шаблону ${t.pattern}`:`Неправильний ${r[t.format]??e.format}`}case`not_multiple_of`:return`Неправильне число: повинно бути кратним ${e.divisor}`;case`unrecognized_keys`:return`Нерозпізнаний ключ${e.keys.length>1?`і`:``}: ${_(e.keys,`, `)}`;case`invalid_key`:return`Неправильний ключ у ${e.origin}`;case`invalid_union`:return`Неправильні вхідні дані`;case`invalid_element`:return`Неправильне значення у ${e.origin}`;default:return`Неправильні вхідні дані`}}};function Ao(){return{localeError:ko()}}function jo(){return Ao()}var Mo=()=>{let e={string:{unit:`حروف`,verb:`ہونا`},file:{unit:`بائٹس`,verb:`ہونا`},array:{unit:`آئٹمز`,verb:`ہونا`},set:{unit:`آئٹمز`,verb:`ہونا`}};function t(t){return e[t]??null}let n=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`نمبر`;case`object`:if(Array.isArray(e))return`آرے`;if(e===null)return`نل`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},r={regex:`ان پٹ`,email:`ای میل ایڈریس`,url:`یو آر ایل`,emoji:`ایموجی`,uuid:`یو یو آئی ڈی`,uuidv4:`یو یو آئی ڈی وی 4`,uuidv6:`یو یو آئی ڈی وی 6`,nanoid:`نینو آئی ڈی`,guid:`جی یو آئی ڈی`,cuid:`سی یو آئی ڈی`,cuid2:`سی یو آئی ڈی 2`,ulid:`یو ایل آئی ڈی`,xid:`ایکس آئی ڈی`,ksuid:`کے ایس یو آئی ڈی`,datetime:`آئی ایس او ڈیٹ ٹائم`,date:`آئی ایس او تاریخ`,time:`آئی ایس او وقت`,duration:`آئی ایس او مدت`,ipv4:`آئی پی وی 4 ایڈریس`,ipv6:`آئی پی وی 6 ایڈریس`,cidrv4:`آئی پی وی 4 رینج`,cidrv6:`آئی پی وی 6 رینج`,base64:`بیس 64 ان کوڈڈ سٹرنگ`,base64url:`بیس 64 یو آر ایل ان کوڈڈ سٹرنگ`,json_string:`جے ایس او این سٹرنگ`,e164:`ای 164 نمبر`,jwt:`جے ڈبلیو ٹی`,template_literal:`ان پٹ`};return e=>{switch(e.code){case`invalid_type`:return`غلط ان پٹ: ${e.expected} متوقع تھا، ${n(e.input)} موصول ہوا`;case`invalid_value`:return e.values.length===1?`غلط ان پٹ: ${S(e.values[0])} متوقع تھا`:`غلط آپشن: ${_(e.values,`|`)} میں سے ایک متوقع تھا`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);return r?`بہت بڑا: ${e.origin??`ویلیو`} کے ${n}${e.maximum.toString()} ${r.unit??`عناصر`} ہونے متوقع تھے`:`بہت بڑا: ${e.origin??`ویلیو`} کا ${n}${e.maximum.toString()} ہونا متوقع تھا`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);return r?`بہت چھوٹا: ${e.origin} کے ${n}${e.minimum.toString()} ${r.unit} ہونے متوقع تھے`:`بہت چھوٹا: ${e.origin} کا ${n}${e.minimum.toString()} ہونا متوقع تھا`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`غلط سٹرنگ: "${t.prefix}" سے شروع ہونا چاہیے`:t.format===`ends_with`?`غلط سٹرنگ: "${t.suffix}" پر ختم ہونا چاہیے`:t.format===`includes`?`غلط سٹرنگ: "${t.includes}" شامل ہونا چاہیے`:t.format===`regex`?`غلط سٹرنگ: پیٹرن ${t.pattern} سے میچ ہونا چاہیے`:`غلط ${r[t.format]??e.format}`}case`not_multiple_of`:return`غلط نمبر: ${e.divisor} کا مضاعف ہونا چاہیے`;case`unrecognized_keys`:return`غیر تسلیم شدہ کی${e.keys.length>1?`ز`:``}: ${_(e.keys,`، `)}`;case`invalid_key`:return`${e.origin} میں غلط کی`;case`invalid_union`:return`غلط ان پٹ`;case`invalid_element`:return`${e.origin} میں غلط ویلیو`;default:return`غلط ان پٹ`}}};function No(){return{localeError:Mo()}}var Po=()=>{let e={string:{unit:`ký tự`,verb:`có`},file:{unit:`byte`,verb:`có`},array:{unit:`phần tử`,verb:`có`},set:{unit:`phần tử`,verb:`có`}};function t(t){return e[t]??null}let n=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`số`;case`object`:if(Array.isArray(e))return`mảng`;if(e===null)return`null`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},r={regex:`đầu vào`,email:`địa chỉ email`,url:`URL`,emoji:`emoji`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`ngày giờ ISO`,date:`ngày ISO`,time:`giờ ISO`,duration:`khoảng thời gian ISO`,ipv4:`địa chỉ IPv4`,ipv6:`địa chỉ IPv6`,cidrv4:`dải IPv4`,cidrv6:`dải IPv6`,base64:`chuỗi mã hóa base64`,base64url:`chuỗi mã hóa base64url`,json_string:`chuỗi JSON`,e164:`số E.164`,jwt:`JWT`,template_literal:`đầu vào`};return e=>{switch(e.code){case`invalid_type`:return`Đầu vào không hợp lệ: mong đợi ${e.expected}, nhận được ${n(e.input)}`;case`invalid_value`:return e.values.length===1?`Đầu vào không hợp lệ: mong đợi ${S(e.values[0])}`:`Tùy chọn không hợp lệ: mong đợi một trong các giá trị ${_(e.values,`|`)}`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);return r?`Quá lớn: mong đợi ${e.origin??`giá trị`} ${r.verb} ${n}${e.maximum.toString()} ${r.unit??`phần tử`}`:`Quá lớn: mong đợi ${e.origin??`giá trị`} ${n}${e.maximum.toString()}`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);return r?`Quá nhỏ: mong đợi ${e.origin} ${r.verb} ${n}${e.minimum.toString()} ${r.unit}`:`Quá nhỏ: mong đợi ${e.origin} ${n}${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`Chuỗi không hợp lệ: phải bắt đầu bằng "${t.prefix}"`:t.format===`ends_with`?`Chuỗi không hợp lệ: phải kết thúc bằng "${t.suffix}"`:t.format===`includes`?`Chuỗi không hợp lệ: phải bao gồm "${t.includes}"`:t.format===`regex`?`Chuỗi không hợp lệ: phải khớp với mẫu ${t.pattern}`:`${r[t.format]??e.format} không hợp lệ`}case`not_multiple_of`:return`Số không hợp lệ: phải là bội số của ${e.divisor}`;case`unrecognized_keys`:return`Khóa không được nhận dạng: ${_(e.keys,`, `)}`;case`invalid_key`:return`Khóa không hợp lệ trong ${e.origin}`;case`invalid_union`:return`Đầu vào không hợp lệ`;case`invalid_element`:return`Giá trị không hợp lệ trong ${e.origin}`;default:return`Đầu vào không hợp lệ`}}};function Fo(){return{localeError:Po()}}var Io=()=>{let e={string:{unit:`字符`,verb:`包含`},file:{unit:`字节`,verb:`包含`},array:{unit:`项`,verb:`包含`},set:{unit:`项`,verb:`包含`}};function t(t){return e[t]??null}let n=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`非数字(NaN)`:`数字`;case`object`:if(Array.isArray(e))return`数组`;if(e===null)return`空值(null)`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},r={regex:`输入`,email:`电子邮件`,url:`URL`,emoji:`表情符号`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`ISO日期时间`,date:`ISO日期`,time:`ISO时间`,duration:`ISO时长`,ipv4:`IPv4地址`,ipv6:`IPv6地址`,cidrv4:`IPv4网段`,cidrv6:`IPv6网段`,base64:`base64编码字符串`,base64url:`base64url编码字符串`,json_string:`JSON字符串`,e164:`E.164号码`,jwt:`JWT`,template_literal:`输入`};return e=>{switch(e.code){case`invalid_type`:return`无效输入:期望 ${e.expected},实际接收 ${n(e.input)}`;case`invalid_value`:return e.values.length===1?`无效输入:期望 ${S(e.values[0])}`:`无效选项:期望以下之一 ${_(e.values,`|`)}`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);return r?`数值过大:期望 ${e.origin??`值`} ${n}${e.maximum.toString()} ${r.unit??`个元素`}`:`数值过大:期望 ${e.origin??`值`} ${n}${e.maximum.toString()}`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);return r?`数值过小:期望 ${e.origin} ${n}${e.minimum.toString()} ${r.unit}`:`数值过小:期望 ${e.origin} ${n}${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`无效字符串:必须以 "${t.prefix}" 开头`:t.format===`ends_with`?`无效字符串:必须以 "${t.suffix}" 结尾`:t.format===`includes`?`无效字符串:必须包含 "${t.includes}"`:t.format===`regex`?`无效字符串:必须满足正则表达式 ${t.pattern}`:`无效${r[t.format]??e.format}`}case`not_multiple_of`:return`无效数字:必须是 ${e.divisor} 的倍数`;case`unrecognized_keys`:return`出现未知的键(key): ${_(e.keys,`, `)}`;case`invalid_key`:return`${e.origin} 中的键(key)无效`;case`invalid_union`:return`无效输入`;case`invalid_element`:return`${e.origin} 中包含无效值(value)`;default:return`无效输入`}}};function Lo(){return{localeError:Io()}}var Ro=()=>{let e={string:{unit:`字元`,verb:`擁有`},file:{unit:`位元組`,verb:`擁有`},array:{unit:`項目`,verb:`擁有`},set:{unit:`項目`,verb:`擁有`}};function t(t){return e[t]??null}let n=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`number`;case`object`:if(Array.isArray(e))return`array`;if(e===null)return`null`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},r={regex:`輸入`,email:`郵件地址`,url:`URL`,emoji:`emoji`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`ISO 日期時間`,date:`ISO 日期`,time:`ISO 時間`,duration:`ISO 期間`,ipv4:`IPv4 位址`,ipv6:`IPv6 位址`,cidrv4:`IPv4 範圍`,cidrv6:`IPv6 範圍`,base64:`base64 編碼字串`,base64url:`base64url 編碼字串`,json_string:`JSON 字串`,e164:`E.164 數值`,jwt:`JWT`,template_literal:`輸入`};return e=>{switch(e.code){case`invalid_type`:return`無效的輸入值:預期為 ${e.expected},但收到 ${n(e.input)}`;case`invalid_value`:return e.values.length===1?`無效的輸入值:預期為 ${S(e.values[0])}`:`無效的選項:預期為以下其中之一 ${_(e.values,`|`)}`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);return r?`數值過大:預期 ${e.origin??`值`} 應為 ${n}${e.maximum.toString()} ${r.unit??`個元素`}`:`數值過大:預期 ${e.origin??`值`} 應為 ${n}${e.maximum.toString()}`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);return r?`數值過小:預期 ${e.origin} 應為 ${n}${e.minimum.toString()} ${r.unit}`:`數值過小:預期 ${e.origin} 應為 ${n}${e.minimum.toString()}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`無效的字串:必須以 "${t.prefix}" 開頭`:t.format===`ends_with`?`無效的字串:必須以 "${t.suffix}" 結尾`:t.format===`includes`?`無效的字串:必須包含 "${t.includes}"`:t.format===`regex`?`無效的字串:必須符合格式 ${t.pattern}`:`無效的 ${r[t.format]??e.format}`}case`not_multiple_of`:return`無效的數字:必須為 ${e.divisor} 的倍數`;case`unrecognized_keys`:return`無法識別的鍵值${e.keys.length>1?`們`:``}:${_(e.keys,`、`)}`;case`invalid_key`:return`${e.origin} 中有無效的鍵值`;case`invalid_union`:return`無效的輸入值`;case`invalid_element`:return`${e.origin} 中有無效的值`;default:return`無效的輸入值`}}};function zo(){return{localeError:Ro()}}var Bo=()=>{let e={string:{unit:`àmi`,verb:`ní`},file:{unit:`bytes`,verb:`ní`},array:{unit:`nkan`,verb:`ní`},set:{unit:`nkan`,verb:`ní`}};function t(t){return e[t]??null}let n=e=>{let t=typeof e;switch(t){case`number`:return Number.isNaN(e)?`NaN`:`nọ́mbà`;case`object`:if(Array.isArray(e))return`akopọ`;if(e===null)return`null`;if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}return t},r={regex:`ẹ̀rọ ìbáwọlé`,email:`àdírẹ́sì ìmẹ́lì`,url:`URL`,emoji:`emoji`,uuid:`UUID`,uuidv4:`UUIDv4`,uuidv6:`UUIDv6`,nanoid:`nanoid`,guid:`GUID`,cuid:`cuid`,cuid2:`cuid2`,ulid:`ULID`,xid:`XID`,ksuid:`KSUID`,datetime:`àkókò ISO`,date:`ọjọ́ ISO`,time:`àkókò ISO`,duration:`àkókò tó pé ISO`,ipv4:`àdírẹ́sì IPv4`,ipv6:`àdírẹ́sì IPv6`,cidrv4:`àgbègbè IPv4`,cidrv6:`àgbègbè IPv6`,base64:`ọ̀rọ̀ tí a kọ́ ní base64`,base64url:`ọ̀rọ̀ base64url`,json_string:`ọ̀rọ̀ JSON`,e164:`nọ́mbà E.164`,jwt:`JWT`,template_literal:`ẹ̀rọ ìbáwọlé`};return e=>{switch(e.code){case`invalid_type`:return`Ìbáwọlé aṣìṣe: a ní láti fi ${e.expected}, àmọ̀ a rí ${n(e.input)}`;case`invalid_value`:return e.values.length===1?`Ìbáwọlé aṣìṣe: a ní láti fi ${S(e.values[0])}`:`Àṣàyàn aṣìṣe: yan ọ̀kan lára ${_(e.values,`|`)}`;case`too_big`:{let n=e.inclusive?`<=`:`<`,r=t(e.origin);return r?`Tó pọ̀ jù: a ní láti jẹ́ pé ${e.origin??`iye`} ${r.verb} ${n}${e.maximum} ${r.unit}`:`Tó pọ̀ jù: a ní láti jẹ́ ${n}${e.maximum}`}case`too_small`:{let n=e.inclusive?`>=`:`>`,r=t(e.origin);return r?`Kéré ju: a ní láti jẹ́ pé ${e.origin} ${r.verb} ${n}${e.minimum} ${r.unit}`:`Kéré ju: a ní láti jẹ́ ${n}${e.minimum}`}case`invalid_format`:{let t=e;return t.format===`starts_with`?`Ọ̀rọ̀ aṣìṣe: gbọ́dọ̀ bẹ̀rẹ̀ pẹ̀lú "${t.prefix}"`:t.format===`ends_with`?`Ọ̀rọ̀ aṣìṣe: gbọ́dọ̀ parí pẹ̀lú "${t.suffix}"`:t.format===`includes`?`Ọ̀rọ̀ aṣìṣe: gbọ́dọ̀ ní "${t.includes}"`:t.format===`regex`?`Ọ̀rọ̀ aṣìṣe: gbọ́dọ̀ bá àpẹẹrẹ mu ${t.pattern}`:`Aṣìṣe: ${r[t.format]??e.format}`}case`not_multiple_of`:return`Nọ́mbà aṣìṣe: gbọ́dọ̀ jẹ́ èyà pípín ti ${e.divisor}`;case`unrecognized_keys`:return`Bọtìnì àìmọ̀: ${_(e.keys,`, `)}`;case`invalid_key`:return`Bọtìnì aṣìṣe nínú ${e.origin}`;case`invalid_union`:return`Ìbáwọlé aṣìṣe`;case`invalid_element`:return`Iye aṣìṣe nínú ${e.origin}`;default:return`Ìbáwọlé aṣìṣe`}}};function Vo(){return{localeError:Bo()}}var Ho=t({ar:()=>Ki,az:()=>Ji,be:()=>Zi,bg:()=>ea,ca:()=>na,cs:()=>ia,da:()=>oa,de:()=>ca,en:()=>da,eo:()=>ma,es:()=>ga,fa:()=>va,fi:()=>ba,fr:()=>Sa,frCA:()=>wa,he:()=>Ea,hu:()=>Oa,id:()=>Aa,is:()=>Na,it:()=>Fa,ja:()=>La,ka:()=>Ba,kh:()=>Ua,km:()=>Ha,ko:()=>Ga,lt:()=>Za,mk:()=>$a,ms:()=>to,nl:()=>ro,no:()=>ao,ota:()=>so,pl:()=>fo,ps:()=>lo,pt:()=>mo,ru:()=>_o,sl:()=>yo,sv:()=>xo,ta:()=>Co,th:()=>To,tr:()=>Oo,ua:()=>jo,uk:()=>Ao,ur:()=>No,vi:()=>Fo,yo:()=>Vo,zhCN:()=>Lo,zhTW:()=>zo}),Uo,Wo=Symbol(`ZodOutput`),Go=Symbol(`ZodInput`),Ko=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...t){let n=t[0];if(this._map.set(e,n),n&&typeof n==`object`&&`id`in n){if(this._idmap.has(n.id))throw Error(`ID ${n.id} already exists in the registry`);this._idmap.set(n.id,e)}return this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(e){let t=this._map.get(e);return t&&typeof t==`object`&&`id`in t&&this._idmap.delete(t.id),this._map.delete(e),this}get(e){let t=e._zod.parent;if(t){let n={...this.get(t)??{}};delete n.id;let r={...n,...this._map.get(e)};return Object.keys(r).length?r:void 0}return this._map.get(e)}has(e){return this._map.has(e)}};function qo(){return new Ko}(Uo=globalThis).__zod_globalRegistry??(Uo.__zod_globalRegistry=qo());var Jo=globalThis.__zod_globalRegistry;function Yo(e,t){return new e({type:`string`,...x(t)})}function Xo(e,t){return new e({type:`string`,coerce:!0,...x(t)})}function Zo(e,t){return new e({type:`string`,format:`email`,check:`string_format`,abort:!1,...x(t)})}function Qo(e,t){return new e({type:`string`,format:`guid`,check:`string_format`,abort:!1,...x(t)})}function $o(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,...x(t)})}function es(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v4`,...x(t)})}function ts(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v6`,...x(t)})}function ns(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v7`,...x(t)})}function rs(e,t){return new e({type:`string`,format:`url`,check:`string_format`,abort:!1,...x(t)})}function is(e,t){return new e({type:`string`,format:`emoji`,check:`string_format`,abort:!1,...x(t)})}function as(e,t){return new e({type:`string`,format:`nanoid`,check:`string_format`,abort:!1,...x(t)})}function os(e,t){return new e({type:`string`,format:`cuid`,check:`string_format`,abort:!1,...x(t)})}function ss(e,t){return new e({type:`string`,format:`cuid2`,check:`string_format`,abort:!1,...x(t)})}function cs(e,t){return new e({type:`string`,format:`ulid`,check:`string_format`,abort:!1,...x(t)})}function ls(e,t){return new e({type:`string`,format:`xid`,check:`string_format`,abort:!1,...x(t)})}function us(e,t){return new e({type:`string`,format:`ksuid`,check:`string_format`,abort:!1,...x(t)})}function ds(e,t){return new e({type:`string`,format:`ipv4`,check:`string_format`,abort:!1,...x(t)})}function fs(e,t){return new e({type:`string`,format:`ipv6`,check:`string_format`,abort:!1,...x(t)})}function ps(e,t){return new e({type:`string`,format:`mac`,check:`string_format`,abort:!1,...x(t)})}function ms(e,t){return new e({type:`string`,format:`cidrv4`,check:`string_format`,abort:!1,...x(t)})}function hs(e,t){return new e({type:`string`,format:`cidrv6`,check:`string_format`,abort:!1,...x(t)})}function gs(e,t){return new e({type:`string`,format:`base64`,check:`string_format`,abort:!1,...x(t)})}function _s(e,t){return new e({type:`string`,format:`base64url`,check:`string_format`,abort:!1,...x(t)})}function vs(e,t){return new e({type:`string`,format:`e164`,check:`string_format`,abort:!1,...x(t)})}function ys(e,t){return new e({type:`string`,format:`jwt`,check:`string_format`,abort:!1,...x(t)})}var bs={Any:null,Minute:-1,Second:0,Millisecond:3,Microsecond:6};function xs(e,t){return new e({type:`string`,format:`datetime`,check:`string_format`,offset:!1,local:!1,precision:null,...x(t)})}function Ss(e,t){return new e({type:`string`,format:`date`,check:`string_format`,...x(t)})}function Cs(e,t){return new e({type:`string`,format:`time`,check:`string_format`,precision:null,...x(t)})}function ws(e,t){return new e({type:`string`,format:`duration`,check:`string_format`,...x(t)})}function Ts(e,t){return new e({type:`number`,checks:[],...x(t)})}function Es(e,t){return new e({type:`number`,coerce:!0,checks:[],...x(t)})}function Ds(e,t){return new e({type:`number`,check:`number_format`,abort:!1,format:`safeint`,...x(t)})}function Os(e,t){return new e({type:`number`,check:`number_format`,abort:!1,format:`float32`,...x(t)})}function ks(e,t){return new e({type:`number`,check:`number_format`,abort:!1,format:`float64`,...x(t)})}function As(e,t){return new e({type:`number`,check:`number_format`,abort:!1,format:`int32`,...x(t)})}function js(e,t){return new e({type:`number`,check:`number_format`,abort:!1,format:`uint32`,...x(t)})}function Ms(e,t){return new e({type:`boolean`,...x(t)})}function Ns(e,t){return new e({type:`boolean`,coerce:!0,...x(t)})}function Ps(e,t){return new e({type:`bigint`,...x(t)})}function Fs(e,t){return new e({type:`bigint`,coerce:!0,...x(t)})}function Is(e,t){return new e({type:`bigint`,check:`bigint_format`,abort:!1,format:`int64`,...x(t)})}function Ls(e,t){return new e({type:`bigint`,check:`bigint_format`,abort:!1,format:`uint64`,...x(t)})}function Rs(e,t){return new e({type:`symbol`,...x(t)})}function zs(e,t){return new e({type:`undefined`,...x(t)})}function Bs(e,t){return new e({type:`null`,...x(t)})}function Vs(e){return new e({type:`any`})}function Hs(e){return new e({type:`unknown`})}function Us(e,t){return new e({type:`never`,...x(t)})}function Ws(e,t){return new e({type:`void`,...x(t)})}function Gs(e,t){return new e({type:`date`,...x(t)})}function Ks(e,t){return new e({type:`date`,coerce:!0,...x(t)})}function qs(e,t){return new e({type:`nan`,...x(t)})}function Js(e,t){return new zn({check:`less_than`,...x(t),value:e,inclusive:!1})}function Ys(e,t){return new zn({check:`less_than`,...x(t),value:e,inclusive:!0})}function Xs(e,t){return new Bn({check:`greater_than`,...x(t),value:e,inclusive:!1})}function D(e,t){return new Bn({check:`greater_than`,...x(t),value:e,inclusive:!0})}function Zs(e){return Xs(0,e)}function Qs(e){return Js(0,e)}function $s(e){return Ys(0,e)}function ec(e){return D(0,e)}function tc(e,t){return new Vn({check:`multiple_of`,...x(t),value:e})}function nc(e,t){return new Wn({check:`max_size`,...x(t),maximum:e})}function rc(e,t){return new Gn({check:`min_size`,...x(t),minimum:e})}function ic(e,t){return new Kn({check:`size_equals`,...x(t),size:e})}function ac(e,t){return new qn({check:`max_length`,...x(t),maximum:e})}function oc(e,t){return new Jn({check:`min_length`,...x(t),minimum:e})}function sc(e,t){return new Yn({check:`length_equals`,...x(t),length:e})}function cc(e,t){return new Zn({check:`string_format`,format:`regex`,...x(t),pattern:e})}function lc(e){return new Qn({check:`string_format`,format:`lowercase`,...x(e)})}function uc(e){return new $n({check:`string_format`,format:`uppercase`,...x(e)})}function dc(e,t){return new er({check:`string_format`,format:`includes`,...x(t),includes:e})}function fc(e,t){return new tr({check:`string_format`,format:`starts_with`,...x(t),prefix:e})}function pc(e,t){return new nr({check:`string_format`,format:`ends_with`,...x(t),suffix:e})}function mc(e,t,n){return new ir({check:`property`,property:e,schema:t,...x(n)})}function hc(e,t){return new ar({check:`mime_type`,mime:e,...x(t)})}function gc(e){return new or({check:`overwrite`,tx:e})}function _c(e){return gc(t=>t.normalize(e))}function vc(){return gc(e=>e.trim())}function yc(){return gc(e=>e.toLowerCase())}function bc(){return gc(e=>e.toUpperCase())}function xc(){return gc(e=>pe(e))}function Sc(e,t,n){return new e({type:`array`,element:t,...x(n)})}function Cc(e,t,n){return new e({type:`union`,options:t,...x(n)})}function wc(e,t,n,r){return new e({type:`union`,options:n,discriminator:t,...x(r)})}function Tc(e,t,n){return new e({type:`intersection`,left:t,right:n})}function Ec(e,t,n,r){let i=n instanceof T;return new e({type:`tuple`,items:t,rest:i?n:null,...x(i?r:n)})}function Dc(e,t,n,r){return new e({type:`record`,keyType:t,valueType:n,...x(r)})}function Oc(e,t,n,r){return new e({type:`map`,keyType:t,valueType:n,...x(r)})}function kc(e,t,n){return new e({type:`set`,valueType:t,...x(n)})}function Ac(e,t,n){return new e({type:`enum`,entries:Array.isArray(t)?Object.fromEntries(t.map(e=>[e,e])):t,...x(n)})}function jc(e,t,n){return new e({type:`enum`,entries:t,...x(n)})}function Mc(e,t,n){return new e({type:`literal`,values:Array.isArray(t)?t:[t],...x(n)})}function Nc(e,t){return new e({type:`file`,...x(t)})}function Pc(e,t){return new e({type:`transform`,transform:t})}function Fc(e,t){return new e({type:`optional`,innerType:t})}function Ic(e,t){return new e({type:`nullable`,innerType:t})}function Lc(e,t,n){return new e({type:`default`,innerType:t,get defaultValue(){return typeof n==`function`?n():ve(n)}})}function Rc(e,t,n){return new e({type:`nonoptional`,innerType:t,...x(n)})}function zc(e,t){return new e({type:`success`,innerType:t})}function Bc(e,t,n){return new e({type:`catch`,innerType:t,catchValue:typeof n==`function`?n:()=>n})}function Vc(e,t,n){return new e({type:`pipe`,in:t,out:n})}function Hc(e,t){return new e({type:`readonly`,innerType:t})}function Uc(e,t,n){return new e({type:`template_literal`,parts:t,...x(n)})}function Wc(e,t){return new e({type:`lazy`,getter:t})}function Gc(e,t){return new e({type:`promise`,innerType:t})}function Kc(e,t,n){let r=x(n);return r.abort??=!0,new e({type:`custom`,check:`custom`,fn:t,...r})}function qc(e,t,n){return new e({type:`custom`,check:`custom`,fn:t,...x(n)})}function Jc(e){let t=Yc(n=>(n.addIssue=e=>{if(typeof e==`string`)n.issues.push(Ve(e,n.value,t._zod.def));else{let r=e;r.fatal&&(r.continue=!1),r.code??=`custom`,r.input??=n.value,r.inst??=t,r.continue??=!t._zod.def.abort,n.issues.push(Ve(r))}},e(n.value,n)));return t}function Yc(e,t){let n=new w({check:`custom`,...x(t)});return n._zod.check=e,n}function Xc(e){let t=new w({check:`describe`});return t._zod.onattach=[t=>{let n=Jo.get(t)??{};Jo.add(t,{...n,description:e})}],t._zod.check=()=>{},t}function Zc(e){let t=new w({check:`meta`});return t._zod.onattach=[t=>{let n=Jo.get(t)??{};Jo.add(t,{...n,...e})}],t._zod.check=()=>{},t}function Qc(e,t){let n=x(t),r=n.truthy??[`true`,`1`,`yes`,`on`,`y`,`enabled`],i=n.falsy??[`false`,`0`,`no`,`off`,`n`,`disabled`];n.case!==`sensitive`&&(r=r.map(e=>typeof e==`string`?e.toLowerCase():e),i=i.map(e=>typeof e==`string`?e.toLowerCase():e));let a=new Set(r),o=new Set(i),s=e.Codec??Pi,c=e.Boolean??Br,l=new s({type:`pipe`,in:new(e.String??lr)({type:`string`,error:n.error}),out:new c({type:`boolean`,error:n.error}),transform:((e,t)=>{let r=e;return n.case!==`sensitive`&&(r=r.toLowerCase()),a.has(r)?!0:o.has(r)?!1:(t.issues.push({code:`invalid_value`,expected:`stringbool`,values:[...a,...o],input:t.value,inst:l,continue:!1}),{})}),reverseTransform:((e,t)=>e===!0?r[0]||`true`:i[0]||`false`),error:n.error});return l}function $c(e,t,n,r={}){let i=x(r),a={...x(r),check:`string_format`,type:`string`,format:t,fn:typeof n==`function`?n:e=>n.test(e),...i};return n instanceof RegExp&&(a.pattern=n),new e(a)}var el=class{constructor(e){this.counter=0,this.metadataRegistry=e?.metadata??Jo,this.target=e?.target??`draft-2020-12`,this.unrepresentable=e?.unrepresentable??`throw`,this.override=e?.override??(()=>{}),this.io=e?.io??`output`,this.seen=new Map}process(e,t={path:[],schemaPath:[]}){var n;let r=e._zod.def,i={guid:`uuid`,url:`uri`,datetime:`date-time`,json_string:`json-string`,regex:``},a=this.seen.get(e);if(a)return a.count++,t.schemaPath.includes(e)&&(a.cycle=t.path),a.schema;let o={schema:{},count:1,cycle:void 0,path:t.path};this.seen.set(e,o);let s=e._zod.toJSONSchema?.();if(s)o.schema=s;else{let n={...t,schemaPath:[...t.schemaPath,e],path:t.path},a=e._zod.parent;if(a)o.ref=a,this.process(a,n),this.seen.get(a).isParent=!0;else{let t=o.schema;switch(r.type){case`string`:{let n=t;n.type=`string`;let{minimum:r,maximum:a,format:s,patterns:c,contentEncoding:l}=e._zod.bag;if(typeof r==`number`&&(n.minLength=r),typeof a==`number`&&(n.maxLength=a),s&&(n.format=i[s]??s,n.format===``&&delete n.format),l&&(n.contentEncoding=l),c&&c.size>0){let e=[...c];e.length===1?n.pattern=e[0].source:e.length>1&&(o.schema.allOf=[...e.map(e=>({...this.target===`draft-7`||this.target===`draft-4`||this.target===`openapi-3.0`?{type:`string`}:{},pattern:e.source}))])}break}case`number`:{let n=t,{minimum:r,maximum:i,format:a,multipleOf:o,exclusiveMaximum:s,exclusiveMinimum:c}=e._zod.bag;typeof a==`string`&&a.includes(`int`)?n.type=`integer`:n.type=`number`,typeof c==`number`&&(this.target===`draft-4`||this.target===`openapi-3.0`?(n.minimum=c,n.exclusiveMinimum=!0):n.exclusiveMinimum=c),typeof r==`number`&&(n.minimum=r,typeof c==`number`&&this.target!==`draft-4`&&(c>=r?delete n.minimum:delete n.exclusiveMinimum)),typeof s==`number`&&(this.target===`draft-4`||this.target===`openapi-3.0`?(n.maximum=s,n.exclusiveMaximum=!0):n.exclusiveMaximum=s),typeof i==`number`&&(n.maximum=i,typeof s==`number`&&this.target!==`draft-4`&&(s<=i?delete n.maximum:delete n.exclusiveMaximum)),typeof o==`number`&&(n.multipleOf=o);break}case`boolean`:{let e=t;e.type=`boolean`;break}case`bigint`:if(this.unrepresentable===`throw`)throw Error(`BigInt cannot be represented in JSON Schema`);break;case`symbol`:if(this.unrepresentable===`throw`)throw Error(`Symbols cannot be represented in JSON Schema`);break;case`null`:this.target===`openapi-3.0`?(t.type=`string`,t.nullable=!0,t.enum=[null]):t.type=`null`;break;case`any`:break;case`unknown`:break;case`undefined`:if(this.unrepresentable===`throw`)throw Error(`Undefined cannot be represented in JSON Schema`);break;case`void`:if(this.unrepresentable===`throw`)throw Error(`Void cannot be represented in JSON Schema`);break;case`never`:t.not={};break;case`date`:if(this.unrepresentable===`throw`)throw Error(`Date cannot be represented in JSON Schema`);break;case`array`:{let i=t,{minimum:a,maximum:o}=e._zod.bag;typeof a==`number`&&(i.minItems=a),typeof o==`number`&&(i.maxItems=o),i.type=`array`,i.items=this.process(r.element,{...n,path:[...n.path,`items`]});break}case`object`:{let e=t;e.type=`object`,e.properties={};let i=r.shape;for(let t in i)e.properties[t]=this.process(i[t],{...n,path:[...n.path,`properties`,t]});let a=new Set(Object.keys(i)),o=new Set([...a].filter(e=>{let t=r.shape[e]._zod;return this.io===`input`?t.optin===void 0:t.optout===void 0}));o.size>0&&(e.required=Array.from(o)),r.catchall?._zod.def.type===`never`?e.additionalProperties=!1:r.catchall?r.catchall&&(e.additionalProperties=this.process(r.catchall,{...n,path:[...n.path,`additionalProperties`]})):this.io===`output`&&(e.additionalProperties=!1);break}case`union`:{let e=t,i=r.discriminator!==void 0,a=r.options.map((e,t)=>this.process(e,{...n,path:[...n.path,i?`oneOf`:`anyOf`,t]}));i?e.oneOf=a:e.anyOf=a;break}case`intersection`:{let e=t,i=this.process(r.left,{...n,path:[...n.path,`allOf`,0]}),a=this.process(r.right,{...n,path:[...n.path,`allOf`,1]}),o=e=>`allOf`in e&&Object.keys(e).length===1;e.allOf=[...o(i)?i.allOf:[i],...o(a)?a.allOf:[a]];break}case`tuple`:{let i=t;i.type=`array`;let a=this.target===`draft-2020-12`?`prefixItems`:`items`,o=this.target===`draft-2020-12`||this.target===`openapi-3.0`?`items`:`additionalItems`,s=r.items.map((e,t)=>this.process(e,{...n,path:[...n.path,a,t]})),c=r.rest?this.process(r.rest,{...n,path:[...n.path,o,...this.target===`openapi-3.0`?[r.items.length]:[]]}):null;this.target===`draft-2020-12`?(i.prefixItems=s,c&&(i.items=c)):this.target===`openapi-3.0`?(i.items={anyOf:s},c&&i.items.anyOf.push(c),i.minItems=s.length,c||(i.maxItems=s.length)):(i.items=s,c&&(i.additionalItems=c));let{minimum:l,maximum:u}=e._zod.bag;typeof l==`number`&&(i.minItems=l),typeof u==`number`&&(i.maxItems=u);break}case`record`:{let e=t;e.type=`object`,(this.target===`draft-7`||this.target===`draft-2020-12`)&&(e.propertyNames=this.process(r.keyType,{...n,path:[...n.path,`propertyNames`]})),e.additionalProperties=this.process(r.valueType,{...n,path:[...n.path,`additionalProperties`]});break}case`map`:if(this.unrepresentable===`throw`)throw Error(`Map cannot be represented in JSON Schema`);break;case`set`:if(this.unrepresentable===`throw`)throw Error(`Set cannot be represented in JSON Schema`);break;case`enum`:{let e=t,n=g(r.entries);n.every(e=>typeof e==`number`)&&(e.type=`number`),n.every(e=>typeof e==`string`)&&(e.type=`string`),e.enum=n;break}case`literal`:{let e=t,n=[];for(let e of r.values)if(e===void 0){if(this.unrepresentable===`throw`)throw Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof e==`bigint`){if(this.unrepresentable===`throw`)throw Error(`BigInt literals cannot be represented in JSON Schema`);n.push(Number(e))}else n.push(e);if(n.length!==0)if(n.length===1){let t=n[0];e.type=t===null?`null`:typeof t,this.target===`draft-4`||this.target===`openapi-3.0`?e.enum=[t]:e.const=t}else n.every(e=>typeof e==`number`)&&(e.type=`number`),n.every(e=>typeof e==`string`)&&(e.type=`string`),n.every(e=>typeof e==`boolean`)&&(e.type=`string`),n.every(e=>e===null)&&(e.type=`null`),e.enum=n;break}case`file`:{let n=t,r={type:`string`,format:`binary`,contentEncoding:`binary`},{minimum:i,maximum:a,mime:o}=e._zod.bag;i!==void 0&&(r.minLength=i),a!==void 0&&(r.maxLength=a),o?o.length===1?(r.contentMediaType=o[0],Object.assign(n,r)):n.anyOf=o.map(e=>({...r,contentMediaType:e})):Object.assign(n,r);break}case`transform`:if(this.unrepresentable===`throw`)throw Error(`Transforms cannot be represented in JSON Schema`);break;case`nullable`:{let e=this.process(r.innerType,n);this.target===`openapi-3.0`?(o.ref=r.innerType,t.nullable=!0):t.anyOf=[e,{type:`null`}];break}case`nonoptional`:this.process(r.innerType,n),o.ref=r.innerType;break;case`success`:{let e=t;e.type=`boolean`;break}case`default`:this.process(r.innerType,n),o.ref=r.innerType,t.default=JSON.parse(JSON.stringify(r.defaultValue));break;case`prefault`:this.process(r.innerType,n),o.ref=r.innerType,this.io===`input`&&(t._prefault=JSON.parse(JSON.stringify(r.defaultValue)));break;case`catch`:{this.process(r.innerType,n),o.ref=r.innerType;let e;try{e=r.catchValue(void 0)}catch{throw Error(`Dynamic catch values are not supported in JSON Schema`)}t.default=e;break}case`nan`:if(this.unrepresentable===`throw`)throw Error(`NaN cannot be represented in JSON Schema`);break;case`template_literal`:{let n=t,r=e._zod.pattern;if(!r)throw Error(`Pattern not found in template literal`);n.type=`string`,n.pattern=r.source;break}case`pipe`:{let e=this.io===`input`?r.in._zod.def.type===`transform`?r.out:r.in:r.out;this.process(e,n),o.ref=e;break}case`readonly`:this.process(r.innerType,n),o.ref=r.innerType,t.readOnly=!0;break;case`promise`:this.process(r.innerType,n),o.ref=r.innerType;break;case`optional`:this.process(r.innerType,n),o.ref=r.innerType;break;case`lazy`:{let t=e._zod.innerType;this.process(t,n),o.ref=t;break}case`custom`:if(this.unrepresentable===`throw`)throw Error(`Custom types cannot be represented in JSON Schema`);break;case`function`:if(this.unrepresentable===`throw`)throw Error(`Function types cannot be represented in JSON Schema`);break;default:}}}let c=this.metadataRegistry.get(e);return c&&Object.assign(o.schema,c),this.io===`input`&&O(e)&&(delete o.schema.examples,delete o.schema.default),this.io===`input`&&o.schema._prefault&&((n=o.schema).default??(n.default=o.schema._prefault)),delete o.schema._prefault,this.seen.get(e).schema}emit(e,t){let n={cycles:t?.cycles??`ref`,reused:t?.reused??`inline`,external:t?.external??void 0},r=this.seen.get(e);if(!r)throw Error(`Unprocessed schema. This is a bug in Zod.`);let i=e=>{let t=this.target===`draft-2020-12`?`$defs`:`definitions`;if(n.external){let r=n.external.registry.get(e[0])?.id,i=n.external.uri??(e=>e);if(r)return{ref:i(r)};let a=e[1].defId??e[1].schema.id??`schema${this.counter++}`;return e[1].defId=a,{defId:a,ref:`${i(`__shared`)}#/${t}/${a}`}}if(e[1]===r)return{ref:`#`};let i=`#/${t}/`,a=e[1].schema.id??`__schema${this.counter++}`;return{defId:a,ref:i+a}},a=e=>{if(e[1].schema.$ref)return;let t=e[1],{ref:n,defId:r}=i(e);t.def={...t.schema},r&&(t.defId=r);let a=t.schema;for(let e in a)delete a[e];a.$ref=n};if(n.cycles===`throw`)for(let e of this.seen.entries()){let t=e[1];if(t.cycle)throw Error(`Cycle detected: #/${t.cycle?.join(`/`)}/<root>
421
478
 
422
- Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let t of this.seen.entries()){let r=t[1];if(e===t[0]){a(t);continue}if(n.external){let r=n.external.registry.get(t[0])?.id;if(e!==t[0]&&r){a(t);continue}}if(this.metadataRegistry.get(t[0])?.id){a(t);continue}if(r.cycle){a(t);continue}if(r.count>1&&n.reused===`ref`){a(t);continue}}let o=(e,t)=>{let n=this.seen.get(e),r=n.def??n.schema,i={...r};if(n.ref===null)return;let a=n.ref;if(n.ref=null,a){o(a,t);let e=this.seen.get(a).schema;e.$ref&&(t.target===`draft-7`||t.target===`draft-4`||t.target===`openapi-3.0`)?(r.allOf=r.allOf??[],r.allOf.push(e)):(Object.assign(r,e),Object.assign(r,i))}n.isParent||this.override({zodSchema:e,jsonSchema:r,path:n.path??[]})};for(let e of[...this.seen.entries()].reverse())o(e[0],{target:this.target});let s={};if(this.target===`draft-2020-12`?s.$schema=`https://json-schema.org/draft/2020-12/schema`:this.target===`draft-7`?s.$schema=`http://json-schema.org/draft-07/schema#`:this.target===`draft-4`?s.$schema=`http://json-schema.org/draft-04/schema#`:this.target===`openapi-3.0`||console.warn(`Invalid target: ${this.target}`),n.external?.uri){let t=n.external.registry.get(e)?.id;if(!t)throw Error("Schema is missing an `id` property");s.$id=n.external.uri(t)}Object.assign(s,r.def);let c=n.external?.defs??{};for(let e of this.seen.entries()){let t=e[1];t.def&&t.defId&&(c[t.defId]=t.def)}n.external||Object.keys(c).length>0&&(this.target===`draft-2020-12`?s.$defs=c:s.definitions=c);try{return JSON.parse(JSON.stringify(s))}catch{throw Error(`Error converting schema to JSON.`)}}};function el(e,t){if(e instanceof Jo){let n=new $c(t),r={};for(let t of e._idmap.entries()){let[e,r]=t;n.process(r)}let i={},a={registry:e,uri:t?.uri,defs:r};for(let r of e._idmap.entries()){let[e,o]=r;i[e]=n.emit(o,{...t,external:a})}return Object.keys(r).length>0&&(i.__shared={[n.target===`draft-2020-12`?`$defs`:`definitions`]:r}),{schemas:i}}let n=new $c(t);return n.process(e),n.emit(e,t)}function k(e,t){let n=t??{seen:new Set};if(n.seen.has(e))return!1;n.seen.add(e);let r=e._zod.def;if(r.type===`transform`)return!0;if(r.type===`array`)return k(r.element,n);if(r.type===`set`)return k(r.valueType,n);if(r.type===`lazy`)return k(r.getter(),n);if(r.type===`promise`||r.type===`optional`||r.type===`nonoptional`||r.type===`nullable`||r.type===`readonly`||r.type===`default`||r.type===`prefault`)return k(r.innerType,n);if(r.type===`intersection`)return k(r.left,n)||k(r.right,n);if(r.type===`record`||r.type===`map`)return k(r.keyType,n)||k(r.valueType,n);if(r.type===`pipe`)return k(r.in,n)||k(r.out,n);if(r.type===`object`){for(let e in r.shape)if(k(r.shape[e],n))return!0;return!1}if(r.type===`union`){for(let e of r.options)if(k(e,n))return!0;return!1}if(r.type===`tuple`){for(let e of r.items)if(k(e,n))return!0;return!!(r.rest&&k(r.rest,n))}return!1}var tl=t({}),nl=t({$ZodAny:()=>Jr,$ZodArray:()=>ei,$ZodAsyncError:()=>o,$ZodBase64:()=>Nr,$ZodBase64URL:()=>Fr,$ZodBigInt:()=>Ur,$ZodBigIntFormat:()=>Wr,$ZodBoolean:()=>Hr,$ZodCIDRv4:()=>Ar,$ZodCIDRv6:()=>jr,$ZodCUID:()=>vr,$ZodCUID2:()=>yr,$ZodCatch:()=>Mi,$ZodCheck:()=>S,$ZodCheckBigIntFormat:()=>Gn,$ZodCheckEndsWith:()=>ir,$ZodCheckGreaterThan:()=>Hn,$ZodCheckIncludes:()=>nr,$ZodCheckLengthEquals:()=>Zn,$ZodCheckLessThan:()=>Vn,$ZodCheckLowerCase:()=>er,$ZodCheckMaxLength:()=>Yn,$ZodCheckMaxSize:()=>Kn,$ZodCheckMimeType:()=>sr,$ZodCheckMinLength:()=>Xn,$ZodCheckMinSize:()=>qn,$ZodCheckMultipleOf:()=>Un,$ZodCheckNumberFormat:()=>Wn,$ZodCheckOverwrite:()=>cr,$ZodCheckProperty:()=>or,$ZodCheckRegex:()=>$n,$ZodCheckSizeEquals:()=>Jn,$ZodCheckStartsWith:()=>rr,$ZodCheckStringFormat:()=>Qn,$ZodCheckUpperCase:()=>tr,$ZodCodec:()=>Ii,$ZodCustom:()=>Gi,$ZodCustomStringFormat:()=>zr,$ZodDate:()=>Qr,$ZodDefault:()=>Ei,$ZodDiscriminatedUnion:()=>ci,$ZodE164:()=>Ir,$ZodEmail:()=>mr,$ZodEmoji:()=>gr,$ZodEncodeError:()=>s,$ZodEnum:()=>yi,$ZodError:()=>$e,$ZodFile:()=>xi,$ZodFunction:()=>Hi,$ZodGUID:()=>fr,$ZodIPv4:()=>Dr,$ZodIPv6:()=>Or,$ZodISODate:()=>wr,$ZodISODateTime:()=>Cr,$ZodISODuration:()=>Er,$ZodISOTime:()=>Tr,$ZodIntersection:()=>li,$ZodJWT:()=>Rr,$ZodKSUID:()=>Sr,$ZodLazy:()=>Wi,$ZodLiteral:()=>bi,$ZodMAC:()=>kr,$ZodMap:()=>hi,$ZodNaN:()=>Ni,$ZodNanoID:()=>_r,$ZodNever:()=>Xr,$ZodNonOptional:()=>ki,$ZodNull:()=>qr,$ZodNullable:()=>Ti,$ZodNumber:()=>Br,$ZodNumberFormat:()=>Vr,$ZodObject:()=>ii,$ZodObjectJIT:()=>ai,$ZodOptional:()=>wi,$ZodPipe:()=>Pi,$ZodPrefault:()=>Oi,$ZodPromise:()=>Ui,$ZodReadonly:()=>zi,$ZodRealError:()=>x,$ZodRecord:()=>mi,$ZodRegistry:()=>Jo,$ZodSet:()=>_i,$ZodString:()=>dr,$ZodStringFormat:()=>w,$ZodSuccess:()=>ji,$ZodSymbol:()=>Gr,$ZodTemplateLiteral:()=>Vi,$ZodTransform:()=>Si,$ZodTuple:()=>fi,$ZodType:()=>C,$ZodULID:()=>br,$ZodURL:()=>hr,$ZodUUID:()=>pr,$ZodUndefined:()=>Kr,$ZodUnion:()=>si,$ZodUnknown:()=>Yr,$ZodVoid:()=>Zr,$ZodXID:()=>xr,$brand:()=>a,$constructor:()=>i,$input:()=>qo,$output:()=>Ko,Doc:()=>lr,JSONSchema:()=>tl,JSONSchemaGenerator:()=>$c,NEVER:()=>r,TimePrecision:()=>xs,_any:()=>Hs,_array:()=>xc,_base64:()=>_s,_base64url:()=>vs,_bigint:()=>Fs,_boolean:()=>Ns,_catch:()=>zc,_check:()=>Jc,_cidrv4:()=>hs,_cidrv6:()=>gs,_coercedBigint:()=>Is,_coercedBoolean:()=>Ps,_coercedDate:()=>qs,_coercedNumber:()=>Ds,_coercedString:()=>Zo,_cuid:()=>ss,_cuid2:()=>cs,_custom:()=>Gc,_date:()=>Ks,_decode:()=>ht,_decodeAsync:()=>yt,_default:()=>Ic,_discriminatedUnion:()=>Cc,_e164:()=>ys,_email:()=>Qo,_emoji:()=>as,_encode:()=>pt,_encodeAsync:()=>_t,_endsWith:()=>pc,_enum:()=>kc,_file:()=>Mc,_float32:()=>ks,_float64:()=>As,_gt:()=>Xs,_gte:()=>D,_guid:()=>$o,_includes:()=>dc,_int:()=>Os,_int32:()=>js,_int64:()=>Ls,_intersection:()=>wc,_ipv4:()=>fs,_ipv6:()=>ps,_isoDate:()=>Cs,_isoDateTime:()=>Ss,_isoDuration:()=>Ts,_isoTime:()=>ws,_jwt:()=>bs,_ksuid:()=>ds,_lazy:()=>Uc,_length:()=>sc,_literal:()=>jc,_lowercase:()=>lc,_lt:()=>Ys,_lte:()=>E,_mac:()=>ms,_map:()=>Dc,_max:()=>E,_maxLength:()=>ac,_maxSize:()=>nc,_mime:()=>hc,_min:()=>D,_minLength:()=>oc,_minSize:()=>rc,_multipleOf:()=>tc,_nan:()=>Js,_nanoid:()=>os,_nativeEnum:()=>Ac,_negative:()=>Qs,_never:()=>Ws,_nonnegative:()=>ec,_nonoptional:()=>Lc,_nonpositive:()=>$s,_normalize:()=>gc,_null:()=>Vs,_nullable:()=>Fc,_number:()=>Es,_optional:()=>Pc,_overwrite:()=>O,_parse:()=>at,_parseAsync:()=>st,_pipe:()=>Bc,_positive:()=>Zs,_promise:()=>Wc,_property:()=>mc,_readonly:()=>Vc,_record:()=>Ec,_refine:()=>Kc,_regex:()=>cc,_safeDecode:()=>Ct,_safeDecodeAsync:()=>Dt,_safeEncode:()=>xt,_safeEncodeAsync:()=>Tt,_safeParse:()=>lt,_safeParseAsync:()=>dt,_set:()=>Oc,_size:()=>ic,_slugify:()=>bc,_startsWith:()=>fc,_string:()=>Xo,_stringFormat:()=>Qc,_stringbool:()=>Zc,_success:()=>Rc,_superRefine:()=>qc,_symbol:()=>zs,_templateLiteral:()=>Hc,_toLowerCase:()=>vc,_toUpperCase:()=>yc,_transform:()=>Nc,_trim:()=>_c,_tuple:()=>Tc,_uint32:()=>Ms,_uint64:()=>Rs,_ulid:()=>ls,_undefined:()=>Bs,_union:()=>Sc,_unknown:()=>Us,_uppercase:()=>uc,_url:()=>is,_uuid:()=>es,_uuidv4:()=>ts,_uuidv6:()=>ns,_uuidv7:()=>rs,_void:()=>Gs,_xid:()=>us,clone:()=>g,config:()=>l,decode:()=>gt,decodeAsync:()=>bt,describe:()=>Yc,encode:()=>mt,encodeAsync:()=>vt,flattenError:()=>et,formatError:()=>tt,globalConfig:()=>c,globalRegistry:()=>T,isValidBase64:()=>Mr,isValidBase64URL:()=>Pr,isValidJWT:()=>Lr,locales:()=>Wo,meta:()=>Xc,parse:()=>ot,parseAsync:()=>ct,prettifyError:()=>it,regexes:()=>kt,registry:()=>Yo,safeDecode:()=>wt,safeDecodeAsync:()=>Ot,safeEncode:()=>St,safeEncodeAsync:()=>Et,safeParse:()=>ut,safeParseAsync:()=>ft,toDotPath:()=>rt,toJSONSchema:()=>el,treeifyError:()=>nt,util:()=>u,version:()=>ur});function rl(e){return!!e._zod}function il(e,t){return rl(e)?ut(e,t):e.safeParse(t)}function al(e){if(!e)return;let t;if(t=rl(e)?e._zod?.def?.shape:e.shape,t){if(typeof t==`function`)try{return t()}catch{return}return t}}function ol(e){if(rl(e)){let t=e._zod?.def;if(t){if(t.value!==void 0)return t.value;if(Array.isArray(t.values)&&t.values.length>0)return t.values[0]}}let t=e._def;if(t){if(t.value!==void 0)return t.value;if(Array.isArray(t.values)&&t.values.length>0)return t.values[0]}let n=e.value;if(n!==void 0)return n}var sl=t({ZodISODate:()=>ul,ZodISODateTime:()=>cl,ZodISODuration:()=>ml,ZodISOTime:()=>fl,date:()=>dl,datetime:()=>ll,duration:()=>hl,time:()=>pl}),cl=i(`ZodISODateTime`,(e,t)=>{Cr.init(e,t),N.init(e,t)});function ll(e){return Ss(cl,e)}var ul=i(`ZodISODate`,(e,t)=>{wr.init(e,t),N.init(e,t)});function dl(e){return Cs(ul,e)}var fl=i(`ZodISOTime`,(e,t)=>{Tr.init(e,t),N.init(e,t)});function pl(e){return ws(fl,e)}var ml=i(`ZodISODuration`,(e,t)=>{Er.init(e,t),N.init(e,t)});function hl(e){return Ts(ml,e)}var gl=(e,t)=>{$e.init(e,t),e.name=`ZodError`,Object.defineProperties(e,{format:{value:t=>tt(e,t)},flatten:{value:t=>et(e,t)},addIssue:{value:t=>{e.issues.push(t),e.message=JSON.stringify(e.issues,re,2)}},addIssues:{value:t=>{e.issues.push(...t),e.message=JSON.stringify(e.issues,re,2)}},isEmpty:{get(){return e.issues.length===0}}})},_l=i(`ZodError`,gl),A=i(`ZodError`,gl,{Parent:Error}),vl=at(A),yl=st(A),bl=lt(A),xl=dt(A),Sl=pt(A),Cl=ht(A),wl=_t(A),Tl=yt(A),El=xt(A),Dl=Ct(A),Ol=Tt(A),kl=Dt(A),j=i(`ZodType`,(e,t)=>(C.init(e,t),e.def=t,e.type=t.type,Object.defineProperty(e,`_def`,{value:t}),e.check=(...n)=>e.clone(de(t,{checks:[...t.checks??[],...n.map(e=>typeof e==`function`?{_zod:{check:e,def:{check:`custom`},onattach:[]}}:e)]})),e.clone=(t,n)=>g(e,t,n),e.brand=()=>e,e.register=((t,n)=>(t.add(e,n),e)),e.parse=(t,n)=>vl(e,t,n,{callee:e.parse}),e.safeParse=(t,n)=>bl(e,t,n),e.parseAsync=async(t,n)=>yl(e,t,n,{callee:e.parseAsync}),e.safeParseAsync=async(t,n)=>xl(e,t,n),e.spa=e.safeParseAsync,e.encode=(t,n)=>Sl(e,t,n),e.decode=(t,n)=>Cl(e,t,n),e.encodeAsync=async(t,n)=>wl(e,t,n),e.decodeAsync=async(t,n)=>Tl(e,t,n),e.safeEncode=(t,n)=>El(e,t,n),e.safeDecode=(t,n)=>Dl(e,t,n),e.safeEncodeAsync=async(t,n)=>Ol(e,t,n),e.safeDecodeAsync=async(t,n)=>kl(e,t,n),e.refine=(t,n)=>e.check(rf(t,n)),e.superRefine=t=>e.check(af(t)),e.overwrite=t=>e.check(O(t)),e.optional=()=>G(e),e.nullable=()=>Ed(e),e.nullish=()=>G(Ed(e)),e.nonoptional=t=>Nd(e,t),e.array=()=>R(e),e.or=t=>V([e,t]),e.and=t=>cd(e,t),e.transform=t=>Vd(e,Cd(t)),e.default=t=>kd(e,t),e.prefault=t=>jd(e,t),e.catch=t=>Ld(e,t),e.pipe=t=>Vd(e,t),e.readonly=()=>Gd(e),e.describe=t=>{let n=e.clone();return T.add(n,{description:t}),n},Object.defineProperty(e,`description`,{get(){return T.get(e)?.description},configurable:!0}),e.meta=(...t)=>{if(t.length===0)return T.get(e);let n=e.clone();return T.add(n,t[0]),n},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e)),Al=i(`_ZodString`,(e,t)=>{dr.init(e,t),j.init(e,t);let n=e._zod.bag;e.format=n.format??null,e.minLength=n.minimum??null,e.maxLength=n.maximum??null,e.regex=(...t)=>e.check(cc(...t)),e.includes=(...t)=>e.check(dc(...t)),e.startsWith=(...t)=>e.check(fc(...t)),e.endsWith=(...t)=>e.check(pc(...t)),e.min=(...t)=>e.check(oc(...t)),e.max=(...t)=>e.check(ac(...t)),e.length=(...t)=>e.check(sc(...t)),e.nonempty=(...t)=>e.check(oc(1,...t)),e.lowercase=t=>e.check(lc(t)),e.uppercase=t=>e.check(uc(t)),e.trim=()=>e.check(_c()),e.normalize=(...t)=>e.check(gc(...t)),e.toLowerCase=()=>e.check(vc()),e.toUpperCase=()=>e.check(yc()),e.slugify=()=>e.check(bc())}),jl=i(`ZodString`,(e,t)=>{dr.init(e,t),Al.init(e,t),e.email=t=>e.check(Qo(Ml,t)),e.url=t=>e.check(is(Bl,t)),e.jwt=t=>e.check(bs(yu,t)),e.emoji=t=>e.check(as(Ul,t)),e.guid=t=>e.check($o(Pl,t)),e.uuid=t=>e.check(es(P,t)),e.uuidv4=t=>e.check(ts(P,t)),e.uuidv6=t=>e.check(ns(P,t)),e.uuidv7=t=>e.check(rs(P,t)),e.nanoid=t=>e.check(os(Gl,t)),e.guid=t=>e.check($o(Pl,t)),e.cuid=t=>e.check(ss(ql,t)),e.cuid2=t=>e.check(cs(Yl,t)),e.ulid=t=>e.check(ls(Zl,t)),e.base64=t=>e.check(_s(pu,t)),e.base64url=t=>e.check(vs(hu,t)),e.xid=t=>e.check(us($l,t)),e.ksuid=t=>e.check(ds(tu,t)),e.ipv4=t=>e.check(fs(ru,t)),e.ipv6=t=>e.check(ps(su,t)),e.cidrv4=t=>e.check(hs(lu,t)),e.cidrv6=t=>e.check(gs(du,t)),e.e164=t=>e.check(ys(_u,t)),e.datetime=t=>e.check(ll(t)),e.date=t=>e.check(dl(t)),e.time=t=>e.check(pl(t)),e.duration=t=>e.check(hl(t))});function M(e){return Xo(jl,e)}var N=i(`ZodStringFormat`,(e,t)=>{w.init(e,t),Al.init(e,t)}),Ml=i(`ZodEmail`,(e,t)=>{mr.init(e,t),N.init(e,t)});function Nl(e){return Qo(Ml,e)}var Pl=i(`ZodGUID`,(e,t)=>{fr.init(e,t),N.init(e,t)});function Fl(e){return $o(Pl,e)}var P=i(`ZodUUID`,(e,t)=>{pr.init(e,t),N.init(e,t)});function Il(e){return es(P,e)}function Ll(e){return ts(P,e)}function Rl(e){return ns(P,e)}function zl(e){return rs(P,e)}var Bl=i(`ZodURL`,(e,t)=>{hr.init(e,t),N.init(e,t)});function Vl(e){return is(Bl,e)}function Hl(e){return is(Bl,{protocol:/^https?$/,hostname:on,..._(e)})}var Ul=i(`ZodEmoji`,(e,t)=>{gr.init(e,t),N.init(e,t)});function Wl(e){return as(Ul,e)}var Gl=i(`ZodNanoID`,(e,t)=>{_r.init(e,t),N.init(e,t)});function Kl(e){return os(Gl,e)}var ql=i(`ZodCUID`,(e,t)=>{vr.init(e,t),N.init(e,t)});function Jl(e){return ss(ql,e)}var Yl=i(`ZodCUID2`,(e,t)=>{yr.init(e,t),N.init(e,t)});function Xl(e){return cs(Yl,e)}var Zl=i(`ZodULID`,(e,t)=>{br.init(e,t),N.init(e,t)});function Ql(e){return ls(Zl,e)}var $l=i(`ZodXID`,(e,t)=>{xr.init(e,t),N.init(e,t)});function eu(e){return us($l,e)}var tu=i(`ZodKSUID`,(e,t)=>{Sr.init(e,t),N.init(e,t)});function nu(e){return ds(tu,e)}var ru=i(`ZodIPv4`,(e,t)=>{Dr.init(e,t),N.init(e,t)});function iu(e){return fs(ru,e)}var au=i(`ZodMAC`,(e,t)=>{kr.init(e,t),N.init(e,t)});function ou(e){return ms(au,e)}var su=i(`ZodIPv6`,(e,t)=>{Or.init(e,t),N.init(e,t)});function cu(e){return ps(su,e)}var lu=i(`ZodCIDRv4`,(e,t)=>{Ar.init(e,t),N.init(e,t)});function uu(e){return hs(lu,e)}var du=i(`ZodCIDRv6`,(e,t)=>{jr.init(e,t),N.init(e,t)});function fu(e){return gs(du,e)}var pu=i(`ZodBase64`,(e,t)=>{Nr.init(e,t),N.init(e,t)});function mu(e){return _s(pu,e)}var hu=i(`ZodBase64URL`,(e,t)=>{Fr.init(e,t),N.init(e,t)});function gu(e){return vs(hu,e)}var _u=i(`ZodE164`,(e,t)=>{Ir.init(e,t),N.init(e,t)});function vu(e){return ys(_u,e)}var yu=i(`ZodJWT`,(e,t)=>{Rr.init(e,t),N.init(e,t)});function bu(e){return bs(yu,e)}var xu=i(`ZodCustomStringFormat`,(e,t)=>{zr.init(e,t),N.init(e,t)});function Su(e,t,n={}){return Qc(xu,e,t,n)}function Cu(e){return Qc(xu,`hostname`,an,e)}function wu(e){return Qc(xu,`hex`,Sn,e)}function Tu(e,t){let n=`${e}_${t?.enc??`hex`}`,r=kt[n];if(!r)throw Error(`Unrecognized hash format: ${n}`);return Qc(xu,n,r,t)}var Eu=i(`ZodNumber`,(e,t)=>{Br.init(e,t),j.init(e,t),e.gt=(t,n)=>e.check(Xs(t,n)),e.gte=(t,n)=>e.check(D(t,n)),e.min=(t,n)=>e.check(D(t,n)),e.lt=(t,n)=>e.check(Ys(t,n)),e.lte=(t,n)=>e.check(E(t,n)),e.max=(t,n)=>e.check(E(t,n)),e.int=t=>e.check(Ou(t)),e.safe=t=>e.check(Ou(t)),e.positive=t=>e.check(Xs(0,t)),e.nonnegative=t=>e.check(D(0,t)),e.negative=t=>e.check(Ys(0,t)),e.nonpositive=t=>e.check(E(0,t)),e.multipleOf=(t,n)=>e.check(tc(t,n)),e.step=(t,n)=>e.check(tc(t,n)),e.finite=()=>e;let n=e._zod.bag;e.minValue=Math.max(n.minimum??-1/0,n.exclusiveMinimum??-1/0)??null,e.maxValue=Math.min(n.maximum??1/0,n.exclusiveMaximum??1/0)??null,e.isInt=(n.format??``).includes(`int`)||Number.isSafeInteger(n.multipleOf??.5),e.isFinite=!0,e.format=n.format??null});function F(e){return Es(Eu,e)}var Du=i(`ZodNumberFormat`,(e,t)=>{Vr.init(e,t),Eu.init(e,t)});function Ou(e){return Os(Du,e)}function ku(e){return ks(Du,e)}function Au(e){return As(Du,e)}function ju(e){return js(Du,e)}function Mu(e){return Ms(Du,e)}var Nu=i(`ZodBoolean`,(e,t)=>{Hr.init(e,t),j.init(e,t)});function I(e){return Ns(Nu,e)}var Pu=i(`ZodBigInt`,(e,t)=>{Ur.init(e,t),j.init(e,t),e.gte=(t,n)=>e.check(D(t,n)),e.min=(t,n)=>e.check(D(t,n)),e.gt=(t,n)=>e.check(Xs(t,n)),e.gte=(t,n)=>e.check(D(t,n)),e.min=(t,n)=>e.check(D(t,n)),e.lt=(t,n)=>e.check(Ys(t,n)),e.lte=(t,n)=>e.check(E(t,n)),e.max=(t,n)=>e.check(E(t,n)),e.positive=t=>e.check(Xs(BigInt(0),t)),e.negative=t=>e.check(Ys(BigInt(0),t)),e.nonpositive=t=>e.check(E(BigInt(0),t)),e.nonnegative=t=>e.check(D(BigInt(0),t)),e.multipleOf=(t,n)=>e.check(tc(t,n));let n=e._zod.bag;e.minValue=n.minimum??null,e.maxValue=n.maximum??null,e.format=n.format??null});function Fu(e){return Fs(Pu,e)}var Iu=i(`ZodBigIntFormat`,(e,t)=>{Wr.init(e,t),Pu.init(e,t)});function Lu(e){return Ls(Iu,e)}function Ru(e){return Rs(Iu,e)}var zu=i(`ZodSymbol`,(e,t)=>{Gr.init(e,t),j.init(e,t)});function Bu(e){return zs(zu,e)}var Vu=i(`ZodUndefined`,(e,t)=>{Kr.init(e,t),j.init(e,t)});function Hu(e){return Bs(Vu,e)}var Uu=i(`ZodNull`,(e,t)=>{qr.init(e,t),j.init(e,t)});function Wu(e){return Vs(Uu,e)}var Gu=i(`ZodAny`,(e,t)=>{Jr.init(e,t),j.init(e,t)});function Ku(){return Hs(Gu)}var qu=i(`ZodUnknown`,(e,t)=>{Yr.init(e,t),j.init(e,t)});function L(){return Us(qu)}var Ju=i(`ZodNever`,(e,t)=>{Xr.init(e,t),j.init(e,t)});function Yu(e){return Ws(Ju,e)}var Xu=i(`ZodVoid`,(e,t)=>{Zr.init(e,t),j.init(e,t)});function Zu(e){return Gs(Xu,e)}var Qu=i(`ZodDate`,(e,t)=>{Qr.init(e,t),j.init(e,t),e.min=(t,n)=>e.check(D(t,n)),e.max=(t,n)=>e.check(E(t,n));let n=e._zod.bag;e.minDate=n.minimum?new Date(n.minimum):null,e.maxDate=n.maximum?new Date(n.maximum):null});function $u(e){return Ks(Qu,e)}var ed=i(`ZodArray`,(e,t)=>{ei.init(e,t),j.init(e,t),e.element=t.element,e.min=(t,n)=>e.check(oc(t,n)),e.nonempty=t=>e.check(oc(1,t)),e.max=(t,n)=>e.check(ac(t,n)),e.length=(t,n)=>e.check(sc(t,n)),e.unwrap=()=>e.element});function R(e,t){return xc(ed,e,t)}function td(e){let t=e._zod.def.shape;return U(Object.keys(t))}var nd=i(`ZodObject`,(e,t)=>{ai.init(e,t),j.init(e,t),h(e,`shape`,()=>t.shape),e.keyof=()=>U(Object.keys(e._zod.def.shape)),e.catchall=t=>e.clone({...e._zod.def,catchall:t}),e.passthrough=()=>e.clone({...e._zod.def,catchall:L()}),e.loose=()=>e.clone({...e._zod.def,catchall:L()}),e.strict=()=>e.clone({...e._zod.def,catchall:Yu()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=t=>Pe(e,t),e.safeExtend=t=>Fe(e,t),e.merge=t=>Ie(e,t),e.pick=t=>Me(e,t),e.omit=t=>Ne(e,t),e.partial=(...t)=>Le(wd,e,t[0]),e.required=(...t)=>Re(Md,e,t[0])});function z(e,t){return new nd({type:`object`,shape:e??{},..._(t)})}function rd(e,t){return new nd({type:`object`,shape:e,catchall:Yu(),..._(t)})}function B(e,t){return new nd({type:`object`,shape:e,catchall:L(),..._(t)})}var id=i(`ZodUnion`,(e,t)=>{si.init(e,t),j.init(e,t),e.options=t.options});function V(e,t){return new id({type:`union`,options:e,..._(t)})}var ad=i(`ZodDiscriminatedUnion`,(e,t)=>{id.init(e,t),ci.init(e,t)});function od(e,t,n){return new ad({type:`union`,options:t,discriminator:e,..._(n)})}var sd=i(`ZodIntersection`,(e,t)=>{li.init(e,t),j.init(e,t)});function cd(e,t){return new sd({type:`intersection`,left:e,right:t})}var ld=i(`ZodTuple`,(e,t)=>{fi.init(e,t),j.init(e,t),e.rest=t=>e.clone({...e._zod.def,rest:t})});function ud(e,t,n){let r=t instanceof C;return new ld({type:`tuple`,items:e,rest:r?t:null,..._(r?n:t)})}var dd=i(`ZodRecord`,(e,t)=>{mi.init(e,t),j.init(e,t),e.keyType=t.keyType,e.valueType=t.valueType});function H(e,t,n){return new dd({type:`record`,keyType:e,valueType:t,..._(n)})}function fd(e,t,n){let r=g(e);return r._zod.values=void 0,new dd({type:`record`,keyType:r,valueType:t,..._(n)})}var pd=i(`ZodMap`,(e,t)=>{hi.init(e,t),j.init(e,t),e.keyType=t.keyType,e.valueType=t.valueType});function md(e,t,n){return new pd({type:`map`,keyType:e,valueType:t,..._(n)})}var hd=i(`ZodSet`,(e,t)=>{_i.init(e,t),j.init(e,t),e.min=(...t)=>e.check(rc(...t)),e.nonempty=t=>e.check(rc(1,t)),e.max=(...t)=>e.check(nc(...t)),e.size=(...t)=>e.check(ic(...t))});function gd(e,t){return new hd({type:`set`,valueType:e,..._(t)})}var _d=i(`ZodEnum`,(e,t)=>{yi.init(e,t),j.init(e,t),e.enum=t.entries,e.options=Object.values(t.entries);let n=new Set(Object.keys(t.entries));e.extract=(e,r)=>{let i={};for(let r of e)if(n.has(r))i[r]=t.entries[r];else throw Error(`Key ${r} not found in enum`);return new _d({...t,checks:[],..._(r),entries:i})},e.exclude=(e,r)=>{let i={...t.entries};for(let t of e)if(n.has(t))delete i[t];else throw Error(`Key ${t} not found in enum`);return new _d({...t,checks:[],..._(r),entries:i})}});function U(e,t){return new _d({type:`enum`,entries:Array.isArray(e)?Object.fromEntries(e.map(e=>[e,e])):e,..._(t)})}function vd(e,t){return new _d({type:`enum`,entries:e,..._(t)})}var yd=i(`ZodLiteral`,(e,t)=>{bi.init(e,t),j.init(e,t),e.values=new Set(t.values),Object.defineProperty(e,`value`,{get(){if(t.values.length>1)throw Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});function W(e,t){return new yd({type:`literal`,values:Array.isArray(e)?e:[e],..._(t)})}var bd=i(`ZodFile`,(e,t)=>{xi.init(e,t),j.init(e,t),e.min=(t,n)=>e.check(rc(t,n)),e.max=(t,n)=>e.check(nc(t,n)),e.mime=(t,n)=>e.check(hc(Array.isArray(t)?t:[t],n))});function xd(e){return Mc(bd,e)}var Sd=i(`ZodTransform`,(e,t)=>{Si.init(e,t),j.init(e,t),e._zod.parse=(n,r)=>{if(r.direction===`backward`)throw new s(e.constructor.name);n.addIssue=r=>{if(typeof r==`string`)n.issues.push(Ue(r,n.value,t));else{let t=r;t.fatal&&(t.continue=!1),t.code??=`custom`,t.input??=n.value,t.inst??=e,n.issues.push(Ue(t))}};let i=t.transform(n.value,n);return i instanceof Promise?i.then(e=>(n.value=e,n)):(n.value=i,n)}});function Cd(e){return new Sd({type:`transform`,transform:e})}var wd=i(`ZodOptional`,(e,t)=>{wi.init(e,t),j.init(e,t),e.unwrap=()=>e._zod.def.innerType});function G(e){return new wd({type:`optional`,innerType:e})}var Td=i(`ZodNullable`,(e,t)=>{Ti.init(e,t),j.init(e,t),e.unwrap=()=>e._zod.def.innerType});function Ed(e){return new Td({type:`nullable`,innerType:e})}function Dd(e){return G(Ed(e))}var Od=i(`ZodDefault`,(e,t)=>{Ei.init(e,t),j.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function kd(e,t){return new Od({type:`default`,innerType:e,get defaultValue(){return typeof t==`function`?t():Se(t)}})}var Ad=i(`ZodPrefault`,(e,t)=>{Oi.init(e,t),j.init(e,t),e.unwrap=()=>e._zod.def.innerType});function jd(e,t){return new Ad({type:`prefault`,innerType:e,get defaultValue(){return typeof t==`function`?t():Se(t)}})}var Md=i(`ZodNonOptional`,(e,t)=>{ki.init(e,t),j.init(e,t),e.unwrap=()=>e._zod.def.innerType});function Nd(e,t){return new Md({type:`nonoptional`,innerType:e,..._(t)})}var Pd=i(`ZodSuccess`,(e,t)=>{ji.init(e,t),j.init(e,t),e.unwrap=()=>e._zod.def.innerType});function Fd(e){return new Pd({type:`success`,innerType:e})}var Id=i(`ZodCatch`,(e,t)=>{Mi.init(e,t),j.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function Ld(e,t){return new Id({type:`catch`,innerType:e,catchValue:typeof t==`function`?t:()=>t})}var Rd=i(`ZodNaN`,(e,t)=>{Ni.init(e,t),j.init(e,t)});function zd(e){return Js(Rd,e)}var Bd=i(`ZodPipe`,(e,t)=>{Pi.init(e,t),j.init(e,t),e.in=t.in,e.out=t.out});function Vd(e,t){return new Bd({type:`pipe`,in:e,out:t})}var Hd=i(`ZodCodec`,(e,t)=>{Bd.init(e,t),Ii.init(e,t)});function Ud(e,t,n){return new Hd({type:`pipe`,in:e,out:t,transform:n.decode,reverseTransform:n.encode})}var Wd=i(`ZodReadonly`,(e,t)=>{zi.init(e,t),j.init(e,t),e.unwrap=()=>e._zod.def.innerType});function Gd(e){return new Wd({type:`readonly`,innerType:e})}var Kd=i(`ZodTemplateLiteral`,(e,t)=>{Vi.init(e,t),j.init(e,t)});function qd(e,t){return new Kd({type:`template_literal`,parts:e,..._(t)})}var Jd=i(`ZodLazy`,(e,t)=>{Wi.init(e,t),j.init(e,t),e.unwrap=()=>e._zod.def.getter()});function Yd(e){return new Jd({type:`lazy`,getter:e})}var Xd=i(`ZodPromise`,(e,t)=>{Ui.init(e,t),j.init(e,t),e.unwrap=()=>e._zod.def.innerType});function Zd(e){return new Xd({type:`promise`,innerType:e})}var Qd=i(`ZodFunction`,(e,t)=>{Hi.init(e,t),j.init(e,t)});function $d(e){return new Qd({type:`function`,input:Array.isArray(e?.input)?ud(e?.input):e?.input??R(L()),output:e?.output??L()})}var ef=i(`ZodCustom`,(e,t)=>{Gi.init(e,t),j.init(e,t)});function tf(e){let t=new S({check:`custom`});return t._zod.check=e,t}function nf(e,t){return Gc(ef,e??(()=>!0),t)}function rf(e,t={}){return Kc(ef,e,t)}function af(e){return qc(e)}var of=Yc,sf=Xc;function cf(e,t={error:`Input not instance of ${e.name}`}){let n=new ef({type:`custom`,check:`custom`,fn:t=>t instanceof e,abort:!0,..._(t)});return n._zod.bag.Class=e,n}var lf=(...e)=>Zc({Codec:Hd,Boolean:Nu,String:jl},...e);function uf(e){let t=Yd(()=>V([M(e),F(),I(),Wu(),R(t),H(M(),t)]));return t}function df(e,t){return Vd(Cd(e),t)}var ff={invalid_type:`invalid_type`,too_big:`too_big`,too_small:`too_small`,invalid_format:`invalid_format`,not_multiple_of:`not_multiple_of`,unrecognized_keys:`unrecognized_keys`,invalid_union:`invalid_union`,invalid_key:`invalid_key`,invalid_element:`invalid_element`,invalid_value:`invalid_value`,custom:`custom`};function pf(e){l({customError:e})}function mf(){return l().customError}var hf;(function(e){})(hf||={});var gf=t({bigint:()=>bf,boolean:()=>yf,date:()=>xf,number:()=>vf,string:()=>_f});function _f(e){return Zo(jl,e)}function vf(e){return Ds(Eu,e)}function yf(e){return Ps(Nu,e)}function bf(e){return Is(Pu,e)}function xf(e){return qs(Qu,e)}var Sf=t({$brand:()=>a,$input:()=>qo,$output:()=>Ko,NEVER:()=>r,TimePrecision:()=>xs,ZodAny:()=>Gu,ZodArray:()=>ed,ZodBase64:()=>pu,ZodBase64URL:()=>hu,ZodBigInt:()=>Pu,ZodBigIntFormat:()=>Iu,ZodBoolean:()=>Nu,ZodCIDRv4:()=>lu,ZodCIDRv6:()=>du,ZodCUID:()=>ql,ZodCUID2:()=>Yl,ZodCatch:()=>Id,ZodCodec:()=>Hd,ZodCustom:()=>ef,ZodCustomStringFormat:()=>xu,ZodDate:()=>Qu,ZodDefault:()=>Od,ZodDiscriminatedUnion:()=>ad,ZodE164:()=>_u,ZodEmail:()=>Ml,ZodEmoji:()=>Ul,ZodEnum:()=>_d,ZodError:()=>_l,ZodFile:()=>bd,ZodFirstPartyTypeKind:()=>hf,ZodFunction:()=>Qd,ZodGUID:()=>Pl,ZodIPv4:()=>ru,ZodIPv6:()=>su,ZodISODate:()=>ul,ZodISODateTime:()=>cl,ZodISODuration:()=>ml,ZodISOTime:()=>fl,ZodIntersection:()=>sd,ZodIssueCode:()=>ff,ZodJWT:()=>yu,ZodKSUID:()=>tu,ZodLazy:()=>Jd,ZodLiteral:()=>yd,ZodMAC:()=>au,ZodMap:()=>pd,ZodNaN:()=>Rd,ZodNanoID:()=>Gl,ZodNever:()=>Ju,ZodNonOptional:()=>Md,ZodNull:()=>Uu,ZodNullable:()=>Td,ZodNumber:()=>Eu,ZodNumberFormat:()=>Du,ZodObject:()=>nd,ZodOptional:()=>wd,ZodPipe:()=>Bd,ZodPrefault:()=>Ad,ZodPromise:()=>Xd,ZodReadonly:()=>Wd,ZodRealError:()=>A,ZodRecord:()=>dd,ZodSet:()=>hd,ZodString:()=>jl,ZodStringFormat:()=>N,ZodSuccess:()=>Pd,ZodSymbol:()=>zu,ZodTemplateLiteral:()=>Kd,ZodTransform:()=>Sd,ZodTuple:()=>ld,ZodType:()=>j,ZodULID:()=>Zl,ZodURL:()=>Bl,ZodUUID:()=>P,ZodUndefined:()=>Vu,ZodUnion:()=>id,ZodUnknown:()=>qu,ZodVoid:()=>Xu,ZodXID:()=>$l,_ZodString:()=>Al,_default:()=>kd,_function:()=>$d,any:()=>Ku,array:()=>R,base64:()=>mu,base64url:()=>gu,bigint:()=>Fu,boolean:()=>I,catch:()=>Ld,check:()=>tf,cidrv4:()=>uu,cidrv6:()=>fu,clone:()=>g,codec:()=>Ud,coerce:()=>gf,config:()=>l,core:()=>nl,cuid:()=>Jl,cuid2:()=>Xl,custom:()=>nf,date:()=>$u,decode:()=>Cl,decodeAsync:()=>Tl,describe:()=>of,discriminatedUnion:()=>od,e164:()=>vu,email:()=>Nl,emoji:()=>Wl,encode:()=>Sl,encodeAsync:()=>wl,endsWith:()=>pc,enum:()=>U,file:()=>xd,flattenError:()=>et,float32:()=>ku,float64:()=>Au,formatError:()=>tt,function:()=>$d,getErrorMap:()=>mf,globalRegistry:()=>T,gt:()=>Xs,gte:()=>D,guid:()=>Fl,hash:()=>Tu,hex:()=>wu,hostname:()=>Cu,httpUrl:()=>Hl,includes:()=>dc,instanceof:()=>cf,int:()=>Ou,int32:()=>ju,int64:()=>Lu,intersection:()=>cd,ipv4:()=>iu,ipv6:()=>cu,iso:()=>sl,json:()=>uf,jwt:()=>bu,keyof:()=>td,ksuid:()=>nu,lazy:()=>Yd,length:()=>sc,literal:()=>W,locales:()=>Wo,looseObject:()=>B,lowercase:()=>lc,lt:()=>Ys,lte:()=>E,mac:()=>ou,map:()=>md,maxLength:()=>ac,maxSize:()=>nc,meta:()=>sf,mime:()=>hc,minLength:()=>oc,minSize:()=>rc,multipleOf:()=>tc,nan:()=>zd,nanoid:()=>Kl,nativeEnum:()=>vd,negative:()=>Qs,never:()=>Yu,nonnegative:()=>ec,nonoptional:()=>Nd,nonpositive:()=>$s,normalize:()=>gc,null:()=>Wu,nullable:()=>Ed,nullish:()=>Dd,number:()=>F,object:()=>z,optional:()=>G,overwrite:()=>O,parse:()=>vl,parseAsync:()=>yl,partialRecord:()=>fd,pipe:()=>Vd,positive:()=>Zs,prefault:()=>jd,preprocess:()=>df,prettifyError:()=>it,promise:()=>Zd,property:()=>mc,readonly:()=>Gd,record:()=>H,refine:()=>rf,regex:()=>cc,regexes:()=>kt,registry:()=>Yo,safeDecode:()=>Dl,safeDecodeAsync:()=>kl,safeEncode:()=>El,safeEncodeAsync:()=>Ol,safeParse:()=>bl,safeParseAsync:()=>xl,set:()=>gd,setErrorMap:()=>pf,size:()=>ic,slugify:()=>bc,startsWith:()=>fc,strictObject:()=>rd,string:()=>M,stringFormat:()=>Su,stringbool:()=>lf,success:()=>Fd,superRefine:()=>af,symbol:()=>Bu,templateLiteral:()=>qd,toJSONSchema:()=>el,toLowerCase:()=>vc,toUpperCase:()=>yc,transform:()=>Cd,treeifyError:()=>nt,trim:()=>_c,tuple:()=>ud,uint32:()=>Mu,uint64:()=>Ru,ulid:()=>Ql,undefined:()=>Hu,union:()=>V,unknown:()=>L,uppercase:()=>uc,url:()=>Vl,util:()=>u,uuid:()=>Il,uuidv4:()=>Ll,uuidv6:()=>Rl,uuidv7:()=>zl,void:()=>Zu,xid:()=>eu});l(pa());var Cf=t({$brand:()=>a,$input:()=>qo,$output:()=>Ko,NEVER:()=>r,TimePrecision:()=>xs,ZodAny:()=>Gu,ZodArray:()=>ed,ZodBase64:()=>pu,ZodBase64URL:()=>hu,ZodBigInt:()=>Pu,ZodBigIntFormat:()=>Iu,ZodBoolean:()=>Nu,ZodCIDRv4:()=>lu,ZodCIDRv6:()=>du,ZodCUID:()=>ql,ZodCUID2:()=>Yl,ZodCatch:()=>Id,ZodCodec:()=>Hd,ZodCustom:()=>ef,ZodCustomStringFormat:()=>xu,ZodDate:()=>Qu,ZodDefault:()=>Od,ZodDiscriminatedUnion:()=>ad,ZodE164:()=>_u,ZodEmail:()=>Ml,ZodEmoji:()=>Ul,ZodEnum:()=>_d,ZodError:()=>_l,ZodFile:()=>bd,ZodFirstPartyTypeKind:()=>hf,ZodFunction:()=>Qd,ZodGUID:()=>Pl,ZodIPv4:()=>ru,ZodIPv6:()=>su,ZodISODate:()=>ul,ZodISODateTime:()=>cl,ZodISODuration:()=>ml,ZodISOTime:()=>fl,ZodIntersection:()=>sd,ZodIssueCode:()=>ff,ZodJWT:()=>yu,ZodKSUID:()=>tu,ZodLazy:()=>Jd,ZodLiteral:()=>yd,ZodMAC:()=>au,ZodMap:()=>pd,ZodNaN:()=>Rd,ZodNanoID:()=>Gl,ZodNever:()=>Ju,ZodNonOptional:()=>Md,ZodNull:()=>Uu,ZodNullable:()=>Td,ZodNumber:()=>Eu,ZodNumberFormat:()=>Du,ZodObject:()=>nd,ZodOptional:()=>wd,ZodPipe:()=>Bd,ZodPrefault:()=>Ad,ZodPromise:()=>Xd,ZodReadonly:()=>Wd,ZodRealError:()=>A,ZodRecord:()=>dd,ZodSet:()=>hd,ZodString:()=>jl,ZodStringFormat:()=>N,ZodSuccess:()=>Pd,ZodSymbol:()=>zu,ZodTemplateLiteral:()=>Kd,ZodTransform:()=>Sd,ZodTuple:()=>ld,ZodType:()=>j,ZodULID:()=>Zl,ZodURL:()=>Bl,ZodUUID:()=>P,ZodUndefined:()=>Vu,ZodUnion:()=>id,ZodUnknown:()=>qu,ZodVoid:()=>Xu,ZodXID:()=>$l,_ZodString:()=>Al,_default:()=>kd,_function:()=>$d,any:()=>Ku,array:()=>R,base64:()=>mu,base64url:()=>gu,bigint:()=>Fu,boolean:()=>I,catch:()=>Ld,check:()=>tf,cidrv4:()=>uu,cidrv6:()=>fu,clone:()=>g,codec:()=>Ud,coerce:()=>gf,config:()=>l,core:()=>nl,cuid:()=>Jl,cuid2:()=>Xl,custom:()=>nf,date:()=>$u,decode:()=>Cl,decodeAsync:()=>Tl,describe:()=>of,discriminatedUnion:()=>od,e164:()=>vu,email:()=>Nl,emoji:()=>Wl,encode:()=>Sl,encodeAsync:()=>wl,endsWith:()=>pc,enum:()=>U,file:()=>xd,flattenError:()=>et,float32:()=>ku,float64:()=>Au,formatError:()=>tt,function:()=>$d,getErrorMap:()=>mf,globalRegistry:()=>T,gt:()=>Xs,gte:()=>D,guid:()=>Fl,hash:()=>Tu,hex:()=>wu,hostname:()=>Cu,httpUrl:()=>Hl,includes:()=>dc,instanceof:()=>cf,int:()=>Ou,int32:()=>ju,int64:()=>Lu,intersection:()=>cd,ipv4:()=>iu,ipv6:()=>cu,iso:()=>sl,json:()=>uf,jwt:()=>bu,keyof:()=>td,ksuid:()=>nu,lazy:()=>Yd,length:()=>sc,literal:()=>W,locales:()=>Wo,looseObject:()=>B,lowercase:()=>lc,lt:()=>Ys,lte:()=>E,mac:()=>ou,map:()=>md,maxLength:()=>ac,maxSize:()=>nc,meta:()=>sf,mime:()=>hc,minLength:()=>oc,minSize:()=>rc,multipleOf:()=>tc,nan:()=>zd,nanoid:()=>Kl,nativeEnum:()=>vd,negative:()=>Qs,never:()=>Yu,nonnegative:()=>ec,nonoptional:()=>Nd,nonpositive:()=>$s,normalize:()=>gc,null:()=>Wu,nullable:()=>Ed,nullish:()=>Dd,number:()=>F,object:()=>z,optional:()=>G,overwrite:()=>O,parse:()=>vl,parseAsync:()=>yl,partialRecord:()=>fd,pipe:()=>Vd,positive:()=>Zs,prefault:()=>jd,preprocess:()=>df,prettifyError:()=>it,promise:()=>Zd,property:()=>mc,readonly:()=>Gd,record:()=>H,refine:()=>rf,regex:()=>cc,regexes:()=>kt,registry:()=>Yo,safeDecode:()=>Dl,safeDecodeAsync:()=>kl,safeEncode:()=>El,safeEncodeAsync:()=>Ol,safeParse:()=>bl,safeParseAsync:()=>xl,set:()=>gd,setErrorMap:()=>pf,size:()=>ic,slugify:()=>bc,startsWith:()=>fc,strictObject:()=>rd,string:()=>M,stringFormat:()=>Su,stringbool:()=>lf,success:()=>Fd,superRefine:()=>af,symbol:()=>Bu,templateLiteral:()=>qd,toJSONSchema:()=>el,toLowerCase:()=>vc,toUpperCase:()=>yc,transform:()=>Cd,treeifyError:()=>nt,trim:()=>_c,tuple:()=>ud,uint32:()=>Mu,uint64:()=>Ru,ulid:()=>Ql,undefined:()=>Hu,union:()=>V,unknown:()=>L,uppercase:()=>uc,url:()=>Vl,util:()=>u,uuid:()=>Il,uuidv4:()=>Ll,uuidv6:()=>Rl,uuidv7:()=>zl,void:()=>Zu,xid:()=>eu,z:()=>Sf}),wf=`io.modelcontextprotocol/related-task`,K=nf(e=>e!==null&&(typeof e==`object`||typeof e==`function`)),Tf=V([M(),F().int()]),Ef=M();B({ttl:F().optional(),pollInterval:F().optional()});var Df=z({ttl:F().optional()}),Of=z({taskId:M()}),kf=B({progressToken:Tf.optional(),[wf]:Of.optional()}),q=z({_meta:kf.optional()}),Af=q.extend({task:Df.optional()}),jf=e=>Af.safeParse(e).success,J=z({method:M(),params:q.loose().optional()}),Y=z({_meta:kf.optional()}),X=z({method:M(),params:Y.loose().optional()}),Z=B({_meta:kf.optional()}),Mf=V([M(),F().int()]),Nf=z({jsonrpc:W(`2.0`),id:Mf,...J.shape}).strict(),Pf=e=>Nf.safeParse(e).success,Ff=z({jsonrpc:W(`2.0`),...X.shape}).strict(),If=e=>Ff.safeParse(e).success,Lf=z({jsonrpc:W(`2.0`),id:Mf,result:Z}).strict(),Rf=e=>Lf.safeParse(e).success,Q;(function(e){e[e.ConnectionClosed=-32e3]=`ConnectionClosed`,e[e.RequestTimeout=-32001]=`RequestTimeout`,e[e.ParseError=-32700]=`ParseError`,e[e.InvalidRequest=-32600]=`InvalidRequest`,e[e.MethodNotFound=-32601]=`MethodNotFound`,e[e.InvalidParams=-32602]=`InvalidParams`,e[e.InternalError=-32603]=`InternalError`,e[e.UrlElicitationRequired=-32042]=`UrlElicitationRequired`})(Q||={});var zf=z({jsonrpc:W(`2.0`),id:Mf.optional(),error:z({code:F().int(),message:M(),data:L().optional()})}).strict(),Bf=e=>zf.safeParse(e).success,Vf=V([Nf,Ff,Lf,zf]);V([Lf,zf]);var Hf=Z.strict(),Uf=Y.extend({requestId:Mf.optional(),reason:M().optional()}),Wf=X.extend({method:W(`notifications/cancelled`),params:Uf}),Gf=z({icons:R(z({src:M(),mimeType:M().optional(),sizes:R(M()).optional(),theme:U([`light`,`dark`]).optional()})).optional()}),Kf=z({name:M(),title:M().optional()}),qf=Kf.extend({...Kf.shape,...Gf.shape,version:M(),websiteUrl:M().optional(),description:M().optional()}),Jf=df(e=>e&&typeof e==`object`&&!Array.isArray(e)&&Object.keys(e).length===0?{form:{}}:e,cd(z({form:cd(z({applyDefaults:I().optional()}),H(M(),L())).optional(),url:K.optional()}),H(M(),L()).optional())),Yf=B({list:K.optional(),cancel:K.optional(),requests:B({sampling:B({createMessage:K.optional()}).optional(),elicitation:B({create:K.optional()}).optional()}).optional()}),Xf=B({list:K.optional(),cancel:K.optional(),requests:B({tools:B({call:K.optional()}).optional()}).optional()}),Zf=z({experimental:H(M(),K).optional(),sampling:z({context:K.optional(),tools:K.optional()}).optional(),elicitation:Jf.optional(),roots:z({listChanged:I().optional()}).optional(),tasks:Yf.optional(),extensions:H(M(),K).optional()}),Qf=q.extend({protocolVersion:M(),capabilities:Zf,clientInfo:qf}),$f=J.extend({method:W(`initialize`),params:Qf}),ep=z({experimental:H(M(),K).optional(),logging:K.optional(),completions:K.optional(),prompts:z({listChanged:I().optional()}).optional(),resources:z({subscribe:I().optional(),listChanged:I().optional()}).optional(),tools:z({listChanged:I().optional()}).optional(),tasks:Xf.optional(),extensions:H(M(),K).optional()}),tp=Z.extend({protocolVersion:M(),capabilities:ep,serverInfo:qf,instructions:M().optional()}),np=X.extend({method:W(`notifications/initialized`),params:Y.optional()}),rp=J.extend({method:W(`ping`),params:q.optional()}),ip=z({progress:F(),total:G(F()),message:G(M())}),ap=z({...Y.shape,...ip.shape,progressToken:Tf}),op=X.extend({method:W(`notifications/progress`),params:ap}),sp=q.extend({cursor:Ef.optional()}),cp=J.extend({params:sp.optional()}),lp=Z.extend({nextCursor:Ef.optional()}),up=U([`working`,`input_required`,`completed`,`failed`,`cancelled`]),dp=z({taskId:M(),status:up,ttl:V([F(),Wu()]),createdAt:M(),lastUpdatedAt:M(),pollInterval:G(F()),statusMessage:G(M())}),fp=Z.extend({task:dp}),pp=Y.merge(dp),mp=X.extend({method:W(`notifications/tasks/status`),params:pp}),hp=J.extend({method:W(`tasks/get`),params:q.extend({taskId:M()})}),gp=Z.merge(dp),_p=J.extend({method:W(`tasks/result`),params:q.extend({taskId:M()})});Z.loose();var vp=cp.extend({method:W(`tasks/list`)}),yp=lp.extend({tasks:R(dp)}),bp=J.extend({method:W(`tasks/cancel`),params:q.extend({taskId:M()})}),xp=Z.merge(dp),Sp=z({uri:M(),mimeType:G(M()),_meta:H(M(),L()).optional()}),Cp=Sp.extend({text:M()}),wp=M().refine(e=>{try{return atob(e),!0}catch{return!1}},{message:`Invalid Base64 string`}),Tp=Sp.extend({blob:wp}),Ep=U([`user`,`assistant`]),Dp=z({audience:R(Ep).optional(),priority:F().min(0).max(1).optional(),lastModified:ll({offset:!0}).optional()}),Op=z({...Kf.shape,...Gf.shape,uri:M(),description:G(M()),mimeType:G(M()),size:G(F()),annotations:Dp.optional(),_meta:G(B({}))}),kp=z({...Kf.shape,...Gf.shape,uriTemplate:M(),description:G(M()),mimeType:G(M()),annotations:Dp.optional(),_meta:G(B({}))}),Ap=cp.extend({method:W(`resources/list`)}),jp=lp.extend({resources:R(Op)}),Mp=cp.extend({method:W(`resources/templates/list`)}),Np=lp.extend({resourceTemplates:R(kp)}),Pp=q.extend({uri:M()}),Fp=Pp,Ip=J.extend({method:W(`resources/read`),params:Fp}),Lp=Z.extend({contents:R(V([Cp,Tp]))}),Rp=X.extend({method:W(`notifications/resources/list_changed`),params:Y.optional()}),zp=Pp,Bp=J.extend({method:W(`resources/subscribe`),params:zp}),Vp=Pp,Hp=J.extend({method:W(`resources/unsubscribe`),params:Vp}),Up=Y.extend({uri:M()}),Wp=X.extend({method:W(`notifications/resources/updated`),params:Up}),Gp=z({name:M(),description:G(M()),required:G(I())}),Kp=z({...Kf.shape,...Gf.shape,description:G(M()),arguments:G(R(Gp)),_meta:G(B({}))}),qp=cp.extend({method:W(`prompts/list`)}),Jp=lp.extend({prompts:R(Kp)}),Yp=q.extend({name:M(),arguments:H(M(),M()).optional()}),Xp=J.extend({method:W(`prompts/get`),params:Yp}),Zp=z({type:W(`text`),text:M(),annotations:Dp.optional(),_meta:H(M(),L()).optional()}),Qp=z({type:W(`image`),data:wp,mimeType:M(),annotations:Dp.optional(),_meta:H(M(),L()).optional()}),$p=z({type:W(`audio`),data:wp,mimeType:M(),annotations:Dp.optional(),_meta:H(M(),L()).optional()}),em=z({type:W(`tool_use`),name:M(),id:M(),input:H(M(),L()),_meta:H(M(),L()).optional()}),tm=z({type:W(`resource`),resource:V([Cp,Tp]),annotations:Dp.optional(),_meta:H(M(),L()).optional()}),nm=Op.extend({type:W(`resource_link`)}),rm=V([Zp,Qp,$p,nm,tm]),im=z({role:Ep,content:rm}),am=Z.extend({description:M().optional(),messages:R(im)}),om=X.extend({method:W(`notifications/prompts/list_changed`),params:Y.optional()}),sm=z({title:M().optional(),readOnlyHint:I().optional(),destructiveHint:I().optional(),idempotentHint:I().optional(),openWorldHint:I().optional()}),cm=z({taskSupport:U([`required`,`optional`,`forbidden`]).optional()}),lm=z({...Kf.shape,...Gf.shape,description:M().optional(),inputSchema:z({type:W(`object`),properties:H(M(),K).optional(),required:R(M()).optional()}).catchall(L()),outputSchema:z({type:W(`object`),properties:H(M(),K).optional(),required:R(M()).optional()}).catchall(L()).optional(),annotations:sm.optional(),execution:cm.optional(),_meta:H(M(),L()).optional()}),um=cp.extend({method:W(`tools/list`)}),dm=lp.extend({tools:R(lm)}),fm=Z.extend({content:R(rm).default([]),structuredContent:H(M(),L()).optional(),isError:I().optional()});fm.or(Z.extend({toolResult:L()}));var pm=Af.extend({name:M(),arguments:H(M(),L()).optional()}),mm=J.extend({method:W(`tools/call`),params:pm}),hm=X.extend({method:W(`notifications/tools/list_changed`),params:Y.optional()});z({autoRefresh:I().default(!0),debounceMs:F().int().nonnegative().default(300)});var gm=U([`debug`,`info`,`notice`,`warning`,`error`,`critical`,`alert`,`emergency`]),_m=q.extend({level:gm}),vm=J.extend({method:W(`logging/setLevel`),params:_m}),ym=Y.extend({level:gm,logger:M().optional(),data:L()}),bm=X.extend({method:W(`notifications/message`),params:ym}),xm=z({hints:R(z({name:M().optional()})).optional(),costPriority:F().min(0).max(1).optional(),speedPriority:F().min(0).max(1).optional(),intelligencePriority:F().min(0).max(1).optional()}),Sm=z({mode:U([`auto`,`required`,`none`]).optional()}),Cm=z({type:W(`tool_result`),toolUseId:M().describe(`The unique identifier for the corresponding tool call.`),content:R(rm).default([]),structuredContent:z({}).loose().optional(),isError:I().optional(),_meta:H(M(),L()).optional()}),wm=od(`type`,[Zp,Qp,$p]),Tm=od(`type`,[Zp,Qp,$p,em,Cm]),Em=z({role:Ep,content:V([Tm,R(Tm)]),_meta:H(M(),L()).optional()}),Dm=Af.extend({messages:R(Em),modelPreferences:xm.optional(),systemPrompt:M().optional(),includeContext:U([`none`,`thisServer`,`allServers`]).optional(),temperature:F().optional(),maxTokens:F().int(),stopSequences:R(M()).optional(),metadata:K.optional(),tools:R(lm).optional(),toolChoice:Sm.optional()}),Om=J.extend({method:W(`sampling/createMessage`),params:Dm}),km=Z.extend({model:M(),stopReason:G(U([`endTurn`,`stopSequence`,`maxTokens`]).or(M())),role:Ep,content:wm}),Am=Z.extend({model:M(),stopReason:G(U([`endTurn`,`stopSequence`,`maxTokens`,`toolUse`]).or(M())),role:Ep,content:V([Tm,R(Tm)])}),jm=z({type:W(`boolean`),title:M().optional(),description:M().optional(),default:I().optional()}),Mm=z({type:W(`string`),title:M().optional(),description:M().optional(),minLength:F().optional(),maxLength:F().optional(),format:U([`email`,`uri`,`date`,`date-time`]).optional(),default:M().optional()}),Nm=z({type:U([`number`,`integer`]),title:M().optional(),description:M().optional(),minimum:F().optional(),maximum:F().optional(),default:F().optional()}),Pm=z({type:W(`string`),title:M().optional(),description:M().optional(),enum:R(M()),default:M().optional()}),Fm=z({type:W(`string`),title:M().optional(),description:M().optional(),oneOf:R(z({const:M(),title:M()})),default:M().optional()}),Im=V([V([z({type:W(`string`),title:M().optional(),description:M().optional(),enum:R(M()),enumNames:R(M()).optional(),default:M().optional()}),V([Pm,Fm]),V([z({type:W(`array`),title:M().optional(),description:M().optional(),minItems:F().optional(),maxItems:F().optional(),items:z({type:W(`string`),enum:R(M())}),default:R(M()).optional()}),z({type:W(`array`),title:M().optional(),description:M().optional(),minItems:F().optional(),maxItems:F().optional(),items:z({anyOf:R(z({const:M(),title:M()}))}),default:R(M()).optional()})])]),jm,Mm,Nm]),Lm=V([Af.extend({mode:W(`form`).optional(),message:M(),requestedSchema:z({type:W(`object`),properties:H(M(),Im),required:R(M()).optional()})}),Af.extend({mode:W(`url`),message:M(),elicitationId:M(),url:M().url()})]),Rm=J.extend({method:W(`elicitation/create`),params:Lm}),zm=Y.extend({elicitationId:M()}),Bm=X.extend({method:W(`notifications/elicitation/complete`),params:zm}),Vm=Z.extend({action:U([`accept`,`decline`,`cancel`]),content:df(e=>e===null?void 0:e,H(M(),V([M(),F(),I(),R(M())])).optional())}),Hm=z({type:W(`ref/resource`),uri:M()}),Um=z({type:W(`ref/prompt`),name:M()}),Wm=q.extend({ref:V([Um,Hm]),argument:z({name:M(),value:M()}),context:z({arguments:H(M(),M()).optional()}).optional()}),Gm=J.extend({method:W(`completion/complete`),params:Wm}),Km=Z.extend({completion:B({values:R(M()).max(100),total:G(F().int()),hasMore:G(I())})}),qm=z({uri:M().startsWith(`file://`),name:M().optional(),_meta:H(M(),L()).optional()}),Jm=J.extend({method:W(`roots/list`),params:q.optional()}),Ym=Z.extend({roots:R(qm)}),Xm=X.extend({method:W(`notifications/roots/list_changed`),params:Y.optional()});V([rp,$f,Gm,vm,Xp,qp,Ap,Mp,Ip,Bp,Hp,mm,um,hp,_p,vp,bp]),V([Wf,op,np,Xm,mp]),V([Hf,km,Am,Vm,Ym,gp,yp,fp]),V([rp,Om,Rm,Jm,hp,_p,vp,bp]),V([Wf,op,bm,Wp,Rp,hm,om,mp,Bm]),V([Hf,tp,Km,am,Jp,jp,Np,Lp,fm,dm,gp,yp,fp]);var $=class e extends Error{constructor(e,t,n){super(`MCP error ${e}: ${t}`),this.code=e,this.data=n,this.name=`McpError`}static fromError(t,n,r){if(t===Q.UrlElicitationRequired&&r){let e=r;if(e.elicitations)return new Zm(e.elicitations,n)}return new e(t,n,r)}},Zm=class extends ${constructor(e,t=`URL elicitation${e.length>1?`s`:``} required`){super(Q.UrlElicitationRequired,t,{elicitations:e})}get elicitations(){return this.data?.elicitations??[]}};function Qm(e){return e===`completed`||e===`failed`||e===`cancelled`}function $m(e){let t=al(e)?.method;if(!t)throw Error(`Schema is missing a method literal`);let n=ol(t);if(typeof n!=`string`)throw Error(`Schema method literal must be a string`);return n}function eh(e,t){let n=il(e,t);if(!n.success)throw n.error;return n.data}var th=class{constructor(e){this._options=e,this._requestMessageId=0,this._requestHandlers=new Map,this._requestHandlerAbortControllers=new Map,this._notificationHandlers=new Map,this._responseHandlers=new Map,this._progressHandlers=new Map,this._timeoutInfo=new Map,this._pendingDebouncedNotifications=new Set,this._taskProgressTokens=new Map,this._requestResolvers=new Map,this.setNotificationHandler(Wf,e=>{this._oncancel(e)}),this.setNotificationHandler(op,e=>{this._onprogress(e)}),this.setRequestHandler(rp,e=>({})),this._taskStore=e?.taskStore,this._taskMessageQueue=e?.taskMessageQueue,this._taskStore&&(this.setRequestHandler(hp,async(e,t)=>{let n=await this._taskStore.getTask(e.params.taskId,t.sessionId);if(!n)throw new $(Q.InvalidParams,`Failed to retrieve task: Task not found`);return{...n}}),this.setRequestHandler(_p,async(e,t)=>{let n=async()=>{let r=e.params.taskId;if(this._taskMessageQueue){let e;for(;e=await this._taskMessageQueue.dequeue(r,t.sessionId);){if(e.type===`response`||e.type===`error`){let t=e.message,n=t.id,r=this._requestResolvers.get(n);if(r)if(this._requestResolvers.delete(n),e.type===`response`)r(t);else{let e=t;r(new $(e.error.code,e.error.message,e.error.data))}else{let t=e.type===`response`?`Response`:`Error`;this._onerror(Error(`${t} handler missing for request ${n}`))}continue}await this._transport?.send(e.message,{relatedRequestId:t.requestId})}}let i=await this._taskStore.getTask(r,t.sessionId);if(!i)throw new $(Q.InvalidParams,`Task not found: ${r}`);if(!Qm(i.status))return await this._waitForTaskUpdate(r,t.signal),await n();if(Qm(i.status)){let e=await this._taskStore.getTaskResult(r,t.sessionId);return this._clearTaskQueue(r),{...e,_meta:{...e._meta,[wf]:{taskId:r}}}}return await n()};return await n()}),this.setRequestHandler(vp,async(e,t)=>{try{let{tasks:n,nextCursor:r}=await this._taskStore.listTasks(e.params?.cursor,t.sessionId);return{tasks:n,nextCursor:r,_meta:{}}}catch(e){throw new $(Q.InvalidParams,`Failed to list tasks: ${e instanceof Error?e.message:String(e)}`)}}),this.setRequestHandler(bp,async(e,t)=>{try{let n=await this._taskStore.getTask(e.params.taskId,t.sessionId);if(!n)throw new $(Q.InvalidParams,`Task not found: ${e.params.taskId}`);if(Qm(n.status))throw new $(Q.InvalidParams,`Cannot cancel task in terminal status: ${n.status}`);await this._taskStore.updateTaskStatus(e.params.taskId,`cancelled`,`Client cancelled task execution.`,t.sessionId),this._clearTaskQueue(e.params.taskId);let r=await this._taskStore.getTask(e.params.taskId,t.sessionId);if(!r)throw new $(Q.InvalidParams,`Task not found after cancellation: ${e.params.taskId}`);return{_meta:{},...r}}catch(e){throw e instanceof $?e:new $(Q.InvalidRequest,`Failed to cancel task: ${e instanceof Error?e.message:String(e)}`)}}))}async _oncancel(e){e.params.requestId&&this._requestHandlerAbortControllers.get(e.params.requestId)?.abort(e.params.reason)}_setupTimeout(e,t,n,r,i=!1){this._timeoutInfo.set(e,{timeoutId:setTimeout(r,t),startTime:Date.now(),timeout:t,maxTotalTimeout:n,resetTimeoutOnProgress:i,onTimeout:r})}_resetTimeout(e){let t=this._timeoutInfo.get(e);if(!t)return!1;let n=Date.now()-t.startTime;if(t.maxTotalTimeout&&n>=t.maxTotalTimeout)throw this._timeoutInfo.delete(e),$.fromError(Q.RequestTimeout,`Maximum total timeout exceeded`,{maxTotalTimeout:t.maxTotalTimeout,totalElapsed:n});return clearTimeout(t.timeoutId),t.timeoutId=setTimeout(t.onTimeout,t.timeout),!0}_cleanupTimeout(e){let t=this._timeoutInfo.get(e);t&&(clearTimeout(t.timeoutId),this._timeoutInfo.delete(e))}async connect(e){if(this._transport)throw Error(`Already connected to a transport. Call close() before connecting to a new transport, or use a separate Protocol instance per connection.`);this._transport=e;let t=this.transport?.onclose;this._transport.onclose=()=>{t?.(),this._onclose()};let n=this.transport?.onerror;this._transport.onerror=e=>{n?.(e),this._onerror(e)};let r=this._transport?.onmessage;this._transport.onmessage=(e,t)=>{r?.(e,t),Rf(e)||Bf(e)?this._onresponse(e):Pf(e)?this._onrequest(e,t):If(e)?this._onnotification(e):this._onerror(Error(`Unknown message type: ${JSON.stringify(e)}`))},await this._transport.start()}_onclose(){let e=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._taskProgressTokens.clear(),this._pendingDebouncedNotifications.clear();for(let e of this._timeoutInfo.values())clearTimeout(e.timeoutId);this._timeoutInfo.clear();for(let e of this._requestHandlerAbortControllers.values())e.abort();this._requestHandlerAbortControllers.clear();let t=$.fromError(Q.ConnectionClosed,`Connection closed`);this._transport=void 0,this.onclose?.();for(let n of e.values())n(t)}_onerror(e){this.onerror?.(e)}_onnotification(e){let t=this._notificationHandlers.get(e.method)??this.fallbackNotificationHandler;t!==void 0&&Promise.resolve().then(()=>t(e)).catch(e=>this._onerror(Error(`Uncaught error in notification handler: ${e}`)))}_onrequest(e,t){let n=this._requestHandlers.get(e.method)??this.fallbackRequestHandler,r=this._transport,i=e.params?._meta?.[wf]?.taskId;if(n===void 0){let t={jsonrpc:`2.0`,id:e.id,error:{code:Q.MethodNotFound,message:`Method not found`}};i&&this._taskMessageQueue?this._enqueueTaskMessage(i,{type:`error`,message:t,timestamp:Date.now()},r?.sessionId).catch(e=>this._onerror(Error(`Failed to enqueue error response: ${e}`))):r?.send(t).catch(e=>this._onerror(Error(`Failed to send an error response: ${e}`)));return}let a=new AbortController;this._requestHandlerAbortControllers.set(e.id,a);let o=jf(e.params)?e.params.task:void 0,s=this._taskStore?this.requestTaskStore(e,r?.sessionId):void 0,c={signal:a.signal,sessionId:r?.sessionId,_meta:e.params?._meta,sendNotification:async t=>{if(a.signal.aborted)return;let n={relatedRequestId:e.id};i&&(n.relatedTask={taskId:i}),await this.notification(t,n)},sendRequest:async(t,n,r)=>{if(a.signal.aborted)throw new $(Q.ConnectionClosed,`Request was cancelled`);let o={...r,relatedRequestId:e.id};i&&!o.relatedTask&&(o.relatedTask={taskId:i});let c=o.relatedTask?.taskId??i;return c&&s&&await s.updateTaskStatus(c,`input_required`),await this.request(t,n,o)},authInfo:t?.authInfo,requestId:e.id,requestInfo:t?.requestInfo,taskId:i,taskStore:s,taskRequestedTtl:o?.ttl,closeSSEStream:t?.closeSSEStream,closeStandaloneSSEStream:t?.closeStandaloneSSEStream};Promise.resolve().then(()=>{o&&this.assertTaskHandlerCapability(e.method)}).then(()=>n(e,c)).then(async t=>{if(a.signal.aborted)return;let n={result:t,jsonrpc:`2.0`,id:e.id};i&&this._taskMessageQueue?await this._enqueueTaskMessage(i,{type:`response`,message:n,timestamp:Date.now()},r?.sessionId):await r?.send(n)},async t=>{if(a.signal.aborted)return;let n={jsonrpc:`2.0`,id:e.id,error:{code:Number.isSafeInteger(t.code)?t.code:Q.InternalError,message:t.message??`Internal error`,...t.data!==void 0&&{data:t.data}}};i&&this._taskMessageQueue?await this._enqueueTaskMessage(i,{type:`error`,message:n,timestamp:Date.now()},r?.sessionId):await r?.send(n)}).catch(e=>this._onerror(Error(`Failed to send response: ${e}`))).finally(()=>{this._requestHandlerAbortControllers.get(e.id)===a&&this._requestHandlerAbortControllers.delete(e.id)})}_onprogress(e){let{progressToken:t,...n}=e.params,r=Number(t),i=this._progressHandlers.get(r);if(!i){this._onerror(Error(`Received a progress notification for an unknown token: ${JSON.stringify(e)}`));return}let a=this._responseHandlers.get(r),o=this._timeoutInfo.get(r);if(o&&a&&o.resetTimeoutOnProgress)try{this._resetTimeout(r)}catch(e){this._responseHandlers.delete(r),this._progressHandlers.delete(r),this._cleanupTimeout(r),a(e);return}i(n)}_onresponse(e){let t=Number(e.id),n=this._requestResolvers.get(t);if(n){this._requestResolvers.delete(t),Rf(e)?n(e):n(new $(e.error.code,e.error.message,e.error.data));return}let r=this._responseHandlers.get(t);if(r===void 0){this._onerror(Error(`Received a response for an unknown message ID: ${JSON.stringify(e)}`));return}this._responseHandlers.delete(t),this._cleanupTimeout(t);let i=!1;if(Rf(e)&&e.result&&typeof e.result==`object`){let n=e.result;if(n.task&&typeof n.task==`object`){let e=n.task;typeof e.taskId==`string`&&(i=!0,this._taskProgressTokens.set(e.taskId,t))}}i||this._progressHandlers.delete(t),Rf(e)?r(e):r($.fromError(e.error.code,e.error.message,e.error.data))}get transport(){return this._transport}async close(){await this._transport?.close()}async*requestStream(e,t,n){let{task:r}=n??{};if(!r){try{yield{type:`result`,result:await this.request(e,t,n)}}catch(e){yield{type:`error`,error:e instanceof $?e:new $(Q.InternalError,String(e))}}return}let i;try{let r=await this.request(e,fp,n);if(r.task)i=r.task.taskId,yield{type:`taskCreated`,task:r.task};else throw new $(Q.InternalError,`Task creation did not return a task`);for(;;){let e=await this.getTask({taskId:i},n);if(yield{type:`taskStatus`,task:e},Qm(e.status)){e.status===`completed`?yield{type:`result`,result:await this.getTaskResult({taskId:i},t,n)}:e.status===`failed`?yield{type:`error`,error:new $(Q.InternalError,`Task ${i} failed`)}:e.status===`cancelled`&&(yield{type:`error`,error:new $(Q.InternalError,`Task ${i} was cancelled`)});return}if(e.status===`input_required`){yield{type:`result`,result:await this.getTaskResult({taskId:i},t,n)};return}let r=e.pollInterval??this._options?.defaultTaskPollInterval??1e3;await new Promise(e=>setTimeout(e,r)),n?.signal?.throwIfAborted()}}catch(e){yield{type:`error`,error:e instanceof $?e:new $(Q.InternalError,String(e))}}}request(e,t,n){let{relatedRequestId:r,resumptionToken:i,onresumptiontoken:a,task:o,relatedTask:s}=n??{};return new Promise((c,l)=>{let u=e=>{l(e)};if(!this._transport){u(Error(`Not connected`));return}if(this._options?.enforceStrictCapabilities===!0)try{this.assertCapabilityForMethod(e.method),o&&this.assertTaskCapability(e.method)}catch(e){u(e);return}n?.signal?.throwIfAborted();let d=this._requestMessageId++,f={...e,jsonrpc:`2.0`,id:d};n?.onprogress&&(this._progressHandlers.set(d,n.onprogress),f.params={...e.params,_meta:{...e.params?._meta||{},progressToken:d}}),o&&(f.params={...f.params,task:o}),s&&(f.params={...f.params,_meta:{...f.params?._meta||{},[wf]:s}});let p=e=>{this._responseHandlers.delete(d),this._progressHandlers.delete(d),this._cleanupTimeout(d),this._transport?.send({jsonrpc:`2.0`,method:`notifications/cancelled`,params:{requestId:d,reason:String(e)}},{relatedRequestId:r,resumptionToken:i,onresumptiontoken:a}).catch(e=>this._onerror(Error(`Failed to send cancellation: ${e}`))),l(e instanceof $?e:new $(Q.RequestTimeout,String(e)))};this._responseHandlers.set(d,e=>{if(!n?.signal?.aborted){if(e instanceof Error)return l(e);try{let n=il(t,e.result);n.success?c(n.data):l(n.error)}catch(e){l(e)}}}),n?.signal?.addEventListener(`abort`,()=>{p(n?.signal?.reason)});let ee=n?.timeout??6e4;this._setupTimeout(d,ee,n?.maxTotalTimeout,()=>p($.fromError(Q.RequestTimeout,`Request timed out`,{timeout:ee})),n?.resetTimeoutOnProgress??!1);let te=s?.taskId;te?(this._requestResolvers.set(d,e=>{let t=this._responseHandlers.get(d);t?t(e):this._onerror(Error(`Response handler missing for side-channeled request ${d}`))}),this._enqueueTaskMessage(te,{type:`request`,message:f,timestamp:Date.now()}).catch(e=>{this._cleanupTimeout(d),l(e)})):this._transport.send(f,{relatedRequestId:r,resumptionToken:i,onresumptiontoken:a}).catch(e=>{this._cleanupTimeout(d),l(e)})})}async getTask(e,t){return this.request({method:`tasks/get`,params:e},gp,t)}async getTaskResult(e,t,n){return this.request({method:`tasks/result`,params:e},t,n)}async listTasks(e,t){return this.request({method:`tasks/list`,params:e},yp,t)}async cancelTask(e,t){return this.request({method:`tasks/cancel`,params:e},xp,t)}async notification(e,t){if(!this._transport)throw Error(`Not connected`);this.assertNotificationCapability(e.method);let n=t?.relatedTask?.taskId;if(n){let r={...e,jsonrpc:`2.0`,params:{...e.params,_meta:{...e.params?._meta||{},[wf]:t.relatedTask}}};await this._enqueueTaskMessage(n,{type:`notification`,message:r,timestamp:Date.now()});return}if((this._options?.debouncedNotificationMethods??[]).includes(e.method)&&!e.params&&!t?.relatedRequestId&&!t?.relatedTask){if(this._pendingDebouncedNotifications.has(e.method))return;this._pendingDebouncedNotifications.add(e.method),Promise.resolve().then(()=>{if(this._pendingDebouncedNotifications.delete(e.method),!this._transport)return;let n={...e,jsonrpc:`2.0`};t?.relatedTask&&(n={...n,params:{...n.params,_meta:{...n.params?._meta||{},[wf]:t.relatedTask}}}),this._transport?.send(n,t).catch(e=>this._onerror(e))});return}let r={...e,jsonrpc:`2.0`};t?.relatedTask&&(r={...r,params:{...r.params,_meta:{...r.params?._meta||{},[wf]:t.relatedTask}}}),await this._transport.send(r,t)}setRequestHandler(e,t){let n=$m(e);this.assertRequestHandlerCapability(n),this._requestHandlers.set(n,(n,r)=>{let i=eh(e,n);return Promise.resolve(t(i,r))})}removeRequestHandler(e){this._requestHandlers.delete(e)}assertCanSetRequestHandler(e){if(this._requestHandlers.has(e))throw Error(`A request handler for ${e} already exists, which would be overridden`)}setNotificationHandler(e,t){let n=$m(e);this._notificationHandlers.set(n,n=>{let r=eh(e,n);return Promise.resolve(t(r))})}removeNotificationHandler(e){this._notificationHandlers.delete(e)}_cleanupTaskProgressHandler(e){let t=this._taskProgressTokens.get(e);t!==void 0&&(this._progressHandlers.delete(t),this._taskProgressTokens.delete(e))}async _enqueueTaskMessage(e,t,n){if(!this._taskStore||!this._taskMessageQueue)throw Error(`Cannot enqueue task message: taskStore and taskMessageQueue are not configured`);let r=this._options?.maxTaskQueueSize;await this._taskMessageQueue.enqueue(e,t,n,r)}async _clearTaskQueue(e,t){if(this._taskMessageQueue){let n=await this._taskMessageQueue.dequeueAll(e,t);for(let t of n)if(t.type===`request`&&Pf(t.message)){let n=t.message.id,r=this._requestResolvers.get(n);r?(r(new $(Q.InternalError,`Task cancelled or completed`)),this._requestResolvers.delete(n)):this._onerror(Error(`Resolver missing for request ${n} during task ${e} cleanup`))}}}async _waitForTaskUpdate(e,t){let n=this._options?.defaultTaskPollInterval??1e3;try{let t=await this._taskStore?.getTask(e);t?.pollInterval&&(n=t.pollInterval)}catch{}return new Promise((e,r)=>{if(t.aborted){r(new $(Q.InvalidRequest,`Request cancelled`));return}let i=setTimeout(e,n);t.addEventListener(`abort`,()=>{clearTimeout(i),r(new $(Q.InvalidRequest,`Request cancelled`))},{once:!0})})}requestTaskStore(e,t){let n=this._taskStore;if(!n)throw Error(`No task store configured`);return{createTask:async r=>{if(!e)throw Error(`No request provided`);return await n.createTask(r,e.id,{method:e.method,params:e.params},t)},getTask:async e=>{let r=await n.getTask(e,t);if(!r)throw new $(Q.InvalidParams,`Failed to retrieve task: Task not found`);return r},storeTaskResult:async(e,r,i)=>{await n.storeTaskResult(e,r,i,t);let a=await n.getTask(e,t);if(a){let t=mp.parse({method:`notifications/tasks/status`,params:a});await this.notification(t),Qm(a.status)&&this._cleanupTaskProgressHandler(e)}},getTaskResult:e=>n.getTaskResult(e,t),updateTaskStatus:async(e,r,i)=>{let a=await n.getTask(e,t);if(!a)throw new $(Q.InvalidParams,`Task "${e}" not found - it may have been cleaned up`);if(Qm(a.status))throw new $(Q.InvalidParams,`Cannot update task "${e}" from terminal status "${a.status}" to "${r}". Terminal states (completed, failed, cancelled) cannot transition to other states.`);await n.updateTaskStatus(e,r,i,t);let o=await n.getTask(e,t);if(o){let t=mp.parse({method:`notifications/tasks/status`,params:o});await this.notification(t),Qm(o.status)&&this._cleanupTaskProgressHandler(e)}},listTasks:e=>n.listTasks(e,t)}}};function nh(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function rh(e,t){let n={...e};for(let e in t){let r=e,i=t[r];if(i===void 0)continue;let a=n[r];nh(a)&&nh(i)?n[r]={...a,...i}:n[r]=i}return n}var ih=`modulepreload`,ah=function(e){return`/`+e},oh={},sh=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}r=o(t.map(t=>{if(t=ah(t,n),t in oh)return;oh[t]=!0;let r=t.endsWith(`.css`),i=r?`[rel="stylesheet"]`:``;if(n)for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}else if(document.querySelector(`link[href="${t}"]${i}`))return;let o=document.createElement(`link`);if(o.rel=r?`stylesheet`:ih,r||(o.as=`script`),o.crossOrigin=``,o.href=t,a&&o.setAttribute(`nonce`,a),document.head.appendChild(o),r)return new Promise((e,n)=>{o.addEventListener(`load`,e),o.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})};(e=>typeof n<`u`?n:typeof Proxy<`u`?new Proxy(e,{get:(e,t)=>(typeof n<`u`?n:e)[t]}):e)(function(e){if(typeof n<`u`)return n.apply(this,arguments);throw Error(`Dynamic require of "`+e+`" is not supported`)});var ch=class extends th{_registeredMethods=new Set;_eventSlots=new Map;onEventDispatch(e,t){}_ensureEventSlot(e){let t=this._eventSlots.get(e);if(!t){let n=this.eventSchemas[e];if(!n)throw Error(`Unknown event: ${String(e)}`);t={listeners:[]},this._eventSlots.set(e,t);let r=n.shape.method.value;this._registeredMethods.add(r);let i=t;super.setNotificationHandler(n,t=>{let n=t.params;this.onEventDispatch(e,n),i.onHandler?.(n);for(let e of[...i.listeners])e(n)})}return t}setEventHandler(e,t){let n=this._ensureEventSlot(e);n.onHandler&&t&&console.warn(`[MCP Apps] on${String(e)} handler replaced. Use addEventListener("${String(e)}", …) to add multiple listeners without replacing.`),n.onHandler=t}getEventHandler(e){return this._eventSlots.get(e)?.onHandler}addEventListener(e,t){this._ensureEventSlot(e).listeners.push(t)}removeEventListener(e,t){let n=this._eventSlots.get(e);if(!n)return;let r=n.listeners.indexOf(t);r!==-1&&n.listeners.splice(r,1)}setRequestHandler=(e,t)=>{this._assertMethodNotRegistered(e,`setRequestHandler`),super.setRequestHandler(e,t)};setNotificationHandler=(e,t)=>{this._assertMethodNotRegistered(e,`setNotificationHandler`),super.setNotificationHandler(e,t)};warnIfRequestHandlerReplaced(e,t,n){t&&n&&console.warn(`[MCP Apps] ${e} handler replaced. Previous handler will no longer be called.`)}replaceRequestHandler=(e,t)=>{let n=e.shape.method.value;this._registeredMethods.add(n),super.setRequestHandler(e,t)};_assertMethodNotRegistered(e,t){let n=e.shape.method.value;if(this._registeredMethods.has(n))throw Error(`Handler for "${n}" already registered (via ${t}). Use addEventListener() to attach multiple listeners, or the on* setter for replace semantics.`);this._registeredMethods.add(n)}},lh=`2026-01-26`,uh=class{eventTarget;eventSource;messageListener;constructor(e=window.parent,t){this.eventTarget=e,this.eventSource=t,this.messageListener=e=>{if(t&&e.source!==this.eventSource){console.debug(`Ignoring message from unknown source`,e);return}let n=Vf.safeParse(e.data);n.success?(console.debug(`Parsed message`,n.data),this.onmessage?.(n.data)):e.data?.jsonrpc===`2.0`?(console.error(`Failed to parse message`,n.error.message,e),this.onerror?.(Error(`Invalid JSON-RPC message received: `+n.error.message))):console.debug(`Ignoring non-JSON-RPC message`,n.error.message,e)}}async start(){window.addEventListener(`message`,this.messageListener)}async send(e,t){e.method!==`ui/notifications/tool-input-partial`&&console.debug(`Sending message`,e),this.eventTarget.postMessage(e,`*`)}async close(){window.removeEventListener(`message`,this.messageListener),this.onclose?.()}onclose;onerror;onmessage;sessionId;setProtocolVersion},dh=V([W(`light`),W(`dark`)]).describe(`Color theme preference for the host environment.`),fh=V([W(`inline`),W(`fullscreen`),W(`pip`)]).describe(`Display mode for UI presentation.`),ph=H(V([W(`--color-background-primary`),W(`--color-background-secondary`),W(`--color-background-tertiary`),W(`--color-background-inverse`),W(`--color-background-ghost`),W(`--color-background-info`),W(`--color-background-danger`),W(`--color-background-success`),W(`--color-background-warning`),W(`--color-background-disabled`),W(`--color-text-primary`),W(`--color-text-secondary`),W(`--color-text-tertiary`),W(`--color-text-inverse`),W(`--color-text-ghost`),W(`--color-text-info`),W(`--color-text-danger`),W(`--color-text-success`),W(`--color-text-warning`),W(`--color-text-disabled`),W(`--color-border-primary`),W(`--color-border-secondary`),W(`--color-border-tertiary`),W(`--color-border-inverse`),W(`--color-border-ghost`),W(`--color-border-info`),W(`--color-border-danger`),W(`--color-border-success`),W(`--color-border-warning`),W(`--color-border-disabled`),W(`--color-ring-primary`),W(`--color-ring-secondary`),W(`--color-ring-inverse`),W(`--color-ring-info`),W(`--color-ring-danger`),W(`--color-ring-success`),W(`--color-ring-warning`),W(`--font-sans`),W(`--font-mono`),W(`--font-weight-normal`),W(`--font-weight-medium`),W(`--font-weight-semibold`),W(`--font-weight-bold`),W(`--font-text-xs-size`),W(`--font-text-sm-size`),W(`--font-text-md-size`),W(`--font-text-lg-size`),W(`--font-heading-xs-size`),W(`--font-heading-sm-size`),W(`--font-heading-md-size`),W(`--font-heading-lg-size`),W(`--font-heading-xl-size`),W(`--font-heading-2xl-size`),W(`--font-heading-3xl-size`),W(`--font-text-xs-line-height`),W(`--font-text-sm-line-height`),W(`--font-text-md-line-height`),W(`--font-text-lg-line-height`),W(`--font-heading-xs-line-height`),W(`--font-heading-sm-line-height`),W(`--font-heading-md-line-height`),W(`--font-heading-lg-line-height`),W(`--font-heading-xl-line-height`),W(`--font-heading-2xl-line-height`),W(`--font-heading-3xl-line-height`),W(`--border-radius-xs`),W(`--border-radius-sm`),W(`--border-radius-md`),W(`--border-radius-lg`),W(`--border-radius-xl`),W(`--border-radius-full`),W(`--border-width-regular`),W(`--shadow-hairline`),W(`--shadow-sm`),W(`--shadow-md`),W(`--shadow-lg`)]).describe(`CSS variable keys available to MCP apps for theming.`).describe(`Style variables for theming MCP apps.
479
+ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let t of this.seen.entries()){let r=t[1];if(e===t[0]){a(t);continue}if(n.external){let r=n.external.registry.get(t[0])?.id;if(e!==t[0]&&r){a(t);continue}}if(this.metadataRegistry.get(t[0])?.id){a(t);continue}if(r.cycle){a(t);continue}if(r.count>1&&n.reused===`ref`){a(t);continue}}let o=(e,t)=>{let n=this.seen.get(e),r=n.def??n.schema,i={...r};if(n.ref===null)return;let a=n.ref;if(n.ref=null,a){o(a,t);let e=this.seen.get(a).schema;e.$ref&&(t.target===`draft-7`||t.target===`draft-4`||t.target===`openapi-3.0`)?(r.allOf=r.allOf??[],r.allOf.push(e)):(Object.assign(r,e),Object.assign(r,i))}n.isParent||this.override({zodSchema:e,jsonSchema:r,path:n.path??[]})};for(let e of[...this.seen.entries()].reverse())o(e[0],{target:this.target});let s={};if(this.target===`draft-2020-12`?s.$schema=`https://json-schema.org/draft/2020-12/schema`:this.target===`draft-7`?s.$schema=`http://json-schema.org/draft-07/schema#`:this.target===`draft-4`?s.$schema=`http://json-schema.org/draft-04/schema#`:this.target===`openapi-3.0`||console.warn(`Invalid target: ${this.target}`),n.external?.uri){let t=n.external.registry.get(e)?.id;if(!t)throw Error("Schema is missing an `id` property");s.$id=n.external.uri(t)}Object.assign(s,r.def);let c=n.external?.defs??{};for(let e of this.seen.entries()){let t=e[1];t.def&&t.defId&&(c[t.defId]=t.def)}n.external||Object.keys(c).length>0&&(this.target===`draft-2020-12`?s.$defs=c:s.definitions=c);try{return JSON.parse(JSON.stringify(s))}catch{throw Error(`Error converting schema to JSON.`)}}};function tl(e,t){if(e instanceof Ko){let n=new el(t),r={};for(let t of e._idmap.entries()){let[e,r]=t;n.process(r)}let i={},a={registry:e,uri:t?.uri,defs:r};for(let r of e._idmap.entries()){let[e,o]=r;i[e]=n.emit(o,{...t,external:a})}return Object.keys(r).length>0&&(i.__shared={[n.target===`draft-2020-12`?`$defs`:`definitions`]:r}),{schemas:i}}let n=new el(t);return n.process(e),n.emit(e,t)}function O(e,t){let n=t??{seen:new Set};if(n.seen.has(e))return!1;n.seen.add(e);let r=e._zod.def;if(r.type===`transform`)return!0;if(r.type===`array`)return O(r.element,n);if(r.type===`set`)return O(r.valueType,n);if(r.type===`lazy`)return O(r.getter(),n);if(r.type===`promise`||r.type===`optional`||r.type===`nonoptional`||r.type===`nullable`||r.type===`readonly`||r.type===`default`||r.type===`prefault`)return O(r.innerType,n);if(r.type===`intersection`)return O(r.left,n)||O(r.right,n);if(r.type===`record`||r.type===`map`)return O(r.keyType,n)||O(r.valueType,n);if(r.type===`pipe`)return O(r.in,n)||O(r.out,n);if(r.type===`object`){for(let e in r.shape)if(O(r.shape[e],n))return!0;return!1}if(r.type===`union`){for(let e of r.options)if(O(e,n))return!0;return!1}if(r.type===`tuple`){for(let e of r.items)if(O(e,n))return!0;return!!(r.rest&&O(r.rest,n))}return!1}var nl=t({}),rl=t({$ZodAny:()=>Kr,$ZodArray:()=>Qr,$ZodAsyncError:()=>o,$ZodBase64:()=>jr,$ZodBase64URL:()=>Nr,$ZodBigInt:()=>Vr,$ZodBigIntFormat:()=>Hr,$ZodBoolean:()=>Br,$ZodCIDRv4:()=>Or,$ZodCIDRv6:()=>kr,$ZodCUID:()=>gr,$ZodCUID2:()=>_r,$ZodCatch:()=>Ai,$ZodCheck:()=>w,$ZodCheckBigIntFormat:()=>Un,$ZodCheckEndsWith:()=>nr,$ZodCheckGreaterThan:()=>Bn,$ZodCheckIncludes:()=>er,$ZodCheckLengthEquals:()=>Yn,$ZodCheckLessThan:()=>zn,$ZodCheckLowerCase:()=>Qn,$ZodCheckMaxLength:()=>qn,$ZodCheckMaxSize:()=>Wn,$ZodCheckMimeType:()=>ar,$ZodCheckMinLength:()=>Jn,$ZodCheckMinSize:()=>Gn,$ZodCheckMultipleOf:()=>Vn,$ZodCheckNumberFormat:()=>Hn,$ZodCheckOverwrite:()=>or,$ZodCheckProperty:()=>ir,$ZodCheckRegex:()=>Zn,$ZodCheckSizeEquals:()=>Kn,$ZodCheckStartsWith:()=>tr,$ZodCheckStringFormat:()=>Xn,$ZodCheckUpperCase:()=>$n,$ZodCodec:()=>Pi,$ZodCustom:()=>Ui,$ZodCustomStringFormat:()=>Lr,$ZodDate:()=>Xr,$ZodDefault:()=>wi,$ZodDiscriminatedUnion:()=>oi,$ZodE164:()=>Pr,$ZodEmail:()=>fr,$ZodEmoji:()=>mr,$ZodEncodeError:()=>s,$ZodEnum:()=>_i,$ZodError:()=>Ze,$ZodFile:()=>yi,$ZodFunction:()=>Bi,$ZodGUID:()=>ur,$ZodIPv4:()=>Tr,$ZodIPv6:()=>Er,$ZodISODate:()=>Sr,$ZodISODateTime:()=>xr,$ZodISODuration:()=>wr,$ZodISOTime:()=>Cr,$ZodIntersection:()=>si,$ZodJWT:()=>Ir,$ZodKSUID:()=>br,$ZodLazy:()=>Hi,$ZodLiteral:()=>vi,$ZodMAC:()=>Dr,$ZodMap:()=>pi,$ZodNaN:()=>ji,$ZodNanoID:()=>hr,$ZodNever:()=>Jr,$ZodNonOptional:()=>Di,$ZodNull:()=>Gr,$ZodNullable:()=>Ci,$ZodNumber:()=>Rr,$ZodNumberFormat:()=>zr,$ZodObject:()=>ni,$ZodObjectJIT:()=>ri,$ZodOptional:()=>Si,$ZodPipe:()=>Mi,$ZodPrefault:()=>Ei,$ZodPromise:()=>Vi,$ZodReadonly:()=>Li,$ZodRealError:()=>C,$ZodRecord:()=>fi,$ZodRegistry:()=>Ko,$ZodSet:()=>hi,$ZodString:()=>lr,$ZodStringFormat:()=>E,$ZodSuccess:()=>ki,$ZodSymbol:()=>Ur,$ZodTemplateLiteral:()=>zi,$ZodTransform:()=>bi,$ZodTuple:()=>ui,$ZodType:()=>T,$ZodULID:()=>vr,$ZodURL:()=>pr,$ZodUUID:()=>dr,$ZodUndefined:()=>Wr,$ZodUnion:()=>ai,$ZodUnknown:()=>qr,$ZodVoid:()=>Yr,$ZodXID:()=>yr,$brand:()=>a,$constructor:()=>i,$input:()=>Go,$output:()=>Wo,Doc:()=>sr,JSONSchema:()=>nl,JSONSchemaGenerator:()=>el,NEVER:()=>r,TimePrecision:()=>bs,_any:()=>Vs,_array:()=>Sc,_base64:()=>gs,_base64url:()=>_s,_bigint:()=>Ps,_boolean:()=>Ms,_catch:()=>Bc,_check:()=>Yc,_cidrv4:()=>ms,_cidrv6:()=>hs,_coercedBigint:()=>Fs,_coercedBoolean:()=>Ns,_coercedDate:()=>Ks,_coercedNumber:()=>Es,_coercedString:()=>Xo,_cuid:()=>os,_cuid2:()=>ss,_custom:()=>Kc,_date:()=>Gs,_decode:()=>pt,_decodeAsync:()=>_t,_default:()=>Lc,_discriminatedUnion:()=>wc,_e164:()=>vs,_email:()=>Zo,_emoji:()=>is,_encode:()=>dt,_encodeAsync:()=>ht,_endsWith:()=>pc,_enum:()=>Ac,_file:()=>Nc,_float32:()=>Os,_float64:()=>ks,_gt:()=>Xs,_gte:()=>D,_guid:()=>Qo,_includes:()=>dc,_int:()=>Ds,_int32:()=>As,_int64:()=>Is,_intersection:()=>Tc,_ipv4:()=>ds,_ipv6:()=>fs,_isoDate:()=>Ss,_isoDateTime:()=>xs,_isoDuration:()=>ws,_isoTime:()=>Cs,_jwt:()=>ys,_ksuid:()=>us,_lazy:()=>Wc,_length:()=>sc,_literal:()=>Mc,_lowercase:()=>lc,_lt:()=>Js,_lte:()=>Ys,_mac:()=>ps,_map:()=>Oc,_max:()=>Ys,_maxLength:()=>ac,_maxSize:()=>nc,_mime:()=>hc,_min:()=>D,_minLength:()=>oc,_minSize:()=>rc,_multipleOf:()=>tc,_nan:()=>qs,_nanoid:()=>as,_nativeEnum:()=>jc,_negative:()=>Qs,_never:()=>Us,_nonnegative:()=>ec,_nonoptional:()=>Rc,_nonpositive:()=>$s,_normalize:()=>_c,_null:()=>Bs,_nullable:()=>Ic,_number:()=>Ts,_optional:()=>Fc,_overwrite:()=>gc,_parse:()=>rt,_parseAsync:()=>at,_pipe:()=>Vc,_positive:()=>Zs,_promise:()=>Gc,_property:()=>mc,_readonly:()=>Hc,_record:()=>Dc,_refine:()=>qc,_regex:()=>cc,_safeDecode:()=>xt,_safeDecodeAsync:()=>Tt,_safeEncode:()=>yt,_safeEncodeAsync:()=>Ct,_safeParse:()=>st,_safeParseAsync:()=>lt,_set:()=>kc,_size:()=>ic,_slugify:()=>xc,_startsWith:()=>fc,_string:()=>Yo,_stringFormat:()=>$c,_stringbool:()=>Qc,_success:()=>zc,_superRefine:()=>Jc,_symbol:()=>Rs,_templateLiteral:()=>Uc,_toLowerCase:()=>yc,_toUpperCase:()=>bc,_transform:()=>Pc,_trim:()=>vc,_tuple:()=>Ec,_uint32:()=>js,_uint64:()=>Ls,_ulid:()=>cs,_undefined:()=>zs,_union:()=>Cc,_unknown:()=>Hs,_uppercase:()=>uc,_url:()=>rs,_uuid:()=>$o,_uuidv4:()=>es,_uuidv6:()=>ts,_uuidv7:()=>ns,_void:()=>Ws,_xid:()=>ls,clone:()=>b,config:()=>l,decode:()=>mt,decodeAsync:()=>vt,describe:()=>Xc,encode:()=>ft,encodeAsync:()=>gt,flattenError:()=>Qe,formatError:()=>$e,globalConfig:()=>c,globalRegistry:()=>Jo,isValidBase64:()=>Ar,isValidBase64URL:()=>Mr,isValidJWT:()=>Fr,locales:()=>Ho,meta:()=>Zc,parse:()=>it,parseAsync:()=>ot,prettifyError:()=>nt,regexes:()=>Dt,registry:()=>qo,safeDecode:()=>St,safeDecodeAsync:()=>Et,safeEncode:()=>bt,safeEncodeAsync:()=>wt,safeParse:()=>ct,safeParseAsync:()=>ut,toDotPath:()=>tt,toJSONSchema:()=>tl,treeifyError:()=>et,util:()=>u,version:()=>cr});function il(e){return!!e._zod}function al(e,t){return il(e)?ct(e,t):e.safeParse(t)}function ol(e){if(!e)return;let t;if(t=il(e)?e._zod?.def?.shape:e.shape,t){if(typeof t==`function`)try{return t()}catch{return}return t}}function sl(e){if(il(e)){let t=e._zod?.def;if(t){if(t.value!==void 0)return t.value;if(Array.isArray(t.values)&&t.values.length>0)return t.values[0]}}let t=e._def;if(t){if(t.value!==void 0)return t.value;if(Array.isArray(t.values)&&t.values.length>0)return t.values[0]}let n=e.value;if(n!==void 0)return n}var cl=t({ZodISODate:()=>dl,ZodISODateTime:()=>ll,ZodISODuration:()=>hl,ZodISOTime:()=>pl,date:()=>fl,datetime:()=>ul,duration:()=>gl,time:()=>ml}),ll=i(`ZodISODateTime`,(e,t)=>{xr.init(e,t),M.init(e,t)});function ul(e){return xs(ll,e)}var dl=i(`ZodISODate`,(e,t)=>{Sr.init(e,t),M.init(e,t)});function fl(e){return Ss(dl,e)}var pl=i(`ZodISOTime`,(e,t)=>{Cr.init(e,t),M.init(e,t)});function ml(e){return Cs(pl,e)}var hl=i(`ZodISODuration`,(e,t)=>{wr.init(e,t),M.init(e,t)});function gl(e){return ws(hl,e)}var _l=(e,t)=>{Ze.init(e,t),e.name=`ZodError`,Object.defineProperties(e,{format:{value:t=>$e(e,t)},flatten:{value:t=>Qe(e,t)},addIssue:{value:t=>{e.issues.push(t),e.message=JSON.stringify(e.issues,v,2)}},addIssues:{value:t=>{e.issues.push(...t),e.message=JSON.stringify(e.issues,v,2)}},isEmpty:{get(){return e.issues.length===0}}})},vl=i(`ZodError`,_l),k=i(`ZodError`,_l,{Parent:Error}),yl=rt(k),bl=at(k),xl=st(k),Sl=lt(k),Cl=dt(k),wl=pt(k),Tl=ht(k),El=_t(k),Dl=yt(k),Ol=xt(k),kl=Ct(k),Al=Tt(k),A=i(`ZodType`,(e,t)=>(T.init(e,t),e.def=t,e.type=t.type,Object.defineProperty(e,`_def`,{value:t}),e.check=(...n)=>e.clone(se(t,{checks:[...t.checks??[],...n.map(e=>typeof e==`function`?{_zod:{check:e,def:{check:`custom`},onattach:[]}}:e)]})),e.clone=(t,n)=>b(e,t,n),e.brand=()=>e,e.register=((t,n)=>(t.add(e,n),e)),e.parse=(t,n)=>yl(e,t,n,{callee:e.parse}),e.safeParse=(t,n)=>xl(e,t,n),e.parseAsync=async(t,n)=>bl(e,t,n,{callee:e.parseAsync}),e.safeParseAsync=async(t,n)=>Sl(e,t,n),e.spa=e.safeParseAsync,e.encode=(t,n)=>Cl(e,t,n),e.decode=(t,n)=>wl(e,t,n),e.encodeAsync=async(t,n)=>Tl(e,t,n),e.decodeAsync=async(t,n)=>El(e,t,n),e.safeEncode=(t,n)=>Dl(e,t,n),e.safeDecode=(t,n)=>Ol(e,t,n),e.safeEncodeAsync=async(t,n)=>kl(e,t,n),e.safeDecodeAsync=async(t,n)=>Al(e,t,n),e.refine=(t,n)=>e.check(of(t,n)),e.superRefine=t=>e.check(sf(t)),e.overwrite=t=>e.check(gc(t)),e.optional=()=>U(e),e.nullable=()=>Od(e),e.nullish=()=>U(Od(e)),e.nonoptional=t=>Fd(e,t),e.array=()=>I(e),e.or=t=>z([e,t]),e.and=t=>ud(e,t),e.transform=t=>Ud(e,Td(t)),e.default=t=>jd(e,t),e.prefault=t=>Nd(e,t),e.catch=t=>zd(e,t),e.pipe=t=>Ud(e,t),e.readonly=()=>qd(e),e.describe=t=>{let n=e.clone();return Jo.add(n,{description:t}),n},Object.defineProperty(e,`description`,{get(){return Jo.get(e)?.description},configurable:!0}),e.meta=(...t)=>{if(t.length===0)return Jo.get(e);let n=e.clone();return Jo.add(n,t[0]),n},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e)),jl=i(`_ZodString`,(e,t)=>{lr.init(e,t),A.init(e,t);let n=e._zod.bag;e.format=n.format??null,e.minLength=n.minimum??null,e.maxLength=n.maximum??null,e.regex=(...t)=>e.check(cc(...t)),e.includes=(...t)=>e.check(dc(...t)),e.startsWith=(...t)=>e.check(fc(...t)),e.endsWith=(...t)=>e.check(pc(...t)),e.min=(...t)=>e.check(oc(...t)),e.max=(...t)=>e.check(ac(...t)),e.length=(...t)=>e.check(sc(...t)),e.nonempty=(...t)=>e.check(oc(1,...t)),e.lowercase=t=>e.check(lc(t)),e.uppercase=t=>e.check(uc(t)),e.trim=()=>e.check(vc()),e.normalize=(...t)=>e.check(_c(...t)),e.toLowerCase=()=>e.check(yc()),e.toUpperCase=()=>e.check(bc()),e.slugify=()=>e.check(xc())}),Ml=i(`ZodString`,(e,t)=>{lr.init(e,t),jl.init(e,t),e.email=t=>e.check(Zo(Nl,t)),e.url=t=>e.check(rs(Hl,t)),e.jwt=t=>e.check(ys(xu,t)),e.emoji=t=>e.check(is(Gl,t)),e.guid=t=>e.check(Qo(Fl,t)),e.uuid=t=>e.check($o(Ll,t)),e.uuidv4=t=>e.check(es(Ll,t)),e.uuidv6=t=>e.check(ts(Ll,t)),e.uuidv7=t=>e.check(ns(Ll,t)),e.nanoid=t=>e.check(as(ql,t)),e.guid=t=>e.check(Qo(Fl,t)),e.cuid=t=>e.check(os(Yl,t)),e.cuid2=t=>e.check(ss(Zl,t)),e.ulid=t=>e.check(cs($l,t)),e.base64=t=>e.check(gs(hu,t)),e.base64url=t=>e.check(_s(_u,t)),e.xid=t=>e.check(ls(tu,t)),e.ksuid=t=>e.check(us(ru,t)),e.ipv4=t=>e.check(ds(au,t)),e.ipv6=t=>e.check(fs(lu,t)),e.cidrv4=t=>e.check(ms(du,t)),e.cidrv6=t=>e.check(hs(pu,t)),e.e164=t=>e.check(vs(yu,t)),e.datetime=t=>e.check(ul(t)),e.date=t=>e.check(fl(t)),e.time=t=>e.check(ml(t)),e.duration=t=>e.check(gl(t))});function j(e){return Yo(Ml,e)}var M=i(`ZodStringFormat`,(e,t)=>{E.init(e,t),jl.init(e,t)}),Nl=i(`ZodEmail`,(e,t)=>{fr.init(e,t),M.init(e,t)});function Pl(e){return Zo(Nl,e)}var Fl=i(`ZodGUID`,(e,t)=>{ur.init(e,t),M.init(e,t)});function Il(e){return Qo(Fl,e)}var Ll=i(`ZodUUID`,(e,t)=>{dr.init(e,t),M.init(e,t)});function Rl(e){return $o(Ll,e)}function zl(e){return es(Ll,e)}function Bl(e){return ts(Ll,e)}function Vl(e){return ns(Ll,e)}var Hl=i(`ZodURL`,(e,t)=>{pr.init(e,t),M.init(e,t)});function Ul(e){return rs(Hl,e)}function Wl(e){return rs(Hl,{protocol:/^https?$/,hostname:rn,...x(e)})}var Gl=i(`ZodEmoji`,(e,t)=>{mr.init(e,t),M.init(e,t)});function Kl(e){return is(Gl,e)}var ql=i(`ZodNanoID`,(e,t)=>{hr.init(e,t),M.init(e,t)});function Jl(e){return as(ql,e)}var Yl=i(`ZodCUID`,(e,t)=>{gr.init(e,t),M.init(e,t)});function Xl(e){return os(Yl,e)}var Zl=i(`ZodCUID2`,(e,t)=>{_r.init(e,t),M.init(e,t)});function Ql(e){return ss(Zl,e)}var $l=i(`ZodULID`,(e,t)=>{vr.init(e,t),M.init(e,t)});function eu(e){return cs($l,e)}var tu=i(`ZodXID`,(e,t)=>{yr.init(e,t),M.init(e,t)});function nu(e){return ls(tu,e)}var ru=i(`ZodKSUID`,(e,t)=>{br.init(e,t),M.init(e,t)});function iu(e){return us(ru,e)}var au=i(`ZodIPv4`,(e,t)=>{Tr.init(e,t),M.init(e,t)});function ou(e){return ds(au,e)}var su=i(`ZodMAC`,(e,t)=>{Dr.init(e,t),M.init(e,t)});function cu(e){return ps(su,e)}var lu=i(`ZodIPv6`,(e,t)=>{Er.init(e,t),M.init(e,t)});function uu(e){return fs(lu,e)}var du=i(`ZodCIDRv4`,(e,t)=>{Or.init(e,t),M.init(e,t)});function fu(e){return ms(du,e)}var pu=i(`ZodCIDRv6`,(e,t)=>{kr.init(e,t),M.init(e,t)});function mu(e){return hs(pu,e)}var hu=i(`ZodBase64`,(e,t)=>{jr.init(e,t),M.init(e,t)});function gu(e){return gs(hu,e)}var _u=i(`ZodBase64URL`,(e,t)=>{Nr.init(e,t),M.init(e,t)});function vu(e){return _s(_u,e)}var yu=i(`ZodE164`,(e,t)=>{Pr.init(e,t),M.init(e,t)});function bu(e){return vs(yu,e)}var xu=i(`ZodJWT`,(e,t)=>{Ir.init(e,t),M.init(e,t)});function Su(e){return ys(xu,e)}var Cu=i(`ZodCustomStringFormat`,(e,t)=>{Lr.init(e,t),M.init(e,t)});function wu(e,t,n={}){return $c(Cu,e,t,n)}function Tu(e){return $c(Cu,`hostname`,nn,e)}function Eu(e){return $c(Cu,`hex`,bn,e)}function Du(e,t){let n=`${e}_${t?.enc??`hex`}`,r=Dt[n];if(!r)throw Error(`Unrecognized hash format: ${n}`);return $c(Cu,n,r,t)}var Ou=i(`ZodNumber`,(e,t)=>{Rr.init(e,t),A.init(e,t),e.gt=(t,n)=>e.check(Xs(t,n)),e.gte=(t,n)=>e.check(D(t,n)),e.min=(t,n)=>e.check(D(t,n)),e.lt=(t,n)=>e.check(Js(t,n)),e.lte=(t,n)=>e.check(Ys(t,n)),e.max=(t,n)=>e.check(Ys(t,n)),e.int=t=>e.check(Au(t)),e.safe=t=>e.check(Au(t)),e.positive=t=>e.check(Xs(0,t)),e.nonnegative=t=>e.check(D(0,t)),e.negative=t=>e.check(Js(0,t)),e.nonpositive=t=>e.check(Ys(0,t)),e.multipleOf=(t,n)=>e.check(tc(t,n)),e.step=(t,n)=>e.check(tc(t,n)),e.finite=()=>e;let n=e._zod.bag;e.minValue=Math.max(n.minimum??-1/0,n.exclusiveMinimum??-1/0)??null,e.maxValue=Math.min(n.maximum??1/0,n.exclusiveMaximum??1/0)??null,e.isInt=(n.format??``).includes(`int`)||Number.isSafeInteger(n.multipleOf??.5),e.isFinite=!0,e.format=n.format??null});function N(e){return Ts(Ou,e)}var ku=i(`ZodNumberFormat`,(e,t)=>{zr.init(e,t),Ou.init(e,t)});function Au(e){return Ds(ku,e)}function ju(e){return Os(ku,e)}function Mu(e){return ks(ku,e)}function Nu(e){return As(ku,e)}function Pu(e){return js(ku,e)}var Fu=i(`ZodBoolean`,(e,t)=>{Br.init(e,t),A.init(e,t)});function P(e){return Ms(Fu,e)}var Iu=i(`ZodBigInt`,(e,t)=>{Vr.init(e,t),A.init(e,t),e.gte=(t,n)=>e.check(D(t,n)),e.min=(t,n)=>e.check(D(t,n)),e.gt=(t,n)=>e.check(Xs(t,n)),e.gte=(t,n)=>e.check(D(t,n)),e.min=(t,n)=>e.check(D(t,n)),e.lt=(t,n)=>e.check(Js(t,n)),e.lte=(t,n)=>e.check(Ys(t,n)),e.max=(t,n)=>e.check(Ys(t,n)),e.positive=t=>e.check(Xs(BigInt(0),t)),e.negative=t=>e.check(Js(BigInt(0),t)),e.nonpositive=t=>e.check(Ys(BigInt(0),t)),e.nonnegative=t=>e.check(D(BigInt(0),t)),e.multipleOf=(t,n)=>e.check(tc(t,n));let n=e._zod.bag;e.minValue=n.minimum??null,e.maxValue=n.maximum??null,e.format=n.format??null});function Lu(e){return Ps(Iu,e)}var Ru=i(`ZodBigIntFormat`,(e,t)=>{Hr.init(e,t),Iu.init(e,t)});function zu(e){return Is(Ru,e)}function Bu(e){return Ls(Ru,e)}var Vu=i(`ZodSymbol`,(e,t)=>{Ur.init(e,t),A.init(e,t)});function Hu(e){return Rs(Vu,e)}var Uu=i(`ZodUndefined`,(e,t)=>{Wr.init(e,t),A.init(e,t)});function Wu(e){return zs(Uu,e)}var Gu=i(`ZodNull`,(e,t)=>{Gr.init(e,t),A.init(e,t)});function Ku(e){return Bs(Gu,e)}var qu=i(`ZodAny`,(e,t)=>{Kr.init(e,t),A.init(e,t)});function Ju(){return Vs(qu)}var Yu=i(`ZodUnknown`,(e,t)=>{qr.init(e,t),A.init(e,t)});function F(){return Hs(Yu)}var Xu=i(`ZodNever`,(e,t)=>{Jr.init(e,t),A.init(e,t)});function Zu(e){return Us(Xu,e)}var Qu=i(`ZodVoid`,(e,t)=>{Yr.init(e,t),A.init(e,t)});function $u(e){return Ws(Qu,e)}var ed=i(`ZodDate`,(e,t)=>{Xr.init(e,t),A.init(e,t),e.min=(t,n)=>e.check(D(t,n)),e.max=(t,n)=>e.check(Ys(t,n));let n=e._zod.bag;e.minDate=n.minimum?new Date(n.minimum):null,e.maxDate=n.maximum?new Date(n.maximum):null});function td(e){return Gs(ed,e)}var nd=i(`ZodArray`,(e,t)=>{Qr.init(e,t),A.init(e,t),e.element=t.element,e.min=(t,n)=>e.check(oc(t,n)),e.nonempty=t=>e.check(oc(1,t)),e.max=(t,n)=>e.check(ac(t,n)),e.length=(t,n)=>e.check(sc(t,n)),e.unwrap=()=>e.element});function I(e,t){return Sc(nd,e,t)}function rd(e){let t=e._zod.def.shape;return V(Object.keys(t))}var id=i(`ZodObject`,(e,t)=>{ri.init(e,t),A.init(e,t),y(e,`shape`,()=>t.shape),e.keyof=()=>V(Object.keys(e._zod.def.shape)),e.catchall=t=>e.clone({...e._zod.def,catchall:t}),e.passthrough=()=>e.clone({...e._zod.def,catchall:F()}),e.loose=()=>e.clone({...e._zod.def,catchall:F()}),e.strict=()=>e.clone({...e._zod.def,catchall:Zu()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=t=>Ae(e,t),e.safeExtend=t=>je(e,t),e.merge=t=>Me(e,t),e.pick=t=>Oe(e,t),e.omit=t=>ke(e,t),e.partial=(...t)=>Ne(Ed,e,t[0]),e.required=(...t)=>Pe(Pd,e,t[0])});function L(e,t){return new id({type:`object`,shape:e??{},...x(t)})}function ad(e,t){return new id({type:`object`,shape:e,catchall:Zu(),...x(t)})}function R(e,t){return new id({type:`object`,shape:e,catchall:F(),...x(t)})}var od=i(`ZodUnion`,(e,t)=>{ai.init(e,t),A.init(e,t),e.options=t.options});function z(e,t){return new od({type:`union`,options:e,...x(t)})}var sd=i(`ZodDiscriminatedUnion`,(e,t)=>{od.init(e,t),oi.init(e,t)});function cd(e,t,n){return new sd({type:`union`,options:t,discriminator:e,...x(n)})}var ld=i(`ZodIntersection`,(e,t)=>{si.init(e,t),A.init(e,t)});function ud(e,t){return new ld({type:`intersection`,left:e,right:t})}var dd=i(`ZodTuple`,(e,t)=>{ui.init(e,t),A.init(e,t),e.rest=t=>e.clone({...e._zod.def,rest:t})});function fd(e,t,n){let r=t instanceof T;return new dd({type:`tuple`,items:e,rest:r?t:null,...x(r?n:t)})}var pd=i(`ZodRecord`,(e,t)=>{fi.init(e,t),A.init(e,t),e.keyType=t.keyType,e.valueType=t.valueType});function B(e,t,n){return new pd({type:`record`,keyType:e,valueType:t,...x(n)})}function md(e,t,n){let r=b(e);return r._zod.values=void 0,new pd({type:`record`,keyType:r,valueType:t,...x(n)})}var hd=i(`ZodMap`,(e,t)=>{pi.init(e,t),A.init(e,t),e.keyType=t.keyType,e.valueType=t.valueType});function gd(e,t,n){return new hd({type:`map`,keyType:e,valueType:t,...x(n)})}var _d=i(`ZodSet`,(e,t)=>{hi.init(e,t),A.init(e,t),e.min=(...t)=>e.check(rc(...t)),e.nonempty=t=>e.check(rc(1,t)),e.max=(...t)=>e.check(nc(...t)),e.size=(...t)=>e.check(ic(...t))});function vd(e,t){return new _d({type:`set`,valueType:e,...x(t)})}var yd=i(`ZodEnum`,(e,t)=>{_i.init(e,t),A.init(e,t),e.enum=t.entries,e.options=Object.values(t.entries);let n=new Set(Object.keys(t.entries));e.extract=(e,r)=>{let i={};for(let r of e)if(n.has(r))i[r]=t.entries[r];else throw Error(`Key ${r} not found in enum`);return new yd({...t,checks:[],...x(r),entries:i})},e.exclude=(e,r)=>{let i={...t.entries};for(let t of e)if(n.has(t))delete i[t];else throw Error(`Key ${t} not found in enum`);return new yd({...t,checks:[],...x(r),entries:i})}});function V(e,t){return new yd({type:`enum`,entries:Array.isArray(e)?Object.fromEntries(e.map(e=>[e,e])):e,...x(t)})}function bd(e,t){return new yd({type:`enum`,entries:e,...x(t)})}var xd=i(`ZodLiteral`,(e,t)=>{vi.init(e,t),A.init(e,t),e.values=new Set(t.values),Object.defineProperty(e,`value`,{get(){if(t.values.length>1)throw Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});function H(e,t){return new xd({type:`literal`,values:Array.isArray(e)?e:[e],...x(t)})}var Sd=i(`ZodFile`,(e,t)=>{yi.init(e,t),A.init(e,t),e.min=(t,n)=>e.check(rc(t,n)),e.max=(t,n)=>e.check(nc(t,n)),e.mime=(t,n)=>e.check(hc(Array.isArray(t)?t:[t],n))});function Cd(e){return Nc(Sd,e)}var wd=i(`ZodTransform`,(e,t)=>{bi.init(e,t),A.init(e,t),e._zod.parse=(n,r)=>{if(r.direction===`backward`)throw new s(e.constructor.name);n.addIssue=r=>{if(typeof r==`string`)n.issues.push(Ve(r,n.value,t));else{let t=r;t.fatal&&(t.continue=!1),t.code??=`custom`,t.input??=n.value,t.inst??=e,n.issues.push(Ve(t))}};let i=t.transform(n.value,n);return i instanceof Promise?i.then(e=>(n.value=e,n)):(n.value=i,n)}});function Td(e){return new wd({type:`transform`,transform:e})}var Ed=i(`ZodOptional`,(e,t)=>{Si.init(e,t),A.init(e,t),e.unwrap=()=>e._zod.def.innerType});function U(e){return new Ed({type:`optional`,innerType:e})}var Dd=i(`ZodNullable`,(e,t)=>{Ci.init(e,t),A.init(e,t),e.unwrap=()=>e._zod.def.innerType});function Od(e){return new Dd({type:`nullable`,innerType:e})}function kd(e){return U(Od(e))}var Ad=i(`ZodDefault`,(e,t)=>{wi.init(e,t),A.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function jd(e,t){return new Ad({type:`default`,innerType:e,get defaultValue(){return typeof t==`function`?t():ve(t)}})}var Md=i(`ZodPrefault`,(e,t)=>{Ei.init(e,t),A.init(e,t),e.unwrap=()=>e._zod.def.innerType});function Nd(e,t){return new Md({type:`prefault`,innerType:e,get defaultValue(){return typeof t==`function`?t():ve(t)}})}var Pd=i(`ZodNonOptional`,(e,t)=>{Di.init(e,t),A.init(e,t),e.unwrap=()=>e._zod.def.innerType});function Fd(e,t){return new Pd({type:`nonoptional`,innerType:e,...x(t)})}var Id=i(`ZodSuccess`,(e,t)=>{ki.init(e,t),A.init(e,t),e.unwrap=()=>e._zod.def.innerType});function Ld(e){return new Id({type:`success`,innerType:e})}var Rd=i(`ZodCatch`,(e,t)=>{Ai.init(e,t),A.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function zd(e,t){return new Rd({type:`catch`,innerType:e,catchValue:typeof t==`function`?t:()=>t})}var Bd=i(`ZodNaN`,(e,t)=>{ji.init(e,t),A.init(e,t)});function Vd(e){return qs(Bd,e)}var Hd=i(`ZodPipe`,(e,t)=>{Mi.init(e,t),A.init(e,t),e.in=t.in,e.out=t.out});function Ud(e,t){return new Hd({type:`pipe`,in:e,out:t})}var Wd=i(`ZodCodec`,(e,t)=>{Hd.init(e,t),Pi.init(e,t)});function Gd(e,t,n){return new Wd({type:`pipe`,in:e,out:t,transform:n.decode,reverseTransform:n.encode})}var Kd=i(`ZodReadonly`,(e,t)=>{Li.init(e,t),A.init(e,t),e.unwrap=()=>e._zod.def.innerType});function qd(e){return new Kd({type:`readonly`,innerType:e})}var Jd=i(`ZodTemplateLiteral`,(e,t)=>{zi.init(e,t),A.init(e,t)});function Yd(e,t){return new Jd({type:`template_literal`,parts:e,...x(t)})}var Xd=i(`ZodLazy`,(e,t)=>{Hi.init(e,t),A.init(e,t),e.unwrap=()=>e._zod.def.getter()});function Zd(e){return new Xd({type:`lazy`,getter:e})}var Qd=i(`ZodPromise`,(e,t)=>{Vi.init(e,t),A.init(e,t),e.unwrap=()=>e._zod.def.innerType});function $d(e){return new Qd({type:`promise`,innerType:e})}var ef=i(`ZodFunction`,(e,t)=>{Bi.init(e,t),A.init(e,t)});function tf(e){return new ef({type:`function`,input:Array.isArray(e?.input)?fd(e?.input):e?.input??I(F()),output:e?.output??F()})}var nf=i(`ZodCustom`,(e,t)=>{Ui.init(e,t),A.init(e,t)});function rf(e){let t=new w({check:`custom`});return t._zod.check=e,t}function af(e,t){return Kc(nf,e??(()=>!0),t)}function of(e,t={}){return qc(nf,e,t)}function sf(e){return Jc(e)}var cf=Xc,lf=Zc;function uf(e,t={error:`Input not instance of ${e.name}`}){let n=new nf({type:`custom`,check:`custom`,fn:t=>t instanceof e,abort:!0,...x(t)});return n._zod.bag.Class=e,n}var df=(...e)=>Qc({Codec:Wd,Boolean:Fu,String:Ml},...e);function ff(e){let t=Zd(()=>z([j(e),N(),P(),Ku(),I(t),B(j(),t)]));return t}function pf(e,t){return Ud(Td(e),t)}var mf={invalid_type:`invalid_type`,too_big:`too_big`,too_small:`too_small`,invalid_format:`invalid_format`,not_multiple_of:`not_multiple_of`,unrecognized_keys:`unrecognized_keys`,invalid_union:`invalid_union`,invalid_key:`invalid_key`,invalid_element:`invalid_element`,invalid_value:`invalid_value`,custom:`custom`};function hf(e){l({customError:e})}function gf(){return l().customError}var _f;(function(e){})(_f||={});var vf=t({bigint:()=>Sf,boolean:()=>xf,date:()=>Cf,number:()=>bf,string:()=>yf});function yf(e){return Xo(Ml,e)}function bf(e){return Es(Ou,e)}function xf(e){return Ns(Fu,e)}function Sf(e){return Fs(Iu,e)}function Cf(e){return Ks(ed,e)}var wf=t({$brand:()=>a,$input:()=>Go,$output:()=>Wo,NEVER:()=>r,TimePrecision:()=>bs,ZodAny:()=>qu,ZodArray:()=>nd,ZodBase64:()=>hu,ZodBase64URL:()=>_u,ZodBigInt:()=>Iu,ZodBigIntFormat:()=>Ru,ZodBoolean:()=>Fu,ZodCIDRv4:()=>du,ZodCIDRv6:()=>pu,ZodCUID:()=>Yl,ZodCUID2:()=>Zl,ZodCatch:()=>Rd,ZodCodec:()=>Wd,ZodCustom:()=>nf,ZodCustomStringFormat:()=>Cu,ZodDate:()=>ed,ZodDefault:()=>Ad,ZodDiscriminatedUnion:()=>sd,ZodE164:()=>yu,ZodEmail:()=>Nl,ZodEmoji:()=>Gl,ZodEnum:()=>yd,ZodError:()=>vl,ZodFile:()=>Sd,ZodFirstPartyTypeKind:()=>_f,ZodFunction:()=>ef,ZodGUID:()=>Fl,ZodIPv4:()=>au,ZodIPv6:()=>lu,ZodISODate:()=>dl,ZodISODateTime:()=>ll,ZodISODuration:()=>hl,ZodISOTime:()=>pl,ZodIntersection:()=>ld,ZodIssueCode:()=>mf,ZodJWT:()=>xu,ZodKSUID:()=>ru,ZodLazy:()=>Xd,ZodLiteral:()=>xd,ZodMAC:()=>su,ZodMap:()=>hd,ZodNaN:()=>Bd,ZodNanoID:()=>ql,ZodNever:()=>Xu,ZodNonOptional:()=>Pd,ZodNull:()=>Gu,ZodNullable:()=>Dd,ZodNumber:()=>Ou,ZodNumberFormat:()=>ku,ZodObject:()=>id,ZodOptional:()=>Ed,ZodPipe:()=>Hd,ZodPrefault:()=>Md,ZodPromise:()=>Qd,ZodReadonly:()=>Kd,ZodRealError:()=>k,ZodRecord:()=>pd,ZodSet:()=>_d,ZodString:()=>Ml,ZodStringFormat:()=>M,ZodSuccess:()=>Id,ZodSymbol:()=>Vu,ZodTemplateLiteral:()=>Jd,ZodTransform:()=>wd,ZodTuple:()=>dd,ZodType:()=>A,ZodULID:()=>$l,ZodURL:()=>Hl,ZodUUID:()=>Ll,ZodUndefined:()=>Uu,ZodUnion:()=>od,ZodUnknown:()=>Yu,ZodVoid:()=>Qu,ZodXID:()=>tu,_ZodString:()=>jl,_default:()=>jd,_function:()=>tf,any:()=>Ju,array:()=>I,base64:()=>gu,base64url:()=>vu,bigint:()=>Lu,boolean:()=>P,catch:()=>zd,check:()=>rf,cidrv4:()=>fu,cidrv6:()=>mu,clone:()=>b,codec:()=>Gd,coerce:()=>vf,config:()=>l,core:()=>rl,cuid:()=>Xl,cuid2:()=>Ql,custom:()=>af,date:()=>td,decode:()=>wl,decodeAsync:()=>El,describe:()=>cf,discriminatedUnion:()=>cd,e164:()=>bu,email:()=>Pl,emoji:()=>Kl,encode:()=>Cl,encodeAsync:()=>Tl,endsWith:()=>pc,enum:()=>V,file:()=>Cd,flattenError:()=>Qe,float32:()=>ju,float64:()=>Mu,formatError:()=>$e,function:()=>tf,getErrorMap:()=>gf,globalRegistry:()=>Jo,gt:()=>Xs,gte:()=>D,guid:()=>Il,hash:()=>Du,hex:()=>Eu,hostname:()=>Tu,httpUrl:()=>Wl,includes:()=>dc,instanceof:()=>uf,int:()=>Au,int32:()=>Nu,int64:()=>zu,intersection:()=>ud,ipv4:()=>ou,ipv6:()=>uu,iso:()=>cl,json:()=>ff,jwt:()=>Su,keyof:()=>rd,ksuid:()=>iu,lazy:()=>Zd,length:()=>sc,literal:()=>H,locales:()=>Ho,looseObject:()=>R,lowercase:()=>lc,lt:()=>Js,lte:()=>Ys,mac:()=>cu,map:()=>gd,maxLength:()=>ac,maxSize:()=>nc,meta:()=>lf,mime:()=>hc,minLength:()=>oc,minSize:()=>rc,multipleOf:()=>tc,nan:()=>Vd,nanoid:()=>Jl,nativeEnum:()=>bd,negative:()=>Qs,never:()=>Zu,nonnegative:()=>ec,nonoptional:()=>Fd,nonpositive:()=>$s,normalize:()=>_c,null:()=>Ku,nullable:()=>Od,nullish:()=>kd,number:()=>N,object:()=>L,optional:()=>U,overwrite:()=>gc,parse:()=>yl,parseAsync:()=>bl,partialRecord:()=>md,pipe:()=>Ud,positive:()=>Zs,prefault:()=>Nd,preprocess:()=>pf,prettifyError:()=>nt,promise:()=>$d,property:()=>mc,readonly:()=>qd,record:()=>B,refine:()=>of,regex:()=>cc,regexes:()=>Dt,registry:()=>qo,safeDecode:()=>Ol,safeDecodeAsync:()=>Al,safeEncode:()=>Dl,safeEncodeAsync:()=>kl,safeParse:()=>xl,safeParseAsync:()=>Sl,set:()=>vd,setErrorMap:()=>hf,size:()=>ic,slugify:()=>xc,startsWith:()=>fc,strictObject:()=>ad,string:()=>j,stringFormat:()=>wu,stringbool:()=>df,success:()=>Ld,superRefine:()=>sf,symbol:()=>Hu,templateLiteral:()=>Yd,toJSONSchema:()=>tl,toLowerCase:()=>yc,toUpperCase:()=>bc,transform:()=>Td,treeifyError:()=>et,trim:()=>vc,tuple:()=>fd,uint32:()=>Pu,uint64:()=>Bu,ulid:()=>eu,undefined:()=>Wu,union:()=>z,unknown:()=>F,uppercase:()=>uc,url:()=>Ul,util:()=>u,uuid:()=>Rl,uuidv4:()=>zl,uuidv6:()=>Bl,uuidv7:()=>Vl,void:()=>$u,xid:()=>nu});l(da());var Tf=t({$brand:()=>a,$input:()=>Go,$output:()=>Wo,NEVER:()=>r,TimePrecision:()=>bs,ZodAny:()=>qu,ZodArray:()=>nd,ZodBase64:()=>hu,ZodBase64URL:()=>_u,ZodBigInt:()=>Iu,ZodBigIntFormat:()=>Ru,ZodBoolean:()=>Fu,ZodCIDRv4:()=>du,ZodCIDRv6:()=>pu,ZodCUID:()=>Yl,ZodCUID2:()=>Zl,ZodCatch:()=>Rd,ZodCodec:()=>Wd,ZodCustom:()=>nf,ZodCustomStringFormat:()=>Cu,ZodDate:()=>ed,ZodDefault:()=>Ad,ZodDiscriminatedUnion:()=>sd,ZodE164:()=>yu,ZodEmail:()=>Nl,ZodEmoji:()=>Gl,ZodEnum:()=>yd,ZodError:()=>vl,ZodFile:()=>Sd,ZodFirstPartyTypeKind:()=>_f,ZodFunction:()=>ef,ZodGUID:()=>Fl,ZodIPv4:()=>au,ZodIPv6:()=>lu,ZodISODate:()=>dl,ZodISODateTime:()=>ll,ZodISODuration:()=>hl,ZodISOTime:()=>pl,ZodIntersection:()=>ld,ZodIssueCode:()=>mf,ZodJWT:()=>xu,ZodKSUID:()=>ru,ZodLazy:()=>Xd,ZodLiteral:()=>xd,ZodMAC:()=>su,ZodMap:()=>hd,ZodNaN:()=>Bd,ZodNanoID:()=>ql,ZodNever:()=>Xu,ZodNonOptional:()=>Pd,ZodNull:()=>Gu,ZodNullable:()=>Dd,ZodNumber:()=>Ou,ZodNumberFormat:()=>ku,ZodObject:()=>id,ZodOptional:()=>Ed,ZodPipe:()=>Hd,ZodPrefault:()=>Md,ZodPromise:()=>Qd,ZodReadonly:()=>Kd,ZodRealError:()=>k,ZodRecord:()=>pd,ZodSet:()=>_d,ZodString:()=>Ml,ZodStringFormat:()=>M,ZodSuccess:()=>Id,ZodSymbol:()=>Vu,ZodTemplateLiteral:()=>Jd,ZodTransform:()=>wd,ZodTuple:()=>dd,ZodType:()=>A,ZodULID:()=>$l,ZodURL:()=>Hl,ZodUUID:()=>Ll,ZodUndefined:()=>Uu,ZodUnion:()=>od,ZodUnknown:()=>Yu,ZodVoid:()=>Qu,ZodXID:()=>tu,_ZodString:()=>jl,_default:()=>jd,_function:()=>tf,any:()=>Ju,array:()=>I,base64:()=>gu,base64url:()=>vu,bigint:()=>Lu,boolean:()=>P,catch:()=>zd,check:()=>rf,cidrv4:()=>fu,cidrv6:()=>mu,clone:()=>b,codec:()=>Gd,coerce:()=>vf,config:()=>l,core:()=>rl,cuid:()=>Xl,cuid2:()=>Ql,custom:()=>af,date:()=>td,decode:()=>wl,decodeAsync:()=>El,describe:()=>cf,discriminatedUnion:()=>cd,e164:()=>bu,email:()=>Pl,emoji:()=>Kl,encode:()=>Cl,encodeAsync:()=>Tl,endsWith:()=>pc,enum:()=>V,file:()=>Cd,flattenError:()=>Qe,float32:()=>ju,float64:()=>Mu,formatError:()=>$e,function:()=>tf,getErrorMap:()=>gf,globalRegistry:()=>Jo,gt:()=>Xs,gte:()=>D,guid:()=>Il,hash:()=>Du,hex:()=>Eu,hostname:()=>Tu,httpUrl:()=>Wl,includes:()=>dc,instanceof:()=>uf,int:()=>Au,int32:()=>Nu,int64:()=>zu,intersection:()=>ud,ipv4:()=>ou,ipv6:()=>uu,iso:()=>cl,json:()=>ff,jwt:()=>Su,keyof:()=>rd,ksuid:()=>iu,lazy:()=>Zd,length:()=>sc,literal:()=>H,locales:()=>Ho,looseObject:()=>R,lowercase:()=>lc,lt:()=>Js,lte:()=>Ys,mac:()=>cu,map:()=>gd,maxLength:()=>ac,maxSize:()=>nc,meta:()=>lf,mime:()=>hc,minLength:()=>oc,minSize:()=>rc,multipleOf:()=>tc,nan:()=>Vd,nanoid:()=>Jl,nativeEnum:()=>bd,negative:()=>Qs,never:()=>Zu,nonnegative:()=>ec,nonoptional:()=>Fd,nonpositive:()=>$s,normalize:()=>_c,null:()=>Ku,nullable:()=>Od,nullish:()=>kd,number:()=>N,object:()=>L,optional:()=>U,overwrite:()=>gc,parse:()=>yl,parseAsync:()=>bl,partialRecord:()=>md,pipe:()=>Ud,positive:()=>Zs,prefault:()=>Nd,preprocess:()=>pf,prettifyError:()=>nt,promise:()=>$d,property:()=>mc,readonly:()=>qd,record:()=>B,refine:()=>of,regex:()=>cc,regexes:()=>Dt,registry:()=>qo,safeDecode:()=>Ol,safeDecodeAsync:()=>Al,safeEncode:()=>Dl,safeEncodeAsync:()=>kl,safeParse:()=>xl,safeParseAsync:()=>Sl,set:()=>vd,setErrorMap:()=>hf,size:()=>ic,slugify:()=>xc,startsWith:()=>fc,strictObject:()=>ad,string:()=>j,stringFormat:()=>wu,stringbool:()=>df,success:()=>Ld,superRefine:()=>sf,symbol:()=>Hu,templateLiteral:()=>Yd,toJSONSchema:()=>tl,toLowerCase:()=>yc,toUpperCase:()=>bc,transform:()=>Td,treeifyError:()=>et,trim:()=>vc,tuple:()=>fd,uint32:()=>Pu,uint64:()=>Bu,ulid:()=>eu,undefined:()=>Wu,union:()=>z,unknown:()=>F,uppercase:()=>uc,url:()=>Ul,util:()=>u,uuid:()=>Rl,uuidv4:()=>zl,uuidv6:()=>Bl,uuidv7:()=>Vl,void:()=>$u,xid:()=>nu,z:()=>wf}),Ef=`io.modelcontextprotocol/related-task`,W=af(e=>e!==null&&(typeof e==`object`||typeof e==`function`)),Df=z([j(),N().int()]),Of=j();R({ttl:N().optional(),pollInterval:N().optional()});var kf=L({ttl:N().optional()}),Af=L({taskId:j()}),jf=R({progressToken:Df.optional(),[Ef]:Af.optional()}),G=L({_meta:jf.optional()}),Mf=G.extend({task:kf.optional()}),Nf=e=>Mf.safeParse(e).success,K=L({method:j(),params:G.loose().optional()}),q=L({_meta:jf.optional()}),Pf=L({method:j(),params:q.loose().optional()}),J=R({_meta:jf.optional()}),Ff=z([j(),N().int()]),If=L({jsonrpc:H(`2.0`),id:Ff,...K.shape}).strict(),Lf=e=>If.safeParse(e).success,Rf=L({jsonrpc:H(`2.0`),...Pf.shape}).strict(),zf=e=>Rf.safeParse(e).success,Bf=L({jsonrpc:H(`2.0`),id:Ff,result:J}).strict(),Vf=e=>Bf.safeParse(e).success,Y;(function(e){e[e.ConnectionClosed=-32e3]=`ConnectionClosed`,e[e.RequestTimeout=-32001]=`RequestTimeout`,e[e.ParseError=-32700]=`ParseError`,e[e.InvalidRequest=-32600]=`InvalidRequest`,e[e.MethodNotFound=-32601]=`MethodNotFound`,e[e.InvalidParams=-32602]=`InvalidParams`,e[e.InternalError=-32603]=`InternalError`,e[e.UrlElicitationRequired=-32042]=`UrlElicitationRequired`})(Y||={});var Hf=L({jsonrpc:H(`2.0`),id:Ff.optional(),error:L({code:N().int(),message:j(),data:F().optional()})}).strict(),Uf=e=>Hf.safeParse(e).success,Wf=z([If,Rf,Bf,Hf]);z([Bf,Hf]);var Gf=J.strict(),Kf=q.extend({requestId:Ff.optional(),reason:j().optional()}),qf=Pf.extend({method:H(`notifications/cancelled`),params:Kf}),Jf=L({icons:I(L({src:j(),mimeType:j().optional(),sizes:I(j()).optional(),theme:V([`light`,`dark`]).optional()})).optional()}),Yf=L({name:j(),title:j().optional()}),Xf=Yf.extend({...Yf.shape,...Jf.shape,version:j(),websiteUrl:j().optional(),description:j().optional()}),Zf=pf(e=>e&&typeof e==`object`&&!Array.isArray(e)&&Object.keys(e).length===0?{form:{}}:e,ud(L({form:ud(L({applyDefaults:P().optional()}),B(j(),F())).optional(),url:W.optional()}),B(j(),F()).optional())),Qf=R({list:W.optional(),cancel:W.optional(),requests:R({sampling:R({createMessage:W.optional()}).optional(),elicitation:R({create:W.optional()}).optional()}).optional()}),$f=R({list:W.optional(),cancel:W.optional(),requests:R({tools:R({call:W.optional()}).optional()}).optional()}),ep=L({experimental:B(j(),W).optional(),sampling:L({context:W.optional(),tools:W.optional()}).optional(),elicitation:Zf.optional(),roots:L({listChanged:P().optional()}).optional(),tasks:Qf.optional(),extensions:B(j(),W).optional()}),tp=G.extend({protocolVersion:j(),capabilities:ep,clientInfo:Xf}),np=K.extend({method:H(`initialize`),params:tp}),rp=L({experimental:B(j(),W).optional(),logging:W.optional(),completions:W.optional(),prompts:L({listChanged:P().optional()}).optional(),resources:L({subscribe:P().optional(),listChanged:P().optional()}).optional(),tools:L({listChanged:P().optional()}).optional(),tasks:$f.optional(),extensions:B(j(),W).optional()}),ip=J.extend({protocolVersion:j(),capabilities:rp,serverInfo:Xf,instructions:j().optional()}),ap=Pf.extend({method:H(`notifications/initialized`),params:q.optional()}),op=K.extend({method:H(`ping`),params:G.optional()}),sp=L({progress:N(),total:U(N()),message:U(j())}),cp=L({...q.shape,...sp.shape,progressToken:Df}),lp=Pf.extend({method:H(`notifications/progress`),params:cp}),up=G.extend({cursor:Of.optional()}),dp=K.extend({params:up.optional()}),fp=J.extend({nextCursor:Of.optional()}),pp=V([`working`,`input_required`,`completed`,`failed`,`cancelled`]),mp=L({taskId:j(),status:pp,ttl:z([N(),Ku()]),createdAt:j(),lastUpdatedAt:j(),pollInterval:U(N()),statusMessage:U(j())}),hp=J.extend({task:mp}),gp=q.merge(mp),_p=Pf.extend({method:H(`notifications/tasks/status`),params:gp}),vp=K.extend({method:H(`tasks/get`),params:G.extend({taskId:j()})}),yp=J.merge(mp),bp=K.extend({method:H(`tasks/result`),params:G.extend({taskId:j()})});J.loose();var xp=dp.extend({method:H(`tasks/list`)}),Sp=fp.extend({tasks:I(mp)}),Cp=K.extend({method:H(`tasks/cancel`),params:G.extend({taskId:j()})}),wp=J.merge(mp),Tp=L({uri:j(),mimeType:U(j()),_meta:B(j(),F()).optional()}),Ep=Tp.extend({text:j()}),Dp=j().refine(e=>{try{return atob(e),!0}catch{return!1}},{message:`Invalid Base64 string`}),Op=Tp.extend({blob:Dp}),kp=V([`user`,`assistant`]),Ap=L({audience:I(kp).optional(),priority:N().min(0).max(1).optional(),lastModified:ul({offset:!0}).optional()}),jp=L({...Yf.shape,...Jf.shape,uri:j(),description:U(j()),mimeType:U(j()),size:U(N()),annotations:Ap.optional(),_meta:U(R({}))}),Mp=L({...Yf.shape,...Jf.shape,uriTemplate:j(),description:U(j()),mimeType:U(j()),annotations:Ap.optional(),_meta:U(R({}))}),Np=dp.extend({method:H(`resources/list`)}),Pp=fp.extend({resources:I(jp)}),Fp=dp.extend({method:H(`resources/templates/list`)}),Ip=fp.extend({resourceTemplates:I(Mp)}),Lp=G.extend({uri:j()}),Rp=Lp,zp=K.extend({method:H(`resources/read`),params:Rp}),Bp=J.extend({contents:I(z([Ep,Op]))}),Vp=Pf.extend({method:H(`notifications/resources/list_changed`),params:q.optional()}),Hp=Lp,Up=K.extend({method:H(`resources/subscribe`),params:Hp}),Wp=Lp,Gp=K.extend({method:H(`resources/unsubscribe`),params:Wp}),Kp=q.extend({uri:j()}),qp=Pf.extend({method:H(`notifications/resources/updated`),params:Kp}),Jp=L({name:j(),description:U(j()),required:U(P())}),Yp=L({...Yf.shape,...Jf.shape,description:U(j()),arguments:U(I(Jp)),_meta:U(R({}))}),Xp=dp.extend({method:H(`prompts/list`)}),Zp=fp.extend({prompts:I(Yp)}),Qp=G.extend({name:j(),arguments:B(j(),j()).optional()}),$p=K.extend({method:H(`prompts/get`),params:Qp}),em=L({type:H(`text`),text:j(),annotations:Ap.optional(),_meta:B(j(),F()).optional()}),tm=L({type:H(`image`),data:Dp,mimeType:j(),annotations:Ap.optional(),_meta:B(j(),F()).optional()}),nm=L({type:H(`audio`),data:Dp,mimeType:j(),annotations:Ap.optional(),_meta:B(j(),F()).optional()}),rm=L({type:H(`tool_use`),name:j(),id:j(),input:B(j(),F()),_meta:B(j(),F()).optional()}),im=L({type:H(`resource`),resource:z([Ep,Op]),annotations:Ap.optional(),_meta:B(j(),F()).optional()}),am=jp.extend({type:H(`resource_link`)}),om=z([em,tm,nm,am,im]),sm=L({role:kp,content:om}),cm=J.extend({description:j().optional(),messages:I(sm)}),lm=Pf.extend({method:H(`notifications/prompts/list_changed`),params:q.optional()}),um=L({title:j().optional(),readOnlyHint:P().optional(),destructiveHint:P().optional(),idempotentHint:P().optional(),openWorldHint:P().optional()}),dm=L({taskSupport:V([`required`,`optional`,`forbidden`]).optional()}),fm=L({...Yf.shape,...Jf.shape,description:j().optional(),inputSchema:L({type:H(`object`),properties:B(j(),W).optional(),required:I(j()).optional()}).catchall(F()),outputSchema:L({type:H(`object`),properties:B(j(),W).optional(),required:I(j()).optional()}).catchall(F()).optional(),annotations:um.optional(),execution:dm.optional(),_meta:B(j(),F()).optional()}),pm=dp.extend({method:H(`tools/list`)}),mm=fp.extend({tools:I(fm)}),hm=J.extend({content:I(om).default([]),structuredContent:B(j(),F()).optional(),isError:P().optional()});hm.or(J.extend({toolResult:F()}));var gm=Mf.extend({name:j(),arguments:B(j(),F()).optional()}),_m=K.extend({method:H(`tools/call`),params:gm}),vm=Pf.extend({method:H(`notifications/tools/list_changed`),params:q.optional()});L({autoRefresh:P().default(!0),debounceMs:N().int().nonnegative().default(300)});var ym=V([`debug`,`info`,`notice`,`warning`,`error`,`critical`,`alert`,`emergency`]),bm=G.extend({level:ym}),xm=K.extend({method:H(`logging/setLevel`),params:bm}),Sm=q.extend({level:ym,logger:j().optional(),data:F()}),Cm=Pf.extend({method:H(`notifications/message`),params:Sm}),wm=L({hints:I(L({name:j().optional()})).optional(),costPriority:N().min(0).max(1).optional(),speedPriority:N().min(0).max(1).optional(),intelligencePriority:N().min(0).max(1).optional()}),Tm=L({mode:V([`auto`,`required`,`none`]).optional()}),Em=L({type:H(`tool_result`),toolUseId:j().describe(`The unique identifier for the corresponding tool call.`),content:I(om).default([]),structuredContent:L({}).loose().optional(),isError:P().optional(),_meta:B(j(),F()).optional()}),Dm=cd(`type`,[em,tm,nm]),Om=cd(`type`,[em,tm,nm,rm,Em]),km=L({role:kp,content:z([Om,I(Om)]),_meta:B(j(),F()).optional()}),Am=Mf.extend({messages:I(km),modelPreferences:wm.optional(),systemPrompt:j().optional(),includeContext:V([`none`,`thisServer`,`allServers`]).optional(),temperature:N().optional(),maxTokens:N().int(),stopSequences:I(j()).optional(),metadata:W.optional(),tools:I(fm).optional(),toolChoice:Tm.optional()}),jm=K.extend({method:H(`sampling/createMessage`),params:Am}),Mm=J.extend({model:j(),stopReason:U(V([`endTurn`,`stopSequence`,`maxTokens`]).or(j())),role:kp,content:Dm}),Nm=J.extend({model:j(),stopReason:U(V([`endTurn`,`stopSequence`,`maxTokens`,`toolUse`]).or(j())),role:kp,content:z([Om,I(Om)])}),Pm=L({type:H(`boolean`),title:j().optional(),description:j().optional(),default:P().optional()}),Fm=L({type:H(`string`),title:j().optional(),description:j().optional(),minLength:N().optional(),maxLength:N().optional(),format:V([`email`,`uri`,`date`,`date-time`]).optional(),default:j().optional()}),Im=L({type:V([`number`,`integer`]),title:j().optional(),description:j().optional(),minimum:N().optional(),maximum:N().optional(),default:N().optional()}),Lm=L({type:H(`string`),title:j().optional(),description:j().optional(),enum:I(j()),default:j().optional()}),Rm=L({type:H(`string`),title:j().optional(),description:j().optional(),oneOf:I(L({const:j(),title:j()})),default:j().optional()}),zm=z([z([L({type:H(`string`),title:j().optional(),description:j().optional(),enum:I(j()),enumNames:I(j()).optional(),default:j().optional()}),z([Lm,Rm]),z([L({type:H(`array`),title:j().optional(),description:j().optional(),minItems:N().optional(),maxItems:N().optional(),items:L({type:H(`string`),enum:I(j())}),default:I(j()).optional()}),L({type:H(`array`),title:j().optional(),description:j().optional(),minItems:N().optional(),maxItems:N().optional(),items:L({anyOf:I(L({const:j(),title:j()}))}),default:I(j()).optional()})])]),Pm,Fm,Im]),Bm=z([Mf.extend({mode:H(`form`).optional(),message:j(),requestedSchema:L({type:H(`object`),properties:B(j(),zm),required:I(j()).optional()})}),Mf.extend({mode:H(`url`),message:j(),elicitationId:j(),url:j().url()})]),Vm=K.extend({method:H(`elicitation/create`),params:Bm}),Hm=q.extend({elicitationId:j()}),Um=Pf.extend({method:H(`notifications/elicitation/complete`),params:Hm}),Wm=J.extend({action:V([`accept`,`decline`,`cancel`]),content:pf(e=>e===null?void 0:e,B(j(),z([j(),N(),P(),I(j())])).optional())}),Gm=L({type:H(`ref/resource`),uri:j()}),Km=L({type:H(`ref/prompt`),name:j()}),qm=G.extend({ref:z([Km,Gm]),argument:L({name:j(),value:j()}),context:L({arguments:B(j(),j()).optional()}).optional()}),Jm=K.extend({method:H(`completion/complete`),params:qm}),Ym=J.extend({completion:R({values:I(j()).max(100),total:U(N().int()),hasMore:U(P())})}),Xm=L({uri:j().startsWith(`file://`),name:j().optional(),_meta:B(j(),F()).optional()}),Zm=K.extend({method:H(`roots/list`),params:G.optional()}),Qm=J.extend({roots:I(Xm)}),$m=Pf.extend({method:H(`notifications/roots/list_changed`),params:q.optional()});z([op,np,Jm,xm,$p,Xp,Np,Fp,zp,Up,Gp,_m,pm,vp,bp,xp,Cp]),z([qf,lp,ap,$m,_p]),z([Gf,Mm,Nm,Wm,Qm,yp,Sp,hp]),z([op,jm,Vm,Zm,vp,bp,xp,Cp]),z([qf,lp,Cm,qp,Vp,vm,lm,_p,Um]),z([Gf,ip,Ym,cm,Zp,Pp,Ip,Bp,hm,mm,yp,Sp,hp]);var X=class e extends Error{constructor(e,t,n){super(`MCP error ${e}: ${t}`),this.code=e,this.data=n,this.name=`McpError`}static fromError(t,n,r){if(t===Y.UrlElicitationRequired&&r){let e=r;if(e.elicitations)return new eh(e.elicitations,n)}return new e(t,n,r)}},eh=class extends X{constructor(e,t=`URL elicitation${e.length>1?`s`:``} required`){super(Y.UrlElicitationRequired,t,{elicitations:e})}get elicitations(){return this.data?.elicitations??[]}};function th(e){return e===`completed`||e===`failed`||e===`cancelled`}function nh(e){let t=ol(e)?.method;if(!t)throw Error(`Schema is missing a method literal`);let n=sl(t);if(typeof n!=`string`)throw Error(`Schema method literal must be a string`);return n}function rh(e,t){let n=al(e,t);if(!n.success)throw n.error;return n.data}var ih=class{constructor(e){this._options=e,this._requestMessageId=0,this._requestHandlers=new Map,this._requestHandlerAbortControllers=new Map,this._notificationHandlers=new Map,this._responseHandlers=new Map,this._progressHandlers=new Map,this._timeoutInfo=new Map,this._pendingDebouncedNotifications=new Set,this._taskProgressTokens=new Map,this._requestResolvers=new Map,this.setNotificationHandler(qf,e=>{this._oncancel(e)}),this.setNotificationHandler(lp,e=>{this._onprogress(e)}),this.setRequestHandler(op,e=>({})),this._taskStore=e?.taskStore,this._taskMessageQueue=e?.taskMessageQueue,this._taskStore&&(this.setRequestHandler(vp,async(e,t)=>{let n=await this._taskStore.getTask(e.params.taskId,t.sessionId);if(!n)throw new X(Y.InvalidParams,`Failed to retrieve task: Task not found`);return{...n}}),this.setRequestHandler(bp,async(e,t)=>{let n=async()=>{let r=e.params.taskId;if(this._taskMessageQueue){let e;for(;e=await this._taskMessageQueue.dequeue(r,t.sessionId);){if(e.type===`response`||e.type===`error`){let t=e.message,n=t.id,r=this._requestResolvers.get(n);if(r)if(this._requestResolvers.delete(n),e.type===`response`)r(t);else{let e=t;r(new X(e.error.code,e.error.message,e.error.data))}else{let t=e.type===`response`?`Response`:`Error`;this._onerror(Error(`${t} handler missing for request ${n}`))}continue}await this._transport?.send(e.message,{relatedRequestId:t.requestId})}}let i=await this._taskStore.getTask(r,t.sessionId);if(!i)throw new X(Y.InvalidParams,`Task not found: ${r}`);if(!th(i.status))return await this._waitForTaskUpdate(r,t.signal),await n();if(th(i.status)){let e=await this._taskStore.getTaskResult(r,t.sessionId);return this._clearTaskQueue(r),{...e,_meta:{...e._meta,[Ef]:{taskId:r}}}}return await n()};return await n()}),this.setRequestHandler(xp,async(e,t)=>{try{let{tasks:n,nextCursor:r}=await this._taskStore.listTasks(e.params?.cursor,t.sessionId);return{tasks:n,nextCursor:r,_meta:{}}}catch(e){throw new X(Y.InvalidParams,`Failed to list tasks: ${e instanceof Error?e.message:String(e)}`)}}),this.setRequestHandler(Cp,async(e,t)=>{try{let n=await this._taskStore.getTask(e.params.taskId,t.sessionId);if(!n)throw new X(Y.InvalidParams,`Task not found: ${e.params.taskId}`);if(th(n.status))throw new X(Y.InvalidParams,`Cannot cancel task in terminal status: ${n.status}`);await this._taskStore.updateTaskStatus(e.params.taskId,`cancelled`,`Client cancelled task execution.`,t.sessionId),this._clearTaskQueue(e.params.taskId);let r=await this._taskStore.getTask(e.params.taskId,t.sessionId);if(!r)throw new X(Y.InvalidParams,`Task not found after cancellation: ${e.params.taskId}`);return{_meta:{},...r}}catch(e){throw e instanceof X?e:new X(Y.InvalidRequest,`Failed to cancel task: ${e instanceof Error?e.message:String(e)}`)}}))}async _oncancel(e){e.params.requestId&&this._requestHandlerAbortControllers.get(e.params.requestId)?.abort(e.params.reason)}_setupTimeout(e,t,n,r,i=!1){this._timeoutInfo.set(e,{timeoutId:setTimeout(r,t),startTime:Date.now(),timeout:t,maxTotalTimeout:n,resetTimeoutOnProgress:i,onTimeout:r})}_resetTimeout(e){let t=this._timeoutInfo.get(e);if(!t)return!1;let n=Date.now()-t.startTime;if(t.maxTotalTimeout&&n>=t.maxTotalTimeout)throw this._timeoutInfo.delete(e),X.fromError(Y.RequestTimeout,`Maximum total timeout exceeded`,{maxTotalTimeout:t.maxTotalTimeout,totalElapsed:n});return clearTimeout(t.timeoutId),t.timeoutId=setTimeout(t.onTimeout,t.timeout),!0}_cleanupTimeout(e){let t=this._timeoutInfo.get(e);t&&(clearTimeout(t.timeoutId),this._timeoutInfo.delete(e))}async connect(e){if(this._transport)throw Error(`Already connected to a transport. Call close() before connecting to a new transport, or use a separate Protocol instance per connection.`);this._transport=e;let t=this.transport?.onclose;this._transport.onclose=()=>{t?.(),this._onclose()};let n=this.transport?.onerror;this._transport.onerror=e=>{n?.(e),this._onerror(e)};let r=this._transport?.onmessage;this._transport.onmessage=(e,t)=>{r?.(e,t),Vf(e)||Uf(e)?this._onresponse(e):Lf(e)?this._onrequest(e,t):zf(e)?this._onnotification(e):this._onerror(Error(`Unknown message type: ${JSON.stringify(e)}`))},await this._transport.start()}_onclose(){let e=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._taskProgressTokens.clear(),this._pendingDebouncedNotifications.clear();for(let e of this._timeoutInfo.values())clearTimeout(e.timeoutId);this._timeoutInfo.clear();for(let e of this._requestHandlerAbortControllers.values())e.abort();this._requestHandlerAbortControllers.clear();let t=X.fromError(Y.ConnectionClosed,`Connection closed`);this._transport=void 0,this.onclose?.();for(let n of e.values())n(t)}_onerror(e){this.onerror?.(e)}_onnotification(e){let t=this._notificationHandlers.get(e.method)??this.fallbackNotificationHandler;t!==void 0&&Promise.resolve().then(()=>t(e)).catch(e=>this._onerror(Error(`Uncaught error in notification handler: ${e}`)))}_onrequest(e,t){let n=this._requestHandlers.get(e.method)??this.fallbackRequestHandler,r=this._transport,i=e.params?._meta?.[Ef]?.taskId;if(n===void 0){let t={jsonrpc:`2.0`,id:e.id,error:{code:Y.MethodNotFound,message:`Method not found`}};i&&this._taskMessageQueue?this._enqueueTaskMessage(i,{type:`error`,message:t,timestamp:Date.now()},r?.sessionId).catch(e=>this._onerror(Error(`Failed to enqueue error response: ${e}`))):r?.send(t).catch(e=>this._onerror(Error(`Failed to send an error response: ${e}`)));return}let a=new AbortController;this._requestHandlerAbortControllers.set(e.id,a);let o=Nf(e.params)?e.params.task:void 0,s=this._taskStore?this.requestTaskStore(e,r?.sessionId):void 0,c={signal:a.signal,sessionId:r?.sessionId,_meta:e.params?._meta,sendNotification:async t=>{if(a.signal.aborted)return;let n={relatedRequestId:e.id};i&&(n.relatedTask={taskId:i}),await this.notification(t,n)},sendRequest:async(t,n,r)=>{if(a.signal.aborted)throw new X(Y.ConnectionClosed,`Request was cancelled`);let o={...r,relatedRequestId:e.id};i&&!o.relatedTask&&(o.relatedTask={taskId:i});let c=o.relatedTask?.taskId??i;return c&&s&&await s.updateTaskStatus(c,`input_required`),await this.request(t,n,o)},authInfo:t?.authInfo,requestId:e.id,requestInfo:t?.requestInfo,taskId:i,taskStore:s,taskRequestedTtl:o?.ttl,closeSSEStream:t?.closeSSEStream,closeStandaloneSSEStream:t?.closeStandaloneSSEStream};Promise.resolve().then(()=>{o&&this.assertTaskHandlerCapability(e.method)}).then(()=>n(e,c)).then(async t=>{if(a.signal.aborted)return;let n={result:t,jsonrpc:`2.0`,id:e.id};i&&this._taskMessageQueue?await this._enqueueTaskMessage(i,{type:`response`,message:n,timestamp:Date.now()},r?.sessionId):await r?.send(n)},async t=>{if(a.signal.aborted)return;let n={jsonrpc:`2.0`,id:e.id,error:{code:Number.isSafeInteger(t.code)?t.code:Y.InternalError,message:t.message??`Internal error`,...t.data!==void 0&&{data:t.data}}};i&&this._taskMessageQueue?await this._enqueueTaskMessage(i,{type:`error`,message:n,timestamp:Date.now()},r?.sessionId):await r?.send(n)}).catch(e=>this._onerror(Error(`Failed to send response: ${e}`))).finally(()=>{this._requestHandlerAbortControllers.get(e.id)===a&&this._requestHandlerAbortControllers.delete(e.id)})}_onprogress(e){let{progressToken:t,...n}=e.params,r=Number(t),i=this._progressHandlers.get(r);if(!i){this._onerror(Error(`Received a progress notification for an unknown token: ${JSON.stringify(e)}`));return}let a=this._responseHandlers.get(r),o=this._timeoutInfo.get(r);if(o&&a&&o.resetTimeoutOnProgress)try{this._resetTimeout(r)}catch(e){this._responseHandlers.delete(r),this._progressHandlers.delete(r),this._cleanupTimeout(r),a(e);return}i(n)}_onresponse(e){let t=Number(e.id),n=this._requestResolvers.get(t);if(n){this._requestResolvers.delete(t),Vf(e)?n(e):n(new X(e.error.code,e.error.message,e.error.data));return}let r=this._responseHandlers.get(t);if(r===void 0){this._onerror(Error(`Received a response for an unknown message ID: ${JSON.stringify(e)}`));return}this._responseHandlers.delete(t),this._cleanupTimeout(t);let i=!1;if(Vf(e)&&e.result&&typeof e.result==`object`){let n=e.result;if(n.task&&typeof n.task==`object`){let e=n.task;typeof e.taskId==`string`&&(i=!0,this._taskProgressTokens.set(e.taskId,t))}}i||this._progressHandlers.delete(t),Vf(e)?r(e):r(X.fromError(e.error.code,e.error.message,e.error.data))}get transport(){return this._transport}async close(){await this._transport?.close()}async*requestStream(e,t,n){let{task:r}=n??{};if(!r){try{yield{type:`result`,result:await this.request(e,t,n)}}catch(e){yield{type:`error`,error:e instanceof X?e:new X(Y.InternalError,String(e))}}return}let i;try{let r=await this.request(e,hp,n);if(r.task)i=r.task.taskId,yield{type:`taskCreated`,task:r.task};else throw new X(Y.InternalError,`Task creation did not return a task`);for(;;){let e=await this.getTask({taskId:i},n);if(yield{type:`taskStatus`,task:e},th(e.status)){e.status===`completed`?yield{type:`result`,result:await this.getTaskResult({taskId:i},t,n)}:e.status===`failed`?yield{type:`error`,error:new X(Y.InternalError,`Task ${i} failed`)}:e.status===`cancelled`&&(yield{type:`error`,error:new X(Y.InternalError,`Task ${i} was cancelled`)});return}if(e.status===`input_required`){yield{type:`result`,result:await this.getTaskResult({taskId:i},t,n)};return}let r=e.pollInterval??this._options?.defaultTaskPollInterval??1e3;await new Promise(e=>setTimeout(e,r)),n?.signal?.throwIfAborted()}}catch(e){yield{type:`error`,error:e instanceof X?e:new X(Y.InternalError,String(e))}}}request(e,t,n){let{relatedRequestId:r,resumptionToken:i,onresumptiontoken:a,task:o,relatedTask:s}=n??{};return new Promise((c,l)=>{let u=e=>{l(e)};if(!this._transport){u(Error(`Not connected`));return}if(this._options?.enforceStrictCapabilities===!0)try{this.assertCapabilityForMethod(e.method),o&&this.assertTaskCapability(e.method)}catch(e){u(e);return}n?.signal?.throwIfAborted();let d=this._requestMessageId++,f={...e,jsonrpc:`2.0`,id:d};n?.onprogress&&(this._progressHandlers.set(d,n.onprogress),f.params={...e.params,_meta:{...e.params?._meta||{},progressToken:d}}),o&&(f.params={...f.params,task:o}),s&&(f.params={...f.params,_meta:{...f.params?._meta||{},[Ef]:s}});let p=e=>{this._responseHandlers.delete(d),this._progressHandlers.delete(d),this._cleanupTimeout(d),this._transport?.send({jsonrpc:`2.0`,method:`notifications/cancelled`,params:{requestId:d,reason:String(e)}},{relatedRequestId:r,resumptionToken:i,onresumptiontoken:a}).catch(e=>this._onerror(Error(`Failed to send cancellation: ${e}`))),l(e instanceof X?e:new X(Y.RequestTimeout,String(e)))};this._responseHandlers.set(d,e=>{if(!n?.signal?.aborted){if(e instanceof Error)return l(e);try{let n=al(t,e.result);n.success?c(n.data):l(n.error)}catch(e){l(e)}}}),n?.signal?.addEventListener(`abort`,()=>{p(n?.signal?.reason)});let m=n?.timeout??6e4;this._setupTimeout(d,m,n?.maxTotalTimeout,()=>p(X.fromError(Y.RequestTimeout,`Request timed out`,{timeout:m})),n?.resetTimeoutOnProgress??!1);let h=s?.taskId;h?(this._requestResolvers.set(d,e=>{let t=this._responseHandlers.get(d);t?t(e):this._onerror(Error(`Response handler missing for side-channeled request ${d}`))}),this._enqueueTaskMessage(h,{type:`request`,message:f,timestamp:Date.now()}).catch(e=>{this._cleanupTimeout(d),l(e)})):this._transport.send(f,{relatedRequestId:r,resumptionToken:i,onresumptiontoken:a}).catch(e=>{this._cleanupTimeout(d),l(e)})})}async getTask(e,t){return this.request({method:`tasks/get`,params:e},yp,t)}async getTaskResult(e,t,n){return this.request({method:`tasks/result`,params:e},t,n)}async listTasks(e,t){return this.request({method:`tasks/list`,params:e},Sp,t)}async cancelTask(e,t){return this.request({method:`tasks/cancel`,params:e},wp,t)}async notification(e,t){if(!this._transport)throw Error(`Not connected`);this.assertNotificationCapability(e.method);let n=t?.relatedTask?.taskId;if(n){let r={...e,jsonrpc:`2.0`,params:{...e.params,_meta:{...e.params?._meta||{},[Ef]:t.relatedTask}}};await this._enqueueTaskMessage(n,{type:`notification`,message:r,timestamp:Date.now()});return}if((this._options?.debouncedNotificationMethods??[]).includes(e.method)&&!e.params&&!t?.relatedRequestId&&!t?.relatedTask){if(this._pendingDebouncedNotifications.has(e.method))return;this._pendingDebouncedNotifications.add(e.method),Promise.resolve().then(()=>{if(this._pendingDebouncedNotifications.delete(e.method),!this._transport)return;let n={...e,jsonrpc:`2.0`};t?.relatedTask&&(n={...n,params:{...n.params,_meta:{...n.params?._meta||{},[Ef]:t.relatedTask}}}),this._transport?.send(n,t).catch(e=>this._onerror(e))});return}let r={...e,jsonrpc:`2.0`};t?.relatedTask&&(r={...r,params:{...r.params,_meta:{...r.params?._meta||{},[Ef]:t.relatedTask}}}),await this._transport.send(r,t)}setRequestHandler(e,t){let n=nh(e);this.assertRequestHandlerCapability(n),this._requestHandlers.set(n,(n,r)=>{let i=rh(e,n);return Promise.resolve(t(i,r))})}removeRequestHandler(e){this._requestHandlers.delete(e)}assertCanSetRequestHandler(e){if(this._requestHandlers.has(e))throw Error(`A request handler for ${e} already exists, which would be overridden`)}setNotificationHandler(e,t){let n=nh(e);this._notificationHandlers.set(n,n=>{let r=rh(e,n);return Promise.resolve(t(r))})}removeNotificationHandler(e){this._notificationHandlers.delete(e)}_cleanupTaskProgressHandler(e){let t=this._taskProgressTokens.get(e);t!==void 0&&(this._progressHandlers.delete(t),this._taskProgressTokens.delete(e))}async _enqueueTaskMessage(e,t,n){if(!this._taskStore||!this._taskMessageQueue)throw Error(`Cannot enqueue task message: taskStore and taskMessageQueue are not configured`);let r=this._options?.maxTaskQueueSize;await this._taskMessageQueue.enqueue(e,t,n,r)}async _clearTaskQueue(e,t){if(this._taskMessageQueue){let n=await this._taskMessageQueue.dequeueAll(e,t);for(let t of n)if(t.type===`request`&&Lf(t.message)){let n=t.message.id,r=this._requestResolvers.get(n);r?(r(new X(Y.InternalError,`Task cancelled or completed`)),this._requestResolvers.delete(n)):this._onerror(Error(`Resolver missing for request ${n} during task ${e} cleanup`))}}}async _waitForTaskUpdate(e,t){let n=this._options?.defaultTaskPollInterval??1e3;try{let t=await this._taskStore?.getTask(e);t?.pollInterval&&(n=t.pollInterval)}catch{}return new Promise((e,r)=>{if(t.aborted){r(new X(Y.InvalidRequest,`Request cancelled`));return}let i=setTimeout(e,n);t.addEventListener(`abort`,()=>{clearTimeout(i),r(new X(Y.InvalidRequest,`Request cancelled`))},{once:!0})})}requestTaskStore(e,t){let n=this._taskStore;if(!n)throw Error(`No task store configured`);return{createTask:async r=>{if(!e)throw Error(`No request provided`);return await n.createTask(r,e.id,{method:e.method,params:e.params},t)},getTask:async e=>{let r=await n.getTask(e,t);if(!r)throw new X(Y.InvalidParams,`Failed to retrieve task: Task not found`);return r},storeTaskResult:async(e,r,i)=>{await n.storeTaskResult(e,r,i,t);let a=await n.getTask(e,t);if(a){let t=_p.parse({method:`notifications/tasks/status`,params:a});await this.notification(t),th(a.status)&&this._cleanupTaskProgressHandler(e)}},getTaskResult:e=>n.getTaskResult(e,t),updateTaskStatus:async(e,r,i)=>{let a=await n.getTask(e,t);if(!a)throw new X(Y.InvalidParams,`Task "${e}" not found - it may have been cleaned up`);if(th(a.status))throw new X(Y.InvalidParams,`Cannot update task "${e}" from terminal status "${a.status}" to "${r}". Terminal states (completed, failed, cancelled) cannot transition to other states.`);await n.updateTaskStatus(e,r,i,t);let o=await n.getTask(e,t);if(o){let t=_p.parse({method:`notifications/tasks/status`,params:o});await this.notification(t),th(o.status)&&this._cleanupTaskProgressHandler(e)}},listTasks:e=>n.listTasks(e,t)}}};function ah(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function oh(e,t){let n={...e};for(let e in t){let r=e,i=t[r];if(i===void 0)continue;let a=n[r];ah(a)&&ah(i)?n[r]={...a,...i}:n[r]=i}return n}var sh=`modulepreload`,ch=function(e){return`/`+e},lh={},uh=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}r=o(t.map(t=>{if(t=ch(t,n),t in lh)return;lh[t]=!0;let r=t.endsWith(`.css`),i=r?`[rel="stylesheet"]`:``;if(n)for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}else if(document.querySelector(`link[href="${t}"]${i}`))return;let o=document.createElement(`link`);if(o.rel=r?`stylesheet`:sh,r||(o.as=`script`),o.crossOrigin=``,o.href=t,a&&o.setAttribute(`nonce`,a),document.head.appendChild(o),r)return new Promise((e,n)=>{o.addEventListener(`load`,e),o.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})};(e=>typeof n<`u`?n:typeof Proxy<`u`?new Proxy(e,{get:(e,t)=>(typeof n<`u`?n:e)[t]}):e)(function(e){if(typeof n<`u`)return n.apply(this,arguments);throw Error(`Dynamic require of "`+e+`" is not supported`)});var dh=class extends ih{_registeredMethods=new Set;_eventSlots=new Map;onEventDispatch(e,t){}_ensureEventSlot(e){let t=this._eventSlots.get(e);if(!t){let n=this.eventSchemas[e];if(!n)throw Error(`Unknown event: ${String(e)}`);t={listeners:[]},this._eventSlots.set(e,t);let r=n.shape.method.value;this._registeredMethods.add(r);let i=t;super.setNotificationHandler(n,t=>{let n=t.params;this.onEventDispatch(e,n),i.onHandler?.(n);for(let e of[...i.listeners])e(n)})}return t}setEventHandler(e,t){let n=this._ensureEventSlot(e);n.onHandler&&t&&console.warn(`[MCP Apps] on${String(e)} handler replaced. Use addEventListener("${String(e)}", …) to add multiple listeners without replacing.`),n.onHandler=t}getEventHandler(e){return this._eventSlots.get(e)?.onHandler}addEventListener(e,t){this._ensureEventSlot(e).listeners.push(t)}removeEventListener(e,t){let n=this._eventSlots.get(e);if(!n)return;let r=n.listeners.indexOf(t);r!==-1&&n.listeners.splice(r,1)}setRequestHandler=(e,t)=>{this._assertMethodNotRegistered(e,`setRequestHandler`),super.setRequestHandler(e,t)};setNotificationHandler=(e,t)=>{this._assertMethodNotRegistered(e,`setNotificationHandler`),super.setNotificationHandler(e,t)};warnIfRequestHandlerReplaced(e,t,n){t&&n&&console.warn(`[MCP Apps] ${e} handler replaced. Previous handler will no longer be called.`)}replaceRequestHandler=(e,t)=>{let n=e.shape.method.value;this._registeredMethods.add(n),super.setRequestHandler(e,t)};_assertMethodNotRegistered(e,t){let n=e.shape.method.value;if(this._registeredMethods.has(n))throw Error(`Handler for "${n}" already registered (via ${t}). Use addEventListener() to attach multiple listeners, or the on* setter for replace semantics.`);this._registeredMethods.add(n)}},fh=`2026-01-26`,ph=class{eventTarget;eventSource;messageListener;constructor(e=window.parent,t){this.eventTarget=e,this.eventSource=t,this.messageListener=e=>{if(t&&e.source!==this.eventSource){console.debug(`Ignoring message from unknown source`,e);return}let n=Wf.safeParse(e.data);n.success?(console.debug(`Parsed message`,n.data),this.onmessage?.(n.data)):e.data?.jsonrpc===`2.0`?(console.error(`Failed to parse message`,n.error.message,e),this.onerror?.(Error(`Invalid JSON-RPC message received: `+n.error.message))):console.debug(`Ignoring non-JSON-RPC message`,n.error.message,e)}}async start(){window.addEventListener(`message`,this.messageListener)}async send(e,t){e.method!==`ui/notifications/tool-input-partial`&&console.debug(`Sending message`,e),this.eventTarget.postMessage(e,`*`)}async close(){window.removeEventListener(`message`,this.messageListener),this.onclose?.()}onclose;onerror;onmessage;sessionId;setProtocolVersion},mh=z([H(`light`),H(`dark`)]).describe(`Color theme preference for the host environment.`),hh=z([H(`inline`),H(`fullscreen`),H(`pip`)]).describe(`Display mode for UI presentation.`),gh=B(z([H(`--color-background-primary`),H(`--color-background-secondary`),H(`--color-background-tertiary`),H(`--color-background-inverse`),H(`--color-background-ghost`),H(`--color-background-info`),H(`--color-background-danger`),H(`--color-background-success`),H(`--color-background-warning`),H(`--color-background-disabled`),H(`--color-text-primary`),H(`--color-text-secondary`),H(`--color-text-tertiary`),H(`--color-text-inverse`),H(`--color-text-ghost`),H(`--color-text-info`),H(`--color-text-danger`),H(`--color-text-success`),H(`--color-text-warning`),H(`--color-text-disabled`),H(`--color-border-primary`),H(`--color-border-secondary`),H(`--color-border-tertiary`),H(`--color-border-inverse`),H(`--color-border-ghost`),H(`--color-border-info`),H(`--color-border-danger`),H(`--color-border-success`),H(`--color-border-warning`),H(`--color-border-disabled`),H(`--color-ring-primary`),H(`--color-ring-secondary`),H(`--color-ring-inverse`),H(`--color-ring-info`),H(`--color-ring-danger`),H(`--color-ring-success`),H(`--color-ring-warning`),H(`--font-sans`),H(`--font-mono`),H(`--font-weight-normal`),H(`--font-weight-medium`),H(`--font-weight-semibold`),H(`--font-weight-bold`),H(`--font-text-xs-size`),H(`--font-text-sm-size`),H(`--font-text-md-size`),H(`--font-text-lg-size`),H(`--font-heading-xs-size`),H(`--font-heading-sm-size`),H(`--font-heading-md-size`),H(`--font-heading-lg-size`),H(`--font-heading-xl-size`),H(`--font-heading-2xl-size`),H(`--font-heading-3xl-size`),H(`--font-text-xs-line-height`),H(`--font-text-sm-line-height`),H(`--font-text-md-line-height`),H(`--font-text-lg-line-height`),H(`--font-heading-xs-line-height`),H(`--font-heading-sm-line-height`),H(`--font-heading-md-line-height`),H(`--font-heading-lg-line-height`),H(`--font-heading-xl-line-height`),H(`--font-heading-2xl-line-height`),H(`--font-heading-3xl-line-height`),H(`--border-radius-xs`),H(`--border-radius-sm`),H(`--border-radius-md`),H(`--border-radius-lg`),H(`--border-radius-xl`),H(`--border-radius-full`),H(`--border-width-regular`),H(`--shadow-hairline`),H(`--shadow-sm`),H(`--shadow-md`),H(`--shadow-lg`)]).describe(`CSS variable keys available to MCP apps for theming.`).describe(`Style variables for theming MCP apps.
423
480
 
424
481
  Individual style keys are optional - hosts may provide any subset of these values.
425
482
  Values are strings containing CSS values (colors, sizes, font stacks, etc.).
426
483
 
427
484
  Note: This type uses \`Record<K, string | undefined>\` rather than \`Partial<Record<K, string>>\`
428
- for compatibility with Zod schema generation. Both are functionally equivalent for validation.`),V([M(),Hu()]).describe(`Style variables for theming MCP apps.
485
+ for compatibility with Zod schema generation. Both are functionally equivalent for validation.`),z([j(),Wu()]).describe(`Style variables for theming MCP apps.
429
486
 
430
487
  Individual style keys are optional - hosts may provide any subset of these values.
431
488
  Values are strings containing CSS values (colors, sizes, font stacks, etc.).
@@ -437,18 +494,18 @@ Individual style keys are optional - hosts may provide any subset of these value
437
494
  Values are strings containing CSS values (colors, sizes, font stacks, etc.).
438
495
 
439
496
  Note: This type uses \`Record<K, string | undefined>\` rather than \`Partial<Record<K, string>>\`
440
- for compatibility with Zod schema generation. Both are functionally equivalent for validation.`);z({method:W(`ui/open-link`),params:z({url:M().describe(`URL to open in the host's browser`)})});var mh=z({isError:I().optional().describe(`True if the host failed to open the URL (e.g., due to security policy).`)}).passthrough(),hh=z({isError:I().optional().describe(`True if the download failed (e.g., user cancelled or host denied).`)}).passthrough(),gh=z({isError:I().optional().describe(`True if the host rejected or failed to deliver the message.`)}).passthrough();z({method:W(`ui/notifications/sandbox-proxy-ready`),params:z({})});var _h=z({connectDomains:R(M()).optional().describe(`Origins for network requests (fetch/XHR/WebSocket).
497
+ for compatibility with Zod schema generation. Both are functionally equivalent for validation.`);L({method:H(`ui/open-link`),params:L({url:j().describe(`URL to open in the host's browser`)})});var _h=L({isError:P().optional().describe(`True if the host failed to open the URL (e.g., due to security policy).`)}).passthrough(),vh=L({isError:P().optional().describe(`True if the download failed (e.g., user cancelled or host denied).`)}).passthrough(),yh=L({isError:P().optional().describe(`True if the host rejected or failed to deliver the message.`)}).passthrough();L({method:H(`ui/notifications/sandbox-proxy-ready`),params:L({})});var bh=L({connectDomains:I(j()).optional().describe(`Origins for network requests (fetch/XHR/WebSocket).
441
498
 
442
499
  - Maps to CSP \`connect-src\` directive
443
- - Empty or omitted → no network connections (secure default)`),resourceDomains:R(M()).optional().describe("Origins for static resources (images, scripts, stylesheets, fonts, media).\n\n- Maps to CSP `img-src`, `script-src`, `style-src`, `font-src`, `media-src` directives\n- Wildcard subdomains supported: `https://*.example.com`\n- Empty or omitted → no network resources (secure default)"),frameDomains:R(M()).optional().describe("Origins for nested iframes.\n\n- Maps to CSP `frame-src` directive\n- Empty or omitted → no nested iframes allowed (`frame-src 'none'`)"),baseUriDomains:R(M()).optional().describe("Allowed base URIs for the document.\n\n- Maps to CSP `base-uri` directive\n- Empty or omitted → only same origin allowed (`base-uri 'self'`)")}),vh=z({camera:z({}).optional().describe(`Request camera access.
500
+ - Empty or omitted → no network connections (secure default)`),resourceDomains:I(j()).optional().describe("Origins for static resources (images, scripts, stylesheets, fonts, media).\n\n- Maps to CSP `img-src`, `script-src`, `style-src`, `font-src`, `media-src` directives\n- Wildcard subdomains supported: `https://*.example.com`\n- Empty or omitted → no network resources (secure default)"),frameDomains:I(j()).optional().describe("Origins for nested iframes.\n\n- Maps to CSP `frame-src` directive\n- Empty or omitted → no nested iframes allowed (`frame-src 'none'`)"),baseUriDomains:I(j()).optional().describe("Allowed base URIs for the document.\n\n- Maps to CSP `base-uri` directive\n- Empty or omitted → only same origin allowed (`base-uri 'self'`)")}),xh=L({camera:L({}).optional().describe(`Request camera access.
444
501
 
445
- Maps to Permission Policy \`camera\` feature.`),microphone:z({}).optional().describe(`Request microphone access.
502
+ Maps to Permission Policy \`camera\` feature.`),microphone:L({}).optional().describe(`Request microphone access.
446
503
 
447
- Maps to Permission Policy \`microphone\` feature.`),geolocation:z({}).optional().describe(`Request geolocation access.
504
+ Maps to Permission Policy \`microphone\` feature.`),geolocation:L({}).optional().describe(`Request geolocation access.
448
505
 
449
- Maps to Permission Policy \`geolocation\` feature.`),clipboardWrite:z({}).optional().describe(`Request clipboard write access.
506
+ Maps to Permission Policy \`geolocation\` feature.`),clipboardWrite:L({}).optional().describe(`Request clipboard write access.
450
507
 
451
- Maps to Permission Policy \`clipboard-write\` feature.`)});z({method:W(`ui/notifications/size-changed`),params:z({width:F().optional().describe(`New width in pixels.`),height:F().optional().describe(`New height in pixels.`)})});var yh=z({method:W(`ui/notifications/tool-input`),params:z({arguments:H(M(),L().describe(`Complete tool call arguments as key-value pairs.`)).optional().describe(`Complete tool call arguments as key-value pairs.`)})}),bh=z({method:W(`ui/notifications/tool-input-partial`),params:z({arguments:H(M(),L().describe(`Partial tool call arguments (incomplete, may change).`)).optional().describe(`Partial tool call arguments (incomplete, may change).`)})}),xh=z({method:W(`ui/notifications/tool-cancelled`),params:z({reason:M().optional().describe(`Optional reason for the cancellation (e.g., "user action", "timeout").`)})}),Sh=z({fonts:M().optional()}),Ch=z({variables:ph.optional().describe(`CSS variables for theming the app.`),css:Sh.optional().describe(`CSS blocks that apps can inject.`)}),wh=z({method:W(`ui/resource-teardown`),params:z({})});H(M(),L());var Th=z({text:z({}).optional().describe(`Host supports text content blocks.`),image:z({}).optional().describe(`Host supports image content blocks.`),audio:z({}).optional().describe(`Host supports audio content blocks.`),resource:z({}).optional().describe(`Host supports resource content blocks.`),resourceLink:z({}).optional().describe(`Host supports resource link content blocks.`),structuredContent:z({}).optional().describe(`Host supports structured content.`)});z({method:W(`ui/notifications/request-teardown`),params:z({}).optional()});var Eh=z({experimental:z({}).optional().describe(`Experimental features (structure TBD).`),openLinks:z({}).optional().describe(`Host supports opening external URLs.`),downloadFile:z({}).optional().describe(`Host supports file downloads via ui/download-file.`),serverTools:z({listChanged:I().optional().describe(`Host supports tools/list_changed notifications.`)}).optional().describe(`Host can proxy tool calls to the MCP server.`),serverResources:z({listChanged:I().optional().describe(`Host supports resources/list_changed notifications.`)}).optional().describe(`Host can proxy resource reads to the MCP server.`),logging:z({}).optional().describe(`Host accepts log messages.`),sandbox:z({permissions:vh.optional().describe(`Permissions granted by the host (camera, microphone, geolocation).`),csp:_h.optional().describe(`CSP domains approved by the host.`)}).optional().describe(`Sandbox configuration applied by the host.`),updateModelContext:Th.optional().describe(`Host accepts context updates (ui/update-model-context) to be included in the model's context for future turns.`),message:Th.optional().describe(`Host supports receiving content messages (ui/message) from the view.`),sampling:z({tools:z({}).optional().describe("Host supports tool use via `tools` and `toolChoice` parameters.")}).optional().describe("Host supports LLM sampling (sampling/createMessage) from the view.\nMirrors the MCP `ClientCapabilities.sampling` shape so hosts can pass it through.")}),Dh=z({experimental:z({}).optional().describe(`Experimental features (structure TBD).`),tools:z({listChanged:I().optional().describe(`App supports tools/list_changed notifications.`)}).optional().describe(`App exposes MCP-style tools that the host can call.`),availableDisplayModes:R(fh).optional().describe(`Display modes the app supports.`)});z({method:W(`ui/notifications/initialized`),params:z({}).optional()}),z({csp:_h.optional().describe(`Content Security Policy configuration for UI resources.`),permissions:vh.optional().describe(`Sandbox permissions requested by the UI resource.`),domain:M().optional().describe(`Dedicated origin for view sandbox.
508
+ Maps to Permission Policy \`clipboard-write\` feature.`)});L({method:H(`ui/notifications/size-changed`),params:L({width:N().optional().describe(`New width in pixels.`),height:N().optional().describe(`New height in pixels.`)})});var Sh=L({method:H(`ui/notifications/tool-input`),params:L({arguments:B(j(),F().describe(`Complete tool call arguments as key-value pairs.`)).optional().describe(`Complete tool call arguments as key-value pairs.`)})}),Ch=L({method:H(`ui/notifications/tool-input-partial`),params:L({arguments:B(j(),F().describe(`Partial tool call arguments (incomplete, may change).`)).optional().describe(`Partial tool call arguments (incomplete, may change).`)})}),wh=L({method:H(`ui/notifications/tool-cancelled`),params:L({reason:j().optional().describe(`Optional reason for the cancellation (e.g., "user action", "timeout").`)})}),Th=L({fonts:j().optional()}),Eh=L({variables:gh.optional().describe(`CSS variables for theming the app.`),css:Th.optional().describe(`CSS blocks that apps can inject.`)}),Dh=L({method:H(`ui/resource-teardown`),params:L({})});B(j(),F());var Oh=L({text:L({}).optional().describe(`Host supports text content blocks.`),image:L({}).optional().describe(`Host supports image content blocks.`),audio:L({}).optional().describe(`Host supports audio content blocks.`),resource:L({}).optional().describe(`Host supports resource content blocks.`),resourceLink:L({}).optional().describe(`Host supports resource link content blocks.`),structuredContent:L({}).optional().describe(`Host supports structured content.`)});L({method:H(`ui/notifications/request-teardown`),params:L({}).optional()});var kh=L({experimental:L({}).optional().describe(`Experimental features (structure TBD).`),openLinks:L({}).optional().describe(`Host supports opening external URLs.`),downloadFile:L({}).optional().describe(`Host supports file downloads via ui/download-file.`),serverTools:L({listChanged:P().optional().describe(`Host supports tools/list_changed notifications.`)}).optional().describe(`Host can proxy tool calls to the MCP server.`),serverResources:L({listChanged:P().optional().describe(`Host supports resources/list_changed notifications.`)}).optional().describe(`Host can proxy resource reads to the MCP server.`),logging:L({}).optional().describe(`Host accepts log messages.`),sandbox:L({permissions:xh.optional().describe(`Permissions granted by the host (camera, microphone, geolocation).`),csp:bh.optional().describe(`CSP domains approved by the host.`)}).optional().describe(`Sandbox configuration applied by the host.`),updateModelContext:Oh.optional().describe(`Host accepts context updates (ui/update-model-context) to be included in the model's context for future turns.`),message:Oh.optional().describe(`Host supports receiving content messages (ui/message) from the view.`),sampling:L({tools:L({}).optional().describe("Host supports tool use via `tools` and `toolChoice` parameters.")}).optional().describe("Host supports LLM sampling (sampling/createMessage) from the view.\nMirrors the MCP `ClientCapabilities.sampling` shape so hosts can pass it through.")}),Ah=L({experimental:L({}).optional().describe(`Experimental features (structure TBD).`),tools:L({listChanged:P().optional().describe(`App supports tools/list_changed notifications.`)}).optional().describe(`App exposes MCP-style tools that the host can call.`),availableDisplayModes:I(hh).optional().describe(`Display modes the app supports.`)});L({method:H(`ui/notifications/initialized`),params:L({}).optional()}),L({csp:bh.optional().describe(`Content Security Policy configuration for UI resources.`),permissions:xh.optional().describe(`Sandbox permissions requested by the UI resource.`),domain:j().optional().describe(`Dedicated origin for view sandbox.
452
509
 
453
510
  Useful when views need stable, dedicated origins for OAuth callbacks, CORS policies, or API key allowlists.
454
511
 
@@ -456,24 +513,80 @@ Useful when views need stable, dedicated origins for OAuth callbacks, CORS polic
456
513
  - Hash-based subdomains (e.g., \`{hash}.claudemcpcontent.com\`)
457
514
  - URL-derived subdomains (e.g., \`www-example-com.oaiusercontent.com\`)
458
515
 
459
- If omitted, host uses default sandbox origin (typically per-conversation).`),prefersBorder:I().optional().describe(`Visual boundary preference - true if view prefers a visible border.
516
+ If omitted, host uses default sandbox origin (typically per-conversation).`),prefersBorder:P().optional().describe(`Visual boundary preference - true if view prefers a visible border.
460
517
 
461
518
  Boolean requesting whether a visible border and background is provided by the host. Specifying an explicit value for this is recommended because hosts' defaults may vary.
462
519
 
463
520
  - \`true\`: request visible border + background
464
521
  - \`false\`: request no visible border + background
465
- - omitted: host decides border`)}),z({method:W(`ui/request-display-mode`),params:z({mode:fh.describe(`The display mode being requested.`)})});var Oh=z({mode:fh.describe(`The display mode that was actually set. May differ from requested if not supported.`)}).passthrough(),kh=V([W(`model`),W(`app`)]).describe(`Tool visibility scope - who can access the tool.`);z({resourceUri:M().optional(),visibility:R(kh).optional().describe(`Who can access this tool. Default: ["model", "app"]
522
+ - omitted: host decides border`)}),L({method:H(`ui/request-display-mode`),params:L({mode:hh.describe(`The display mode being requested.`)})});var jh=L({mode:hh.describe(`The display mode that was actually set. May differ from requested if not supported.`)}).passthrough(),Mh=z([H(`model`),H(`app`)]).describe(`Tool visibility scope - who can access the tool.`);L({resourceUri:j().optional(),visibility:I(Mh).optional().describe(`Who can access this tool. Default: ["model", "app"]
466
523
  - "model": Tool visible to and callable by the agent
467
- - "app": Tool callable by the app from this server only`),csp:Yu().optional(),permissions:Yu().optional()}),z({mimeTypes:R(M()).optional().describe('Array of supported MIME types for UI resources.\nMust include `"text/html;profile=mcp-app"` for MCP Apps support.')}),z({method:W(`ui/download-file`),params:z({contents:R(V([tm,nm])).describe(`Resource contents to download — embedded (inline data) or linked (host fetches). Uses standard MCP resource types.`)})}),z({method:W(`ui/message`),params:z({role:W(`user`).describe(`Message role, currently only "user" is supported.`),content:R(rm).describe(`Message content blocks (text, image, etc.).`)})}),z({method:W(`ui/notifications/sandbox-resource-ready`),params:z({html:M().describe(`HTML content to load into the inner iframe.`),sandbox:M().optional().describe(`Optional override for the inner iframe's sandbox attribute.`),csp:_h.optional().describe(`CSP configuration from resource metadata.`),permissions:vh.optional().describe(`Sandbox permissions from resource metadata.`)})});var Ah=z({method:W(`ui/notifications/tool-result`),params:fm.describe(`Standard MCP tool execution result.`)}),jh=z({toolInfo:z({id:Mf.optional().describe(`JSON-RPC id of the tools/call request.`),tool:lm.describe(`Tool definition including name, inputSchema, etc.`)}).optional().describe(`Metadata of the tool call that instantiated this App.`),theme:dh.optional().describe(`Current color theme preference.`),styles:Ch.optional().describe(`Style configuration for theming the app.`),displayMode:fh.optional().describe(`How the UI is currently displayed.`),availableDisplayModes:R(fh).optional().describe(`Display modes the host supports.`),containerDimensions:V([z({height:F().describe(`Fixed container height in pixels.`)}),z({maxHeight:V([F(),Hu()]).optional().describe(`Maximum container height in pixels.`)})]).and(V([z({width:F().describe(`Fixed container width in pixels.`)}),z({maxWidth:V([F(),Hu()]).optional().describe(`Maximum container width in pixels.`)})])).optional().describe(`Container dimensions. Represents the dimensions of the iframe or other
468
- container holding the app. Specify either width or maxWidth, and either height or maxHeight.`),locale:M().optional().describe(`User's language and region preference in BCP 47 format.`),timeZone:M().optional().describe(`User's timezone in IANA format.`),userAgent:M().optional().describe(`Host application identifier.`),platform:V([W(`web`),W(`desktop`),W(`mobile`)]).optional().describe(`Platform type for responsive design decisions.`),deviceCapabilities:z({touch:I().optional().describe(`Whether the device supports touch input.`),hover:I().optional().describe(`Whether the device supports hover interactions.`)}).optional().describe(`Device input capabilities.`),safeAreaInsets:z({top:F().describe(`Top safe area inset in pixels.`),right:F().describe(`Right safe area inset in pixels.`),bottom:F().describe(`Bottom safe area inset in pixels.`),left:F().describe(`Left safe area inset in pixels.`)}).optional().describe(`Mobile safe area boundaries in pixels.`)}).passthrough(),Mh=z({method:W(`ui/notifications/host-context-changed`),params:jh.describe(`Partial context update containing only changed fields.`)});z({method:W(`ui/update-model-context`),params:z({content:R(rm).optional().describe(`Context content blocks (text, image, etc.).`),structuredContent:H(M(),L().describe(`Structured content for machine-readable context data.`)).optional().describe(`Structured content for machine-readable context data.`)})}),z({method:W(`ui/initialize`),params:z({appInfo:qf.describe(`App identification (name and version).`),appCapabilities:Dh.describe(`Features and capabilities this app provides.`),protocolVersion:M().describe(`Protocol version this app supports.`)})});var Nh=z({protocolVersion:M().describe(`Negotiated protocol version string (e.g., "2025-11-21").`),hostInfo:qf.describe(`Host application identification and version.`),hostCapabilities:Eh.describe(`Features and capabilities provided by the host.`),hostContext:jh.describe(`Rich context about the host environment.`)}).passthrough(),Ph={target:`draft-2020-12`};async function Fh(e,t){let n=e[`~standard`];if(n.jsonSchema)return n.jsonSchema[t](Ph);if(n.vendor===`zod`){let{z:n}=await sh(async()=>{let{z:e}=await Promise.resolve().then(()=>Cf);return{z:e}},__VITE_PRELOAD__);return n.toJSONSchema(e,{io:t})}throw Error(`Schema (vendor: ${n.vendor}) does not implement Standard JSON Schema (~standard.jsonSchema). Use a library that does (zod v4, ArkType, Valibot) or wrap your schema accordingly.`)}async function Ih(e,t,n=``){let r=await e[`~standard`].validate(t);if(r.issues){let e=r.issues.map(e=>{let t=e.path?.map(e=>typeof e==`object`?e.key:e).join(`.`);return t?`${t}: ${e.message}`:e.message}).join(`; `);throw Error(n+e)}return r.value}var Lh=class e extends ch{_appInfo;_capabilities;options;_hostCapabilities;_hostInfo;_hostContext;_registeredTools={};_initializedSent=!1;_assertInitialized(e){if(this._initializedSent)return;let t=`[ext-apps] App.${e}() called before connect() completed the ui/initialize handshake. Await app.connect() before calling this method, or move data loading to an ontoolresult handler.`;if(this.options?.strict)throw Error(t);console.warn(`${t}. This will throw in a future release.`)}eventSchemas={toolinput:yh,toolinputpartial:bh,toolresult:Ah,toolcancelled:xh,hostcontextchanged:Mh};static ONE_SHOT_EVENTS=new Set([`toolinput`,`toolinputpartial`,`toolresult`,`toolcancelled`]);_everHadListener=new Set;_assertHandlerTiming(t){if(!e.ONE_SHOT_EVENTS.has(t)||this._everHadListener.has(t)||(this._everHadListener.add(t),!this._initializedSent))return;let n=`[ext-apps] "${String(t)}" handler registered after connect() completed the ui/initialize handshake. The host may have already sent this notification. Register handlers before calling app.connect().`;if(this.options?.strict)throw Error(n);console.warn(n)}setEventHandler(e,t){t&&this._assertHandlerTiming(e),super.setEventHandler(e,t)}addEventListener(e,t){this._assertHandlerTiming(e),super.addEventListener(e,t)}onEventDispatch(e,t){e===`hostcontextchanged`&&(this._hostContext={...this._hostContext,...t})}constructor(e,t={},n={autoResize:!0}){super(n),this._appInfo=e,this._capabilities=t,this.options=n,n.allowUnsafeEval||l({jitless:!0}),this.setRequestHandler(rp,e=>(console.log(`Received ping:`,e.params),{})),this.setEventHandler(`hostcontextchanged`,void 0)}registerCapabilities(e){if(this.transport)throw Error(`Cannot register capabilities after transport is established`);this._capabilities=rh(this._capabilities,e)}registerTool(e,t,n){if(this._registeredTools[e])throw Error(`Tool ${e} is already registered`);let r=this,i=()=>{r._initializedSent&&r._capabilities.tools?.listChanged&&r.sendToolListChanged()},a=t.inputSchema!==void 0,o={title:t.title,description:t.description,inputSchema:t.inputSchema,outputSchema:t.outputSchema,annotations:t.annotations,_meta:t._meta,enabled:!0,enable(){this.enabled=!0,i()},disable(){this.enabled=!1,i()},update(e){Object.assign(this,e),i()},remove(){r._registeredTools[e]===o&&(delete r._registeredTools[e],i())},handler:async(t,r)=>{if(!o.enabled)throw Error(`Tool ${e} is disabled`);let i;if(a){let a=o.inputSchema;i=await n(a?await Ih(a,t??{},`Invalid input for tool ${e}: `):t??{},r)}else i=await n(r);return o.outputSchema&&!i.isError&&(i.structuredContent=await Ih(o.outputSchema,i.structuredContent,`Invalid output for tool ${e}: `)),i}};return this._registeredTools[e]=o,!this._capabilities.tools&&!this.transport&&this.registerCapabilities({tools:{listChanged:!0}}),this.ensureToolHandlersInitialized(),i(),o}_toolHandlersInitialized=!1;ensureToolHandlersInitialized(){this._toolHandlersInitialized||(this._toolHandlersInitialized=!0,this.oncalltool=async(e,t)=>{let n=this._registeredTools[e.name];if(!n)throw Error(`Tool ${e.name} not found`);return n.handler(e.arguments,t)},this.onlisttools=async(e,t)=>({tools:await Promise.all(Object.entries(this._registeredTools).filter(([e,t])=>t.enabled).map(async([e,t])=>{let n={name:e,title:t.title,description:t.description,inputSchema:t.inputSchema?await Fh(t.inputSchema,`input`):{type:`object`,properties:{}}};return t.outputSchema&&(n.outputSchema=await Fh(t.outputSchema,`output`)),t.annotations&&(n.annotations=t.annotations),t._meta&&(n._meta=t._meta),n}))}))}async sendToolListChanged(e={}){this._assertInitialized(`sendToolListChanged`),await this.notification({method:`notifications/tools/list_changed`,params:e})}getHostCapabilities(){return this._hostCapabilities}getHostVersion(){return this._hostInfo}getHostContext(){return this._hostContext}get ontoolinput(){return this.getEventHandler(`toolinput`)}set ontoolinput(e){this.setEventHandler(`toolinput`,e)}get ontoolinputpartial(){return this.getEventHandler(`toolinputpartial`)}set ontoolinputpartial(e){this.setEventHandler(`toolinputpartial`,e)}get ontoolresult(){return this.getEventHandler(`toolresult`)}set ontoolresult(e){this.setEventHandler(`toolresult`,e)}get ontoolcancelled(){return this.getEventHandler(`toolcancelled`)}set ontoolcancelled(e){this.setEventHandler(`toolcancelled`,e)}get onhostcontextchanged(){return this.getEventHandler(`hostcontextchanged`)}set onhostcontextchanged(e){this.setEventHandler(`hostcontextchanged`,e)}_onteardown;get onteardown(){return this._onteardown}set onteardown(e){this.warnIfRequestHandlerReplaced(`onteardown`,this._onteardown,e),this._onteardown=e,this.replaceRequestHandler(wh,(e,t)=>{if(!this._onteardown)throw Error(`No onteardown handler set`);return this._onteardown(e.params,t)})}_oncalltool;get oncalltool(){return this._oncalltool}set oncalltool(e){this.warnIfRequestHandlerReplaced(`oncalltool`,this._oncalltool,e),this._oncalltool=e,this.replaceRequestHandler(mm,(e,t)=>{if(!this._oncalltool)throw Error(`No oncalltool handler set`);return this._oncalltool(e.params,t)})}_onlisttools;get onlisttools(){return this._onlisttools}set onlisttools(e){this.warnIfRequestHandlerReplaced(`onlisttools`,this._onlisttools,e),this._onlisttools=e,this.replaceRequestHandler(um,(e,t)=>{if(!this._onlisttools)throw Error(`No onlisttools handler set`);return this._onlisttools(e.params,t)})}assertCapabilityForMethod(e){switch(e){case`sampling/createMessage`:if(!this._hostCapabilities?.sampling)throw Error(`Host does not support sampling (required for ${e})`);break}}assertRequestHandlerCapability(e){switch(e){case`tools/call`:case`tools/list`:if(!this._capabilities.tools)throw Error(`Client does not support tool capability (required for ${e})`);return;case`ping`:case`ui/resource-teardown`:return;default:throw Error(`No handler for method ${e} registered`)}}assertNotificationCapability(e){}assertTaskCapability(e){throw Error(`Tasks are not supported in MCP Apps`)}assertTaskHandlerCapability(e){throw Error(`Task handlers are not supported in MCP Apps`)}async callServerTool(e,t){if(this._assertInitialized(`callServerTool`),typeof e==`string`)throw Error(`callServerTool() expects an object as its first argument, but received a string ("${e}"). Did you mean: callServerTool({ name: "${e}", arguments: { ... } })?`);return await this.request({method:`tools/call`,params:e},fm,{onprogress:()=>{},resetTimeoutOnProgress:!0,...t})}async readServerResource(e,t){return this._assertInitialized(`readServerResource`),await this.request({method:`resources/read`,params:e},Lp,t)}async listServerResources(e,t){return this._assertInitialized(`listServerResources`),await this.request({method:`resources/list`,params:e},jp,t)}async createSamplingMessage(e,t){this._assertInitialized(`createSamplingMessage`);let n=e.tools?Am:km;return await this.request({method:`sampling/createMessage`,params:e},n,t)}sendMessage(e,t){return this._assertInitialized(`sendMessage`),this.request({method:`ui/message`,params:e},gh,t)}sendLog(e){return this.notification({method:`notifications/message`,params:e})}updateModelContext(e,t){return this._assertInitialized(`updateModelContext`),this.request({method:`ui/update-model-context`,params:e},Hf,t)}openLink(e,t){return this._assertInitialized(`openLink`),this.request({method:`ui/open-link`,params:e},mh,t)}sendOpenLink=this.openLink;downloadFile(e,t){return this._assertInitialized(`downloadFile`),this.request({method:`ui/download-file`,params:e},hh,t)}requestTeardown(e={}){return this.notification({method:`ui/notifications/request-teardown`,params:e})}requestDisplayMode(e,t){return this._assertInitialized(`requestDisplayMode`),this.request({method:`ui/request-display-mode`,params:e},Oh,t)}sendSizeChanged(e){return this.notification({method:`ui/notifications/size-changed`,params:e})}setupSizeChangedNotifications(){let e=!1,t=0,n=0,r=()=>{e||(e=!0,requestAnimationFrame(()=>{e=!1;let r=document.documentElement,i=r.style.height;r.style.height=`max-content`;let a=Math.ceil(r.getBoundingClientRect().height);r.style.height=i;let o=Math.ceil(window.innerWidth);(o!==t||a!==n)&&(t=o,n=a,this.sendSizeChanged({width:o,height:a}))}))};r();let i=new ResizeObserver(r);return i.observe(document.documentElement),i.observe(document.body),()=>i.disconnect()}async connect(e=new uh(window.parent,window.parent),t){if(this.transport)throw Error(`App is already connected. Call close() before connecting again.`);this._initializedSent=!1,await super.connect(e);try{let e=await this.request({method:`ui/initialize`,params:{appCapabilities:this._capabilities,appInfo:this._appInfo,protocolVersion:lh}},Nh,t);if(e===void 0)throw Error(`Server sent invalid initialize result: ${e}`);this._hostCapabilities=e.hostCapabilities,this._hostInfo=e.hostInfo,this._hostContext=e.hostContext,await this.notification({method:`ui/notifications/initialized`}),this._initializedSent=!0,this.options?.autoResize&&this.setupSizeChangedNotifications()}catch(e){throw this.close(),e}}},Rh=250,zh=250,Bh=185,Vh=220,Hh=100,Uh=14,Wh=20,Gh=5;function Kh(e,t,n){let r=-(e-n+180)*Math.PI/180;return{x:Rh+t*Math.cos(r),y:zh+t*Math.sin(r)}}function qh(e){return document.createElementNS(`http://www.w3.org/2000/svg`,e)}var Jh=document.getElementById(`tooltip`);function Yh(e,t,n,r,i){Jh.innerHTML=`
524
+ - "app": Tool callable by the app from this server only`),csp:Zu().optional(),permissions:Zu().optional()}),L({mimeTypes:I(j()).optional().describe('Array of supported MIME types for UI resources.\nMust include `"text/html;profile=mcp-app"` for MCP Apps support.')}),L({method:H(`ui/download-file`),params:L({contents:I(z([im,am])).describe(`Resource contents to download — embedded (inline data) or linked (host fetches). Uses standard MCP resource types.`)})}),L({method:H(`ui/message`),params:L({role:H(`user`).describe(`Message role, currently only "user" is supported.`),content:I(om).describe(`Message content blocks (text, image, etc.).`)})}),L({method:H(`ui/notifications/sandbox-resource-ready`),params:L({html:j().describe(`HTML content to load into the inner iframe.`),sandbox:j().optional().describe(`Optional override for the inner iframe's sandbox attribute.`),csp:bh.optional().describe(`CSP configuration from resource metadata.`),permissions:xh.optional().describe(`Sandbox permissions from resource metadata.`)})});var Nh=L({method:H(`ui/notifications/tool-result`),params:hm.describe(`Standard MCP tool execution result.`)}),Ph=L({toolInfo:L({id:Ff.optional().describe(`JSON-RPC id of the tools/call request.`),tool:fm.describe(`Tool definition including name, inputSchema, etc.`)}).optional().describe(`Metadata of the tool call that instantiated this App.`),theme:mh.optional().describe(`Current color theme preference.`),styles:Eh.optional().describe(`Style configuration for theming the app.`),displayMode:hh.optional().describe(`How the UI is currently displayed.`),availableDisplayModes:I(hh).optional().describe(`Display modes the host supports.`),containerDimensions:z([L({height:N().describe(`Fixed container height in pixels.`)}),L({maxHeight:z([N(),Wu()]).optional().describe(`Maximum container height in pixels.`)})]).and(z([L({width:N().describe(`Fixed container width in pixels.`)}),L({maxWidth:z([N(),Wu()]).optional().describe(`Maximum container width in pixels.`)})])).optional().describe(`Container dimensions. Represents the dimensions of the iframe or other
525
+ container holding the app. Specify either width or maxWidth, and either height or maxHeight.`),locale:j().optional().describe(`User's language and region preference in BCP 47 format.`),timeZone:j().optional().describe(`User's timezone in IANA format.`),userAgent:j().optional().describe(`Host application identifier.`),platform:z([H(`web`),H(`desktop`),H(`mobile`)]).optional().describe(`Platform type for responsive design decisions.`),deviceCapabilities:L({touch:P().optional().describe(`Whether the device supports touch input.`),hover:P().optional().describe(`Whether the device supports hover interactions.`)}).optional().describe(`Device input capabilities.`),safeAreaInsets:L({top:N().describe(`Top safe area inset in pixels.`),right:N().describe(`Right safe area inset in pixels.`),bottom:N().describe(`Bottom safe area inset in pixels.`),left:N().describe(`Left safe area inset in pixels.`)}).optional().describe(`Mobile safe area boundaries in pixels.`)}).passthrough(),Fh=L({method:H(`ui/notifications/host-context-changed`),params:Ph.describe(`Partial context update containing only changed fields.`)});L({method:H(`ui/update-model-context`),params:L({content:I(om).optional().describe(`Context content blocks (text, image, etc.).`),structuredContent:B(j(),F().describe(`Structured content for machine-readable context data.`)).optional().describe(`Structured content for machine-readable context data.`)})}),L({method:H(`ui/initialize`),params:L({appInfo:Xf.describe(`App identification (name and version).`),appCapabilities:Ah.describe(`Features and capabilities this app provides.`),protocolVersion:j().describe(`Protocol version this app supports.`)})});var Ih=L({protocolVersion:j().describe(`Negotiated protocol version string (e.g., "2025-11-21").`),hostInfo:Xf.describe(`Host application identification and version.`),hostCapabilities:kh.describe(`Features and capabilities provided by the host.`),hostContext:Ph.describe(`Rich context about the host environment.`)}).passthrough(),Lh={target:`draft-2020-12`};async function Rh(e,t){let n=e[`~standard`];if(n.jsonSchema)return n.jsonSchema[t](Lh);if(n.vendor===`zod`){let{z:n}=await uh(async()=>{let{z:e}=await Promise.resolve().then(()=>Tf);return{z:e}},__VITE_PRELOAD__);return n.toJSONSchema(e,{io:t})}throw Error(`Schema (vendor: ${n.vendor}) does not implement Standard JSON Schema (~standard.jsonSchema). Use a library that does (zod v4, ArkType, Valibot) or wrap your schema accordingly.`)}async function zh(e,t,n=``){let r=await e[`~standard`].validate(t);if(r.issues){let e=r.issues.map(e=>{let t=e.path?.map(e=>typeof e==`object`?e.key:e).join(`.`);return t?`${t}: ${e.message}`:e.message}).join(`; `);throw Error(n+e)}return r.value}var Bh=class e extends dh{_appInfo;_capabilities;options;_hostCapabilities;_hostInfo;_hostContext;_registeredTools={};_initializedSent=!1;_assertInitialized(e){if(this._initializedSent)return;let t=`[ext-apps] App.${e}() called before connect() completed the ui/initialize handshake. Await app.connect() before calling this method, or move data loading to an ontoolresult handler.`;if(this.options?.strict)throw Error(t);console.warn(`${t}. This will throw in a future release.`)}eventSchemas={toolinput:Sh,toolinputpartial:Ch,toolresult:Nh,toolcancelled:wh,hostcontextchanged:Fh};static ONE_SHOT_EVENTS=new Set([`toolinput`,`toolinputpartial`,`toolresult`,`toolcancelled`]);_everHadListener=new Set;_assertHandlerTiming(t){if(!e.ONE_SHOT_EVENTS.has(t)||this._everHadListener.has(t)||(this._everHadListener.add(t),!this._initializedSent))return;let n=`[ext-apps] "${String(t)}" handler registered after connect() completed the ui/initialize handshake. The host may have already sent this notification. Register handlers before calling app.connect().`;if(this.options?.strict)throw Error(n);console.warn(n)}setEventHandler(e,t){t&&this._assertHandlerTiming(e),super.setEventHandler(e,t)}addEventListener(e,t){this._assertHandlerTiming(e),super.addEventListener(e,t)}onEventDispatch(e,t){e===`hostcontextchanged`&&(this._hostContext={...this._hostContext,...t})}constructor(e,t={},n={autoResize:!0}){super(n),this._appInfo=e,this._capabilities=t,this.options=n,n.allowUnsafeEval||l({jitless:!0}),this.setRequestHandler(op,e=>(console.log(`Received ping:`,e.params),{})),this.setEventHandler(`hostcontextchanged`,void 0)}registerCapabilities(e){if(this.transport)throw Error(`Cannot register capabilities after transport is established`);this._capabilities=oh(this._capabilities,e)}registerTool(e,t,n){if(this._registeredTools[e])throw Error(`Tool ${e} is already registered`);let r=this,i=()=>{r._initializedSent&&r._capabilities.tools?.listChanged&&r.sendToolListChanged()},a=t.inputSchema!==void 0,o={title:t.title,description:t.description,inputSchema:t.inputSchema,outputSchema:t.outputSchema,annotations:t.annotations,_meta:t._meta,enabled:!0,enable(){this.enabled=!0,i()},disable(){this.enabled=!1,i()},update(e){Object.assign(this,e),i()},remove(){r._registeredTools[e]===o&&(delete r._registeredTools[e],i())},handler:async(t,r)=>{if(!o.enabled)throw Error(`Tool ${e} is disabled`);let i;if(a){let a=o.inputSchema;i=await n(a?await zh(a,t??{},`Invalid input for tool ${e}: `):t??{},r)}else i=await n(r);return o.outputSchema&&!i.isError&&(i.structuredContent=await zh(o.outputSchema,i.structuredContent,`Invalid output for tool ${e}: `)),i}};return this._registeredTools[e]=o,!this._capabilities.tools&&!this.transport&&this.registerCapabilities({tools:{listChanged:!0}}),this.ensureToolHandlersInitialized(),i(),o}_toolHandlersInitialized=!1;ensureToolHandlersInitialized(){this._toolHandlersInitialized||(this._toolHandlersInitialized=!0,this.oncalltool=async(e,t)=>{let n=this._registeredTools[e.name];if(!n)throw Error(`Tool ${e.name} not found`);return n.handler(e.arguments,t)},this.onlisttools=async(e,t)=>({tools:await Promise.all(Object.entries(this._registeredTools).filter(([e,t])=>t.enabled).map(async([e,t])=>{let n={name:e,title:t.title,description:t.description,inputSchema:t.inputSchema?await Rh(t.inputSchema,`input`):{type:`object`,properties:{}}};return t.outputSchema&&(n.outputSchema=await Rh(t.outputSchema,`output`)),t.annotations&&(n.annotations=t.annotations),t._meta&&(n._meta=t._meta),n}))}))}async sendToolListChanged(e={}){this._assertInitialized(`sendToolListChanged`),await this.notification({method:`notifications/tools/list_changed`,params:e})}getHostCapabilities(){return this._hostCapabilities}getHostVersion(){return this._hostInfo}getHostContext(){return this._hostContext}get ontoolinput(){return this.getEventHandler(`toolinput`)}set ontoolinput(e){this.setEventHandler(`toolinput`,e)}get ontoolinputpartial(){return this.getEventHandler(`toolinputpartial`)}set ontoolinputpartial(e){this.setEventHandler(`toolinputpartial`,e)}get ontoolresult(){return this.getEventHandler(`toolresult`)}set ontoolresult(e){this.setEventHandler(`toolresult`,e)}get ontoolcancelled(){return this.getEventHandler(`toolcancelled`)}set ontoolcancelled(e){this.setEventHandler(`toolcancelled`,e)}get onhostcontextchanged(){return this.getEventHandler(`hostcontextchanged`)}set onhostcontextchanged(e){this.setEventHandler(`hostcontextchanged`,e)}_onteardown;get onteardown(){return this._onteardown}set onteardown(e){this.warnIfRequestHandlerReplaced(`onteardown`,this._onteardown,e),this._onteardown=e,this.replaceRequestHandler(Dh,(e,t)=>{if(!this._onteardown)throw Error(`No onteardown handler set`);return this._onteardown(e.params,t)})}_oncalltool;get oncalltool(){return this._oncalltool}set oncalltool(e){this.warnIfRequestHandlerReplaced(`oncalltool`,this._oncalltool,e),this._oncalltool=e,this.replaceRequestHandler(_m,(e,t)=>{if(!this._oncalltool)throw Error(`No oncalltool handler set`);return this._oncalltool(e.params,t)})}_onlisttools;get onlisttools(){return this._onlisttools}set onlisttools(e){this.warnIfRequestHandlerReplaced(`onlisttools`,this._onlisttools,e),this._onlisttools=e,this.replaceRequestHandler(pm,(e,t)=>{if(!this._onlisttools)throw Error(`No onlisttools handler set`);return this._onlisttools(e.params,t)})}assertCapabilityForMethod(e){switch(e){case`sampling/createMessage`:if(!this._hostCapabilities?.sampling)throw Error(`Host does not support sampling (required for ${e})`);break}}assertRequestHandlerCapability(e){switch(e){case`tools/call`:case`tools/list`:if(!this._capabilities.tools)throw Error(`Client does not support tool capability (required for ${e})`);return;case`ping`:case`ui/resource-teardown`:return;default:throw Error(`No handler for method ${e} registered`)}}assertNotificationCapability(e){}assertTaskCapability(e){throw Error(`Tasks are not supported in MCP Apps`)}assertTaskHandlerCapability(e){throw Error(`Task handlers are not supported in MCP Apps`)}async callServerTool(e,t){if(this._assertInitialized(`callServerTool`),typeof e==`string`)throw Error(`callServerTool() expects an object as its first argument, but received a string ("${e}"). Did you mean: callServerTool({ name: "${e}", arguments: { ... } })?`);return await this.request({method:`tools/call`,params:e},hm,{onprogress:()=>{},resetTimeoutOnProgress:!0,...t})}async readServerResource(e,t){return this._assertInitialized(`readServerResource`),await this.request({method:`resources/read`,params:e},Bp,t)}async listServerResources(e,t){return this._assertInitialized(`listServerResources`),await this.request({method:`resources/list`,params:e},Pp,t)}async createSamplingMessage(e,t){this._assertInitialized(`createSamplingMessage`);let n=e.tools?Nm:Mm;return await this.request({method:`sampling/createMessage`,params:e},n,t)}sendMessage(e,t){return this._assertInitialized(`sendMessage`),this.request({method:`ui/message`,params:e},yh,t)}sendLog(e){return this.notification({method:`notifications/message`,params:e})}updateModelContext(e,t){return this._assertInitialized(`updateModelContext`),this.request({method:`ui/update-model-context`,params:e},Gf,t)}openLink(e,t){return this._assertInitialized(`openLink`),this.request({method:`ui/open-link`,params:e},_h,t)}sendOpenLink=this.openLink;downloadFile(e,t){return this._assertInitialized(`downloadFile`),this.request({method:`ui/download-file`,params:e},vh,t)}requestTeardown(e={}){return this.notification({method:`ui/notifications/request-teardown`,params:e})}requestDisplayMode(e,t){return this._assertInitialized(`requestDisplayMode`),this.request({method:`ui/request-display-mode`,params:e},jh,t)}sendSizeChanged(e){return this.notification({method:`ui/notifications/size-changed`,params:e})}setupSizeChangedNotifications(){let e=!1,t=0,n=0,r=()=>{e||(e=!0,requestAnimationFrame(()=>{e=!1;let r=document.documentElement,i=r.style.height;r.style.height=`max-content`;let a=Math.ceil(r.getBoundingClientRect().height);r.style.height=i;let o=Math.ceil(window.innerWidth);(o!==t||a!==n)&&(t=o,n=a,this.sendSizeChanged({width:o,height:a}))}))};r();let i=new ResizeObserver(r);return i.observe(document.documentElement),i.observe(document.body),()=>i.disconnect()}async connect(e=new ph(window.parent,window.parent),t){if(this.transport)throw Error(`App is already connected. Call close() before connecting again.`);this._initializedSent=!1,await super.connect(e);try{let e=await this.request({method:`ui/initialize`,params:{appCapabilities:this._capabilities,appInfo:this._appInfo,protocolVersion:fh}},Ih,t);if(e===void 0)throw Error(`Server sent invalid initialize result: ${e}`);this._hostCapabilities=e.hostCapabilities,this._hostInfo=e.hostInfo,this._hostContext=e.hostContext,await this.notification({method:`ui/notifications/initialized`}),this._initializedSent=!0,this.options?.autoResize&&this.setupSizeChangedNotifications()}catch(e){throw this.close(),e}}},Vh=250,Hh=250,Uh=240,Wh=204,Gh=190,Kh=159,qh=140,Jh=134,Yh=15,Xh=20;function Z(e,t,n){let r=-(e-n+180)*Math.PI/180;return{x:Vh+t*Math.cos(r),y:Hh+t*Math.sin(r)}}function Q(e){return document.createElementNS(`http://www.w3.org/2000/svg`,e)}var Zh={sun:`☉`,moon:`☽`,mercury:`☿`,venus:`♀`,mars:`♂`,jupiter:`♃`,saturn:`♄`,uranus:`♅`,neptune:`♆`,pluto:`♇`,"north node":`☊`,"south node":`☋`,chiron:`⚷`,"true node":`☊`},Qh=[`♈`,`♉`,`♊`,`♋`,`♌`,`♍`,`♎`,`♏`,`♐`,`♑`,`♒`,`♓`],$h=[`Aries`,`Taurus`,`Gemini`,`Cancer`,`Leo`,`Virgo`,`Libra`,`Scorpio`,`Sagittarius`,`Capricorn`,`Aquarius`,`Pisces`],eg={conjunction:`☌`,opposition:`☍`,trine:`△`,square:`□`,sextile:`⚹`,quincunx:`⚻`,semisquare:`∠`},tg={conjunction:`#9a7fd4`,opposition:`#e05252`,trine:`#52a8e0`,square:`#e08a52`,sextile:`#52c07a`,quincunx:`#c0b052`,semisquare:`#b07a5a`},ng=[`#e8854c`,`#7aaa6a`,`#5aaad0`,`#8878c8`,`#e8854c`,`#7aaa6a`,`#5aaad0`,`#8878c8`,`#e8854c`,`#7aaa6a`,`#5aaad0`,`#8878c8`],rg=new Set([`sun`,`moon`,`mercury`,`venus`,`mars`,`jupiter`,`saturn`,`uranus`,`neptune`,`pluto`,`chiron`,`north node`,`south node`,`true node`]);function ig(e){let t=(e%360+360)%360,n=Math.floor(t/30),r=Math.floor(t%30);return`${r}°${Math.floor((t%30-r)*60).toString().padStart(2,`0`)}′ ${$h[n]}`}function $(e){return e.replace(/\b\w/g,e=>e.toUpperCase())}function ag(e){return Array.isArray(e)?e:e&&typeof e==`object`?Object.entries(e).filter(([e])=>rg.has(e.toLowerCase())).map(([e,t])=>({name:e.toLowerCase(),longitude:t.longitude??t.lon??0,speed:t.longitude_speed??t.speed,retrograde:!!(t.is_retrograde??t.retrograde),sign:t.sign_name??t.sign,house:t.house})):[]}var og=document.getElementById(`tooltip`);function sg(e,t,n,r,i){og.innerHTML=`
469
526
  <div class="tooltip-title">${n}</div>
470
527
  <div class="tooltip-detail">${r}</div>
471
528
  ${i?`<div class="tooltip-hint">${i}</div>`:``}
472
- `;let a=e+14,o=t+10;a+220>window.innerWidth&&(a=e-220-8),o+80>window.innerHeight&&(o=t-80-8),Jh.style.left=`${a}px`,Jh.style.top=`${o}px`,Jh.classList.add(`visible`)}function Xh(){Jh.classList.remove(`visible`)}var Zh={sun:`☉`,moon:`☽`,mercury:`☿`,venus:`♀`,mars:`♂`,jupiter:`♃`,saturn:`♄`,uranus:`♅`,neptune:`♆`,pluto:`♇`,"north node":`☊`,"south node":`☋`,chiron:`⚷`,"true node":`☊`},Qh={aries:`♈`,taurus:`♉`,gemini:`♊`,cancer:`♋`,leo:`♌`,virgo:`♍`,libra:`♎`,scorpio:`♏`,sagittarius:`♐`,capricorn:`♑`,aquarius:`♒`,pisces:`♓`},$h={conjunction:`☌`,opposition:`☍`,trine:`△`,square:`□`,sextile:`⚹`,quincunx:`⚻`,semisquare:`∠`};function eg(e){let t=[`Aries`,`Taurus`,`Gemini`,`Cancer`,`Leo`,`Virgo`,`Libra`,`Scorpio`,`Sagittarius`,`Capricorn`,`Aquarius`,`Pisces`],n=Math.floor((e%360+360)%360/30),r=Math.floor((e%360+360)%360%30);return`${r}°${Math.floor(((e%360+360)%360%30-r)*60).toString().padStart(2,`0`)} ${t[n]}`}function tg(e,t,n,r,i){e.innerHTML=``;let a=t._svg_base;if(!a){e.innerHTML=`<div class="error-state"><div class="error-icon">⚠️</div><p>No chart visual available.</p></div>`;return}e.insertAdjacentHTML(`beforeend`,a);let o=e.querySelector(`svg`);if(!o)return;o.setAttribute(`width`,`100%`),o.setAttribute(`height`,`100%`),o.style.display=`block`;let s=document.createElementNS(`http://www.w3.org/2000/svg`,`svg`);s.setAttribute(`viewBox`,`0 0 500 500`),s.setAttribute(`width`,`100%`),s.setAttribute(`height`,`100%`),s.style.cssText=`position:absolute;top:0;left:0;pointer-events:none;`,e.style.position=`relative`,e.appendChild(s);let c=t.houses?.[0]?.cusp_lon??0,l=t.planets??[];for(let e of l){let{x:t,y:r}=Kh(e.longitude,Bh,c),i=qh(`circle`);i.setAttribute(`cx`,String(Math.round(t))),i.setAttribute(`cy`,String(Math.round(r))),i.setAttribute(`r`,String(Uh)),i.setAttribute(`class`,`hit-region planet-hit`),i.style.pointerEvents=`all`;let a=Zh[e.name.toLowerCase()]??`★`,o=`${eg(e.longitude)}${e.house?` · H${e.house}`:``}${e.retrograde?` ℞`:``}`;i.addEventListener(`mouseenter`,t=>{Yh(t.clientX,t.clientY,`${a} ${ng(e.name)}`,o,`Click for interpretation`)}),i.addEventListener(`mousemove`,t=>{Yh(t.clientX,t.clientY,`${a} ${ng(e.name)}`,o,`Click for interpretation`)}),i.addEventListener(`mouseleave`,Xh),i.addEventListener(`click`,()=>{Xh(),n(e)}),s.appendChild(i)}let u=t.houses??[];for(let e of u){let t=u[e.number%12],{x:n,y:i}=Kh(e.cusp_lon,Hh,c),{x:a,y:o}=Kh(e.cusp_lon,Bh,c),l=qh(`line`);l.setAttribute(`x1`,String(Math.round(n))),l.setAttribute(`y1`,String(Math.round(i))),l.setAttribute(`x2`,String(Math.round(a))),l.setAttribute(`y2`,String(Math.round(o))),l.setAttribute(`stroke-width`,String(Wh)),l.setAttribute(`class`,`hit-region`),l.style.pointerEvents=`all`;let d=`${Qh[e.sign?.toLowerCase()??``]??e.sign??``} ${e.sign??``} · ${eg(e.cusp_lon)}`,f=t?.cusp_lon,p=f==null?``:` · ${Math.round((f-e.cusp_lon+360)%360)}°`;if(l.addEventListener(`mouseenter`,t=>{Yh(t.clientX,t.clientY,`House ${e.number}`,d+p,`Click for meaning`)}),l.addEventListener(`mousemove`,t=>{Yh(t.clientX,t.clientY,`House ${e.number}`,d+p,`Click for meaning`)}),l.addEventListener(`mouseleave`,Xh),l.addEventListener(`click`,()=>{Xh(),r(e)}),s.appendChild(l),t){let{x:t,y:n}=Kh(e.cusp_lon+(f-e.cusp_lon+360)%360/2,Vh,c),i=qh(`circle`);i.setAttribute(`cx`,String(Math.round(t))),i.setAttribute(`cy`,String(Math.round(n))),i.setAttribute(`r`,`14`),i.setAttribute(`class`,`hit-region`),i.style.pointerEvents=`all`,i.addEventListener(`mouseenter`,t=>Yh(t.clientX,t.clientY,`House ${e.number}`,d,`Click for meaning`)),i.addEventListener(`mousemove`,t=>Yh(t.clientX,t.clientY,`House ${e.number}`,d,`Click for meaning`)),i.addEventListener(`mouseleave`,Xh),i.addEventListener(`click`,()=>{Xh(),r(e)}),s.appendChild(i)}}let d=t.aspects??[];for(let e of d){let t=l.find(t=>t.name.toLowerCase()===e.planet1.toLowerCase()),n=l.find(t=>t.name.toLowerCase()===e.planet2.toLowerCase());if(!t||!n)continue;let{x:r,y:a}=Kh(t.longitude,Hh,c),{x:o,y:u}=Kh(n.longitude,Hh,c),d=qh(`line`);d.setAttribute(`x1`,String(Math.round(r))),d.setAttribute(`y1`,String(Math.round(a))),d.setAttribute(`x2`,String(Math.round(o))),d.setAttribute(`y2`,String(Math.round(u))),d.setAttribute(`stroke-width`,String(Gh+8)),d.setAttribute(`class`,`hit-region aspect-hit`),d.style.pointerEvents=`all`;let f=Zh[t.name.toLowerCase()]??t.name,p=Zh[n.name.toLowerCase()]??n.name,ee=`${f} ${$h[e.type?.toLowerCase()??``]??e.type??``} ${p} · ${e.orb?.toFixed(1)??`?`}° orb${e.applying?` (applying)`:` (separating)`}`;d.addEventListener(`mouseenter`,t=>Yh(t.clientX,t.clientY,ng(e.type??`Aspect`),ee,`Click for interpretation`)),d.addEventListener(`mousemove`,t=>Yh(t.clientX,t.clientY,ng(e.type??`Aspect`),ee,`Click for interpretation`)),d.addEventListener(`mouseleave`,Xh),d.addEventListener(`click`,()=>{Xh(),i(e)}),s.appendChild(d)}}function ng(e){return e.charAt(0).toUpperCase()+e.slice(1)}var rg=[{label:`Placidus`,value:`placidus`},{label:`Whole Sign`,value:`whole_sign`},{label:`Equal`,value:`equal`},{label:`Koch`,value:`koch`},{label:`Regio.`,value:`regiomontanus`}];function ig(e,t,n){e.innerHTML=``;let r=document.createElement(`span`);r.className=`controls-label`,r.textContent=`Houses:`,e.appendChild(r);for(let r of rg){let i=document.createElement(`button`);i.className=`control-btn`+(r.value===t?` active`:``),i.textContent=r.label,i.title=`Switch to ${r.label} house system`,i.setAttribute(`data-system`,r.value),i.addEventListener(`click`,()=>{e.querySelectorAll(`.control-btn`).forEach(e=>e.classList.remove(`active`)),i.classList.add(`active`),i.disabled=!0,i.textContent=`${r.label} …`,n(r.value)}),e.appendChild(i)}}function ag(e,t){e.querySelectorAll(`.control-btn`).forEach(e=>{let n=e.getAttribute(`data-system`);e.disabled=!1,e.textContent=rg.find(e=>e.value===n)?.label??n,e.classList.toggle(`active`,n===t)})}var og=document.getElementById(`loading-state`),sg=document.getElementById(`chart-container`),cg=document.getElementById(`controls-panel`),lg=new Lh({name:`Chart Wheel Explorer`,version:`1.0.0`}),ug=null,dg=`placidus`;lg.ontoolresult=e=>{let t=null;for(let n of e.content??[])if(n.type===`text`&&n.text)try{let e=JSON.parse(n.text);if(e&&typeof e==`object`){t=e;break}}catch{}if(!t){_g(`Chart data could not be parsed from the server response.`);return}ug=t,dg=t.house_system??`placidus`,fg(t)};function fg(e){og.setAttribute(`hidden`,``),sg.removeAttribute(`hidden`),cg.removeAttribute(`hidden`),tg(sg,e,pg,mg,hg),ig(cg,dg,gg)}async function pg(e){try{await lg.callServerTool({name:`chart_wheel_on_planet_click`,arguments:{planet:e.name,longitude:e.longitude,sign:e.sign??null,house:e.house??null,retrograde:e.retrograde??!1,speed:e.speed??null}})}catch(e){console.error(`[Chart] Planet click tool call failed:`,e)}}async function mg(e){try{await lg.callServerTool({name:`chart_wheel_on_house_click`,arguments:{house_number:e.number,sign:e.sign??null,cusp_longitude:e.cusp_lon,ruler:e.ruler??null}})}catch(e){console.error(`[Chart] House click tool call failed:`,e)}}async function hg(e){try{await lg.callServerTool({name:`chart_wheel_on_aspect_click`,arguments:{planet1:e.planet1,planet2:e.planet2,aspect_type:e.type??null,orb:e.orb??null,applying:e.applying??null,angle:e.angle??null}})}catch(e){console.error(`[Chart] Aspect click tool call failed:`,e)}}async function gg(e){if(!ug?._birth_params){ag(cg,dg);return}try{let t=await lg.callServerTool({name:`chart_wheel_recalculate`,arguments:{datetime:ug._birth_params.datetime,timezone:ug._birth_params.timezone??void 0,latitude:ug._birth_params.latitude??void 0,longitude:ug._birth_params.longitude??void 0,location:ug._birth_params.location??void 0,house_system:e}}),n=null;for(let e of t.content??[])if(e.type===`text`&&e.text)try{let t=JSON.parse(e.text);if(t&&typeof t==`object`){n=t;break}}catch{}n?(ug=n,dg=e,fg(n)):ag(cg,dg)}catch(e){console.error(`[Chart] Recalculate failed:`,e),ag(cg,dg)}}function _g(e){og.setAttribute(`hidden`,``),sg.innerHTML=`
529
+ `;let a=e+14,o=t+10;a+220>window.innerWidth&&(a=e-220-8),o+80>window.innerHeight&&(o=t-80-8),og.style.left=`${a}px`,og.style.top=`${o}px`,og.classList.add(`visible`)}function cg(){og.classList.remove(`visible`)}function lg(e){return Math.floor((e%360+360)%360/30)}var ug={sun:[4],moon:[3],mercury:[2,5],venus:[1,6],mars:[0,7],jupiter:[8,11],saturn:[9,10]},dg={sun:0,moon:1,mercury:5,venus:11,mars:9,jupiter:3,saturn:6};function fg(e,t){let n=e.toLowerCase(),r=lg(t),i=ug[n];if(i?.includes(r))return{type:`domicile`,label:`Domicile`,emoji:`⌂`,cssClass:`dignity-domicile`};if(i&&i.map(e=>(e+6)%12).includes(r))return{type:`detriment`,label:`Detriment`,emoji:`⬇`,cssClass:`dignity-detriment`};let a=dg[n];return a!==void 0&&a===r?{type:`exaltation`,label:`Exaltation`,emoji:`★`,cssClass:`dignity-exaltation`}:a!==void 0&&(a+6)%12===r?{type:`fall`,label:`Fall`,emoji:`↓`,cssClass:`dignity-fall`}:null}var pg=new Set([`sun`,`moon`,`mercury`,`venus`,`mars`,`jupiter`,`saturn`]),mg=[`fire`,`earth`,`air`,`water`,`fire`,`earth`,`air`,`water`,`fire`,`earth`,`air`,`water`],hg=[`cardinal`,`fixed`,`mutable`,`cardinal`,`fixed`,`mutable`,`cardinal`,`fixed`,`mutable`,`cardinal`,`fixed`,`mutable`];function gg(e,t){let n={fire:0,earth:0,air:0,water:0,cardinal:0,fixed:0,mutable:0};for(let t of e){if(!pg.has(t.name.toLowerCase()))continue;let e=lg(t.longitude);n[mg[e]]++,n[hg[e]]++}let r=lg(t);return n[mg[r]]++,n[hg[r]]++,n}function _g(e,t){return[e.toLowerCase(),t.toLowerCase()].sort().join(`|`)}function vg(e,t){return e.filter(e=>(e.type??``).toLowerCase()===t)}function yg(e,t){let n=[],r=vg(e,`square`),i=vg(e,`opposition`),a=vg(e,`trine`),o=vg(e,`sextile`),s=vg(e,`quincunx`),c=new Set;for(let e of i){let i=e.planet1.toLowerCase(),a=e.planet2.toLowerCase(),o=r.filter(e=>e.planet1.toLowerCase()===i||e.planet2.toLowerCase()===i);for(let e of o){let o=e.planet1.toLowerCase()===i?e.planet2.toLowerCase():e.planet1.toLowerCase();if(o===a)continue;let s=[i,a,o].sort().join(`|`);if(!c.has(s)&&r.find(e=>e.planet1.toLowerCase()===o&&e.planet2.toLowerCase()===a||e.planet2.toLowerCase()===o&&e.planet1.toLowerCase()===a)){c.add(s);let e=t.find(e=>e.name.toLowerCase()===o),r=e?$(hg[lg(e.longitude)]):``;n.push({name:`T-Square`,description:`${r?r+` · `:``}Apex: ${$(o)}`,planets:[...new Set([i,a,o])],aspectKeys:[_g(i,a),_g(i,o),_g(a,o)]});break}}}let l=new Set;for(let e=0;e<a.length;e++)for(let t=e+1;t<a.length;t++){let r=a[e],i=a[t],o=[r.planet1.toLowerCase(),r.planet2.toLowerCase()],s=[i.planet1.toLowerCase(),i.planet2.toLowerCase()],c=o.find(e=>s.includes(e));if(!c)continue;let u=o.find(e=>e!==c),d=s.find(e=>e!==c),f=[u,c,d].sort().join(`|`);l.has(f)||a.find(e=>e.planet1.toLowerCase()===u&&e.planet2.toLowerCase()===d||e.planet2.toLowerCase()===u&&e.planet1.toLowerCase()===d)&&(l.add(f),n.push({name:`Grand Trine`,description:`${$(u)} · ${$(c)} · ${$(d)}`,planets:[u,c,d],aspectKeys:[_g(u,c),_g(c,d),_g(u,d)]}))}if(i.length>=2&&r.length>=4)for(let e=0;e<i.length;e++)for(let a=e+1;a<i.length;a++){let o=i[e],s=i[a],[c,l]=[o.planet1.toLowerCase(),o.planet2.toLowerCase()],[u,d]=[s.planet1.toLowerCase(),s.planet2.toLowerCase()];if([c,l].some(e=>[u,d].includes(e)))continue;let f=[[c,u],[c,d],[l,u],[l,d]];if(f.every(([e,t])=>r.some(n=>n.planet1.toLowerCase()===e&&n.planet2.toLowerCase()===t||n.planet2.toLowerCase()===e&&n.planet1.toLowerCase()===t))){let e=[c,l,u,d].map(e=>({name:e,lon:t.find(t=>t.name.toLowerCase()===e)?.longitude??0})).sort((e,t)=>e.lon-t.lon).map(e=>e.name);n.push({name:`Grand Cross`,description:e.map($).join(` · `),planets:[c,l,u,d],aspectKeys:[_g(c,l),_g(u,d),...f.map(([e,t])=>_g(e,t))]})}}let u=new Set([`north node`,`south node`,`true node`,`chiron`]),d=t.filter(e=>!u.has(e.name.toLowerCase())).map(e=>({name:e.name.toLowerCase(),lon:e.longitude})),f=new Map;for(let{name:e,lon:t}of d){let n=lg(t),r=f.get(n)??[];r.push(e),f.set(n,r)}for(let[e,t]of f)if(t.length>=3){let r=[...t].sort().join(`|`);n.push({name:`Stellium`,description:`${$h[e]}: ${t.map($).join(`, `)}`,planets:t,aspectKeys:[],_dedupeKey:r})}let p=[...d].sort((e,t)=>e.lon-t.lon),m=[...p,...p.map(e=>({...e,lon:e.lon+360}))],h=new Set;for(let e=0;e<m.length-2;e++){let t=m[e].lon,r=[m[e]];for(let n=e+1;n<m.length&&m[n].lon-t<=10;n++)r.push(m[n]);if(r.length>=3){let e=[...new Set(r.map(e=>e.name))];if(e.length<3)continue;let t=[...e].sort().join(`|`);if(h.has(t))continue;h.add(t),n.some(e=>e._dedupeKey===t)||n.push({name:`Stellium`,description:`Tight cluster: ${e.map($).join(`, `)}`,planets:e,aspectKeys:[]})}}let g=new Set;for(let e=0;e<s.length;e++)for(let t=e+1;t<s.length;t++){let r=s[e],i=s[t],a=[r.planet1.toLowerCase(),r.planet2.toLowerCase()],c=[i.planet1.toLowerCase(),i.planet2.toLowerCase()],l=a.find(e=>c.includes(e));if(!l)continue;let u=a.find(e=>e!==l),d=c.find(e=>e!==l),f=[l,u,d].sort().join(`|`);g.has(f)||o.find(e=>e.planet1.toLowerCase()===u&&e.planet2.toLowerCase()===d||e.planet2.toLowerCase()===u&&e.planet1.toLowerCase()===d)&&(g.add(f),n.push({name:`Yod`,description:`Apex: ${$(l)}`,planets:[l,u,d],aspectKeys:[_g(l,u),_g(l,d),_g(u,d)]}))}for(let e of n)delete e._dedupeKey;return n}var bg=null,xg=null,Sg=null,Cg=null,wg=new Map;function Tg(){return bg||(bg=document.createElement(`div`),bg.id=`info-panel`,bg.className=`info-panel`,document.body.appendChild(bg),bg)}function Eg(e,t){let n=Tg(),r=Zh[e.name.toLowerCase()]??`★`,i=Qh[Math.floor((e.longitude%360+360)%360/30)]??``,a=fg(e.name,e.longitude),o=a?`<span class="dignity-badge ${a.cssClass}" title="${a.label}">${a.emoji} ${a.label}</span>`:``,s=t.filter(t=>t.planet1.toLowerCase()===e.name.toLowerCase()||t.planet2.toLowerCase()===e.name.toLowerCase()).sort((e,t)=>(e.orb??99)-(t.orb??99)),c=s.length?s.map(t=>{let n=t.planet1.toLowerCase()===e.name.toLowerCase()?t.planet2:t.planet1,r=Zh[n.toLowerCase()]??n,i=eg[t.type?.toLowerCase()??``]??t.type??`—`,a=tg[t.type?.toLowerCase()??``]??`#888`,o=t.orb==null?``:`${t.orb.toFixed(1)}°`,s=t.applying===!0?`↗`:t.applying===!1?`↘`:`·`;return`<div class="aspect-row">
530
+ <span class="aspect-dot" style="background:${a}"></span>
531
+ <span class="aspect-sym" style="color:${a}">${i}</span>
532
+ <span class="aspect-other">${r} ${$(n)}</span>
533
+ <span class="aspect-meta">${o} ${s}</span>
534
+ </div>`}).join(``):`<div class="no-aspects">No listed aspects</div>`;n.innerHTML=`
535
+ <div class="info-header">
536
+ <span class="info-glyph">${r}</span>
537
+ <div class="info-title">
538
+ <div class="info-name-row">
539
+ <strong>${$(e.name)}</strong>${e.retrograde?` <span class='retro'>℞</span>`:``}
540
+ ${o}
541
+ </div>
542
+ <div class="info-pos">${i} ${ig(e.longitude)}${e.house?` · House ${e.house}`:``}</div>
543
+ </div>
544
+ <button class="info-close" id="info-close-btn">✕</button>
545
+ </div>
546
+ <div class="aspects-title">Aspects</div>
547
+ <div class="aspects-list">${c}</div>
548
+ <div class="info-hint">Click an aspect line for full interpretation</div>
549
+ `,n.classList.add(`visible`),document.getElementById(`info-close-btn`)?.addEventListener(`click`,()=>{Dg(),Ag()})}function Dg(){bg?.classList.remove(`visible`),xg=null}function Og(e){let t=e.toLowerCase();wg.forEach(({vis:e,color:n},r)=>{r.split(`|`).includes(t)?(e.style.stroke=n,e.style.strokeOpacity=`0.9`,e.style.strokeWidth=`2`):(e.style.strokeOpacity=`0.06`,e.style.strokeWidth=`0.8`)}),Sg?.querySelectorAll(`.planet-hit`).forEach(e=>e.classList.toggle(`dim`,e.dataset.planet!==t))}function kg(e,t){let n=new Set(e.map(e=>e.toLowerCase())),r=new Set(t);wg.forEach(({vis:e,color:t},n)=>{r.has(n)?(e.style.stroke=t,e.style.strokeOpacity=`0.9`,e.style.strokeWidth=`2`):(e.style.strokeOpacity=`0.06`,e.style.strokeWidth=`0.8`)}),Sg?.querySelectorAll(`.planet-hit`).forEach(e=>e.classList.toggle(`dim`,!n.has(e.dataset.planet??``)))}function Ag(){wg.forEach(({vis:e,color:t})=>{e.style.stroke=t,e.style.strokeOpacity=`0.38`,e.style.strokeWidth=`0.8`}),Sg?.querySelectorAll(`.planet-hit`).forEach(e=>e.classList.remove(`dim`))}function jg(e,t,n,r,i){e.innerHTML=``,wg.clear(),xg=null,Dg();let a=ag(t.planets),o=t.houses??[],s=t.aspects??[],c=o[0]?.cusp_lon??t.ascendant??0,l=Q(`svg`);l.setAttribute(`viewBox`,`0 0 500 500`),l.setAttribute(`width`,`100%`),l.setAttribute(`height`,`100%`),l.style.display=`block`,e.appendChild(l),Sg=l;let u=Q(`circle`);u.setAttribute(`cx`,`250`),u.setAttribute(`cy`,`250`),u.setAttribute(`r`,`244`),u.style.fill=`var(--bg, #faf9f5)`,u.setAttribute(`stroke`,`#d4cec8`),u.setAttribute(`stroke-width`,`0.5`),u.setAttribute(`pointer-events`,`none`),l.appendChild(u);let d=Q(`circle`);d.setAttribute(`cx`,`250`),d.setAttribute(`cy`,`250`),d.setAttribute(`r`,String(Uh)),d.setAttribute(`fill`,`#f2ede6`),d.setAttribute(`stroke`,`#c0b8a8`),d.setAttribute(`stroke-width`,`0.5`),d.setAttribute(`pointer-events`,`none`),l.appendChild(d);let f=Q(`circle`);f.setAttribute(`cx`,`250`),f.setAttribute(`cy`,`250`),f.setAttribute(`r`,String(Wh)),f.style.fill=`var(--bg, #faf9f5)`,f.setAttribute(`stroke`,`#c0b8a8`),f.setAttribute(`stroke-width`,`0.5`),f.setAttribute(`pointer-events`,`none`),l.appendChild(f);for(let e=0;e<12;e++){let t=e*30,{x:n,y:r}=Z(t,Wh,c),{x:i,y:a}=Z(t,Uh,c),o=Q(`line`);o.setAttribute(`x1`,n.toFixed(1)),o.setAttribute(`y1`,r.toFixed(1)),o.setAttribute(`x2`,i.toFixed(1)),o.setAttribute(`y2`,a.toFixed(1)),o.setAttribute(`stroke`,`#c0b8a8`),o.setAttribute(`stroke-width`,`0.5`),o.setAttribute(`pointer-events`,`none`),l.appendChild(o);let{x:s,y:u}=Z(t+15,(Wh+Uh)/2,c),d=Q(`text`);d.setAttribute(`x`,s.toFixed(1)),d.setAttribute(`y`,u.toFixed(1)),d.setAttribute(`text-anchor`,`middle`),d.setAttribute(`dominant-baseline`,`central`),d.setAttribute(`font-size`,`13`),d.setAttribute(`fill`,ng[e]),d.setAttribute(`pointer-events`,`none`),d.style.fontFamily=`serif`,d.textContent=Qh[e],l.appendChild(d)}let p=Q(`circle`);if(p.setAttribute(`cx`,`250`),p.setAttribute(`cy`,`250`),p.setAttribute(`r`,String(qh)),p.style.fill=`var(--bg, #faf9f5)`,p.setAttribute(`stroke`,`#c0b8a8`),p.setAttribute(`stroke-width`,`0.5`),p.setAttribute(`pointer-events`,`none`),l.appendChild(p),o.length>0)for(let e=0;e<o.length;e++){let t=o[e],n=o[(e+1)%o.length],r=[1,4,7,10].includes(t.number),{x:i,y:a}=Z(t.cusp_lon,qh,c),{x:s,y:u}=Z(t.cusp_lon,Wh,c),d=Q(`line`);d.setAttribute(`x1`,i.toFixed(1)),d.setAttribute(`y1`,a.toFixed(1)),d.setAttribute(`x2`,s.toFixed(1)),d.setAttribute(`y2`,u.toFixed(1)),d.setAttribute(`stroke`,r?`#7060b8`:`#a89898`),d.setAttribute(`stroke-width`,r?`1.5`:`0.7`),d.setAttribute(`pointer-events`,`none`),l.appendChild(d);let f=(n.cusp_lon-t.cusp_lon+360)%360,{x:p,y:m}=Z(t.cusp_lon+f/2,Kh,c),h=Q(`text`);h.setAttribute(`x`,p.toFixed(1)),h.setAttribute(`y`,m.toFixed(1)),h.setAttribute(`text-anchor`,`middle`),h.setAttribute(`dominant-baseline`,`central`),h.setAttribute(`font-size`,`9`),h.setAttribute(`fill`,r?`#7060b8`:`#90808a`),h.setAttribute(`pointer-events`,`none`),h.textContent=String(t.number),l.appendChild(h)}let m=o.find(e=>e.number===1),h=o.find(e=>e.number===4),g=o.find(e=>e.number===7),_=o.find(e=>e.number===10),v=[{lon:m?.cusp_lon??c,label:`ASC`},{lon:g?.cusp_lon??(c+180)%360,label:`DSC`},{lon:_?.cusp_lon??(c+270)%360,label:`MC`},{lon:h?.cusp_lon??(c+90)%360,label:`IC`}];for(let e of v){let{x:t,y:n}=Z(e.lon,Uh+14,c),r=Q(`text`);r.setAttribute(`x`,t.toFixed(1)),r.setAttribute(`y`,n.toFixed(1)),r.setAttribute(`text-anchor`,`middle`),r.setAttribute(`dominant-baseline`,`central`),r.setAttribute(`font-size`,`8`),r.setAttribute(`font-weight`,`700`),r.setAttribute(`fill`,`#7060b8`),r.setAttribute(`pointer-events`,`none`),r.textContent=e.label,l.appendChild(r)}for(let e of s){let t=a.find(t=>t.name.toLowerCase()===e.planet1.toLowerCase()),n=a.find(t=>t.name.toLowerCase()===e.planet2.toLowerCase());if(!t||!n)continue;let r=tg[e.type?.toLowerCase()??``]??`#aaa`,{x:o,y:s}=Z(t.longitude,Jh,c),{x:u,y:d}=Z(n.longitude,Jh,c),f=Q(`line`);f.setAttribute(`x1`,o.toFixed(1)),f.setAttribute(`y1`,s.toFixed(1)),f.setAttribute(`x2`,u.toFixed(1)),f.setAttribute(`y2`,d.toFixed(1)),f.setAttribute(`pointer-events`,`none`),f.style.stroke=r,f.style.strokeOpacity=`0.38`,f.style.strokeWidth=`0.8`,l.appendChild(f);let p=Q(`line`);p.setAttribute(`x1`,o.toFixed(1)),p.setAttribute(`y1`,s.toFixed(1)),p.setAttribute(`x2`,u.toFixed(1)),p.setAttribute(`y2`,d.toFixed(1)),p.setAttribute(`stroke`,`transparent`),p.setAttribute(`stroke-width`,`13`),p.setAttribute(`fill`,`none`),p.setAttribute(`class`,`hit-region aspect-hit`),p.style.pointerEvents=`all`;let m=Zh[t.name.toLowerCase()]??t.name,h=Zh[n.name.toLowerCase()]??n.name,g=`${m} ${eg[e.type?.toLowerCase()??``]??e.type??``} ${h} · ${e.orb?.toFixed(1)??`?`}° orb${e.applying===!0?` (applying)`:e.applying===!1?` (separating)`:``}`;p.addEventListener(`mouseenter`,t=>sg(t.clientX,t.clientY,$(e.type??`Aspect`),g,`Click for interpretation`)),p.addEventListener(`mousemove`,t=>sg(t.clientX,t.clientY,$(e.type??`Aspect`),g,`Click for interpretation`)),p.addEventListener(`mouseleave`,cg),p.addEventListener(`click`,()=>{cg(),i(e)});let _=[e.planet1.toLowerCase(),e.planet2.toLowerCase()].sort().join(`|`);wg.set(_,{vis:f,color:r}),l.appendChild(p)}for(let e of a){let t=Zh[e.name.toLowerCase()]??`★`,{x:r,y:i}=Z(e.longitude,Gh,c),{x:a,y:o}=Z(e.longitude,Wh-5,c),u=Q(`circle`);u.setAttribute(`cx`,a.toFixed(1)),u.setAttribute(`cy`,o.toFixed(1)),u.setAttribute(`r`,`2.5`),u.setAttribute(`fill`,`#7060b8`),u.setAttribute(`opacity`,`0.65`),u.setAttribute(`pointer-events`,`none`),l.appendChild(u);let d=Q(`text`);d.setAttribute(`x`,r.toFixed(1)),d.setAttribute(`y`,i.toFixed(1)),d.setAttribute(`text-anchor`,`middle`),d.setAttribute(`dominant-baseline`,`central`),d.setAttribute(`font-size`,`15`),d.setAttribute(`pointer-events`,`none`),d.style.fill=`var(--text, #1a1028)`,d.style.fontFamily=`serif`,d.textContent=t,l.appendChild(d);let f=Math.floor((e.longitude%360+360)%360%30),{x:p,y:m}=Z(e.longitude,Gh-17,c),h=Q(`text`);if(h.setAttribute(`x`,p.toFixed(1)),h.setAttribute(`y`,m.toFixed(1)),h.setAttribute(`text-anchor`,`middle`),h.setAttribute(`dominant-baseline`,`central`),h.setAttribute(`font-size`,`7`),h.setAttribute(`fill`,`#9080a0`),h.setAttribute(`pointer-events`,`none`),h.textContent=`${f}°`,l.appendChild(h),e.retrograde){let{x:t,y:n}=Z(e.longitude,Gh+14,c),r=Q(`text`);r.setAttribute(`x`,t.toFixed(1)),r.setAttribute(`y`,n.toFixed(1)),r.setAttribute(`text-anchor`,`middle`),r.setAttribute(`dominant-baseline`,`central`),r.setAttribute(`font-size`,`8`),r.setAttribute(`fill`,`#e05252`),r.setAttribute(`pointer-events`,`none`),r.textContent=`℞`,l.appendChild(r)}let g=Q(`circle`);g.setAttribute(`cx`,r.toFixed(1)),g.setAttribute(`cy`,i.toFixed(1)),g.setAttribute(`r`,String(Yh)),g.setAttribute(`fill`,`transparent`),g.setAttribute(`class`,`hit-region planet-hit`),g.dataset.planet=e.name.toLowerCase(),g.style.pointerEvents=`all`;let _=`${ig(e.longitude)}${e.house?` · H${e.house}`:``}${e.retrograde?` ℞`:``}`;g.addEventListener(`mouseenter`,n=>sg(n.clientX,n.clientY,`${t} ${$(e.name)}`,_,`Click for aspects`)),g.addEventListener(`mousemove`,n=>sg(n.clientX,n.clientY,`${t} ${$(e.name)}`,_,`Click for aspects`)),g.addEventListener(`mouseleave`,cg),g.addEventListener(`click`,()=>{if(cg(),xg===e.name.toLowerCase()){Ag(),Dg();return}xg=e.name.toLowerCase(),Og(e.name),Eg(e,s),n(e)}),l.appendChild(g)}for(let e=0;e<o.length;e++){let t=o[e],n=o[(e+1)%o.length],i=Math.floor((t.cusp_lon%360+360)%360/30),a=t.sign??$h[i]??``,s=`${ig(t.cusp_lon)} · ${a}`,{x:u,y:d}=Z(t.cusp_lon,qh,c),{x:f,y:p}=Z(t.cusp_lon,Wh,c),m=Q(`line`);m.setAttribute(`x1`,u.toFixed(1)),m.setAttribute(`y1`,d.toFixed(1)),m.setAttribute(`x2`,f.toFixed(1)),m.setAttribute(`y2`,p.toFixed(1)),m.setAttribute(`stroke`,`transparent`),m.setAttribute(`stroke-width`,String(Xh)),m.setAttribute(`fill`,`none`),m.setAttribute(`class`,`hit-region`),m.style.pointerEvents=`all`,m.addEventListener(`mouseenter`,e=>sg(e.clientX,e.clientY,`House ${t.number}`,s,`Click for meaning`)),m.addEventListener(`mousemove`,e=>sg(e.clientX,e.clientY,`House ${t.number}`,s,`Click for meaning`)),m.addEventListener(`mouseleave`,cg),m.addEventListener(`click`,()=>{cg(),r(t)}),l.appendChild(m);let h=(n.cusp_lon-t.cusp_lon+360)%360,{x:g,y:_}=Z(t.cusp_lon+h/2,Kh,c),v=Q(`circle`);v.setAttribute(`cx`,g.toFixed(1)),v.setAttribute(`cy`,_.toFixed(1)),v.setAttribute(`r`,`14`),v.setAttribute(`fill`,`transparent`),v.setAttribute(`class`,`hit-region`),v.style.pointerEvents=`all`,v.addEventListener(`mouseenter`,e=>sg(e.clientX,e.clientY,`House ${t.number}`,s,`Click for meaning`)),v.addEventListener(`mousemove`,e=>sg(e.clientX,e.clientY,`House ${t.number}`,s,`Click for meaning`)),v.addEventListener(`mouseleave`,cg),v.addEventListener(`click`,()=>{cg(),r(t)}),l.appendChild(v)}Cg&&document.removeEventListener(`click`,Cg,!1),Cg=e=>{let t=e.target;!t.closest(`.hit-region`)&&!t.closest(`#info-panel`)&&!t.closest(`#patterns-strip`)&&(Ag(),Dg())},document.addEventListener(`click`,Cg,!1)}var Mg=[{label:`Placidus`,value:`placidus`},{label:`Whole Sign`,value:`whole_sign`},{label:`Equal`,value:`equal`},{label:`Koch`,value:`koch`},{label:`Regio.`,value:`regiomontanus`}];function Ng(e,t,n){e.innerHTML=``;let r=document.createElement(`span`);r.className=`controls-label`,r.textContent=`Houses:`,e.appendChild(r);for(let r of Mg){let i=document.createElement(`button`);i.className=`control-btn`+(r.value===t?` active`:``),i.textContent=r.label,i.title=`Switch to ${r.label} house system`,i.setAttribute(`data-system`,r.value),i.addEventListener(`click`,()=>{e.querySelectorAll(`.control-btn`).forEach(e=>e.classList.remove(`active`)),i.classList.add(`active`),i.disabled=!0,i.textContent=`${r.label} …`,n(r.value)}),e.appendChild(i)}}function Pg(e,t){e.querySelectorAll(`.control-btn`).forEach(e=>{let n=e.getAttribute(`data-system`);e.disabled=!1,e.textContent=Mg.find(e=>e.value===n)?.label??n,e.classList.toggle(`active`,n===t)})}var Fg=document.getElementById(`loading-state`),Ig=document.getElementById(`chart-container`),Lg=document.getElementById(`controls-panel`),Rg=document.getElementById(`tally-panel`),zg=document.getElementById(`patterns-strip`),Bg=new Bh({name:`Chart Wheel Explorer`,version:`1.0.0`}),Vg=null,Hg=`placidus`;Bg.ontoolresult=e=>{let t=null;for(let n of e.content??[])if(n.type===`text`&&n.text)try{let e=JSON.parse(n.text);if(e&&typeof e==`object`){t=e;break}}catch{}if(!t){Zg(`Chart data could not be parsed from the server response.`);return}Vg=t,Hg=t.house_system??`placidus`,Ug(t)};function Ug(e){Gg=null,Fg.setAttribute(`hidden`,``),Ig.removeAttribute(`hidden`),Lg.removeAttribute(`hidden`),jg(Ig,e,qg,Jg,Yg),Ng(Lg,Hg,Xg);let t=ag(e.planets),n=(e.houses??[])[0]?.cusp_lon??e.ascendant??0,r=e.aspects??[];t.length>0&&Wg(gg(t,n)),Kg(yg(r,t))}function Wg(e){if(!Rg)return;let t=e.fire+e.earth+e.air+e.water,n=e=>t>0?Math.round(e/t*100):0;Rg.innerHTML=`
550
+ <div class="tally-section">
551
+ <div class="tally-row">
552
+ <span class="tally-item fire" title="Fire">🔥 ${e.fire}</span>
553
+ <span class="tally-item earth" title="Earth">🌍 ${e.earth}</span>
554
+ <span class="tally-item air" title="Air">💨 ${e.air}</span>
555
+ <span class="tally-item water" title="Water">💧 ${e.water}</span>
556
+ </div>
557
+ <div class="tally-bar-row">
558
+ <div class="tally-bar">
559
+ <div class="tally-bar-fill fire" style="width:${n(e.fire)}%" title="Fire ${n(e.fire)}%"></div>
560
+ <div class="tally-bar-fill earth" style="width:${n(e.earth)}%" title="Earth ${n(e.earth)}%"></div>
561
+ <div class="tally-bar-fill air" style="width:${n(e.air)}%" title="Air ${n(e.air)}%"></div>
562
+ <div class="tally-bar-fill water" style="width:${n(e.water)}%" title="Water ${n(e.water)}%"></div>
563
+ </div>
564
+ </div>
565
+ </div>
566
+ <div class="tally-divider"></div>
567
+ <div class="tally-section">
568
+ <div class="tally-row modality">
569
+ <span class="tally-item cardinal" title="Cardinal">⟳ ${e.cardinal}</span>
570
+ <span class="tally-item fixed" title="Fixed">■ ${e.fixed}</span>
571
+ <span class="tally-item mutable" title="Mutable">≋ ${e.mutable}</span>
572
+ </div>
573
+ </div>
574
+ `,Rg.removeAttribute(`hidden`)}var Gg=null;function Kg(e){if(!zg)return;if(e.length===0){zg.setAttribute(`hidden`,``),zg.innerHTML=``;return}let t={"T-Square":`#e08a52`,"Grand Trine":`#52a8e0`,"Grand Cross":`#e05252`,Stellium:`#9a7fd4`,Yod:`#52c07a`};zg.innerHTML=`
575
+ <span class="patterns-label">Patterns:</span>
576
+ ${e.map((e,n)=>{let r=t[e.name]??`#888`;return`
577
+ <button class="pattern-pill"
578
+ data-idx="${n}"
579
+ data-color="${r}"
580
+ style="color:${r};border-color:${r}"
581
+ title="${e.description}">
582
+ ${e.name}
583
+ </button>
584
+ `}).join(``)}
585
+ `,zg.removeAttribute(`hidden`),zg.querySelectorAll(`.pattern-pill`).forEach(t=>{t.addEventListener(`click`,()=>{let n=Number(t.dataset.idx),r=e[n],i=t.dataset.color??`#888`;Gg===n?(Gg=null,Ag(),zg.querySelectorAll(`.pattern-pill`).forEach(e=>{e.classList.remove(`active`);let t=e.dataset.color??`#888`;e.style.color=t,e.style.borderColor=t,e.style.background=`transparent`})):(Gg=n,zg.querySelectorAll(`.pattern-pill`).forEach(e=>{e.classList.remove(`active`);let t=e.dataset.color??`#888`;e.style.color=t,e.style.borderColor=t,e.style.background=`transparent`}),t.classList.add(`active`),t.style.background=i,t.style.color=`#fff`,t.style.borderColor=i,kg(r.planets,r.aspectKeys))})})}async function qg(e){Gg=null,zg?.querySelectorAll(`.pattern-pill`).forEach(e=>{e.classList.remove(`active`);let t=e.dataset.color??`#888`;e.style.color=t,e.style.borderColor=t,e.style.background=`transparent`});try{await Bg.callServerTool({name:`chart_wheel_on_planet_click`,arguments:{planet:e.name,longitude:e.longitude,sign:e.sign??null,house:e.house??null,retrograde:e.retrograde??!1,speed:e.speed??null}})}catch(e){console.error(`[Chart] Planet click tool call failed:`,e)}}async function Jg(e){try{await Bg.callServerTool({name:`chart_wheel_on_house_click`,arguments:{house_number:e.number,sign:e.sign??null,cusp_longitude:e.cusp_lon,ruler:e.ruler??null}})}catch(e){console.error(`[Chart] House click tool call failed:`,e)}}async function Yg(e){try{await Bg.callServerTool({name:`chart_wheel_on_aspect_click`,arguments:{planet1:e.planet1,planet2:e.planet2,aspect_type:e.type??null,orb:e.orb??null,applying:e.applying??null,angle:e.angle??null}})}catch(e){console.error(`[Chart] Aspect click tool call failed:`,e)}}async function Xg(e){if(!Vg?._birth_params){Pg(Lg,Hg);return}try{let t=await Bg.callServerTool({name:`chart_wheel_recalculate`,arguments:{datetime:Vg._birth_params.datetime,timezone:Vg._birth_params.timezone??void 0,latitude:Vg._birth_params.latitude??void 0,longitude:Vg._birth_params.longitude??void 0,location:Vg._birth_params.location??void 0,house_system:e}}),n=null;for(let e of t.content??[])if(e.type===`text`&&e.text)try{let t=JSON.parse(e.text);if(t&&typeof t==`object`){n=t;break}}catch{}n?(Vg=n,Hg=e,Ug(n)):Pg(Lg,Hg)}catch(e){console.error(`[Chart] Recalculate failed:`,e),Pg(Lg,Hg)}}function Zg(e){Fg.setAttribute(`hidden`,``),Ig.innerHTML=`
473
586
  <div class="error-state">
474
587
  <div class="error-icon">⚠️</div>
475
588
  <p>${e}</p>
476
589
  </div>
477
- `,sg.removeAttribute(`hidden`)}lg.connect();</script>
590
+ `,Ig.removeAttribute(`hidden`)}Bg.connect();</script>
478
591
  </body>
479
592
  </html>