@maxhealth.tech/prefab 0.2.35 → 0.2.37

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.
@@ -1,9 +1,9 @@
1
- (()=>{class J0{data={};subscribers=new Map;globalSubscribers=new Set;generation=0;constructor($){if($)this.data=structuredClone($)}get($){return W4(this.data,$)}getAll(){return this.data}set($,Z){J1(this.data,$,Z),this.notify($)}toggle($){let Z=this.get($),J=Z==null||Z===!1||Z===0||Z==="";this.set($,J)}append($,Z,J){let q=this.get($);if(!Array.isArray(q)){this.set($,[Z]);return}if(J!==void 0)q.splice(J,0,Z);else q.push(Z);this.notify($)}pop($,Z){let J=this.get($);if(!Array.isArray(J))return;if(typeof Z==="number")J.splice(Z,1);else{let q=J.indexOf(Z);if(q>=0)J.splice(q,1)}this.notify($)}merge($){for(let[Z,J]of Object.entries($))J1(this.data,Z,J);for(let Z of Object.keys($))this.notify(Z)}subscribe($,Z){if(!this.subscribers.has($))this.subscribers.set($,new Set);return this.subscribers.get($)?.add(Z),()=>this.subscribers.get($)?.delete(Z)}subscribeAll($){return this.globalSubscribers.add($),()=>this.globalSubscribers.delete($)}notify($){this.generation++;let Z=$.split(".");for(let J=1;J<=Z.length;J++){let q=Z.slice(0,J).join("."),Q=this.subscribers.get(q);if(Q)Q.forEach((Y)=>Y())}this.globalSubscribers.forEach((J)=>J())}}function W4($,Z){let J=Z.split("."),q=$;for(let Q of J){if(q==null||typeof q!=="object")return;q=q[Q]}return q}var H4=new Set(["__proto__","constructor","prototype"]);function J1($,Z,J){let q=Z.split(".");if(q.some((Y)=>H4.has(Y))){console.warn(`[prefab] Blocked prototype pollution attempt: ${Z}`);return}let Q=$;for(let Y=0;Y<q.length-1;Y++){let U=q[Y];if(Q[U]==null||typeof Q[U]!=="object")Q[U]={};Q=Q[U]}Q[q[q.length-1]]=J}var e=new Map;function f0($,Z){if(e.has($)&&e.get($)!==Z)console.warn(`[prefab] pipe "${$}" re-registered`);e.set($,Z)}function S0($){return e.delete($)}function q1(){return[...e.keys()]}function Q1($){return e.get($)}var Y1=-1,w0=new Map,M4=/\{\{\s*(.+?)\s*\}\}/g;function u($){return typeof $==="string"&&$.includes("{{")&&$.includes("}}")}function x($,Z,J){let q=$.trim();if(q.startsWith("{{")&&q.endsWith("}}")&&F4(q,"{{")===1){let Q=q.slice(2,-2).trim();return U1(Q,Z,J)}return $.replace(M4,(Q,Y)=>{let U=U1(Y.trim(),Z,J);return U==null?"":String(U)})}function U1($,Z,J){let[q,...Q]=B4($),Y=v(q.trim(),Z,J);for(let U of Q)Y=G4(U.trim(),Y,Z,J);return Y}function v($,Z,J){let q=N4($);if(q>=0){let U=$.slice(0,q).trim(),W=$.slice(q+1),H=E4(W);if(H>=0){let X=W.slice(0,H).trim(),N=W.slice(H+1).trim(),M=v(U,Z,J);return M!==null&&M!==void 0&&M!==!1&&M!==0&&M!==""?v(X,Z,J):v(N,Z,J)}}let Q=H0($,"||");if(Q>=0){let U=v($.slice(0,Q).trim(),Z,J);return U!==null&&U!==void 0&&U!==!1&&U!==0&&U!==""?U:v($.slice(Q+2).trim(),Z,J)}let Y=H0($,"&&");if(Y>=0){let U=v($.slice(0,Y).trim(),Z,J);if(U===null||U===void 0||U===!1||U===0||U==="")return U;return v($.slice(Y+2).trim(),Z,J)}for(let[U,W]of X4){let H=H0($,U);if(H>=0){let X=v($.slice(0,H).trim(),Z,J),N=v($.slice(H+U.length).trim(),Z,J);return W(X,N)}}if($.startsWith("!")){let U=v($.slice(1).trim(),Z,J);return U===null||U===void 0||U===!1||U===0||U===""}for(let[U,W]of _4){let H=H0($,U);if(H>=0){let X=v($.slice(0,H).trim(),Z,J),N=v($.slice(H+U.length).trim(),Z,J);return W(Number(X),Number(N))}}if($==="true")return!0;if($==="false")return!1;if($==="null"||$==="undefined")return null;if(/^-?\d+(\.\d+)?$/.test($))return Number($);if($.startsWith("'")&&$.endsWith("'")||$.startsWith('"')&&$.endsWith('"'))return $.slice(1,-1);if(J&&$.startsWith("$")){let U=$.indexOf(".");if(U>=0){let W=$.slice(0,U),H=$.slice(U+1),X=J[W];return M0(X,H)}return J[$]}if(J){let U=$.split(".")[0];if(U in J)return M0(J[U],$.includes(".")?$.slice(U.length+1):"")}return Z.get($)}function G4($,Z,J,q){let Q=$.indexOf(":"),Y=Q>=0?$.slice(0,Q).trim():$,U=Q>=0?$.slice(Q+1).trim():void 0,W=U?C0(U):void 0;switch(Y){case"find":{if(!Array.isArray(Z)||!U)return;let H=W1(U);if(H.length<2)return;let X=C0(H[0]),N=H[1].trim(),M;if(N.startsWith("'")&&N.endsWith("'")||N.startsWith('"')&&N.endsWith('"'))M=N.slice(1,-1);else if(J){if(q&&N.startsWith("$")){let F=N.indexOf(".");if(F>=0){let z=N.slice(0,F);if(z in q)M=M0(q[z],N.slice(F+1))}else if(N in q)M=q[N]}if(M===void 0&&!(q&&N.startsWith("$")))if(q){let F=N.split(".")[0];M=F in q?M0(q[F],N.includes(".")?N.slice(F.length+1):""):J.get(N)}else M=J.get(N)}else M=N;if(M==null)return;let E=J?.generation??0;if(E!==Y1)w0=new Map,Y1=E;let L=w0.get(Z);if(!L)L=new Map,w0.set(Z,L);let B=L.get(X);if(!B){B=new Map;for(let F of Z)if(F!=null&&typeof F==="object"){let z=F[X];if(z!=null)B.set(String(z),F)}L.set(X,B)}return B.get(String(M))}case"dot":{if(Z==null||typeof Z!=="object"||typeof W!=="string")return;return Z[W]}case"length":return Array.isArray(Z)?Z.length:typeof Z==="string"?Z.length:0;case"upper":return typeof Z==="string"?Z.toUpperCase():Z;case"lower":return typeof Z==="string"?Z.toLowerCase():Z;case"truncate":if(typeof Z==="string"&&typeof W==="number")return Z.slice(0,W);return Z;case"join":return Array.isArray(Z)?Z.join(typeof W==="string"?W:", "):Z;case"first":return Array.isArray(Z)?Z[0]:Z;case"last":return Array.isArray(Z)?Z[Z.length-1]:Z;case"abs":return Math.abs(Number(Z));case"round":return typeof W==="number"?Number(Number(Z).toFixed(W)):Math.round(Number(Z));case"number":return typeof W==="number"?Number(Number(Z).toFixed(W)):Number(Z);case"currency":{let H=typeof W==="string"?W:"USD";try{return new Intl.NumberFormat("en-US",{style:"currency",currency:H}).format(Number(Z))}catch{return Z}}case"percent":return typeof W==="number"?`${(Number(Z)*100).toFixed(W)}%`:`${Math.round(Number(Z)*100)}%`;case"compact":{let H=typeof W==="number"?W:1;try{return new Intl.NumberFormat("en-US",{notation:"compact",maximumFractionDigits:H}).format(Number(Z))}catch{return Z}}case"date":try{return new Date(Z).toLocaleDateString()}catch{return Z}case"time":try{return new Date(Z).toLocaleTimeString()}catch{return Z}case"datetime":try{return new Date(Z).toLocaleString()}catch{return Z}case"pluralize":{let H=Number(Z),X=typeof W==="string"?W:"";return H===1?X:`${X}s`}case"default":return Z==null||Z===""?W:Z;case"selectattr":return Array.isArray(Z)&&typeof W==="string"?Z.filter((H)=>H!=null&&typeof H==="object"&&Boolean(H[W])):Z;case"rejectattr":return Array.isArray(Z)&&typeof W==="string"?Z.filter((H)=>{if(H==null||typeof H!=="object")return!1;let X=H[W];return X==null||X===!1||X===0||X===""}):Z;default:{let H=Q1(Y);if(H){let X=U?W1(U).map(C0):[];return H(Z,...X)}return Z}}}var X4=[["!==",($,Z)=>$!==Z],["===",($,Z)=>$===Z],["!=",($,Z)=>$!=Z],["==",($,Z)=>$==Z],[">=",($,Z)=>Number($)>=Number(Z)],["<=",($,Z)=>Number($)<=Number(Z)],[">",($,Z)=>Number($)>Number(Z)],["<",($,Z)=>Number($)<Number(Z)]],_4=[[" + ",($,Z)=>$+Z],[" - ",($,Z)=>$-Z],[" * ",($,Z)=>$*Z],[" / ",($,Z)=>Z!==0?$/Z:0],[" % ",($,Z)=>Z!==0?$%Z:0]];function H0($,Z){let J=null;for(let q=0;q<$.length;q++){let Q=$[q];if(Q==="'"||Q==='"')J=J===Q?null:J??Q;if(!J&&$.slice(q,q+Z.length)===Z)return q}return-1}function N4($){let Z=0,J=null;for(let q=0;q<$.length;q++){let Q=$[q];if(Q==="'"||Q==='"')J=J===Q?null:J??Q;if(!J){if(Q==="(")Z++;else if(Q===")")Z--;else if(Q==="?"&&Z===0)return q}}return-1}function E4($){let Z=0,J=null;for(let q=0;q<$.length;q++){let Q=$[q];if(Q==="'"||Q==='"')J=J===Q?null:J??Q;if(!J){if(Q==="?"||Q==="(")Z++;else if(Q===")")Z--;else if(Q===":"&&Z===0)return q}}return-1}function B4($){let Z=[],J="",q=null;for(let Q=0;Q<$.length;Q++){let Y=$[Q];if(Y==="'"||Y==='"')q=q===Y?null:q??Y;if(Y==="|"&&!q)if($[Q+1]==="|")J+="||",Q++;else Z.push(J),J="";else J+=Y}return Z.push(J),Z}function C0($){let Z=$.replace(/^['"]|['"]$/g,"");if(Z==="true")return!0;if(Z==="false")return!1;let J=Number(Z);return isNaN(J)?Z:J}function W1($){let Z=[],J="",q=null;for(let Q of $){if(Q==="'"||Q==='"')q=q===Q?null:q??Q;if(Q===","&&!q)Z.push(J),J="";else J+=Q}return Z.push(J),Z}function M0($,Z){if(!Z)return $;let J=Z.split("."),q=$;for(let Q of J){if(q==null||typeof q!=="object")return;q=q[Q]}return q}function F4($,Z){let J=0,q=0;while((q=$.indexOf(Z,q))!==-1)J++,q+=Z.length;return J}function G0($){return $.replace(/_([a-z])/g,(Z,J)=>J.toUpperCase())}function b0($){let Z={};for(let[J,q]of Object.entries($)){let Q=J.startsWith("$")?J:G0(J);if(Array.isArray(q))Z[Q]=q.map((Y)=>Y!=null&&typeof Y==="object"&&!Array.isArray(Y)?b0(Y):Y);else if(q!=null&&typeof q==="object"&&!Array.isArray(q))Z[Q]=b0(q);else Z[Q]=q}return Z}async function k($,Z){let J=Array.isArray($)?$:[$];for(let q of J)await K4(q,Z)}async function K4($,Z){let J=b0($),q=J.action;switch(q){case"setState":{z4(J,Z);return}case"toggleState":{L4(J,Z);return}case"appendState":{O4(J,Z);return}case"popState":{D4(J,Z);return}case"showToast":{V4(J,Z);return}case"closeOverlay":{T4(J,Z);return}case"openLink":{j4(J);return}case"setInterval":{R4(J,Z);return}case"toolCall":case"callTool":return P4(J,Z);case"sendMessage":return A4(J,Z);case"updateContext":{k4(J,Z);return}case"fetch":return f4(J,Z);case"openFilePicker":{S4(J,Z);return}case"callHandler":return w4(J,Z);case"requestDisplayMode":{C4(J,Z);return}case"subscribe":{m4(J,Z);return}case"unsubscribe":{h4(J);return}default:console.warn(`[prefab] Unknown action: ${q}`)}}function z4($,Z){let{key:J,value:q}=$;if(u(q))q=x(q,Z.store,Z.scope);Z.store.set(J,q),Z.rerender(),l($.onSuccess,Z)}function L4($,Z){Z.store.toggle($.key),Z.rerender()}function O4($,Z){let J=$.value??$.item;if(u(J))J=x(J,Z.store,Z.scope);Z.store.append($.key,J,$.index),Z.rerender()}function D4($,Z){Z.store.pop($.key,$.index),Z.rerender()}function V4($,Z){Z.onToast?.({message:_0($.message,Z),description:$.description!=null?_0($.description,Z):void 0,variant:$.variant,duration:$.duration})}function T4($,Z){if(typeof document<"u")document.dispatchEvent(new CustomEvent("prefab:close-overlay"))}function j4($){if(typeof window<"u"){let Z=$.url;if(!Z){console.warn("[prefab] openLink: missing url");return}if(!X1(Z)){console.warn(`[prefab] Blocked unsafe URL scheme: ${Z}`);return}window.open(Z,$.target??"_blank")}}var X0=new Set,I4=20,H1=100;function R4($,Z){let J=Math.max($.intervalMs,H1),q=$.onTick;if(typeof globalThis.setInterval!=="function")return;if(X0.size>=I4){console.warn("[prefab] Max intervals reached, ignoring new setInterval");return}let Q=globalThis.setInterval(()=>void k(q,Z),J);X0.add(Q)}function M1(){for(let $ of X0)globalThis.clearInterval($);X0.clear()}async function P4($,Z){if(!Z.transport){console.warn("[prefab] No MCP transport configured for toolCall");return}let J=$.tool,q=m0($.arguments,Z);try{let Q=await Z.transport.callTool(J,q);if($.resultKey!=null)Z.store.set($.resultKey,Q);let Y=N0(Q);if(Y&&Z.remount)Z.remount(Y);else E0(Q,Z),Z.rerender();await l($.onSuccess,Z,{$result:Q})}catch(Q){await l($.onError,Z,{$error:Q})}}async function A4($,Z){if(!Z.transport){console.warn("[prefab] No MCP transport configured for sendMessage");return}await Z.transport.sendMessage(_0($.message,Z))}function k4($,Z){let J=$.context;if(J!=null)Z.store.merge(J),Z.rerender()}async function f4($,Z){let J=_0($.url,Z);if(!X1(J)){console.warn(`[prefab] Blocked unsafe URL in fetch: ${J}`);return}let q=$.method??"GET",Q=$.headers,Y=$.body!==void 0?JSON.stringify($.body):void 0;try{let U=await globalThis.fetch(J,{method:q,headers:{"Content-Type":"application/json",...Q},...Y&&{body:Y}}),W=await U.json().catch(()=>U.text());if($.resultKey!=null)Z.store.set($.resultKey,W);let H=N0(W);if(H&&Z.remount)Z.remount(H);else E0(W,Z),Z.rerender();await l($.onSuccess,Z,{$result:W})}catch(U){await l($.onError,Z,{$error:U})}}function S4($,Z){if(typeof document>"u")return;let J=document.createElement("input");if(J.type="file",$.accept!=null)J.accept=$.accept;if($.multiple===!0)J.multiple=!0;J.addEventListener("change",()=>{let q=Array.from(J.files??[]);if($.resultKey!=null)Z.store.set($.resultKey,q);Z.rerender(),l($.onSuccess,Z,{$result:q})}),J.click()}async function w4($,Z){let J=$.handler,q=m0($.arguments,Z);if(!Z.transport){console.warn(`[prefab] No transport configured for callHandler: ${J}`);return}try{let Q=await Z.transport.callTool(J,q);if($.resultKey!=null)Z.store.set($.resultKey,Q);let Y=N0(Q);if(Y&&Z.remount)Z.remount(Y);else E0(Q,Z),Z.rerender();await l($.onSuccess,Z,{$result:Q})}catch(Q){await l($.onError,Z,{$error:Q})}}function C4($,Z){if(typeof document<"u")document.dispatchEvent(new CustomEvent("prefab:request-display-mode",{detail:{mode:$.mode}}))}var r=new Map,y4=50,b4=2000;function m4($,Z){let{uri:J,stateKey:q}=$;if(!J||!q){console.warn("[prefab] subscribe: missing uri or stateKey");return}if(r.has(J))return;if(r.size>=y4){console.warn("[prefab] Max subscriptions reached, ignoring new subscribe");return}let Q=(M)=>{let E=N0(M);if(E&&Z.remount)Z.remount(E);else{if(!E0(M,Z))Z.store.set(q,M);Z.rerender()}l($.onData,Z,{$data:M})};if(Z.transport?.subscribe&&Z.transport.capabilities?.subscriptions){let M=Z.transport.subscribe(J,Q);r.set(J,M);return}let Y=$.fallbackTool,U=$.fallbackInterval??b4;if(!Y){console.warn("[prefab] subscribe: host lacks subscriptions and no fallbackTool specified");return}if(!Z.transport){console.warn("[prefab] No MCP transport configured for subscribe fallback");return}let W=$.fallbackArgs??{},H=Math.max(U,H1),X=Z.transport,N=globalThis.setInterval(()=>{(async()=>{try{let M=m0(W,Z),E=await X.callTool(Y,M);Q(E)}catch(M){l($.onError,Z,{$error:M})}})()},H);r.set(J,()=>globalThis.clearInterval(N))}function h4($){let Z=$.uri;if(!Z){console.warn("[prefab] unsubscribe: missing uri");return}let J=r.get(Z);if(J)J(),r.delete(Z)}function G1(){for(let[$,Z]of r)try{Z()}catch(J){console.warn(`[prefab] Error cleaning up subscription '${$}':`,J)}r.clear()}function N0($){if($==null||typeof $!=="object")return null;let Z=$;if("$prefab"in Z&&"view"in Z)return Z;if("structuredContent"in Z){let J=Z.structuredContent;if(J!=null&&typeof J==="object"){let q=J;if("$prefab"in q&&"view"in q)return q}}if("content"in Z&&Array.isArray(Z.content)){for(let J of Z.content)if(J.type==="text"&&typeof J.text==="string")try{let q=JSON.parse(J.text);if(q!=null&&typeof q==="object"){let Q=q;if("$prefab"in Q&&"view"in Q)return Q}}catch{}}return null}function v4($){if($==null||typeof $!=="object")return null;let Z=$;if(y0(Z))return Z;if("structuredContent"in Z){let J=Z.structuredContent;if(J!=null&&typeof J==="object"&&y0(J))return J}if("content"in Z&&Array.isArray(Z.content)){for(let J of Z.content)if(J.type==="text"&&typeof J.text==="string")try{let q=JSON.parse(J.text);if(q!=null&&typeof q==="object"&&y0(q))return q}catch{}}return null}function y0($){if(!("$prefab"in $)||!("update"in $))return!1;let Z=$.update;return Z!=null&&typeof Z==="object"&&"state"in Z}function E0($,Z){let J=v4($);if(!J)return!1;let q=J.update;return Z.store.merge(q.state),!0}var g4=/^\s*(javascript|vbscript|data):/i;function X1($){return!g4.test($)}function _0($,Z){if(u($)){let J=x($,Z.store,Z.scope);return J==null?"":String(J)}return $==null?"":String($)}function m0($,Z){if(!$)return{};let J={};for(let[q,Q]of Object.entries($))J[q]=u(Q)?x(Q,Z.store,Z.scope):Q;return J}async function l($,Z,J){if($==null)return;let q={...Z.scope,...J};await k($,{...Z,scope:q})}function v0($){let Z={};for(let[J,q]of Object.entries($)){let Q=J.startsWith("$")?J:G0(J);if(Array.isArray(q))Z[Q]=q.map((Y)=>Y!=null&&typeof Y==="object"&&!Array.isArray(Y)?v0(Y):Y);else if(q!=null&&typeof q==="object"&&!Array.isArray(q))Z[Q]=v0(q);else Z[Q]=q}return Z}class u0{callbacks=[];track($){this.callbacks.push($)}flush(){for(let $ of this.callbacks)try{$()}catch(Z){console.warn("[prefab] destroy callback error:",Z)}this.callbacks=[]}get size(){return this.callbacks.length}}function u4($){return typeof $==="object"&&"element"in $}var g0=new Map;function G($,Z){if(g0.has($))console.warn(`[prefab] overriding existing renderer for "${$}"`);g0.set($,Z)}function w($,Z){let J=v0($);if(Z.defs?.[J.type]){let Y={...Z.defs[J.type],...J,type:Z.defs[J.type].type};return w(Y,Z)}let q=g0.get(J.type),Q;if(q){let Y=q(J,Z);if(u4(Y))Q=Y.element,Z.destroyRegistry?.track(Y.destroy);else Q=Y}else if(Q=document.createElement("div"),Q.setAttribute("data-prefab-type",J.type),J.children)for(let Y of J.children)Q.appendChild(w(Y,Z));if(Q instanceof HTMLElement){if(J.id)Q.id=J.id;if(J.cssClass){let Y=K(J.cssClass,Z);if(Y)Q.className=(Q.className?Q.className+" ":"")+Y}}if(J.onMount){let Y=J.onMount,U=y(Z);queueMicrotask(()=>void k(Y,U))}return Q}function V($,Z,J){if(!$.children)return;o($.children,Z,J)}function o($,Z,J){let q=0;while(q<$.length){let Q=$[q];if(Q.type==="If")q=x4($,q,Z,J);else if(Q.type==="Elif"||Q.type==="Else")q++;else Z.appendChild(w(Q,J)),q++}}function x4($,Z,J,q){let Q=!1,Y=Z,U=$[Y];if(_1(U.condition,q))h0(U,J,q),Q=!0;Y++;while(Y<$.length){let W=$[Y];if(W.type==="Elif"){if(!Q&&_1(W.condition,q))h0(W,J,q),Q=!0;Y++}else if(W.type==="Else"){if(!Q)h0(W,J,q);Y++;break}else break}return Y}function _1($,Z){if(!$)return!1;if(u($))return Boolean(x($,Z.store,Z.scope));return Boolean(Z.store.get($))}function h0($,Z,J){if(!$.children)return;o($.children,Z,J)}function K($,Z){if(u($)){let J=x($,Z.store,Z.scope);return J==null?"":String(J)}return $==null?"":String($)}function b($,Z){if(u($))return x($,Z.store,Z.scope);return $}function y($){return{store:$.store,transport:$.transport,scope:$.scope,rerender:$.rerender,onToast:$.onToast,remount:$.remount}}function _($,Z){let J=document.createElement($);if(Z)J.className=Z;return J}function x0($,Z){return $.textContent=Z,$}function F1(){G("Column",p4),G("Row",c4),G("Grid",N1),G("GridItem",E1),G("Container",d4),G("Div",B1),G("Span",l4),G("Dashboard",N1),G("DashboardItem",E1),G("Pages",s4),G("Page",B1),G("Detail",i4),G("MasterDetail",n4)}function p4($,Z){let J=_("div","pf-column");J.style.display="flex",J.style.flexDirection="column";let q=B0($);if(q!=null)J.style.gap=`${q*4}px`;if($.align!=null)J.style.alignItems=K1($.align);if($.justify!=null)J.style.justifyContent=z1($.justify);return V($,J,Z),J}function c4($,Z){let J=_("div","pf-row");J.style.display="flex",J.style.flexDirection="row";let q=B0($);if(q!=null)J.style.gap=`${q*4}px`;if($.align!=null)J.style.alignItems=K1($.align);if($.justify!=null)J.style.justifyContent=z1($.justify);if($.wrap===!0)J.style.flexWrap="wrap";return V($,J,Z),J}function N1($,Z){let J=_("div","pf-grid");J.style.display="grid";let q=$.columns??3;J.style.gridTemplateColumns=`repeat(${q}, 1fr)`;let Q=B0($);if(Q!=null)J.style.gap=`${Q*4}px`;return V($,J,Z),J}function E1($,Z){let J=_("div","pf-grid-item");if($.colSpan!=null)J.style.gridColumn=`span ${$.colSpan}`;if($.rowSpan!=null)J.style.gridRow=`span ${$.rowSpan}`;return V($,J,Z),J}function d4($,Z){let J=_("div","pf-container");if(J.style.maxWidth=$.maxWidth??"1200px",J.style.margin="0 auto",$.padding!=null)J.style.padding=`${$.padding*4}px`;return V($,J,Z),J}function B1($,Z){let J=_("div","pf-div");return V($,J,Z),J}function l4($,Z){let J=_("span","pf-span");return V($,J,Z),J}function s4($,Z){let J=_("div","pf-pages");return V($,J,Z),J}function i4($,Z){let J=_("div","pf-detail"),q=$.of!=null?b($.of,Z):void 0;if(q!=null&&q!==""&&q!==!1&&q!==0)V($,J,Z);else if($.empty!=null){let Q=$.empty;J.appendChild(w(Q,Z))}return J}function n4($,Z){let J=_("div","pf-master-detail");J.style.display="flex",J.style.flexDirection="row";let q=B0($);if(q!=null)J.style.gap=`${q*4}px`;let Q=$.masterWidth??"33%",Y=$.children??[];if(Y.length>0){let U=_("div","pf-master-detail-master");U.style.width=Q,U.style.flexShrink="0",U.style.overflow="auto",U.appendChild(w(Y[0],Z)),J.appendChild(U)}if(Y.length>1){let U=_("div","pf-master-detail-detail");U.style.flex="1",U.style.overflow="auto",U.appendChild(w(Y[1],Z)),J.appendChild(U)}return J}var r4=/\bgap-(\d+)\b/;function B0($){if($.gap!=null)return $.gap;if(typeof $.cssClass==="string"){let Z=r4.exec($.cssClass);if(Z)return Number(Z[1])}return null}function K1($){return{start:"flex-start",end:"flex-end",center:"center",stretch:"stretch",baseline:"baseline"}[$]??$}function z1($){return{start:"flex-start",end:"flex-end",center:"center",between:"space-between",around:"space-around",evenly:"space-evenly"}[$]??$}function O1(){G("Heading",o4),G("H1",($,Z)=>F0($,Z,"h1")),G("H2",($,Z)=>F0($,Z,"h2")),G("H3",($,Z)=>F0($,Z,"h3")),G("H4",($,Z)=>F0($,Z,"h4")),G("Text",a4),G("P",t4),G("Lead",($,Z)=>$0($,Z,"p","pf-lead")),G("Large",($,Z)=>$0($,Z,"span","pf-large")),G("Small",($,Z)=>$0($,Z,"small","pf-small")),G("Muted",($,Z)=>$0($,Z,"p","pf-muted")),G("BlockQuote",($,Z)=>$0($,Z,"blockquote","pf-blockquote")),G("Label",($,Z)=>$0($,Z,"label","pf-label")),G("Link",$8),G("Code",Z8),G("Markdown",J8),G("Kbd",q8)}function o4($,Z){let J=$.level??2,q=`h${Math.min(Math.max(J,1),6)}`,Q=document.createElement(q);return Q.className=`pf-heading pf-${q}`,Q.textContent=K($.content,Z),Q}function F0($,Z,J){let q=document.createElement(J);return q.className=`pf-heading pf-${J}`,q.textContent=K($.content,Z),q}function a4($,Z){return x0(_("span","pf-text"),K($.content,Z))}function t4($,Z){return x0(_("p","pf-p"),K($.content,Z))}function $0($,Z,J,q){let Q=document.createElement(J);return Q.className=q,Q.textContent=K($.content,Z),Q}var e4=/^\s*(javascript|vbscript|data):/i;function $8($,Z){let J=document.createElement("a");if(J.className="pf-link",J.textContent=K($.content,Z),$.href!=null){let q=K($.href,Z);if(!e4.test(q))J.href=q}if($.target!=null)J.target=K($.target,Z);return J}function Z8($,Z){let J=_("pre","pf-code"),q=_("code");if(q.textContent=K($.content,Z),$.language!=null)q.setAttribute("data-language",$.language);return J.appendChild(q),J}function J8($,Z){let J=_("div","pf-markdown"),q=K($.content,Z);return J.innerHTML=D1(q),J.setAttribute("data-markdown","true"),J}var L1=/^\s*(javascript|vbscript|data):/i;function z0($){return $.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}function K0($){let Z=z0($),J=[];return Z=Z.replace(/`([^`]+)`/g,(q,Q)=>{return J.push(`<code>${Q}</code>`),`﷐CODE${J.length-1}﷐`}),Z=Z.replace(/!\[([^\]]*)\]\(([^)]+)\)/g,(q,Q,Y)=>{if(L1.test(Y))return z0(Q);return`<img src="${Y}" alt="${Q}" />`}),Z=Z.replace(/\[([^\]]+)\]\(([^)]+)\)/g,(q,Q,Y)=>{if(L1.test(Y))return Q;return`<a href="${Y}">${Q}</a>`}),Z=Z.replace(/\*{3}(.+?)\*{3}/g,"<strong><em>$1</em></strong>"),Z=Z.replace(/_{3}(.+?)_{3}/g,"<strong><em>$1</em></strong>"),Z=Z.replace(/\*{2}(.+?)\*{2}/g,"<strong>$1</strong>"),Z=Z.replace(/_{2}(.+?)_{2}/g,"<strong>$1</strong>"),Z=Z.replace(/\*(.+?)\*/g,"<em>$1</em>"),Z=Z.replace(/(?<!\w)_(.+?)_(?!\w)/g,"<em>$1</em>"),Z=Z.replace(/~~(.+?)~~/g,"<del>$1</del>"),Z=Z.replace(/\uFDD0CODE(\d+)\uFDD0/g,(q,Q)=>J[parseInt(Q)]),Z}function D1($){let Z=$.replace(/\r\n?/g,`
1
+ (()=>{class J0{data={};subscribers=new Map;globalSubscribers=new Set;generation=0;constructor($){if($)this.data=structuredClone($)}get($){return W4(this.data,$)}getAll(){return this.data}set($,Z){J1(this.data,$,Z),this.notify($)}toggle($){let Z=this.get($),J=Z==null||Z===!1||Z===0||Z==="";this.set($,J)}append($,Z,J){let q=this.get($);if(!Array.isArray(q)){this.set($,[Z]);return}if(J!==void 0)q.splice(J,0,Z);else q.push(Z);this.notify($)}pop($,Z){let J=this.get($);if(!Array.isArray(J))return;if(typeof Z==="number")J.splice(Z,1);else{let q=J.indexOf(Z);if(q>=0)J.splice(q,1)}this.notify($)}merge($){for(let[Z,J]of Object.entries($))J1(this.data,Z,J);for(let Z of Object.keys($))this.notify(Z)}subscribe($,Z){if(!this.subscribers.has($))this.subscribers.set($,new Set);return this.subscribers.get($)?.add(Z),()=>this.subscribers.get($)?.delete(Z)}subscribeAll($){return this.globalSubscribers.add($),()=>this.globalSubscribers.delete($)}notify($){this.generation++;let Z=$.split(".");for(let J=1;J<=Z.length;J++){let q=Z.slice(0,J).join("."),Q=this.subscribers.get(q);if(Q)Q.forEach((Y)=>Y())}this.globalSubscribers.forEach((J)=>J())}}function W4($,Z){let J=Z.split("."),q=$;for(let Q of J){if(q==null||typeof q!=="object")return;q=q[Q]}return q}var H4=new Set(["__proto__","constructor","prototype"]);function J1($,Z,J){let q=Z.split(".");if(q.some((Y)=>H4.has(Y))){console.warn(`[prefab] Blocked prototype pollution attempt: ${Z}`);return}let Q=$;for(let Y=0;Y<q.length-1;Y++){let U=q[Y];if(Q[U]==null||typeof Q[U]!=="object")Q[U]={};Q=Q[U]}Q[q[q.length-1]]=J}var e=new Map;function f0($,Z){if(e.has($)&&e.get($)!==Z)console.warn(`[prefab] pipe "${$}" re-registered`);e.set($,Z)}function S0($){return e.delete($)}function q1(){return[...e.keys()]}function Q1($){return e.get($)}var Y1=-1,w0=new Map,M4=/\{\{\s*(.+?)\s*\}\}/g;function u($){return typeof $==="string"&&$.includes("{{")&&$.includes("}}")}function x($,Z,J){let q=$.trim();if(q.startsWith("{{")&&q.endsWith("}}")&&F4(q,"{{")===1){let Q=q.slice(2,-2).trim();return U1(Q,Z,J)}return $.replace(M4,(Q,Y)=>{let U=U1(Y.trim(),Z,J);return U==null?"":String(U)})}function U1($,Z,J){let[q,...Q]=B4($),Y=v(q.trim(),Z,J);for(let U of Q)Y=G4(U.trim(),Y,Z,J);return Y}function v($,Z,J){let q=N4($);if(q>=0){let U=$.slice(0,q).trim(),W=$.slice(q+1),H=E4(W);if(H>=0){let X=W.slice(0,H).trim(),N=W.slice(H+1).trim(),M=v(U,Z,J);return M!==null&&M!==void 0&&M!==!1&&M!==0&&M!==""?v(X,Z,J):v(N,Z,J)}}let Q=H0($,"||");if(Q>=0){let U=v($.slice(0,Q).trim(),Z,J);return U!==null&&U!==void 0&&U!==!1&&U!==0&&U!==""?U:v($.slice(Q+2).trim(),Z,J)}let Y=H0($,"&&");if(Y>=0){let U=v($.slice(0,Y).trim(),Z,J);if(U===null||U===void 0||U===!1||U===0||U==="")return U;return v($.slice(Y+2).trim(),Z,J)}for(let[U,W]of X4){let H=H0($,U);if(H>=0){let X=v($.slice(0,H).trim(),Z,J),N=v($.slice(H+U.length).trim(),Z,J);return W(X,N)}}if($.startsWith("!")){let U=v($.slice(1).trim(),Z,J);return U===null||U===void 0||U===!1||U===0||U===""}for(let[U,W]of _4){let H=H0($,U);if(H>=0){let X=v($.slice(0,H).trim(),Z,J),N=v($.slice(H+U.length).trim(),Z,J);return W(Number(X),Number(N))}}if($==="true")return!0;if($==="false")return!1;if($==="null"||$==="undefined")return null;if(/^-?\d+(\.\d+)?$/.test($))return Number($);if($.startsWith("'")&&$.endsWith("'")||$.startsWith('"')&&$.endsWith('"'))return $.slice(1,-1);if(J&&$.startsWith("$")){let U=$.indexOf(".");if(U>=0){let W=$.slice(0,U),H=$.slice(U+1),X=J[W];return M0(X,H)}return J[$]}if(J){let U=$.split(".")[0];if(U in J)return M0(J[U],$.includes(".")?$.slice(U.length+1):"")}return Z.get($)}function G4($,Z,J,q){let Q=$.indexOf(":"),Y=Q>=0?$.slice(0,Q).trim():$,U=Q>=0?$.slice(Q+1).trim():void 0,W=U?C0(U):void 0;switch(Y){case"find":{if(!Array.isArray(Z)||!U)return;let H=W1(U);if(H.length<2)return;let X=C0(H[0]),N=H[1].trim(),M;if(N.startsWith("'")&&N.endsWith("'")||N.startsWith('"')&&N.endsWith('"'))M=N.slice(1,-1);else if(J){if(q&&N.startsWith("$")){let F=N.indexOf(".");if(F>=0){let z=N.slice(0,F);if(z in q)M=M0(q[z],N.slice(F+1))}else if(N in q)M=q[N]}if(M===void 0&&!(q&&N.startsWith("$")))if(q){let F=N.split(".")[0];M=F in q?M0(q[F],N.includes(".")?N.slice(F.length+1):""):J.get(N)}else M=J.get(N)}else M=N;if(M==null)return;let E=J?.generation??0;if(E!==Y1)w0=new Map,Y1=E;let L=w0.get(Z);if(!L)L=new Map,w0.set(Z,L);let B=L.get(X);if(!B){B=new Map;for(let F of Z)if(F!=null&&typeof F==="object"){let z=F[X];if(z!=null)B.set(String(z),F)}L.set(X,B)}return B.get(String(M))}case"dot":{if(Z==null||typeof Z!=="object"||typeof W!=="string")return;return Z[W]}case"length":return Array.isArray(Z)?Z.length:typeof Z==="string"?Z.length:0;case"upper":return typeof Z==="string"?Z.toUpperCase():Z;case"lower":return typeof Z==="string"?Z.toLowerCase():Z;case"truncate":if(typeof Z==="string"&&typeof W==="number")return Z.slice(0,W);return Z;case"join":return Array.isArray(Z)?Z.join(typeof W==="string"?W:", "):Z;case"first":return Array.isArray(Z)?Z[0]:Z;case"last":return Array.isArray(Z)?Z[Z.length-1]:Z;case"abs":return Math.abs(Number(Z));case"round":return typeof W==="number"?Number(Number(Z).toFixed(W)):Math.round(Number(Z));case"number":return typeof W==="number"?Number(Number(Z).toFixed(W)):Number(Z);case"currency":{let H=typeof W==="string"?W:"USD";try{return new Intl.NumberFormat("en-US",{style:"currency",currency:H}).format(Number(Z))}catch{return Z}}case"percent":return typeof W==="number"?`${(Number(Z)*100).toFixed(W)}%`:`${Math.round(Number(Z)*100)}%`;case"compact":{let H=typeof W==="number"?W:1;try{return new Intl.NumberFormat("en-US",{notation:"compact",maximumFractionDigits:H}).format(Number(Z))}catch{return Z}}case"date":try{return new Date(Z).toLocaleDateString()}catch{return Z}case"time":try{return new Date(Z).toLocaleTimeString()}catch{return Z}case"datetime":try{return new Date(Z).toLocaleString()}catch{return Z}case"pluralize":{let H=Number(Z),X=typeof W==="string"?W:"";return H===1?X:`${X}s`}case"default":return Z==null||Z===""?W:Z;case"selectattr":return Array.isArray(Z)&&typeof W==="string"?Z.filter((H)=>H!=null&&typeof H==="object"&&Boolean(H[W])):Z;case"rejectattr":return Array.isArray(Z)&&typeof W==="string"?Z.filter((H)=>{if(H==null||typeof H!=="object")return!1;let X=H[W];return X==null||X===!1||X===0||X===""}):Z;default:{let H=Q1(Y);if(H){let X=U?W1(U).map(C0):[];return H(Z,...X)}return Z}}}var X4=[["!==",($,Z)=>$!==Z],["===",($,Z)=>$===Z],["!=",($,Z)=>$!=Z],["==",($,Z)=>$==Z],[">=",($,Z)=>Number($)>=Number(Z)],["<=",($,Z)=>Number($)<=Number(Z)],[">",($,Z)=>Number($)>Number(Z)],["<",($,Z)=>Number($)<Number(Z)]],_4=[[" + ",($,Z)=>$+Z],[" - ",($,Z)=>$-Z],[" * ",($,Z)=>$*Z],[" / ",($,Z)=>Z!==0?$/Z:0],[" % ",($,Z)=>Z!==0?$%Z:0]];function H0($,Z){let J=null;for(let q=0;q<$.length;q++){let Q=$[q];if(Q==="'"||Q==='"')J=J===Q?null:J??Q;if(!J&&$.slice(q,q+Z.length)===Z)return q}return-1}function N4($){let Z=0,J=null;for(let q=0;q<$.length;q++){let Q=$[q];if(Q==="'"||Q==='"')J=J===Q?null:J??Q;if(!J){if(Q==="(")Z++;else if(Q===")")Z--;else if(Q==="?"&&Z===0)return q}}return-1}function E4($){let Z=0,J=null;for(let q=0;q<$.length;q++){let Q=$[q];if(Q==="'"||Q==='"')J=J===Q?null:J??Q;if(!J){if(Q==="?"||Q==="(")Z++;else if(Q===")")Z--;else if(Q===":"&&Z===0)return q}}return-1}function B4($){let Z=[],J="",q=null;for(let Q=0;Q<$.length;Q++){let Y=$[Q];if(Y==="'"||Y==='"')q=q===Y?null:q??Y;if(Y==="|"&&!q)if($[Q+1]==="|")J+="||",Q++;else Z.push(J),J="";else J+=Y}return Z.push(J),Z}function C0($){let Z=$.replace(/^['"]|['"]$/g,"");if(Z==="true")return!0;if(Z==="false")return!1;let J=Number(Z);return isNaN(J)?Z:J}function W1($){let Z=[],J="",q=null;for(let Q of $){if(Q==="'"||Q==='"')q=q===Q?null:q??Q;if(Q===","&&!q)Z.push(J),J="";else J+=Q}return Z.push(J),Z}function M0($,Z){if(!Z)return $;let J=Z.split("."),q=$;for(let Q of J){if(q==null||typeof q!=="object")return;q=q[Q]}return q}function F4($,Z){let J=0,q=0;while((q=$.indexOf(Z,q))!==-1)J++,q+=Z.length;return J}function G0($){return $.replace(/_([a-z])/g,(Z,J)=>J.toUpperCase())}function b0($){let Z={};for(let[J,q]of Object.entries($)){let Q=J.startsWith("$")?J:G0(J);if(Array.isArray(q))Z[Q]=q.map((Y)=>Y!=null&&typeof Y==="object"&&!Array.isArray(Y)?b0(Y):Y);else if(q!=null&&typeof q==="object"&&!Array.isArray(q))Z[Q]=b0(q);else Z[Q]=q}return Z}async function k($,Z){let J=Array.isArray($)?$:[$];for(let q of J)await K4(q,Z)}async function K4($,Z){let J=b0($),q=J.action;switch(q){case"setState":{z4(J,Z);return}case"toggleState":{L4(J,Z);return}case"appendState":{O4(J,Z);return}case"popState":{D4(J,Z);return}case"showToast":{V4(J,Z);return}case"closeOverlay":{T4(J,Z);return}case"openLink":{j4(J);return}case"setInterval":{R4(J,Z);return}case"toolCall":case"callTool":return P4(J,Z);case"sendMessage":return A4(J,Z);case"updateContext":{k4(J,Z);return}case"fetch":return f4(J,Z);case"openFilePicker":{S4(J,Z);return}case"callHandler":return w4(J,Z);case"requestDisplayMode":{C4(J,Z);return}case"subscribe":{m4(J,Z);return}case"unsubscribe":{h4(J);return}default:console.warn(`[prefab] Unknown action: ${q}`)}}function z4($,Z){let{key:J,value:q}=$;if(u(q))q=x(q,Z.store,Z.scope);Z.store.set(J,q),Z.rerender(),l($.onSuccess,Z)}function L4($,Z){Z.store.toggle($.key),Z.rerender()}function O4($,Z){let J=$.value??$.item;if(u(J))J=x(J,Z.store,Z.scope);Z.store.append($.key,J,$.index),Z.rerender()}function D4($,Z){Z.store.pop($.key,$.index),Z.rerender()}function V4($,Z){Z.onToast?.({message:_0($.message,Z),description:$.description!=null?_0($.description,Z):void 0,variant:$.variant,duration:$.duration})}function T4($,Z){if(typeof document<"u")document.dispatchEvent(new CustomEvent("prefab:close-overlay"))}function j4($){if(typeof window<"u"){let Z=$.url;if(!Z){console.warn("[prefab] openLink: missing url");return}if(!X1(Z)){console.warn(`[prefab] Blocked unsafe URL scheme: ${Z}`);return}window.open(Z,$.target??"_blank")}}var X0=new Set,I4=20,H1=100;function R4($,Z){let J=Math.max($.intervalMs,H1),q=$.onTick;if(typeof globalThis.setInterval!=="function")return;if(X0.size>=I4){console.warn("[prefab] Max intervals reached, ignoring new setInterval");return}let Q=globalThis.setInterval(()=>void k(q,Z),J);X0.add(Q)}function M1(){for(let $ of X0)globalThis.clearInterval($);X0.clear()}async function P4($,Z){if(!Z.transport){console.warn("[prefab] No MCP transport configured for toolCall");return}let J=$.tool,q=m0($.arguments,Z);try{let Q=await Z.transport.callTool(J,q);if($.resultKey!=null)Z.store.set($.resultKey,Q);let Y=N0(Q);if(Y&&Z.remount)Z.remount(Y);else E0(Q,Z),Z.rerender();await l($.onSuccess,Z,{$result:Q})}catch(Q){await l($.onError,Z,{$error:Q})}}async function A4($,Z){if(!Z.transport){console.warn("[prefab] No MCP transport configured for sendMessage");return}await Z.transport.sendMessage(_0($.message,Z))}function k4($,Z){let J=$.context;if(J!=null)Z.store.merge(J),Z.rerender()}async function f4($,Z){let J=_0($.url,Z);if(!X1(J)){console.warn(`[prefab] Blocked unsafe URL in fetch: ${J}`);return}let q=$.method??"GET",Q=$.headers,Y=$.body!==void 0?JSON.stringify($.body):void 0;try{let U=await globalThis.fetch(J,{method:q,headers:{"Content-Type":"application/json",...Q},...Y&&{body:Y}}),W=await U.json().catch(()=>U.text());if($.resultKey!=null)Z.store.set($.resultKey,W);let H=N0(W);if(H&&Z.remount)Z.remount(H);else E0(W,Z),Z.rerender();await l($.onSuccess,Z,{$result:W})}catch(U){await l($.onError,Z,{$error:U})}}function S4($,Z){if(typeof document>"u")return;let J=document.createElement("input");if(J.type="file",$.accept!=null)J.accept=$.accept;if($.multiple===!0)J.multiple=!0;J.addEventListener("change",()=>{let q=Array.from(J.files??[]);if($.resultKey!=null)Z.store.set($.resultKey,q);Z.rerender(),l($.onSuccess,Z,{$result:q})}),J.click()}async function w4($,Z){let J=$.handler,q=m0($.arguments,Z);if(!Z.transport){console.warn(`[prefab] No transport configured for callHandler: ${J}`);return}try{let Q=await Z.transport.callTool(J,q);if($.resultKey!=null)Z.store.set($.resultKey,Q);let Y=N0(Q);if(Y&&Z.remount)Z.remount(Y);else E0(Q,Z),Z.rerender();await l($.onSuccess,Z,{$result:Q})}catch(Q){await l($.onError,Z,{$error:Q})}}function C4($,Z){if(typeof document<"u")document.dispatchEvent(new CustomEvent("prefab:request-display-mode",{detail:{mode:$.mode}}))}var r=new Map,y4=50,b4=2000;function m4($,Z){let{uri:J,stateKey:q}=$;if(!J||!q){console.warn("[prefab] subscribe: missing uri or stateKey");return}if(r.has(J))return;if(r.size>=y4){console.warn("[prefab] Max subscriptions reached, ignoring new subscribe");return}let Q=(M)=>{let E=N0(M);if(E&&Z.remount)Z.remount(E);else{if(!E0(M,Z))Z.store.set(q,M);Z.rerender()}l($.onData,Z,{$data:M})};if(Z.transport?.subscribe&&Z.transport.capabilities?.subscriptions){let M=Z.transport.subscribe(J,Q);r.set(J,M);return}let Y=$.fallbackTool,U=$.fallbackInterval??b4;if(!Y){console.warn("[prefab] subscribe: host lacks subscriptions and no fallbackTool specified");return}if(!Z.transport){console.warn("[prefab] No MCP transport configured for subscribe fallback");return}let W=$.fallbackArgs??{},H=Math.max(U,H1),X=Z.transport,N=globalThis.setInterval(()=>{(async()=>{try{let M=m0(W,Z),E=await X.callTool(Y,M);Q(E)}catch(M){l($.onError,Z,{$error:M})}})()},H);r.set(J,()=>globalThis.clearInterval(N))}function h4($){let Z=$.uri;if(!Z){console.warn("[prefab] unsubscribe: missing uri");return}let J=r.get(Z);if(J)J(),r.delete(Z)}function G1(){for(let[$,Z]of r)try{Z()}catch(J){console.warn(`[prefab] Error cleaning up subscription '${$}':`,J)}r.clear()}function N0($){if($==null||typeof $!=="object")return null;let Z=$;if("$prefab"in Z&&"view"in Z)return Z;if("structuredContent"in Z){let J=Z.structuredContent;if(J!=null&&typeof J==="object"){let q=J;if("$prefab"in q&&"view"in q)return q}}if("content"in Z&&Array.isArray(Z.content)){for(let J of Z.content)if(J.type==="text"&&typeof J.text==="string")try{let q=JSON.parse(J.text);if(q!=null&&typeof q==="object"){let Q=q;if("$prefab"in Q&&"view"in Q)return Q}}catch{}}return null}function v4($){if($==null||typeof $!=="object")return null;let Z=$;if(y0(Z))return Z;if("structuredContent"in Z){let J=Z.structuredContent;if(J!=null&&typeof J==="object"&&y0(J))return J}if("content"in Z&&Array.isArray(Z.content)){for(let J of Z.content)if(J.type==="text"&&typeof J.text==="string")try{let q=JSON.parse(J.text);if(q!=null&&typeof q==="object"&&y0(q))return q}catch{}}return null}function y0($){if(!("$prefab"in $)||!("update"in $))return!1;let Z=$.update;return Z!=null&&typeof Z==="object"&&"state"in Z}function E0($,Z){let J=v4($);if(!J)return!1;let q=J.update;return Z.store.merge(q.state),!0}var g4=/^\s*(javascript|vbscript|data):/i;function X1($){return!g4.test($)}function _0($,Z){if(u($)){let J=x($,Z.store,Z.scope);return J==null?"":String(J)}return $==null?"":String($)}function m0($,Z){if(!$)return{};let J={};for(let[q,Q]of Object.entries($))J[q]=u(Q)?x(Q,Z.store,Z.scope):Q;return J}async function l($,Z,J){if($==null)return;let q={...Z.scope,...J};await k($,{...Z,scope:q})}function v0($){let Z={};for(let[J,q]of Object.entries($)){let Q=J.startsWith("$")?J:G0(J);if(Array.isArray(q))Z[Q]=q.map((Y)=>Y!=null&&typeof Y==="object"&&!Array.isArray(Y)?v0(Y):Y);else if(q!=null&&typeof q==="object"&&!Array.isArray(q))Z[Q]=v0(q);else Z[Q]=q}return Z}class u0{callbacks=[];track($){this.callbacks.push($)}flush(){for(let $ of this.callbacks)try{$()}catch(Z){console.warn("[prefab] destroy callback error:",Z)}this.callbacks=[]}get size(){return this.callbacks.length}}function u4($){return typeof $==="object"&&"element"in $}var g0=new Map;function G($,Z){if(g0.has($))console.warn(`[prefab] overriding existing renderer for "${$}"`);g0.set($,Z)}function w($,Z){let J=v0($);if(Z.defs?.[J.type]){let Y={...Z.defs[J.type],...J,type:Z.defs[J.type].type};return w(Y,Z)}let q=g0.get(J.type),Q;if(q){let Y=q(J,Z);if(u4(Y))Q=Y.element,Z.destroyRegistry?.track(Y.destroy);else Q=Y}else if(Q=document.createElement("div"),Q.setAttribute("data-prefab-type",J.type),J.children)for(let Y of J.children)Q.appendChild(w(Y,Z));if(Q instanceof HTMLElement){if(J.id)Q.id=J.id;if(J.cssClass){let Y=K(J.cssClass,Z);if(Y)Q.className=(Q.className?Q.className+" ":"")+Y}if(J.onClick!=null){if(Q.addEventListener("click",()=>{k(J.onClick,y(Z))}),Q.tagName!=="BUTTON"&&Q.tagName!=="A")Q.setAttribute("role","button"),Q.setAttribute("tabindex","0"),Q.addEventListener("keydown",(Y)=>{let U=Y.key;if(U==="Enter"||U===" ")Y.preventDefault(),k(J.onClick,y(Z))})}}if(J.onMount){let Y=J.onMount,U=y(Z);queueMicrotask(()=>void k(Y,U))}return Q}function V($,Z,J){if(!$.children)return;o($.children,Z,J)}function o($,Z,J){let q=0;while(q<$.length){let Q=$[q];if(Q.type==="If")q=x4($,q,Z,J);else if(Q.type==="Elif"||Q.type==="Else")q++;else Z.appendChild(w(Q,J)),q++}}function x4($,Z,J,q){let Q=!1,Y=Z,U=$[Y];if(_1(U.condition,q))h0(U,J,q),Q=!0;Y++;while(Y<$.length){let W=$[Y];if(W.type==="Elif"){if(!Q&&_1(W.condition,q))h0(W,J,q),Q=!0;Y++}else if(W.type==="Else"){if(!Q)h0(W,J,q);Y++;break}else break}return Y}function _1($,Z){if(!$)return!1;if(u($))return Boolean(x($,Z.store,Z.scope));return Boolean(Z.store.get($))}function h0($,Z,J){if(!$.children)return;o($.children,Z,J)}function K($,Z){if(u($)){let J=x($,Z.store,Z.scope);return J==null?"":String(J)}return $==null?"":String($)}function b($,Z){if(u($))return x($,Z.store,Z.scope);return $}function y($){return{store:$.store,transport:$.transport,scope:$.scope,rerender:$.rerender,onToast:$.onToast,remount:$.remount}}function _($,Z){let J=document.createElement($);if(Z)J.className=Z;return J}function x0($,Z){return $.textContent=Z,$}function F1(){G("Column",p4),G("Row",c4),G("Grid",N1),G("GridItem",E1),G("Container",d4),G("Div",B1),G("Span",l4),G("Dashboard",N1),G("DashboardItem",E1),G("Pages",s4),G("Page",B1),G("Detail",i4),G("MasterDetail",n4)}function p4($,Z){let J=_("div","pf-column");J.style.display="flex",J.style.flexDirection="column";let q=B0($);if(q!=null)J.style.gap=`${q*4}px`;if($.align!=null)J.style.alignItems=K1($.align);if($.justify!=null)J.style.justifyContent=z1($.justify);return V($,J,Z),J}function c4($,Z){let J=_("div","pf-row");J.style.display="flex",J.style.flexDirection="row";let q=B0($);if(q!=null)J.style.gap=`${q*4}px`;if($.align!=null)J.style.alignItems=K1($.align);if($.justify!=null)J.style.justifyContent=z1($.justify);if($.wrap===!0)J.style.flexWrap="wrap";return V($,J,Z),J}function N1($,Z){let J=_("div","pf-grid");J.style.display="grid";let q=$.columns??3;J.style.gridTemplateColumns=`repeat(${q}, 1fr)`;let Q=B0($);if(Q!=null)J.style.gap=`${Q*4}px`;return V($,J,Z),J}function E1($,Z){let J=_("div","pf-grid-item");if($.colSpan!=null)J.style.gridColumn=`span ${$.colSpan}`;if($.rowSpan!=null)J.style.gridRow=`span ${$.rowSpan}`;return V($,J,Z),J}function d4($,Z){let J=_("div","pf-container");if(J.style.maxWidth=$.maxWidth??"1200px",J.style.margin="0 auto",$.padding!=null)J.style.padding=`${$.padding*4}px`;return V($,J,Z),J}function B1($,Z){let J=_("div","pf-div");return V($,J,Z),J}function l4($,Z){let J=_("span","pf-span");return V($,J,Z),J}function s4($,Z){let J=_("div","pf-pages");return V($,J,Z),J}function i4($,Z){let J=_("div","pf-detail"),q=$.of!=null?b($.of,Z):void 0;if(q!=null&&q!==""&&q!==!1&&q!==0)V($,J,Z);else if($.empty!=null){let Q=$.empty;J.appendChild(w(Q,Z))}return J}function n4($,Z){let J=_("div","pf-master-detail");J.style.display="flex",J.style.flexDirection="row";let q=B0($);if(q!=null)J.style.gap=`${q*4}px`;let Q=$.masterWidth??"33%",Y=$.children??[];if(Y.length>0){let U=_("div","pf-master-detail-master");U.style.width=Q,U.style.flexShrink="0",U.style.overflow="auto",U.appendChild(w(Y[0],Z)),J.appendChild(U)}if(Y.length>1){let U=_("div","pf-master-detail-detail");U.style.flex="1",U.style.overflow="auto",U.appendChild(w(Y[1],Z)),J.appendChild(U)}return J}var r4=/\bgap-(\d+)\b/;function B0($){if($.gap!=null)return $.gap;if(typeof $.cssClass==="string"){let Z=r4.exec($.cssClass);if(Z)return Number(Z[1])}return null}function K1($){return{start:"flex-start",end:"flex-end",center:"center",stretch:"stretch",baseline:"baseline"}[$]??$}function z1($){return{start:"flex-start",end:"flex-end",center:"center",between:"space-between",around:"space-around",evenly:"space-evenly"}[$]??$}function O1(){G("Heading",o4),G("H1",($,Z)=>F0($,Z,"h1")),G("H2",($,Z)=>F0($,Z,"h2")),G("H3",($,Z)=>F0($,Z,"h3")),G("H4",($,Z)=>F0($,Z,"h4")),G("Text",a4),G("P",t4),G("Lead",($,Z)=>$0($,Z,"p","pf-lead")),G("Large",($,Z)=>$0($,Z,"span","pf-large")),G("Small",($,Z)=>$0($,Z,"small","pf-small")),G("Muted",($,Z)=>$0($,Z,"p","pf-muted")),G("BlockQuote",($,Z)=>$0($,Z,"blockquote","pf-blockquote")),G("Label",($,Z)=>$0($,Z,"label","pf-label")),G("Link",$8),G("Code",Z8),G("Markdown",J8),G("Kbd",q8)}function o4($,Z){let J=$.level??2,q=`h${Math.min(Math.max(J,1),6)}`,Q=document.createElement(q);return Q.className=`pf-heading pf-${q}`,Q.textContent=K($.content,Z),Q}function F0($,Z,J){let q=document.createElement(J);return q.className=`pf-heading pf-${J}`,q.textContent=K($.content,Z),q}function a4($,Z){return x0(_("span","pf-text"),K($.content,Z))}function t4($,Z){return x0(_("p","pf-p"),K($.content,Z))}function $0($,Z,J,q){let Q=document.createElement(J);return Q.className=q,Q.textContent=K($.content,Z),Q}var e4=/^\s*(javascript|vbscript|data):/i;function $8($,Z){let J=document.createElement("a");if(J.className="pf-link",J.textContent=K($.content,Z),$.href!=null){let q=K($.href,Z);if(!e4.test(q))J.href=q}if($.target!=null)J.target=K($.target,Z);return J}function Z8($,Z){let J=_("pre","pf-code"),q=_("code");if(q.textContent=K($.content,Z),$.language!=null)q.setAttribute("data-language",$.language);return J.appendChild(q),J}function J8($,Z){let J=_("div","pf-markdown"),q=K($.content,Z);return J.innerHTML=D1(q),J.setAttribute("data-markdown","true"),J}var L1=/^\s*(javascript|vbscript|data):/i;function z0($){return $.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}function K0($){let Z=z0($),J=[];return Z=Z.replace(/`([^`]+)`/g,(q,Q)=>{return J.push(`<code>${Q}</code>`),`﷐CODE${J.length-1}﷐`}),Z=Z.replace(/!\[([^\]]*)\]\(([^)]+)\)/g,(q,Q,Y)=>{if(L1.test(Y))return z0(Q);return`<img src="${Y}" alt="${Q}" />`}),Z=Z.replace(/\[([^\]]+)\]\(([^)]+)\)/g,(q,Q,Y)=>{if(L1.test(Y))return Q;return`<a href="${Y}">${Q}</a>`}),Z=Z.replace(/\*{3}(.+?)\*{3}/g,"<strong><em>$1</em></strong>"),Z=Z.replace(/_{3}(.+?)_{3}/g,"<strong><em>$1</em></strong>"),Z=Z.replace(/\*{2}(.+?)\*{2}/g,"<strong>$1</strong>"),Z=Z.replace(/_{2}(.+?)_{2}/g,"<strong>$1</strong>"),Z=Z.replace(/\*(.+?)\*/g,"<em>$1</em>"),Z=Z.replace(/(?<!\w)_(.+?)_(?!\w)/g,"<em>$1</em>"),Z=Z.replace(/~~(.+?)~~/g,"<del>$1</del>"),Z=Z.replace(/\uFDD0CODE(\d+)\uFDD0/g,(q,Q)=>J[parseInt(Q)]),Z}function D1($){let Z=$.replace(/\r\n?/g,`
2
2
  `).split(`
3
3
  `),J=[],q=0;while(q<Z.length){let Q=Z[q];if(Q.trimStart().startsWith("```")){let W=Q.trimStart().slice(3).trim(),H=[];q++;while(q<Z.length&&!Z[q].trimStart().startsWith("```"))H.push(z0(Z[q])),q++;q++;let X=W?` data-language="${z0(W)}"`:"";J.push(`<pre class="pf-code"><code${X}>${H.join(`
4
4
  `)}</code></pre>`);continue}if(/^(\s*[-*_]\s*){3,}$/.test(Q)){J.push("<hr />"),q++;continue}let Y=/^(#{1,6})\s+(.+)$/.exec(Q);if(Y){let W=Y[1].length;J.push(`<h${W}>${K0(Y[2])}</h${W}>`),q++;continue}if(Q.startsWith("> ")||Q===">"){let W=[];while(q<Z.length&&(Z[q].startsWith("> ")||Z[q]===">"))W.push(Z[q].replace(/^>\s?/,"")),q++;J.push(`<blockquote>${D1(W.join(`
5
5
  `))}</blockquote>`);continue}if(/^[\s]*[-*+]\s+/.test(Q)){J.push("<ul>");while(q<Z.length&&/^[\s]*[-*+]\s+/.test(Z[q]))J.push(`<li>${K0(Z[q].replace(/^[\s]*[-*+]\s+/,""))}</li>`),q++;J.push("</ul>");continue}if(/^[\s]*\d+\.\s+/.test(Q)){J.push("<ol>");while(q<Z.length&&/^[\s]*\d+\.\s+/.test(Z[q]))J.push(`<li>${K0(Z[q].replace(/^[\s]*\d+\.\s+/,""))}</li>`),q++;J.push("</ol>");continue}if(Q.trim()===""){q++;continue}let U=[];while(q<Z.length&&Z[q].trim()!==""&&!/^#{1,6}\s/.test(Z[q])&&!/^[-*+]\s/.test(Z[q])&&!/^\d+\.\s/.test(Z[q])&&!Z[q].startsWith("> ")&&!Z[q].trimStart().startsWith("```")&&!/^(\s*[-*_]\s*){3,}$/.test(Z[q]))U.push(Z[q]),q++;J.push(`<p>${U.map(K0).join("<br />")}</p>`)}return J.join(`
6
- `)}function q8($,Z){let J=document.createElement("kbd");return J.className="pf-kbd",J.textContent=K($.content,Z),J}function T1(){G("Card",Q8),G("CardHeader",p0("pf-card-header")),G("CardTitle",V1("pf-card-title","h3")),G("CardDescription",V1("pf-card-description","p")),G("CardContent",p0("pf-card-content")),G("CardFooter",p0("pf-card-footer"))}function Q8($,Z){let J=_("div","pf-card");return J.style.overflow="hidden",V($,J,Z),J}function p0($){return(Z,J)=>{let q=_("div",$);return q.style.padding="16px 24px",V(Z,q,J),q}}function V1($,Z){return(J,q)=>{let Q=document.createElement(Z);return Q.className=$,Q.textContent=K(J.content,q),Q}}function j1(){G("DataTable",Y8),G("Badge",U8),G("Dot",W8),G("Metric",H8),G("Ring",M8),G("Progress",G8),G("Separator",X8),G("Loader",_8),G("Icon",N8),G("Sparkline",E8)}function Y8($,Z){let J=_("div","pf-datatable-wrapper"),q=document.createElement("table");q.className="pf-datatable",q.style.width="100%",q.style.borderCollapse="collapse";let Q=$.columns??[],Y=b($.rows,Z),U=$.rowKey,W=$.selected,H=document.createElement("thead"),X=document.createElement("tr");for(let M of Q){let E=document.createElement("th");E.className="pf-datatable-th",E.textContent=M.header??M.key,E.style.padding="8px 12px",E.style.textAlign="left",X.appendChild(E)}H.appendChild(X),q.appendChild(H);let N=document.createElement("tbody");if(Array.isArray(Y)){let M=W!=null?b(W,Z):void 0;for(let E of Y){let L=document.createElement("tr");L.className="pf-datatable-row";let B=E;if(U&&M!=null&&B[U]!=null&&String(B[U])===String(M))L.classList.add("pf-datatable-row-selected");if($.onRowClick!=null&&U)L.style.cursor="pointer",L.addEventListener("click",()=>{let F={...Z.scope,$item:B,$index:Y.indexOf(E)},z=y({...Z,scope:F});k($.onRowClick,z)});for(let F of Q){let z=document.createElement("td");z.className="pf-datatable-td";let O;if(F.accessor)O=b(`{{ $item.${F.accessor} }}`,{...Z,scope:{...Z.scope,$item:B}});else if(O=B[F.key],F.format&&O!=null)O=b(`{{ __fmtVal | ${F.format} }}`,{...Z,scope:{...Z.scope,__fmtVal:O}});z.textContent=O==null?"":String(O),z.style.padding="8px 12px",L.appendChild(z)}N.appendChild(L)}}if(q.appendChild(N),$.search===!0){let M=document.createElement("input");M.type="text",M.placeholder="Search...",M.className="pf-datatable-search",M.style.marginBottom="8px",M.style.padding="6px 12px",M.style.width="100%",M.style.boxSizing="border-box",M.addEventListener("input",()=>{let E=M.value.toLowerCase(),L=Array.from(N.querySelectorAll("tr"));for(let B of L){let F=(B.textContent??"").toLowerCase();B.style.display=F.includes(E)?"":"none"}}),J.appendChild(M)}return J.appendChild(q),J}function U8($,Z){let J=_("span","pf-badge"),q=$.variant??"default";return J.setAttribute("data-variant",q),J.style.alignItems="center",J.style.padding="2px 10px",J.style.borderRadius="9999px",J.style.fontSize="12px",J.style.fontWeight="500",J.textContent=K($.label??$.content,Z),B8(J,q),J}function W8($,Z){let J=_("span","pf-dot"),q=$.color??"gray";return J.style.display="inline-block",J.style.width="8px",J.style.height="8px",J.style.borderRadius="50%",J.style.backgroundColor=q,J}function H8($,Z){let J=_("div","pf-metric"),q=_("div","pf-metric-label");q.textContent=K($.label,Z),q.style.fontSize="14px",J.appendChild(q);let Q=_("div","pf-metric-value");if(Q.textContent=K($.value,Z),Q.style.fontSize="28px",Q.style.fontWeight="700",J.appendChild(Q),$.delta!=null){let Y=_("span","pf-metric-delta");Y.textContent=K($.delta,Z);let U=$.trend??"",W=$.trendSentiment??"neutral";if(Y.style.fontSize="14px",Y.style.color=W==="positive"?"green":W==="negative"?"red":"inherit",U==="up")Y.textContent="↑ "+Y.textContent;else if(U==="down")Y.textContent="↓ "+Y.textContent;J.appendChild(Y)}if($.description!=null){let Y=_("div","pf-metric-desc");Y.textContent=K($.description,Z),Y.style.fontSize="12px",J.appendChild(Y)}return J}function M8($,Z){let J=_("div","pf-ring"),q=$.size??80,Q=$.thickness??8,Y=Number(b($.value,Z)??0),U=Math.max(0,Math.min(100,Y)),W=(q-Q)/2,H=2*Math.PI*W,X=H*(1-U/100),N=document.createElementNS("http://www.w3.org/2000/svg","svg");N.setAttribute("width",String(q)),N.setAttribute("height",String(q)),N.setAttribute("viewBox",`0 0 ${q} ${q}`);let M=document.createElementNS("http://www.w3.org/2000/svg","circle");M.setAttribute("cx",String(q/2)),M.setAttribute("cy",String(q/2)),M.setAttribute("r",String(W)),M.setAttribute("fill","none"),M.setAttribute("stroke","var(--muted, #e5e7eb)"),M.setAttribute("stroke-width",String(Q));let E=document.createElementNS("http://www.w3.org/2000/svg","circle");if(E.setAttribute("cx",String(q/2)),E.setAttribute("cy",String(q/2)),E.setAttribute("r",String(W)),E.setAttribute("fill","none"),E.setAttribute("stroke","var(--primary, #3b82f6)"),E.setAttribute("stroke-width",String(Q)),E.setAttribute("stroke-dasharray",String(H)),E.setAttribute("stroke-dashoffset",String(X)),E.setAttribute("stroke-linecap","round"),E.style.transform="rotate(-90deg)",E.style.transformOrigin="center",N.appendChild(M),N.appendChild(E),J.appendChild(N),$.label!=null){let L=_("div","pf-ring-label");L.textContent=K($.label,Z),L.style.textAlign="center",L.style.fontSize="12px",J.appendChild(L)}return J}function G8($,Z){let J=_("div","pf-progress");J.setAttribute("role","progressbar");let q=Number(b($.value,Z)??0),Q=$.max??100,Y=Q>0?Math.max(0,Math.min(100,q/Q*100)):0;J.setAttribute("aria-valuenow",String(q)),J.setAttribute("aria-valuemin","0"),J.setAttribute("aria-valuemax",String(Q)),J.style.height="8px",J.style.borderRadius="4px",J.style.overflow="hidden";let U=_("div","pf-progress-fill");return U.style.height="100%",U.style.width=`${Y}%`,U.style.borderRadius="4px",U.style.transition="width 0.3s ease",J.appendChild(U),J}function X8($,Z){let J=document.createElement("hr");return J.className="pf-separator",J.style.border="none",J.style.margin="8px 0",J}function _8($,Z){let J=_("div","pf-loader");return J.textContent="⏳",J.style.display="flex",J.style.justifyContent="center",J.style.padding="16px",J}function N8($,Z){let J=_("span","pf-icon");return J.setAttribute("data-icon",K($.name??$.content,Z)),J}function E8($,Z){let J=_("div","pf-sparkline"),q=$.data??[];if(q.length===0)return J;let Q=120,Y=32,U=Math.max(...q),W=Math.min(...q),H=U-W||1,X=document.createElementNS("http://www.w3.org/2000/svg","svg");X.setAttribute("width",String(Q)),X.setAttribute("height",String(Y)),X.setAttribute("viewBox",`0 0 ${Q} ${Y}`);let N=q.length>1?q.length-1:1,M=q.map((L,B)=>{let F=B/N*Q,z=Y-(L-W)/H*(Y-4)-2;return`${F},${z}`}).join(" "),E=document.createElementNS("http://www.w3.org/2000/svg","polyline");return E.setAttribute("points",M),E.setAttribute("fill","none"),E.setAttribute("stroke","var(--primary, #3b82f6)"),E.setAttribute("stroke-width","1.5"),X.appendChild(E),J.appendChild(X),J}function B8($,Z){let q={success:{bg:"#10b981",fg:"#fff"},warning:{bg:"#f59e0b",fg:"#fff"},info:{bg:"#3b82f6",fg:"#fff"}}[Z];if(q)$.style.backgroundColor=q.bg,$.style.color=q.fg}function R1(){G("Form",F8),G("Input",K8),G("Textarea",z8),G("Button",L8),G("ButtonGroup",O8),G("Select",D8),G("SelectOption",V8),G("SelectGroup",L0("pf-select-group")),G("SelectLabel",q0("pf-select-label")),G("SelectSeparator",I1),G("Checkbox",T8),G("Switch",j8),G("Slider",I8),G("Radio",P8),G("RadioGroup",A8),G("Combobox",k8),G("ComboboxOption",f8),G("ComboboxGroup",L0("pf-combobox-group")),G("ComboboxLabel",q0("pf-combobox-label")),G("ComboboxSeparator",I1),G("Calendar",S8),G("DatePicker",w8),G("Field",L0("pf-field")),G("FieldTitle",q0("pf-field-title")),G("FieldDescription",q0("pf-field-description")),G("FieldContent",L0("pf-field-content")),G("FieldError",q0("pf-field-error")),G("ChoiceCard",C8)}function F8($,Z){let J=document.createElement("form");return J.className="pf-form",J.addEventListener("submit",(q)=>{q.preventDefault();let Q=new FormData(J),Y={};if(Q.forEach((U,W)=>{Y[W]=U}),Z.store.merge(Y),$.onSubmit!=null){let U=y(Z);U.scope={...Z.scope,...Y},k($.onSubmit,U)}}),V($,J,Z),J}function K8($,Z){let J=_("div","pf-input-wrapper");if(J.style.display="flex",J.style.flexDirection="column",J.style.gap="4px",$.label!=null){let Y=document.createElement("label");if(Y.className="pf-input-label",Y.textContent=K($.label,Z),$.name!=null)Y.htmlFor=$.name;Y.style.fontSize="14px",Y.style.fontWeight="500",J.appendChild(Y)}let q=document.createElement("input");if(q.className="pf-input",q.type=$.inputType??"text",$.name!=null)q.name=$.name;if($.name!=null)q.id=`pf-input-${$.name}`;if($.placeholder!=null)q.placeholder=K($.placeholder,Z);if($.required===!0)q.required=!0,q.setAttribute("aria-required","true");if($.error!=null)q.setAttribute("aria-invalid","true");let Q=$.name;if(Q){let Y=Z.store.get(Q);if(Y!=null)q.value=String(Y);q.addEventListener("input",()=>{if(Z.store.set(Q,q.value),$.onChange!=null)k($.onChange,{...y(Z),scope:{...Z.scope,$event:q.value}})})}return c0(q),J.appendChild(q),J}function z8($,Z){let J=_("div","pf-textarea-wrapper"),q=document.createElement("textarea");if(q.className="pf-textarea",$.name!=null)q.name=$.name;if($.name!=null)q.id=`pf-textarea-${$.name}`;if($.placeholder!=null)q.placeholder=K($.placeholder,Z);if($.rows!=null)q.rows=$.rows;if($.required===!0)q.setAttribute("aria-required","true");let Q=$.name;if(Q!=null){let Y=Z.store.get(Q);if(Y!=null)q.value=String(Y);q.addEventListener("input",()=>{if(Z.store.set(Q,q.value),$.onChange!=null)k($.onChange,{...y(Z),scope:{...Z.scope,$event:q.value}})})}return c0(q),J.appendChild(q),J}function L8($,Z){let J=document.createElement("button");J.className="pf-button",J.type=$.submit===!0?"submit":"button",J.textContent=K($.label,Z);let q=$.variant??"default";if(J.setAttribute("data-variant",q),R8(J,q),$.size!=null)J.setAttribute("data-size",$.size);if($.disabled===!0)J.disabled=!0;if($.onClick!=null)J.addEventListener("click",()=>{k($.onClick,y(Z))});return J}function O8($,Z){let J=_("div","pf-button-group");return J.style.display="flex",J.style.gap="8px",V($,J,Z),J}function D8($,Z){let J=_("div","pf-select-wrapper"),q=document.createElement("select");if(q.className="pf-select",$.name!=null)q.name=$.name;if(c0(q),$.placeholder!=null){let U=document.createElement("option");U.value="",U.textContent=K($.placeholder,Z),U.disabled=!0,U.selected=!0,U.hidden=!0,q.appendChild(U)}let Q=$.options;if(Array.isArray(Q))for(let U of Q){let W=document.createElement("option");W.value=U.value??"",W.textContent=U.label??W.value,q.appendChild(W)}if($.children)for(let U of $.children)if(U.type==="SelectOption"){let W=document.createElement("option");W.value=U.value??"",W.textContent=U.label??W.value,q.appendChild(W)}else q.appendChild(w(U,Z));let Y=$.name;if(Y){let U=Z.store.get(Y);if(U!=null)q.value=String(U);q.addEventListener("change",()=>{if(Z.store.set(Y,q.value),$.onChange!=null)k($.onChange,{...y(Z),scope:{...Z.scope,$event:q.value}})})}return J.appendChild(q),J}function V8($,Z){return _("span")}function T8($,Z){let J=_("label","pf-checkbox-wrapper");J.style.display="flex",J.style.alignItems="center",J.style.gap="8px",J.style.cursor="pointer";let q=document.createElement("input");if(q.type="checkbox",q.className="pf-checkbox",$.name!=null)q.name=$.name;if($.checked===!0)q.checked=!0;let Q=$.name;if(Q){let Y=Z.store.get(Q);if(typeof Y==="boolean")q.checked=Y;q.addEventListener("change",()=>{if(Z.store.set(Q,q.checked),$.onChange!=null)k($.onChange,{...y(Z),scope:{...Z.scope,$event:q.checked}})})}if(J.appendChild(q),$.label!=null){let Y=_("span");Y.textContent=K($.label,Z),J.appendChild(Y)}return J}function j8($,Z){let J=_("label","pf-switch-wrapper");J.style.display="flex",J.style.alignItems="center",J.style.gap="8px",J.style.cursor="pointer";let q=document.createElement("input");if(q.type="checkbox",q.className="pf-switch",q.setAttribute("role","switch"),$.name!=null)q.name=$.name;let Q=$.name;if(Q){let Y=Z.store.get(Q);if(typeof Y==="boolean")q.checked=Y;q.addEventListener("change",()=>{if(Z.store.set(Q,q.checked),$.onChange!=null)k($.onChange,{...y(Z),scope:{...Z.scope,$event:q.checked}})})}if(J.appendChild(q),$.label!=null){let Y=_("span");Y.textContent=K($.label,Z),J.appendChild(Y)}return J}function I8($,Z){let J=_("div","pf-slider-wrapper"),q=document.createElement("input");if(q.type="range",q.className="pf-slider",$.name!=null)q.name=$.name;if($.min!=null)q.min=String($.min);if($.max!=null)q.max=String($.max);if($.step!=null)q.step=String($.step);let Q=$.name;if(Q){let Y=Z.store.get(Q);if(Y!=null)q.value=String(Y);q.addEventListener("input",()=>{if(Z.store.set(Q,Number(q.value)),$.onChange!=null)k($.onChange,{...y(Z),scope:{...Z.scope,$event:Number(q.value)}})})}return J.appendChild(q),J}function c0($){$.style.padding="8px 12px",$.style.fontSize="14px",$.style.width="100%",$.style.boxSizing="border-box"}function R8($,Z){if($.style.padding="8px 16px",$.style.fontSize="14px",$.style.fontWeight="500",$.style.cursor="pointer",$.style.border="none",Z==="ghost")$.style.backgroundColor="transparent",$.style.color="inherit"}function L0($){return(Z,J)=>{let q=_("div",$);return V(Z,q,J),q}}function q0($){return(Z,J)=>{let q=_("span",$);return q.textContent=K(Z.content,J),q}}function I1(){let $=document.createElement("hr");return $.className="pf-separator",$.style.border="none",$.style.margin="4px 0",$}function P8($,Z){let J=_("label","pf-radio");J.style.display="flex",J.style.alignItems="center",J.style.gap="8px",J.style.cursor="pointer";let q=document.createElement("input");if(q.type="radio",q.value=K($.value,Z),J.appendChild(q),$.label!=null){let Q=_("span","pf-radio-label");Q.textContent=K($.label,Z),J.appendChild(Q)}return J}function A8($,Z){let J=_("fieldset","pf-radio-group");if(J.style.border="none",J.style.padding="0",J.style.display="flex",J.style.flexDirection="column",J.style.gap="8px",$.label!=null){let Y=document.createElement("legend");Y.textContent=K($.label,Z),Y.style.fontWeight="500",Y.style.marginBottom="4px",J.appendChild(Y)}V($,J,Z);let q=K($.name,Z),Q=Z.store.get(q);for(let Y of Array.from(J.querySelectorAll('input[type="radio"]')))if(Y.name=q,Q!=null&&Y.value===String(Q))Y.checked=!0;return J.addEventListener("change",(Y)=>{let U=Y.target;if(U.type==="radio"){if(Z.store.set(q,U.value),$.onChange!=null)k($.onChange,y(Z))}}),J}function k8($,Z){let J=_("div","pf-combobox"),q=document.createElement("input");if(q.className="pf-combobox-input",q.type="text",q.name=K($.name,Z),$.placeholder!=null)q.placeholder=K($.placeholder,Z);if($.value!==void 0)q.value=K($.value,Z);let Q=q.name,Y=Z.store.get(Q);if(Y!=null)q.value=String(Y);q.style.padding="6px 12px",q.style.borderRadius="6px",q.style.width="100%",q.style.boxSizing="border-box";let U=_("div","pf-combobox-dropdown");if(U.style.display="none",U.style.position="absolute",U.style.borderRadius="6px",U.style.maxHeight="200px",U.style.overflowY="auto",U.style.zIndex="50",V($,U,Z),q.addEventListener("focus",()=>{U.style.display="block"}),q.addEventListener("blur",()=>{setTimeout(()=>{U.style.display="none"},150)}),$.searchable!==!1)q.addEventListener("input",()=>{let W=q.value.toLowerCase();for(let H of Array.from(U.querySelectorAll(".pf-combobox-option"))){let X=(H.textContent??"").toLowerCase();H.style.display=X.includes(W)?"":"none"}});if($.onChange!=null)J.addEventListener("pf-combobox-select",()=>{k($.onChange,{...y(Z),scope:{...Z.scope,$event:q.value}})});return J.style.position="relative",J.appendChild(q),J.appendChild(U),J}function f8($,Z){let J=_("div","pf-combobox-option");return J.style.padding="6px 12px",J.style.cursor="pointer",J.textContent=K($.label??$.value,Z),J.dataset.value=K($.value,Z),J.addEventListener("mousedown",()=>{let q=J.closest(".pf-combobox"),Q=q?.querySelector("input");if(Q)Q.value=J.dataset.value??"",Z.store.set(Q.name,Q.value),q?.dispatchEvent(new CustomEvent("pf-combobox-select",{bubbles:!1}))}),J}function S8($,Z){let J=_("div","pf-calendar"),q=document.createElement("input");if(q.type="date",q.name=K($.name,Z),$.value!==void 0)q.value=K($.value,Z);let Q=q.name,Y=Z.store.get(Q);if(Y!=null)q.value=String(Y);if($.minDate!=null)q.min=K($.minDate,Z);if($.maxDate!=null)q.max=K($.maxDate,Z);return q.style.padding="6px 12px",q.style.borderRadius="6px",q.addEventListener("change",()=>{if(Z.store.set(q.name,q.value),$.onChange!=null)k($.onChange,y(Z))}),J.appendChild(q),J}function w8($,Z){let J=_("div","pf-datepicker"),q=document.createElement("input");if(q.type="date",q.name=K($.name,Z),$.placeholder!=null)q.placeholder=K($.placeholder,Z);if($.value!==void 0)q.value=K($.value,Z);let Q=q.name,Y=Z.store.get(Q);if(Y!=null)q.value=String(Y);if($.minDate!=null)q.min=K($.minDate,Z);if($.maxDate!=null)q.max=K($.maxDate,Z);return q.style.padding="6px 12px",q.style.borderRadius="6px",q.style.width="100%",q.style.boxSizing="border-box",q.addEventListener("change",()=>{if(Z.store.set(q.name,q.value),$.onChange!=null)k($.onChange,y(Z))}),J.appendChild(q),J}function C8($,Z){let J=_("div","pf-choice-card");if(J.style.padding="16px",J.style.cursor="pointer",J.style.transition="border-color 0.2s",J.dataset.value=K($.value,Z),$.selected===!0)J.dataset.selected="true";if($.label!=null){let q=_("div","pf-choice-card-label");q.textContent=K($.label,Z),q.style.fontWeight="600",J.appendChild(q)}if($.description!=null){let q=_("div","pf-choice-card-description");q.textContent=K($.description,Z),q.style.fontSize="14px",J.appendChild(q)}if(V($,J,Z),$.onClick!=null)J.addEventListener("click",()=>{k($.onClick,y(Z))});return J}function P1(){G("Tabs",y8),G("Tab",b8),G("Accordion",m8),G("AccordionItem",h8),G("Dialog",v8),G("Popover",g8),G("Tooltip",u8),G("HoverCard",x8),G("Carousel",p8)}function y8($,Z){let J=_("div","pf-tabs"),q=_("div","pf-tabs-bar");q.setAttribute("role","tablist"),q.style.display="flex",q.style.gap="4px",q.style.marginBottom="12px";let Q=[],Y=[];if($.children)for(let W=0;W<$.children.length;W++){let H=$.children[W],X=`pf-tab-${Math.random().toString(36).slice(2,8)}`,N=`pf-panel-${Math.random().toString(36).slice(2,8)}`,M=document.createElement("button");M.type="button",M.className="pf-tab-trigger",M.textContent=H.title??`Tab ${W+1}`,M.setAttribute("role","tab"),M.setAttribute("aria-selected",W===0?"true":"false"),M.setAttribute("aria-controls",N),M.id=X,M.tabIndex=W===0?0:-1,M.style.padding="8px 16px",M.style.border="none",M.style.background="none",M.style.cursor="pointer",M.style.borderBottom="2px solid transparent",M.style.marginBottom="-2px",M.style.fontSize="14px";let E=_("div","pf-tab-panel");if(E.style.display=W===0?"block":"none",E.setAttribute("role","tabpanel"),E.setAttribute("aria-labelledby",X),E.id=N,E.tabIndex=0,V(H,E,Z),M.addEventListener("click",()=>{U(W)}),W===0)M.classList.add("pf-tab-active"),M.style.fontWeight="600";Y.push(M),Q.push(E),q.appendChild(M)}function U(W){Q.forEach((H)=>H.style.display="none"),Y.forEach((H)=>{H.style.borderBottomColor="transparent",H.style.fontWeight="normal",H.classList.remove("pf-tab-active"),H.setAttribute("aria-selected","false"),H.tabIndex=-1}),Q[W].style.display="block",Y[W].classList.add("pf-tab-active"),Y[W].style.fontWeight="600",Y[W].setAttribute("aria-selected","true"),Y[W].tabIndex=0,Y[W].focus()}q.addEventListener("keydown",(W)=>{let H=Y.indexOf(W.target);if(H<0)return;let X;if(W.key==="ArrowRight")X=(H+1)%Y.length;else if(W.key==="ArrowLeft")X=(H-1+Y.length)%Y.length;else if(W.key==="Home")X=0;else if(W.key==="End")X=Y.length-1;else return;W.preventDefault(),U(X)}),J.appendChild(q);for(let W of Q)J.appendChild(W);return J}function b8($,Z){let J=_("div","pf-tab");return V($,J,Z),J}function m8($,Z){let J=_("div","pf-accordion");return V($,J,Z),J}function h8($,Z){let J=_("div","pf-accordion-item"),q=`pf-acc-${Math.random().toString(36).slice(2,8)}`,Q=document.createElement("button");Q.type="button",Q.className="pf-accordion-trigger",Q.textContent=$.title??"",Q.setAttribute("aria-expanded","false"),Q.setAttribute("aria-controls",q),Q.style.width="100%",Q.style.textAlign="left",Q.style.padding="12px 0",Q.style.border="none",Q.style.background="none",Q.style.cursor="pointer",Q.style.fontSize="14px",Q.style.fontWeight="500";let Y=_("div","pf-accordion-content");return Y.id=q,Y.setAttribute("role","region"),Y.setAttribute("aria-labelledby",Q.id),Y.style.display="none",Y.style.paddingBottom="12px",V($,Y,Z),Q.addEventListener("click",()=>{let U=Y.style.display!=="none";Y.style.display=U?"none":"block",Q.setAttribute("aria-expanded",U?"false":"true")}),J.appendChild(Q),J.appendChild(Y),J}function v8($,Z){let J=_("div","pf-dialog-wrapper");if($.trigger!=null){let Y=w($.trigger,Z);Y.addEventListener("click",()=>{q.showModal()}),J.appendChild(Y)}let q=document.createElement("dialog");if(q.className="pf-dialog",q.setAttribute("aria-modal","true"),q.style.maxWidth="500px",q.style.width="100%",q.style.padding="24px",$.title!=null){let Y=_("h2","pf-dialog-title");Y.textContent=K($.title,Z),Y.id=`pf-dialog-title-${Math.random().toString(36).slice(2,8)}`,q.setAttribute("aria-labelledby",Y.id),q.appendChild(Y)}if($.description!=null){let Y=_("p","pf-dialog-desc");Y.textContent=K($.description,Z),q.appendChild(Y)}let Q=_("div","pf-dialog-body");if(V($,Q,Z),q.appendChild(Q),$.dismissible!==!1)q.addEventListener("click",(Y)=>{if(Y.target===q)q.close()});return document.addEventListener("prefab:close-overlay",()=>q.close()),J.appendChild(q),J}function g8($,Z){let J=_("div","pf-popover");J.style.position="relative",J.style.display="inline-block";let q=_("div","pf-popover-content");if(q.style.display="none",q.style.position="absolute",q.style.zIndex="50",q.style.padding="12px",q.style.boxShadow="0 4px 6px -1px rgb(0 0 0 / 0.1)",$.title!=null){let Q=_("div","pf-popover-title");Q.textContent=K($.title,Z),Q.style.fontWeight="600",Q.style.marginBottom="4px",q.appendChild(Q)}return V($,q,Z),J.addEventListener("click",(Q)=>{if(q.contains(Q.target)&&q.style.display!=="none")return;q.style.display=q.style.display==="none"?"block":"none"}),J.appendChild(q),J}function u8($,Z){let J=_("div","pf-tooltip");J.style.position="relative",J.style.display="inline-block";let q=`pf-tip-${Math.random().toString(36).slice(2,8)}`,Q=_("div","pf-tooltip-content");return Q.id=q,Q.setAttribute("role","tooltip"),Q.textContent=K($.content??"",Z),Q.style.display="none",Q.style.position="absolute",Q.style.bottom="100%",Q.style.left="50%",Q.style.transform="translateX(-50%)",Q.style.padding="4px 8px",Q.style.borderRadius="4px",Q.style.color="#fff",Q.style.fontSize="12px",Q.style.whiteSpace="nowrap",Q.style.zIndex="50",V($,J,Z),J.setAttribute("aria-describedby",q),J.addEventListener("mouseenter",()=>{Q.style.display="block"}),J.addEventListener("mouseleave",()=>{Q.style.display="none"}),J.addEventListener("focus",()=>{Q.style.display="block"},!0),J.addEventListener("blur",()=>{Q.style.display="none"},!0),J.appendChild(Q),J}function x8($,Z){let J=_("div","pf-hover-card");J.style.position="relative",J.style.display="inline-block";let q=_("div","pf-hover-card-content");return q.style.display="none",q.style.position="absolute",q.style.zIndex="50",q.style.padding="16px",q.style.boxShadow="0 4px 6px -1px rgb(0 0 0 / 0.1)",q.style.minWidth="200px",V($,q,Z),J.addEventListener("mouseenter",()=>{q.style.display="block"}),J.addEventListener("mouseleave",()=>{q.style.display="none"}),J.appendChild(q),J}function p8($,Z){let J=_("div","pf-carousel");J.style.position="relative",J.style.overflow="hidden",J.setAttribute("role","region"),J.setAttribute("aria-roledescription","carousel"),J.setAttribute("aria-label",K($.label??"Carousel",Z));let q=_("div","pf-carousel-track");q.style.display="flex",q.style.transition="transform 0.3s ease",V($,q,Z);let Q=0,Y=$.children?.length??0,U=document.createElement("button");U.type="button",U.textContent="‹",U.className="pf-carousel-prev",U.setAttribute("aria-label","Previous slide"),U.style.position="absolute",U.style.left="4px",U.style.top="50%",U.style.transform="translateY(-50%)",U.style.zIndex="10";let W=document.createElement("button");W.type="button",W.textContent="›",W.className="pf-carousel-next",W.setAttribute("aria-label","Next slide"),W.style.position="absolute",W.style.right="4px",W.style.top="50%",W.style.transform="translateY(-50%)",W.style.zIndex="10";let H=()=>{q.style.transform=`translateX(-${Q*100}%)`};return U.addEventListener("click",()=>{if(Y===0)return;Q=Math.max(0,Q-1),H()}),W.addEventListener("click",()=>{if(Y===0)return;Q=Math.min(Y-1,Q+1),H()}),J.appendChild(q),J.appendChild(U),J.appendChild(W),J}function A1(){G("ForEach",c8),G("If",k1),G("Elif",d8),G("Else",l8),G("Condition",s8),G("Define",i8),G("Use",n8),G("Slot",r8)}function c8($,Z){let J=document.createDocumentFragment(),q=$.expression;if(!q)return J;let Q;if(u(q)){let U=x(q,Z.store,Z.scope);Q=Array.isArray(U)?U:[]}else{let U=Z.store.get(q);Q=Array.isArray(U)?U:[]}let Y=$.let??{};for(let U=0;U<Q.length;U++){let W=Q[U],H={...Z.scope,$item:W,$index:U,...Y},X={...Z,scope:H};if($.children)o($.children,J,X)}return J}function k1($,Z){if(f1($.condition,Z)){let q=document.createDocumentFragment();if($.children)o($.children,q,Z);return q}return document.createDocumentFragment()}function d8($,Z){return k1($,Z)}function l8($,Z){let J=document.createDocumentFragment();if($.children)o($.children,J,Z);return J}function f1($,Z){if(!$)return!1;if(u($))return Boolean(x($,Z.store,Z.scope));return Boolean(Z.store.get($))}function s8($,Z){let J=document.createDocumentFragment(),q=$.cases,Q=$.else;if(q){for(let Y of q)if(f1(Y.when,Z)){if(Y.children)o(Y.children,J,Z);return J}}if(Q)o(Q,J,Z);return J}function i8($,Z){let J=$.name;if(J&&$.children)Z.templates=Z.templates??{},Z.templates[J]=$.children;return document.createDocumentFragment()}function n8($,Z){let J=document.createDocumentFragment(),q=$.def??$.name,Q=Z.templates?.[q];if(!Q)return J;let Y=$.overrides??{},U={...Z.scope,...Y},W={...Z,scope:U};for(let H of Q)J.appendChild(w(H,W));return J}function r8($,Z){let J=document.createDocumentFragment(),q=$.name??"default",Y=Z.slots?.[q]??$.children;if(Y)for(let U of Y)J.appendChild(w(U,Z));return J}function S1(){G("Alert",o8),G("AlertTitle",a8),G("AlertDescription",t8)}function o8($,Z){let J=_("div","pf-alert");J.setAttribute("role","alert");let q=$.variant??"default";if(J.setAttribute("data-variant",q),J.style.padding="12px 16px",$.icon!=null){let Q=_("span","pf-alert-icon");Q.setAttribute("data-icon",$.icon),Q.style.marginRight="8px",J.appendChild(Q)}return V($,J,Z),J}function a8($,Z){let J=_("h5","pf-alert-title");return J.textContent=K($.content,Z),J.style.fontWeight="600",J.style.marginBottom="4px",J}function t8($,Z){let J=_("p","pf-alert-description");return J.textContent=K($.content,Z),J.style.fontSize="14px",J}function w1(){G("Image",e8),G("Audio",$2),G("Video",Z2),G("Embed",J2),G("Svg",Q2),G("DropZone",Y2),G("Mermaid",U2)}function e8($,Z){let J=document.createElement("img");if(J.className="pf-image",J.src=K($.src,Z),$.alt!=null)J.alt=K($.alt,Z);if($.width!=null)J.width=$.width;if($.height!=null)J.height=$.height;return J.style.maxWidth="100%",J}function $2($,Z){let J=document.createElement("audio");return J.className="pf-audio",J.src=K($.src,Z),J.controls=!0,J}function Z2($,Z){let J=document.createElement("video");if(J.className="pf-video",J.src=K($.src,Z),J.controls=!0,$.width!=null)J.width=$.width;if($.height!=null)J.height=$.height;return J.style.maxWidth="100%",J}function J2($,Z){let J=_("div","pf-embed"),q=document.createElement("iframe");return q.src=K($.src,Z),q.style.width="100%",q.style.height=$.height!=null?`${$.height}px`:"400px",q.style.border="none",q.setAttribute("sandbox","allow-scripts"),J.appendChild(q),J}var q2=new Set(["svg","g","path","rect","circle","ellipse","line","polyline","polygon","text","tspan","textpath","defs","use","symbol","clippath","mask","pattern","lineargradient","radialgradient","stop","filter","fegaussianblur","feoffset","femerge","femergenode","fecolormatrix","feblend","title","desc"]);function Q2($,Z){let J=_("div","pf-svg"),q=K($.content,Z);if(!q.includes("<svg"))return J;let Y=new DOMParser().parseFromString(q,"image/svg+xml").querySelector("svg");if(!Y)return J;return C1(Y),J.appendChild(document.importNode(Y,!0)),J}function C1($){let Z=Array.from($.children);for(let J of Z){if(!q2.has(J.tagName.toLowerCase())){J.remove();continue}for(let q of Array.from(J.attributes)){let Q=q.name.toLowerCase();if(Q.startsWith("on")||Q==="href"&&q.value.trim().toLowerCase().startsWith("javascript:"))J.removeAttribute(q.name)}C1(J)}}function Y2($,Z){let J=_("div","pf-dropzone");return J.style.padding="32px",J.style.textAlign="center",J.style.cursor="pointer",J.textContent=K($.label??"Drop files here",Z),J.addEventListener("dragover",(q)=>{q.preventDefault(),J.classList.add("pf-dropzone-active")}),J.addEventListener("dragleave",()=>{J.classList.remove("pf-dropzone-active")}),J.addEventListener("drop",(q)=>{q.preventDefault(),J.classList.remove("pf-dropzone-active")}),J}function U2($,Z){let J=_("div","pf-mermaid");J.setAttribute("data-mermaid","true");let q=K($.content,Z);if(J.textContent=q,typeof globalThis.mermaid<"u")J.classList.add("mermaid"),J.textContent=q;return J}var W2="https://cdn.jsdelivr.net/npm/pdfjs-dist@4.9/build/pdf.min.mjs",H2="https://cdn.jsdelivr.net/npm/pdfjs-dist@4.9/build/pdf.worker.min.mjs",d0=null,O0=null;async function M2(){if(d0)return d0;if(O0)return O0;return O0=import(W2).then(($)=>{let Z=$;return Z.GlobalWorkerOptions.workerSrc=H2,d0=Z,Z}),O0}function b1(){G("PdfViewer",G2)}function G2($,Z){let J=_("div","pf-pdf-viewer"),q=$.src!=null?K($.src,Z):void 0,Q=$.data,Y=$.page!=null?$.page:1,U=$.zoom!=null?$.zoom:"fit-width",W=$.toolbar!==!1,H=$.height!=null?$.height:600;J.style.height=`${H}px`,J.style.display="flex",J.style.flexDirection="column",J.style.overflow="hidden",J.style.border="1px solid var(--color-border-primary, #e5e7eb)",J.style.borderRadius="var(--border-radius-md, 0.375rem)",J.style.background="var(--color-background-secondary, #f9fafb)";let X=_("div","pf-pdf-loading");return X.textContent="Loading PDF…",X.style.display="flex",X.style.alignItems="center",X.style.justifyContent="center",X.style.flex="1",X.style.color="var(--color-text-secondary, #6b7280)",J.appendChild(X),X2(J,X,{src:q,data:Q,initialPage:Y,zoom:U,showToolbar:W}),J}async function X2($,Z,J){try{let q=await M2(),Q;if(J.src)Q={url:J.src};else if(J.data){let E=atob(J.data),L=new Uint8Array(E.length);for(let B=0;B<E.length;B++)L[B]=E.charCodeAt(B);Q={data:L}}else{Z.textContent="Error: No PDF source provided";return}let Y=await q.getDocument(Q).promise;Z.remove();let U=Math.max(1,Math.min(J.initialPage,Y.numPages)),W=null,H=null;if(J.showToolbar){let E=_2(Y.numPages,U,{onPrev:()=>{if(U>1)U--,M()},onNext:()=>{if(U<Y.numPages)U++,M()},onPageChange:(L)=>{let B=Math.max(1,Math.min(L,Y.numPages));if(B!==U)U=B,M()}});W=E.pageInput,H=E.pageCount,$.insertBefore(E.el,$.firstChild)}let X=_("div","pf-pdf-canvas-container");X.style.flex="1",X.style.overflow="auto",X.style.display="flex",X.style.justifyContent="center",X.style.padding="8px",$.appendChild(X);let N=document.createElement("canvas");N.style.display="block",N.style.boxShadow="var(--shadow-md, 0 4px 6px -1px rgba(0,0,0,.1))",X.appendChild(N);async function M(){let E=await Y.getPage(U),L=X.clientWidth-16,B,F=E.getViewport({scale:1});if(J.zoom==="fit-width")B=L/F.width;else if(J.zoom==="fit-page"){let R=X.clientHeight-16,T=L/F.width,D=R/F.height;B=Math.min(T,D)}else B=typeof J.zoom==="number"?J.zoom:1;let z=E.getViewport({scale:B});N.width=z.width,N.height=z.height,N.style.width=`${z.width}px`,N.style.height=`${z.height}px`;let O=N.getContext("2d");if(!O)return;if(await E.render({canvasContext:O,viewport:z}).promise,W)W.value=String(U);if(H)H.textContent=`/ ${Y.numPages}`}await M()}catch(q){Z.textContent=`PDF Error: ${q instanceof Error?q.message:String(q)}`,Z.style.color="var(--color-text-danger, #dc2626)"}}function _2($,Z,J){let q=_("div","pf-pdf-toolbar");q.style.display="flex",q.style.alignItems="center",q.style.gap="8px",q.style.padding="6px 12px",q.style.borderBottom="1px solid var(--color-border-primary, #e5e7eb)",q.style.background="var(--color-background-primary, #fff)",q.style.flexShrink="0",q.style.fontSize="13px";let Q=document.createElement("button");Q.textContent="‹",Q.title="Previous page",Q.className="pf-pdf-btn",y1(Q),Q.addEventListener("click",J.onPrev);let Y=document.createElement("button");Y.textContent="›",Y.title="Next page",Y.className="pf-pdf-btn",y1(Y),Y.addEventListener("click",J.onNext);let U=document.createElement("input");U.type="number",U.min="1",U.max=String($),U.value=String(Z),U.style.width="48px",U.style.textAlign="center",U.style.border="1px solid var(--color-border-primary, #e5e7eb)",U.style.borderRadius="4px",U.style.padding="2px 4px",U.style.fontSize="13px",U.addEventListener("change",()=>{let H=parseInt(U.value,10);if(!isNaN(H))J.onPageChange(H)});let W=document.createElement("span");return W.textContent=`/ ${$}`,W.style.color="var(--color-text-secondary, #6b7280)",q.appendChild(Q),q.appendChild(U),q.appendChild(W),q.appendChild(Y),{el:q,pageInput:U,pageCount:W}}function y1($){$.style.border="1px solid var(--color-border-primary, #e5e7eb)",$.style.borderRadius="4px",$.style.background="var(--color-background-primary, #fff)",$.style.cursor="pointer",$.style.padding="2px 8px",$.style.fontSize="16px",$.style.lineHeight="1"}var V0=["#3b82f6","#10b981","#f59e0b","#ef4444","#8b5cf6","#ec4899"];function T0($,Z){let J=document.createElement("div");return J.className="pf-chart-tooltip",$.appendChild(J),$.addEventListener("mouseleave",()=>{J.classList.remove("pf-visible")}),{wrapper:$,tooltip:J,svgEl:Z}}function Q0($,Z,J,q,Q){let{tooltip:Y,svgEl:U,wrapper:W}=$;if(Q.length===0)return;let H="";if(q)H+=`<div class="pf-chart-tooltip-label">${D0(q)}</div>`;for(let z of Q)H+='<div class="pf-chart-tooltip-row">',H+=`<span class="pf-chart-tooltip-dot" style="background:${D0(z.color)}"></span>`,H+=`<span>${D0(z.label)}:</span> <strong>${D0(String(z.value))}</strong>`,H+="</div>";Y.innerHTML=H;let X=U.getBoundingClientRect(),N=W.getBoundingClientRect(),M=U.viewBox.baseVal,E=X.width/(M.width||1),L=X.left-N.left+Z*E,B=Y.offsetWidth||100,F=L+12;if(F+B>N.width)F=L-B-12;Y.style.left=`${Math.max(0,F)}px`,Y.style.top="4px",Y.classList.add("pf-visible")}function D0($){return $.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}function m1($,Z,J,q,Q,Y,U,W){let H=Q.plotWidth/J.length;for(let X=0;X<J.length;X++){let N=Q.plotLeft+X*H,M=document.createElementNS("http://www.w3.org/2000/svg","rect");M.setAttribute("x",String(N)),M.setAttribute("y",String(Q.plotTop)),M.setAttribute("width",String(H)),M.setAttribute("height",String(Q.plotHeight)),M.setAttribute("fill","transparent"),M.style.cursor="default";let E=Y?J[X][Y]:void 0,L=E!=null?W?W(E):String(E):void 0,B=q.map((R,T)=>({label:R.label??R.dataKey,value:U(J[X][R.dataKey],R,T),color:R.color??V0[T%V0.length]})),F=N+H/2,z=()=>Q0($,F,Q.plotTop,L,B),O=()=>$.tooltip.classList.remove("pf-visible");M.addEventListener("mouseenter",z),M.addEventListener("mouseleave",O),M.addEventListener("touchstart",z,{passive:!0}),M.addEventListener("touchend",O,{passive:!0}),Z.appendChild(M)}}function h1($,Z,J,q,Q,Y,U,W,H,X){let N=J.length===1?Q.plotWidth:Q.plotWidth/(J.length-1);for(let M=0;M<J.length;M++){let E=J.length===1?(Q.plotLeft+Q.plotRight)/2:Q.plotLeft+M/(J.length-1)*Q.plotWidth,L=J.length===1?Q.plotLeft:E-N/2,B=J.length===1?Q.plotWidth:N,F=document.createElementNS("http://www.w3.org/2000/svg","rect");F.setAttribute("x",String(Math.max(Q.plotLeft,L))),F.setAttribute("y",String(Q.plotTop)),F.setAttribute("width",String(Math.min(B,Q.plotRight-Math.max(Q.plotLeft,L)))),F.setAttribute("height",String(Q.plotHeight)),F.setAttribute("fill","transparent"),F.style.cursor="default";let z=Y?J[M][Y]:void 0,O=z!=null?X?X(z):String(z):void 0,R=q.map((j,C)=>({label:j.label??j.dataKey,value:U(J[M][j.dataKey],j,C),color:j.color??V0[C%V0.length]})),T=()=>{if(Q0($,E,Q.plotTop,O,R),W)W.setAttribute("x1",String(E)),W.setAttribute("x2",String(E)),W.setAttribute("opacity","1");if(H)for(let j of H){for(let C of j)C.setAttribute("data-visible","false");j[M]?.setAttribute("data-visible","true")}},D=()=>{if($.tooltip.classList.remove("pf-visible"),W)W.setAttribute("opacity","0");if(H)for(let j of H)for(let C of j)C.setAttribute("data-visible","false")};F.addEventListener("mouseenter",T),F.addEventListener("mouseleave",D),F.addEventListener("touchstart",T,{passive:!0}),F.addEventListener("touchend",D,{passive:!0}),Z.appendChild(F)}}function g1(){G("BarChart",E2),G("LineChart",v1),G("AreaChart",v1),G("PieChart",B2),G("RadarChart",l0),G("ScatterChart",l0),G("RadialChart",l0),G("Histogram",F2)}var s=["#3b82f6","#10b981","#f59e0b","#ef4444","#8b5cf6","#ec4899"],Y0="var(--muted-foreground, #6b7280)",N2="var(--border, #e5e7eb)",s0="10";function u1($,Z,J,q=!1){let Q=J?44:0,Y=$-(q?44:0),U=10,W=Z-24;return{plotLeft:Q,plotRight:Y,plotTop:10,plotBottom:W,plotWidth:Y-Q,plotHeight:W-10}}function x1($,Z=5){if($<=0)return[0];let J=$/Z,q=Math.pow(10,Math.floor(Math.log10(J))),Q=J/q,Y=Q<=1.5?q:Q<=3?2*q:Q<=7?5*q:10*q,U=[];for(let W=0;W<=$+Y*0.01;W+=Y)U.push(Math.round(W*1000)/1000);return U}function p1($,Z,J,q,Q){let Y=x1(J);for(let U of Y){let W=Z.plotBottom-(J>0?U/J*Z.plotHeight:0),H=document.createElementNS("http://www.w3.org/2000/svg","text");if(H.setAttribute("x",String(Z.plotLeft-6)),H.setAttribute("y",String(W+3)),H.setAttribute("text-anchor","end"),H.setAttribute("font-size",s0),H.setAttribute("fill",Y0),H.textContent=i0(U,Q),$.appendChild(H),q&&U>0){let X=document.createElementNS("http://www.w3.org/2000/svg","line");X.setAttribute("x1",String(Z.plotLeft)),X.setAttribute("y1",String(W)),X.setAttribute("x2",String(Z.plotRight)),X.setAttribute("y2",String(W)),X.setAttribute("stroke",N2),X.setAttribute("stroke-width","1"),X.setAttribute("stroke-dasharray","4 3"),$.appendChild(X)}}}function c1($,Z,J,q){let Q=x1(J);for(let Y of Q){let U=Z.plotBottom-(J>0?Y/J*Z.plotHeight:0),W=document.createElementNS("http://www.w3.org/2000/svg","text");W.setAttribute("x",String(Z.plotRight+6)),W.setAttribute("y",String(U+3)),W.setAttribute("text-anchor","start"),W.setAttribute("font-size",s0),W.setAttribute("fill",Y0),W.textContent=i0(Y,q),$.appendChild(W)}}function d1($,Z,J,q,Q,Y){for(let U=0;U<Z.length;U++){let W=document.createElementNS("http://www.w3.org/2000/svg","text");W.setAttribute("x",String(q(U))),W.setAttribute("y",String(Q+14)),W.setAttribute("text-anchor","middle"),W.setAttribute("font-size",s0),W.setAttribute("fill",Y0);let H=Z[U][J];W.textContent=H==null?"":Y?Y(H):String(H),$.appendChild(W)}}function l1($,Z){let J=document.createElementNS("http://www.w3.org/2000/svg","line");J.setAttribute("x1",String(Z.plotLeft)),J.setAttribute("y1",String(Z.plotBottom)),J.setAttribute("x2",String(Z.plotRight)),J.setAttribute("y2",String(Z.plotBottom)),J.setAttribute("stroke",Y0),J.setAttribute("stroke-width","1"),$.appendChild(J)}function Z0($,Z,J){if($==null)return"";let q=b(`{{ __v | ${Z} }}`,{...J,scope:{...J.scope,__v:$}});return q==null?String($):String(q)}function i0($,Z){if(Z==="currency")return`$${$.toLocaleString()}`;if(Z==="percent")return`${$}%`;if($>=1e6)return`${($/1e6).toFixed(1)}M`;if($>=1000)return`${($/1000).toFixed(1)}K`;return String($)}function s1($,Z,J){return(q,Q)=>{if(q===null||q===void 0)return"—";if(Q.tooltipFormat)return Z0(q,Q.tooltipFormat,$);let Y=Q.yAxisId==="right"?J:Z;return i0(Number(q),Y)}}function E2($,Z){let J=_("div","pf-chart pf-bar-chart"),q=b($.data,Z)??[],Q=$.series??[],Y=$.height??300;if(q.length===0||Q.length===0)return J.textContent="No chart data",J;let U=$.showYAxis!==!1,W=$.showGrid===!0,H=$.showYAxisRight===!0,X=$.showTooltip!==!1,N=$.xAxis,M=$.tooltipXKey,E=$.xAxisFormat,L=$.tooltipXFormat,B=Q.filter((A)=>A.yAxisId!=="right"),F=Q.filter((A)=>A.yAxisId==="right"),z=H&&F.length>0,O=B.length>0?Math.max(...q.flatMap((A)=>B.map((P)=>Number(A[P.dataKey]??0))),1):1,R=z?Math.max(...q.flatMap((A)=>F.map((P)=>Number(A[P.dataKey]??0))),1):1,T=400,D=u1(T,Y,U,z),j=j0(T,Y,"Bar");if(U)p1(j,D,O,W,$.yAxisFormat);if(z)c1(j,D,R,$.yAxisRightFormat);l1(j,D);let C=D.plotWidth/q.length,i=C/(Q.length+1);for(let A=0;A<q.length;A++)for(let P=0;P<Q.length;P++){let f=Q[P],p=q[A][f.dataKey];if(p===null||p===void 0)continue;let m=f.yAxisId==="right"?R:O,c=Number(p),d=Math.max(0,c/m*D.plotHeight),a=D.plotLeft+A*C+P*i+i/2,I=document.createElementNS("http://www.w3.org/2000/svg","rect");I.setAttribute("x",String(a)),I.setAttribute("y",String(D.plotBottom-d)),I.setAttribute("width",String(i*0.8)),I.setAttribute("height",String(d)),I.setAttribute("fill",f.color??s[P%s.length]),I.setAttribute("rx","2"),j.appendChild(I)}if(N){let A=E?(P)=>Z0(P,E,Z):void 0;d1(j,q,N,(P)=>{return D.plotLeft+P*C+C/2},D.plotBottom,A)}if(X){let A=T0(J,j),P=s1(Z,$.yAxisFormat,$.yAxisRightFormat);m1(A,j,q,Q,D,M??N,P,L?(p)=>Z0(p,L,Z):void 0)}return n0(J,Q,$.showLegend),J.appendChild(j),J}function v1($,Z){let J=_("div",`pf-chart pf-${$.type.toLowerCase()}-chart`),q=b($.data,Z)??[],Q=$.series??[],Y=$.height??300;if(q.length===0||Q.length===0)return J.textContent="No chart data",J;let U=$.showYAxis!==!1,W=$.showGrid===!0,H=$.showYAxisRight===!0,X=$.showTooltip!==!1,N=$.xAxis,M=$.tooltipXKey,E=$.xAxisFormat,L=$.tooltipXFormat,B=Q.filter((P)=>P.yAxisId!=="right"),F=Q.filter((P)=>P.yAxisId==="right"),z=H&&F.length>0,O=B.length>0?Math.max(...q.flatMap((P)=>B.map((f)=>Number(P[f.dataKey]??0))),1):1,R=z?Math.max(...q.flatMap((P)=>F.map((f)=>Number(P[f.dataKey]??0))),1):1,T=400,D=u1(T,Y,U,z),j=j0(T,Y,$.type==="AreaChart"?"Area":"Line"),C=$.type==="AreaChart";if(U)p1(j,D,O,W,$.yAxisFormat);if(z)c1(j,D,R,$.yAxisRightFormat);l1(j,D);let i=[];for(let P=0;P<Q.length;P++){let f=Q[P],p=f.yAxisId==="right",n=p?R:O,m=f.color??s[P%s.length],c=q.map((I,S)=>{let h=I[f.dataKey],t=h===null||h===void 0,W0=q.length===1?(D.plotLeft+D.plotRight)/2:D.plotLeft+S/(q.length-1)*D.plotWidth,U4=t?D.plotBottom:D.plotBottom-Number(h)/n*D.plotHeight;return{x:W0,y:U4,isNull:t}});if(C){let I=[],S=()=>{if(I.length<2){I=[];return}let h=`M ${I[0].x},${D.plotBottom} `+I.map((W0)=>`L ${W0.x},${W0.y}`).join(" ")+` L ${I[I.length-1].x},${D.plotBottom} Z`,t=document.createElementNS("http://www.w3.org/2000/svg","path");t.setAttribute("d",h),t.setAttribute("fill",m),t.setAttribute("opacity","0.15"),j.appendChild(t),I=[]};for(let h of c){if(h.isNull){S();continue}I.push(h)}S()}let d="";for(let I of c){if(I.isNull)continue;let S=c.indexOf(I),h=S===0||c[S-1].isNull;d+=`${h?"M":"L"} ${I.x},${I.y} `}if(d){let I=document.createElementNS("http://www.w3.org/2000/svg","path");if(I.setAttribute("d",d.trim()),I.setAttribute("fill","none"),I.setAttribute("stroke",m),I.setAttribute("stroke-width","2"),p)I.setAttribute("stroke-dasharray","6 3");j.appendChild(I)}let a=[];for(let I of c){let S=document.createElementNS("http://www.w3.org/2000/svg","circle");if(S.setAttribute("cx",String(I.x)),S.setAttribute("cy",String(I.y)),S.setAttribute("r","4"),S.setAttribute("fill",m),S.setAttribute("class","pf-data-dot"),S.setAttribute("data-visible","false"),S.style.pointerEvents="none",I.isNull)S.style.display="none";j.appendChild(S),a.push(S)}i.push(a)}let A=document.createElementNS("http://www.w3.org/2000/svg","line");if(A.setAttribute("class","pf-crosshair"),A.setAttribute("x1",String(D.plotLeft)),A.setAttribute("x2",String(D.plotLeft)),A.setAttribute("y1",String(D.plotTop)),A.setAttribute("y2",String(D.plotBottom)),A.setAttribute("stroke",Y0),A.setAttribute("stroke-width","1"),A.setAttribute("stroke-dasharray","3 3"),A.setAttribute("opacity","0"),j.appendChild(A),N){let P=E?(f)=>Z0(f,E,Z):void 0;d1(j,q,N,(f)=>{return q.length===1?(D.plotLeft+D.plotRight)/2:D.plotLeft+f/(q.length-1)*D.plotWidth},D.plotBottom,P)}if(X){let P=T0(J,j),f=s1(Z,$.yAxisFormat,$.yAxisRightFormat);h1(P,j,q,Q,D,M??N,f,A,i,L?(n)=>Z0(n,L,Z):void 0)}return n0(J,Q,$.showLegend),J.appendChild(j),J}function B2($,Z){let J=_("div","pf-chart pf-pie-chart"),q=b($.data,Z)??[],Q=$.series??[],Y=$.height??300,U=Math.min(Y,300),W=$.showTooltip!==!1;if(q.length===0||Q.length===0)return J.textContent="No chart data",J;let H=j0(U,U,"Pie"),X=U/2,N=U/2,M=U/2-10,E=Q[0].dataKey,L=$.xAxis,B=$.tooltipXKey,F=$.tooltipXFormat,z=q.map((D)=>Number(D[E]??0)),O=z.reduce((D,j)=>D+j,0);if(O===0)return J.textContent="No chart data",J.appendChild(H),J;let R=W?T0(J,H):void 0,T=-Math.PI/2;for(let D=0;D<z.length;D++){let j=z[D]/O*2*Math.PI,C=T+j,i=j>Math.PI?1:0,A=X+M*Math.cos(T),P=N+M*Math.sin(T),f=X+M*Math.cos(C),p=N+M*Math.sin(C),n=s[D%s.length],m=document.createElementNS("http://www.w3.org/2000/svg","path");if(m.setAttribute("d",`M ${X},${N} L ${A},${P} A ${M},${M} 0 ${i} 1 ${f},${p} Z`),m.setAttribute("fill",n),m.style.cursor="default",R){let c=B??L,d=c?q[D][c]:void 0,a=d!=null?F?Z0(d,F,Z):String(d):`Slice ${D+1}`,I=`${(z[D]/O*100).toFixed(1)}%`,S=T+j/2,h=X+M*0.6*Math.cos(S);m.addEventListener("mouseenter",()=>{Q0(R,h,N,a,[{label:Q[0].label??E,value:`${z[D]} (${I})`,color:n}])}),m.addEventListener("mouseleave",()=>{R.tooltip.classList.remove("pf-visible")}),m.addEventListener("touchstart",()=>{Q0(R,h,N,a,[{label:Q[0].label??E,value:`${z[D]} (${I})`,color:n}])},{passive:!0}),m.addEventListener("touchend",()=>{R.tooltip.classList.remove("pf-visible")},{passive:!0})}H.appendChild(m),T=C}return n0(J,Q,$.showLegend),J.appendChild(H),J}function l0($,Z){let J=_("div",`pf-chart pf-${$.type.toLowerCase()}`);return J.textContent=`${$.type} — not yet supported in renderer`,J.style.padding="24px",J.style.textAlign="center",J}function j0($,Z,J){let q=document.createElementNS("http://www.w3.org/2000/svg","svg");if(q.setAttribute("width","100%"),q.setAttribute("height",String(Z)),q.setAttribute("viewBox",`0 0 ${$} ${Z}`),q.setAttribute("role","img"),J)q.setAttribute("aria-label",`${J} chart`);return q.style.overflow="visible",q}function n0($,Z,J){if(J===!1||Z.length<=1)return;let q=_("div","pf-chart-legend");q.style.display="flex",q.style.gap="12px",q.style.fontSize="12px",q.style.marginBottom="8px";for(let Q=0;Q<Z.length;Q++){let Y=_("div","pf-chart-legend-item");Y.style.display="flex",Y.style.alignItems="center",Y.style.gap="4px";let U=_("span");U.style.width="8px",U.style.height="8px",U.style.borderRadius="50%",U.style.backgroundColor=Z[Q].color??s[Q%s.length];let W=_("span");W.textContent=Z[Q].label??Z[Q].dataKey,Y.appendChild(U),Y.appendChild(W),q.appendChild(Y)}$.appendChild(q)}function F2($,Z){let J=_("div","pf-chart pf-histogram"),q=b($.data,Z);if(!q||q.length===0)return J.textContent="No data",J;let Q=q,Y=$.bins??10,U=$.height??200,W=$.color??s[0],H=Math.min(...Q),N=(Math.max(...Q)-H)/Y||1,M=Array(Y).fill(0);for(let O of Q){let R=Math.min(Math.floor((O-H)/N),Y-1);M[R]++}let E=Math.max(...M),L=300,B=U,F=L/Y,z=j0(L,B,"Histogram");for(let O=0;O<Y;O++){let R=E>0?M[O]/E*B:0,T=document.createElementNS("http://www.w3.org/2000/svg","rect");T.setAttribute("x",String(O*F)),T.setAttribute("y",String(B-R)),T.setAttribute("width",String(F-1)),T.setAttribute("height",String(R)),T.setAttribute("fill",W),z.appendChild(T)}return J.appendChild(z),J}function i1(){G("Table",K2),G("TableHead",r0("thead")),G("TableBody",r0("tbody")),G("TableFooter",r0("tfoot")),G("TableRow",z2),G("TableHeader",L2),G("TableCell",O2),G("TableCaption",D2),G("ExpandableRow",V2)}function K2($,Z){let J=document.createElement("table");return J.className="pf-table",J.style.width="100%",J.style.borderCollapse="collapse",V($,J,Z),J}function r0($){return(Z,J)=>{let q=document.createElement($);return q.className=`pf-${$}`,V(Z,q,J),q}}function z2($,Z){let J=document.createElement("tr");return J.className="pf-table-row",V($,J,Z),J}function L2($,Z){let J=document.createElement("th");return J.className="pf-table-header",J.style.textAlign="left",J.style.padding="8px 12px",J.style.fontWeight="600",J.textContent=K($.content,Z),J}function O2($,Z){let J=document.createElement("td");if(J.className="pf-table-cell",J.style.padding="8px 12px",$.colSpan!=null)J.colSpan=$.colSpan;if($.rowSpan!=null)J.rowSpan=$.rowSpan;return V($,J,Z),J}function D2($,Z){let J=document.createElement("caption");return J.className="pf-table-caption",J.style.padding="8px",J.style.fontSize="14px",J.textContent=K($.content,Z),J}function V2($,Z){let J=_("div","pf-expandable-row"),q=_("div","pf-expandable-row-summary");q.style.cursor="pointer",q.style.display="flex",q.style.alignItems="center",q.style.gap="8px";let Q=_("span","pf-expandable-arrow");Q.textContent="▶",Q.style.transition="transform 0.2s",Q.style.fontSize="10px",q.appendChild(Q);let Y=$.summary;if(Y)for(let H of Y)q.appendChild(w(H,Z));let U=_("div","pf-expandable-row-detail");U.style.display="none",U.style.paddingLeft="24px",V($,U,Z);let W=!1;return q.addEventListener("click",()=>{W=!W,U.style.display=W?"block":"none",Q.style.transform=W?"rotate(90deg)":""}),J.appendChild(q),J.appendChild(U),J}var n1=!1;function I0(){if(n1)return;n1=!0,F1(),O1(),T1(),j1(),R1(),P1(),A1(),S1(),w1(),b1(),g1(),i1()}function r1($){return $.replace(/[^a-zA-Z0-9_-]/g,"")}function o1($){return $.replace(/[{}<>;]/g,"").replace(/\b(url|expression)\s*\(/gi,"")}function o0($,Z){if(!Z)return;if(Z.light)for(let[J,q]of Object.entries(Z.light))$.style.setProperty(`--${r1(J)}`,o1(q));if(Z.dark){let q=document.getElementById("prefab-dark-theme");if(!q)q=document.createElement("style"),q.id="prefab-dark-theme",document.head.appendChild(q);let Q=Object.entries(Z.dark).map(([Y,U])=>` --${r1(Y)}: ${o1(U)};`).join(`
6
+ `)}function q8($,Z){let J=document.createElement("kbd");return J.className="pf-kbd",J.textContent=K($.content,Z),J}function T1(){G("Card",Q8),G("CardHeader",p0("pf-card-header")),G("CardTitle",V1("pf-card-title","h3")),G("CardDescription",V1("pf-card-description","p")),G("CardContent",p0("pf-card-content")),G("CardFooter",p0("pf-card-footer"))}function Q8($,Z){let J=_("div","pf-card");return J.style.overflow="hidden",V($,J,Z),J}function p0($){return(Z,J)=>{let q=_("div",$);return q.style.padding="16px 24px",V(Z,q,J),q}}function V1($,Z){return(J,q)=>{let Q=document.createElement(Z);return Q.className=$,Q.textContent=K(J.content,q),Q}}function j1(){G("DataTable",Y8),G("Badge",U8),G("Dot",W8),G("Metric",H8),G("Ring",M8),G("Progress",G8),G("Separator",X8),G("Loader",_8),G("Icon",N8),G("Sparkline",E8)}function Y8($,Z){let J=_("div","pf-datatable-wrapper"),q=document.createElement("table");q.className="pf-datatable",q.style.width="100%",q.style.borderCollapse="collapse";let Q=$.columns??[],Y=b($.rows,Z),U=$.rowKey,W=$.selected,H=document.createElement("thead"),X=document.createElement("tr");for(let M of Q){let E=document.createElement("th");E.className="pf-datatable-th",E.textContent=M.header??M.key,E.style.padding="8px 12px",E.style.textAlign="left",X.appendChild(E)}H.appendChild(X),q.appendChild(H);let N=document.createElement("tbody");if(Array.isArray(Y)){let M=W!=null?b(W,Z):void 0;for(let E of Y){let L=document.createElement("tr");L.className="pf-datatable-row";let B=E;if(U&&M!=null&&B[U]!=null&&String(B[U])===String(M))L.classList.add("pf-datatable-row-selected");if($.onRowClick!=null&&U)L.style.cursor="pointer",L.addEventListener("click",()=>{let F={...Z.scope,$item:B,$index:Y.indexOf(E)},z=y({...Z,scope:F});k($.onRowClick,z)});for(let F of Q){let z=document.createElement("td");z.className="pf-datatable-td";let O;if(F.accessor)O=b(`{{ $item.${F.accessor} }}`,{...Z,scope:{...Z.scope,$item:B}});else if(O=B[F.key],F.format&&O!=null)O=b(`{{ __fmtVal | ${F.format} }}`,{...Z,scope:{...Z.scope,__fmtVal:O}});z.textContent=O==null?"":String(O),z.style.padding="8px 12px",L.appendChild(z)}N.appendChild(L)}}if(q.appendChild(N),$.search===!0){let M=document.createElement("input");M.type="text",M.placeholder="Search...",M.className="pf-datatable-search",M.style.marginBottom="8px",M.style.padding="6px 12px",M.style.width="100%",M.style.boxSizing="border-box",M.addEventListener("input",()=>{let E=M.value.toLowerCase(),L=Array.from(N.querySelectorAll("tr"));for(let B of L){let F=(B.textContent??"").toLowerCase();B.style.display=F.includes(E)?"":"none"}}),J.appendChild(M)}return J.appendChild(q),J}function U8($,Z){let J=_("span","pf-badge"),q=$.variant??"default";return J.setAttribute("data-variant",q),J.style.alignItems="center",J.style.padding="2px 10px",J.style.borderRadius="9999px",J.style.fontSize="12px",J.style.fontWeight="500",J.textContent=K($.label??$.content,Z),B8(J,q),J}function W8($,Z){let J=_("span","pf-dot"),q=$.color??"gray";return J.style.display="inline-block",J.style.width="8px",J.style.height="8px",J.style.borderRadius="50%",J.style.backgroundColor=q,J}function H8($,Z){let J=_("div","pf-metric"),q=_("div","pf-metric-label");q.textContent=K($.label,Z),q.style.fontSize="14px",J.appendChild(q);let Q=_("div","pf-metric-value");if(Q.textContent=K($.value,Z),Q.style.fontSize="28px",Q.style.fontWeight="700",J.appendChild(Q),$.delta!=null){let Y=_("span","pf-metric-delta");Y.textContent=K($.delta,Z);let U=$.trend??"",W=$.trendSentiment??"neutral";if(Y.style.fontSize="14px",Y.style.color=W==="positive"?"green":W==="negative"?"red":"inherit",U==="up")Y.textContent="↑ "+Y.textContent;else if(U==="down")Y.textContent="↓ "+Y.textContent;J.appendChild(Y)}if($.description!=null){let Y=_("div","pf-metric-desc");Y.textContent=K($.description,Z),Y.style.fontSize="12px",J.appendChild(Y)}return J}function M8($,Z){let J=_("div","pf-ring"),q=$.size??80,Q=$.thickness??8,Y=Number(b($.value,Z)??0),U=Math.max(0,Math.min(100,Y)),W=(q-Q)/2,H=2*Math.PI*W,X=H*(1-U/100),N=document.createElementNS("http://www.w3.org/2000/svg","svg");N.setAttribute("width",String(q)),N.setAttribute("height",String(q)),N.setAttribute("viewBox",`0 0 ${q} ${q}`);let M=document.createElementNS("http://www.w3.org/2000/svg","circle");M.setAttribute("cx",String(q/2)),M.setAttribute("cy",String(q/2)),M.setAttribute("r",String(W)),M.setAttribute("fill","none"),M.setAttribute("stroke","var(--muted, #e5e7eb)"),M.setAttribute("stroke-width",String(Q));let E=document.createElementNS("http://www.w3.org/2000/svg","circle");if(E.setAttribute("cx",String(q/2)),E.setAttribute("cy",String(q/2)),E.setAttribute("r",String(W)),E.setAttribute("fill","none"),E.setAttribute("stroke","var(--primary, #3b82f6)"),E.setAttribute("stroke-width",String(Q)),E.setAttribute("stroke-dasharray",String(H)),E.setAttribute("stroke-dashoffset",String(X)),E.setAttribute("stroke-linecap","round"),E.style.transform="rotate(-90deg)",E.style.transformOrigin="center",N.appendChild(M),N.appendChild(E),J.appendChild(N),$.label!=null){let L=_("div","pf-ring-label");L.textContent=K($.label,Z),L.style.textAlign="center",L.style.fontSize="12px",J.appendChild(L)}return J}function G8($,Z){let J=_("div","pf-progress");J.setAttribute("role","progressbar");let q=Number(b($.value,Z)??0),Q=$.max??100,Y=Q>0?Math.max(0,Math.min(100,q/Q*100)):0;J.setAttribute("aria-valuenow",String(q)),J.setAttribute("aria-valuemin","0"),J.setAttribute("aria-valuemax",String(Q)),J.style.height="8px",J.style.borderRadius="4px",J.style.overflow="hidden";let U=_("div","pf-progress-fill");return U.style.height="100%",U.style.width=`${Y}%`,U.style.borderRadius="4px",U.style.transition="width 0.3s ease",J.appendChild(U),J}function X8($,Z){let J=document.createElement("hr");return J.className="pf-separator",J.style.border="none",J.style.margin="8px 0",J}function _8($,Z){let J=_("div","pf-loader");return J.textContent="⏳",J.style.display="flex",J.style.justifyContent="center",J.style.padding="16px",J}function N8($,Z){let J=_("span","pf-icon");return J.setAttribute("data-icon",K($.name??$.content,Z)),J}function E8($,Z){let J=_("div","pf-sparkline"),q=$.data??[];if(q.length===0)return J;let Q=120,Y=32,U=Math.max(...q),W=Math.min(...q),H=U-W||1,X=document.createElementNS("http://www.w3.org/2000/svg","svg");X.setAttribute("width",String(Q)),X.setAttribute("height",String(Y)),X.setAttribute("viewBox",`0 0 ${Q} ${Y}`);let N=q.length>1?q.length-1:1,M=q.map((L,B)=>{let F=B/N*Q,z=Y-(L-W)/H*(Y-4)-2;return`${F},${z}`}).join(" "),E=document.createElementNS("http://www.w3.org/2000/svg","polyline");return E.setAttribute("points",M),E.setAttribute("fill","none"),E.setAttribute("stroke","var(--primary, #3b82f6)"),E.setAttribute("stroke-width","1.5"),X.appendChild(E),J.appendChild(X),J}function B8($,Z){let q={success:{bg:"#10b981",fg:"#fff"},warning:{bg:"#f59e0b",fg:"#fff"},info:{bg:"#3b82f6",fg:"#fff"}}[Z];if(q)$.style.backgroundColor=q.bg,$.style.color=q.fg}function R1(){G("Form",F8),G("Input",K8),G("Textarea",z8),G("Button",L8),G("ButtonGroup",O8),G("Select",D8),G("SelectOption",V8),G("SelectGroup",L0("pf-select-group")),G("SelectLabel",q0("pf-select-label")),G("SelectSeparator",I1),G("Checkbox",T8),G("Switch",j8),G("Slider",I8),G("Radio",P8),G("RadioGroup",A8),G("Combobox",k8),G("ComboboxOption",f8),G("ComboboxGroup",L0("pf-combobox-group")),G("ComboboxLabel",q0("pf-combobox-label")),G("ComboboxSeparator",I1),G("Calendar",S8),G("DatePicker",w8),G("Field",L0("pf-field")),G("FieldTitle",q0("pf-field-title")),G("FieldDescription",q0("pf-field-description")),G("FieldContent",L0("pf-field-content")),G("FieldError",q0("pf-field-error")),G("ChoiceCard",C8)}function F8($,Z){let J=document.createElement("form");return J.className="pf-form",J.addEventListener("submit",(q)=>{q.preventDefault();let Q=new FormData(J),Y={};if(Q.forEach((U,W)=>{Y[W]=U}),Z.store.merge(Y),$.onSubmit!=null){let U=y(Z);U.scope={...Z.scope,...Y},k($.onSubmit,U)}}),V($,J,Z),J}function K8($,Z){let J=_("div","pf-input-wrapper");if(J.style.display="flex",J.style.flexDirection="column",J.style.gap="4px",$.label!=null){let Y=document.createElement("label");if(Y.className="pf-input-label",Y.textContent=K($.label,Z),$.name!=null)Y.htmlFor=$.name;Y.style.fontSize="14px",Y.style.fontWeight="500",J.appendChild(Y)}let q=document.createElement("input");if(q.className="pf-input",q.type=$.inputType??"text",$.name!=null)q.name=$.name;if($.name!=null)q.id=`pf-input-${$.name}`;if($.placeholder!=null)q.placeholder=K($.placeholder,Z);if($.required===!0)q.required=!0,q.setAttribute("aria-required","true");if($.error!=null)q.setAttribute("aria-invalid","true");let Q=$.name;if(Q){let Y=Z.store.get(Q);if(Y!=null)q.value=String(Y);q.addEventListener("input",()=>{if(Z.store.set(Q,q.value),$.onChange!=null)k($.onChange,{...y(Z),scope:{...Z.scope,$event:q.value}})})}return c0(q),J.appendChild(q),J}function z8($,Z){let J=_("div","pf-textarea-wrapper"),q=document.createElement("textarea");if(q.className="pf-textarea",$.name!=null)q.name=$.name;if($.name!=null)q.id=`pf-textarea-${$.name}`;if($.placeholder!=null)q.placeholder=K($.placeholder,Z);if($.rows!=null)q.rows=$.rows;if($.required===!0)q.setAttribute("aria-required","true");let Q=$.name;if(Q!=null){let Y=Z.store.get(Q);if(Y!=null)q.value=String(Y);q.addEventListener("input",()=>{if(Z.store.set(Q,q.value),$.onChange!=null)k($.onChange,{...y(Z),scope:{...Z.scope,$event:q.value}})})}return c0(q),J.appendChild(q),J}function L8($,Z){let J=document.createElement("button");J.className="pf-button",J.type=$.submit===!0?"submit":"button",J.textContent=K($.label,Z);let q=$.variant??"default";if(J.setAttribute("data-variant",q),R8(J,q),$.size!=null)J.setAttribute("data-size",$.size);if($.disabled===!0)J.disabled=!0;return J}function O8($,Z){let J=_("div","pf-button-group");return J.style.display="flex",J.style.gap="8px",V($,J,Z),J}function D8($,Z){let J=_("div","pf-select-wrapper"),q=document.createElement("select");if(q.className="pf-select",$.name!=null)q.name=$.name;if(c0(q),$.placeholder!=null){let U=document.createElement("option");U.value="",U.textContent=K($.placeholder,Z),U.disabled=!0,U.selected=!0,U.hidden=!0,q.appendChild(U)}let Q=$.options;if(Array.isArray(Q))for(let U of Q){let W=document.createElement("option");W.value=U.value??"",W.textContent=U.label??W.value,q.appendChild(W)}if($.children)for(let U of $.children)if(U.type==="SelectOption"){let W=document.createElement("option");W.value=U.value??"",W.textContent=U.label??W.value,q.appendChild(W)}else q.appendChild(w(U,Z));let Y=$.name;if(Y){let U=Z.store.get(Y);if(U!=null)q.value=String(U);q.addEventListener("change",()=>{if(Z.store.set(Y,q.value),$.onChange!=null)k($.onChange,{...y(Z),scope:{...Z.scope,$event:q.value}})})}return J.appendChild(q),J}function V8($,Z){return _("span")}function T8($,Z){let J=_("label","pf-checkbox-wrapper");J.style.display="flex",J.style.alignItems="center",J.style.gap="8px",J.style.cursor="pointer";let q=document.createElement("input");if(q.type="checkbox",q.className="pf-checkbox",$.name!=null)q.name=$.name;if($.checked===!0)q.checked=!0;let Q=$.name;if(Q){let Y=Z.store.get(Q);if(typeof Y==="boolean")q.checked=Y;q.addEventListener("change",()=>{if(Z.store.set(Q,q.checked),$.onChange!=null)k($.onChange,{...y(Z),scope:{...Z.scope,$event:q.checked}})})}if(J.appendChild(q),$.label!=null){let Y=_("span");Y.textContent=K($.label,Z),J.appendChild(Y)}return J}function j8($,Z){let J=_("label","pf-switch-wrapper");J.style.display="flex",J.style.alignItems="center",J.style.gap="8px",J.style.cursor="pointer";let q=document.createElement("input");if(q.type="checkbox",q.className="pf-switch",q.setAttribute("role","switch"),$.name!=null)q.name=$.name;let Q=$.name;if(Q){let Y=Z.store.get(Q);if(typeof Y==="boolean")q.checked=Y;q.addEventListener("change",()=>{if(Z.store.set(Q,q.checked),$.onChange!=null)k($.onChange,{...y(Z),scope:{...Z.scope,$event:q.checked}})})}if(J.appendChild(q),$.label!=null){let Y=_("span");Y.textContent=K($.label,Z),J.appendChild(Y)}return J}function I8($,Z){let J=_("div","pf-slider-wrapper"),q=document.createElement("input");if(q.type="range",q.className="pf-slider",$.name!=null)q.name=$.name;if($.min!=null)q.min=String($.min);if($.max!=null)q.max=String($.max);if($.step!=null)q.step=String($.step);let Q=$.name;if(Q){let Y=Z.store.get(Q);if(Y!=null)q.value=String(Y);q.addEventListener("input",()=>{if(Z.store.set(Q,Number(q.value)),$.onChange!=null)k($.onChange,{...y(Z),scope:{...Z.scope,$event:Number(q.value)}})})}return J.appendChild(q),J}function c0($){$.style.padding="8px 12px",$.style.fontSize="14px",$.style.width="100%",$.style.boxSizing="border-box"}function R8($,Z){if($.style.padding="8px 16px",$.style.fontSize="14px",$.style.fontWeight="500",$.style.cursor="pointer",$.style.border="none",Z==="ghost")$.style.backgroundColor="transparent",$.style.color="inherit"}function L0($){return(Z,J)=>{let q=_("div",$);return V(Z,q,J),q}}function q0($){return(Z,J)=>{let q=_("span",$);return q.textContent=K(Z.content,J),q}}function I1(){let $=document.createElement("hr");return $.className="pf-separator",$.style.border="none",$.style.margin="4px 0",$}function P8($,Z){let J=_("label","pf-radio");J.style.display="flex",J.style.alignItems="center",J.style.gap="8px",J.style.cursor="pointer";let q=document.createElement("input");if(q.type="radio",q.value=K($.value,Z),J.appendChild(q),$.label!=null){let Q=_("span","pf-radio-label");Q.textContent=K($.label,Z),J.appendChild(Q)}return J}function A8($,Z){let J=_("fieldset","pf-radio-group");if(J.style.border="none",J.style.padding="0",J.style.display="flex",J.style.flexDirection="column",J.style.gap="8px",$.label!=null){let Y=document.createElement("legend");Y.textContent=K($.label,Z),Y.style.fontWeight="500",Y.style.marginBottom="4px",J.appendChild(Y)}V($,J,Z);let q=K($.name,Z),Q=Z.store.get(q);for(let Y of Array.from(J.querySelectorAll('input[type="radio"]')))if(Y.name=q,Q!=null&&Y.value===String(Q))Y.checked=!0;return J.addEventListener("change",(Y)=>{let U=Y.target;if(U.type==="radio"){if(Z.store.set(q,U.value),$.onChange!=null)k($.onChange,y(Z))}}),J}function k8($,Z){let J=_("div","pf-combobox"),q=document.createElement("input");if(q.className="pf-combobox-input",q.type="text",q.name=K($.name,Z),$.placeholder!=null)q.placeholder=K($.placeholder,Z);if($.value!==void 0)q.value=K($.value,Z);let Q=q.name,Y=Z.store.get(Q);if(Y!=null)q.value=String(Y);q.style.padding="6px 12px",q.style.borderRadius="6px",q.style.width="100%",q.style.boxSizing="border-box";let U=_("div","pf-combobox-dropdown");if(U.style.display="none",U.style.position="absolute",U.style.borderRadius="6px",U.style.maxHeight="200px",U.style.overflowY="auto",U.style.zIndex="50",V($,U,Z),q.addEventListener("focus",()=>{U.style.display="block"}),q.addEventListener("blur",()=>{setTimeout(()=>{U.style.display="none"},150)}),$.searchable!==!1)q.addEventListener("input",()=>{let W=q.value.toLowerCase();for(let H of Array.from(U.querySelectorAll(".pf-combobox-option"))){let X=(H.textContent??"").toLowerCase();H.style.display=X.includes(W)?"":"none"}});if($.onChange!=null)J.addEventListener("pf-combobox-select",()=>{k($.onChange,{...y(Z),scope:{...Z.scope,$event:q.value}})});return J.style.position="relative",J.appendChild(q),J.appendChild(U),J}function f8($,Z){let J=_("div","pf-combobox-option");return J.style.padding="6px 12px",J.style.cursor="pointer",J.textContent=K($.label??$.value,Z),J.dataset.value=K($.value,Z),J.addEventListener("mousedown",()=>{let q=J.closest(".pf-combobox"),Q=q?.querySelector("input");if(Q)Q.value=J.dataset.value??"",Z.store.set(Q.name,Q.value),q?.dispatchEvent(new CustomEvent("pf-combobox-select",{bubbles:!1}))}),J}function S8($,Z){let J=_("div","pf-calendar"),q=document.createElement("input");if(q.type="date",q.name=K($.name,Z),$.value!==void 0)q.value=K($.value,Z);let Q=q.name,Y=Z.store.get(Q);if(Y!=null)q.value=String(Y);if($.minDate!=null)q.min=K($.minDate,Z);if($.maxDate!=null)q.max=K($.maxDate,Z);return q.style.padding="6px 12px",q.style.borderRadius="6px",q.addEventListener("change",()=>{if(Z.store.set(q.name,q.value),$.onChange!=null)k($.onChange,y(Z))}),J.appendChild(q),J}function w8($,Z){let J=_("div","pf-datepicker"),q=document.createElement("input");if(q.type="date",q.name=K($.name,Z),$.placeholder!=null)q.placeholder=K($.placeholder,Z);if($.value!==void 0)q.value=K($.value,Z);let Q=q.name,Y=Z.store.get(Q);if(Y!=null)q.value=String(Y);if($.minDate!=null)q.min=K($.minDate,Z);if($.maxDate!=null)q.max=K($.maxDate,Z);return q.style.padding="6px 12px",q.style.borderRadius="6px",q.style.width="100%",q.style.boxSizing="border-box",q.addEventListener("change",()=>{if(Z.store.set(q.name,q.value),$.onChange!=null)k($.onChange,y(Z))}),J.appendChild(q),J}function C8($,Z){let J=_("div","pf-choice-card");if(J.style.padding="16px",J.style.cursor="pointer",J.style.transition="border-color 0.2s",J.dataset.value=K($.value,Z),$.selected===!0)J.dataset.selected="true";if($.label!=null){let q=_("div","pf-choice-card-label");q.textContent=K($.label,Z),q.style.fontWeight="600",J.appendChild(q)}if($.description!=null){let q=_("div","pf-choice-card-description");q.textContent=K($.description,Z),q.style.fontSize="14px",J.appendChild(q)}return V($,J,Z),J}function P1(){G("Tabs",y8),G("Tab",b8),G("Accordion",m8),G("AccordionItem",h8),G("Dialog",v8),G("Popover",g8),G("Tooltip",u8),G("HoverCard",x8),G("Carousel",p8)}function y8($,Z){let J=_("div","pf-tabs"),q=_("div","pf-tabs-bar");q.setAttribute("role","tablist"),q.style.display="flex",q.style.gap="4px",q.style.marginBottom="12px";let Q=[],Y=[];if($.children)for(let W=0;W<$.children.length;W++){let H=$.children[W],X=`pf-tab-${Math.random().toString(36).slice(2,8)}`,N=`pf-panel-${Math.random().toString(36).slice(2,8)}`,M=document.createElement("button");M.type="button",M.className="pf-tab-trigger",M.textContent=H.title??`Tab ${W+1}`,M.setAttribute("role","tab"),M.setAttribute("aria-selected",W===0?"true":"false"),M.setAttribute("aria-controls",N),M.id=X,M.tabIndex=W===0?0:-1,M.style.padding="8px 16px",M.style.border="none",M.style.background="none",M.style.cursor="pointer",M.style.borderBottom="2px solid transparent",M.style.marginBottom="-2px",M.style.fontSize="14px";let E=_("div","pf-tab-panel");if(E.style.display=W===0?"block":"none",E.setAttribute("role","tabpanel"),E.setAttribute("aria-labelledby",X),E.id=N,E.tabIndex=0,V(H,E,Z),M.addEventListener("click",()=>{U(W)}),W===0)M.classList.add("pf-tab-active"),M.style.fontWeight="600";Y.push(M),Q.push(E),q.appendChild(M)}function U(W){Q.forEach((H)=>H.style.display="none"),Y.forEach((H)=>{H.style.borderBottomColor="transparent",H.style.fontWeight="normal",H.classList.remove("pf-tab-active"),H.setAttribute("aria-selected","false"),H.tabIndex=-1}),Q[W].style.display="block",Y[W].classList.add("pf-tab-active"),Y[W].style.fontWeight="600",Y[W].setAttribute("aria-selected","true"),Y[W].tabIndex=0,Y[W].focus()}q.addEventListener("keydown",(W)=>{let H=Y.indexOf(W.target);if(H<0)return;let X;if(W.key==="ArrowRight")X=(H+1)%Y.length;else if(W.key==="ArrowLeft")X=(H-1+Y.length)%Y.length;else if(W.key==="Home")X=0;else if(W.key==="End")X=Y.length-1;else return;W.preventDefault(),U(X)}),J.appendChild(q);for(let W of Q)J.appendChild(W);return J}function b8($,Z){let J=_("div","pf-tab");return V($,J,Z),J}function m8($,Z){let J=_("div","pf-accordion");return V($,J,Z),J}function h8($,Z){let J=_("div","pf-accordion-item"),q=`pf-acc-${Math.random().toString(36).slice(2,8)}`,Q=document.createElement("button");Q.type="button",Q.className="pf-accordion-trigger",Q.textContent=$.title??"",Q.setAttribute("aria-expanded","false"),Q.setAttribute("aria-controls",q),Q.style.width="100%",Q.style.textAlign="left",Q.style.padding="12px 0",Q.style.border="none",Q.style.background="none",Q.style.cursor="pointer",Q.style.fontSize="14px",Q.style.fontWeight="500";let Y=_("div","pf-accordion-content");return Y.id=q,Y.setAttribute("role","region"),Y.setAttribute("aria-labelledby",Q.id),Y.style.display="none",Y.style.paddingBottom="12px",V($,Y,Z),Q.addEventListener("click",()=>{let U=Y.style.display!=="none";Y.style.display=U?"none":"block",Q.setAttribute("aria-expanded",U?"false":"true")}),J.appendChild(Q),J.appendChild(Y),J}function v8($,Z){let J=_("div","pf-dialog-wrapper");if($.trigger!=null){let Y=w($.trigger,Z);Y.addEventListener("click",()=>{q.showModal()}),J.appendChild(Y)}let q=document.createElement("dialog");if(q.className="pf-dialog",q.setAttribute("aria-modal","true"),q.style.maxWidth="500px",q.style.width="100%",q.style.padding="24px",$.title!=null){let Y=_("h2","pf-dialog-title");Y.textContent=K($.title,Z),Y.id=`pf-dialog-title-${Math.random().toString(36).slice(2,8)}`,q.setAttribute("aria-labelledby",Y.id),q.appendChild(Y)}if($.description!=null){let Y=_("p","pf-dialog-desc");Y.textContent=K($.description,Z),q.appendChild(Y)}let Q=_("div","pf-dialog-body");if(V($,Q,Z),q.appendChild(Q),$.dismissible!==!1)q.addEventListener("click",(Y)=>{if(Y.target===q)q.close()});return document.addEventListener("prefab:close-overlay",()=>q.close()),J.appendChild(q),J}function g8($,Z){let J=_("div","pf-popover");J.style.position="relative",J.style.display="inline-block";let q=_("div","pf-popover-content");if(q.style.display="none",q.style.position="absolute",q.style.zIndex="50",q.style.padding="12px",q.style.boxShadow="0 4px 6px -1px rgb(0 0 0 / 0.1)",$.title!=null){let Q=_("div","pf-popover-title");Q.textContent=K($.title,Z),Q.style.fontWeight="600",Q.style.marginBottom="4px",q.appendChild(Q)}return V($,q,Z),J.addEventListener("click",(Q)=>{if(q.contains(Q.target)&&q.style.display!=="none")return;q.style.display=q.style.display==="none"?"block":"none"}),J.appendChild(q),J}function u8($,Z){let J=_("div","pf-tooltip");J.style.position="relative",J.style.display="inline-block";let q=`pf-tip-${Math.random().toString(36).slice(2,8)}`,Q=_("div","pf-tooltip-content");return Q.id=q,Q.setAttribute("role","tooltip"),Q.textContent=K($.content??"",Z),Q.style.display="none",Q.style.position="absolute",Q.style.bottom="100%",Q.style.left="50%",Q.style.transform="translateX(-50%)",Q.style.padding="4px 8px",Q.style.borderRadius="4px",Q.style.color="#fff",Q.style.fontSize="12px",Q.style.whiteSpace="nowrap",Q.style.zIndex="50",V($,J,Z),J.setAttribute("aria-describedby",q),J.addEventListener("mouseenter",()=>{Q.style.display="block"}),J.addEventListener("mouseleave",()=>{Q.style.display="none"}),J.addEventListener("focus",()=>{Q.style.display="block"},!0),J.addEventListener("blur",()=>{Q.style.display="none"},!0),J.appendChild(Q),J}function x8($,Z){let J=_("div","pf-hover-card");J.style.position="relative",J.style.display="inline-block";let q=_("div","pf-hover-card-content");return q.style.display="none",q.style.position="absolute",q.style.zIndex="50",q.style.padding="16px",q.style.boxShadow="0 4px 6px -1px rgb(0 0 0 / 0.1)",q.style.minWidth="200px",V($,q,Z),J.addEventListener("mouseenter",()=>{q.style.display="block"}),J.addEventListener("mouseleave",()=>{q.style.display="none"}),J.appendChild(q),J}function p8($,Z){let J=_("div","pf-carousel");J.style.position="relative",J.style.overflow="hidden",J.setAttribute("role","region"),J.setAttribute("aria-roledescription","carousel"),J.setAttribute("aria-label",K($.label??"Carousel",Z));let q=_("div","pf-carousel-track");q.style.display="flex",q.style.transition="transform 0.3s ease",V($,q,Z);let Q=0,Y=$.children?.length??0,U=document.createElement("button");U.type="button",U.textContent="‹",U.className="pf-carousel-prev",U.setAttribute("aria-label","Previous slide"),U.style.position="absolute",U.style.left="4px",U.style.top="50%",U.style.transform="translateY(-50%)",U.style.zIndex="10";let W=document.createElement("button");W.type="button",W.textContent="›",W.className="pf-carousel-next",W.setAttribute("aria-label","Next slide"),W.style.position="absolute",W.style.right="4px",W.style.top="50%",W.style.transform="translateY(-50%)",W.style.zIndex="10";let H=()=>{q.style.transform=`translateX(-${Q*100}%)`};return U.addEventListener("click",()=>{if(Y===0)return;Q=Math.max(0,Q-1),H()}),W.addEventListener("click",()=>{if(Y===0)return;Q=Math.min(Y-1,Q+1),H()}),J.appendChild(q),J.appendChild(U),J.appendChild(W),J}function A1(){G("ForEach",c8),G("If",k1),G("Elif",d8),G("Else",l8),G("Condition",s8),G("Define",i8),G("Use",n8),G("Slot",r8)}function c8($,Z){let J=document.createDocumentFragment(),q=$.expression;if(!q)return J;let Q;if(u(q)){let U=x(q,Z.store,Z.scope);Q=Array.isArray(U)?U:[]}else{let U=Z.store.get(q);Q=Array.isArray(U)?U:[]}let Y=$.let??{};for(let U=0;U<Q.length;U++){let W=Q[U],H={...Z.scope,$item:W,$index:U,...Y},X={...Z,scope:H};if($.children)o($.children,J,X)}return J}function k1($,Z){if(f1($.condition,Z)){let q=document.createDocumentFragment();if($.children)o($.children,q,Z);return q}return document.createDocumentFragment()}function d8($,Z){return k1($,Z)}function l8($,Z){let J=document.createDocumentFragment();if($.children)o($.children,J,Z);return J}function f1($,Z){if(!$)return!1;if(u($))return Boolean(x($,Z.store,Z.scope));return Boolean(Z.store.get($))}function s8($,Z){let J=document.createDocumentFragment(),q=$.cases,Q=$.else;if(q){for(let Y of q)if(f1(Y.when,Z)){if(Y.children)o(Y.children,J,Z);return J}}if(Q)o(Q,J,Z);return J}function i8($,Z){let J=$.name;if(J&&$.children)Z.templates=Z.templates??{},Z.templates[J]=$.children;return document.createDocumentFragment()}function n8($,Z){let J=document.createDocumentFragment(),q=$.def??$.name,Q=Z.templates?.[q];if(!Q)return J;let Y=$.overrides??{},U={...Z.scope,...Y},W={...Z,scope:U};for(let H of Q)J.appendChild(w(H,W));return J}function r8($,Z){let J=document.createDocumentFragment(),q=$.name??"default",Y=Z.slots?.[q]??$.children;if(Y)for(let U of Y)J.appendChild(w(U,Z));return J}function S1(){G("Alert",o8),G("AlertTitle",a8),G("AlertDescription",t8)}function o8($,Z){let J=_("div","pf-alert");J.setAttribute("role","alert");let q=$.variant??"default";if(J.setAttribute("data-variant",q),J.style.padding="12px 16px",$.icon!=null){let Q=_("span","pf-alert-icon");Q.setAttribute("data-icon",$.icon),Q.style.marginRight="8px",J.appendChild(Q)}return V($,J,Z),J}function a8($,Z){let J=_("h5","pf-alert-title");return J.textContent=K($.content,Z),J.style.fontWeight="600",J.style.marginBottom="4px",J}function t8($,Z){let J=_("p","pf-alert-description");return J.textContent=K($.content,Z),J.style.fontSize="14px",J}function w1(){G("Image",e8),G("Audio",$2),G("Video",Z2),G("Embed",J2),G("Svg",Q2),G("DropZone",Y2),G("Mermaid",U2)}function e8($,Z){let J=document.createElement("img");if(J.className="pf-image",J.src=K($.src,Z),$.alt!=null)J.alt=K($.alt,Z);if($.width!=null)J.width=$.width;if($.height!=null)J.height=$.height;return J.style.maxWidth="100%",J}function $2($,Z){let J=document.createElement("audio");return J.className="pf-audio",J.src=K($.src,Z),J.controls=!0,J}function Z2($,Z){let J=document.createElement("video");if(J.className="pf-video",J.src=K($.src,Z),J.controls=!0,$.width!=null)J.width=$.width;if($.height!=null)J.height=$.height;return J.style.maxWidth="100%",J}function J2($,Z){let J=_("div","pf-embed"),q=document.createElement("iframe");return q.src=K($.src,Z),q.style.width="100%",q.style.height=$.height!=null?`${$.height}px`:"400px",q.style.border="none",q.setAttribute("sandbox","allow-scripts"),J.appendChild(q),J}var q2=new Set(["svg","g","path","rect","circle","ellipse","line","polyline","polygon","text","tspan","textpath","defs","use","symbol","clippath","mask","pattern","lineargradient","radialgradient","stop","filter","fegaussianblur","feoffset","femerge","femergenode","fecolormatrix","feblend","title","desc"]);function Q2($,Z){let J=_("div","pf-svg"),q=K($.content,Z);if(!q.includes("<svg"))return J;let Y=new DOMParser().parseFromString(q,"image/svg+xml").querySelector("svg");if(!Y)return J;return C1(Y),J.appendChild(document.importNode(Y,!0)),J}function C1($){let Z=Array.from($.children);for(let J of Z){if(!q2.has(J.tagName.toLowerCase())){J.remove();continue}for(let q of Array.from(J.attributes)){let Q=q.name.toLowerCase();if(Q.startsWith("on")||Q==="href"&&q.value.trim().toLowerCase().startsWith("javascript:"))J.removeAttribute(q.name)}C1(J)}}function Y2($,Z){let J=_("div","pf-dropzone");return J.style.padding="32px",J.style.textAlign="center",J.style.cursor="pointer",J.textContent=K($.label??"Drop files here",Z),J.addEventListener("dragover",(q)=>{q.preventDefault(),J.classList.add("pf-dropzone-active")}),J.addEventListener("dragleave",()=>{J.classList.remove("pf-dropzone-active")}),J.addEventListener("drop",(q)=>{q.preventDefault(),J.classList.remove("pf-dropzone-active")}),J}function U2($,Z){let J=_("div","pf-mermaid");J.setAttribute("data-mermaid","true");let q=K($.content,Z);if(J.textContent=q,typeof globalThis.mermaid<"u")J.classList.add("mermaid"),J.textContent=q;return J}var W2="https://cdn.jsdelivr.net/npm/pdfjs-dist@4.9/build/pdf.min.mjs",H2="https://cdn.jsdelivr.net/npm/pdfjs-dist@4.9/build/pdf.worker.min.mjs",d0=null,O0=null;async function M2(){if(d0)return d0;if(O0)return O0;return O0=import(W2).then(($)=>{let Z=$;return Z.GlobalWorkerOptions.workerSrc=H2,d0=Z,Z}),O0}function b1(){G("PdfViewer",G2)}function G2($,Z){let J=_("div","pf-pdf-viewer"),q=$.src!=null?K($.src,Z):void 0,Q=$.data,Y=$.page!=null?$.page:1,U=$.zoom!=null?$.zoom:"fit-width",W=$.toolbar!==!1,H=$.height!=null?$.height:600;J.style.height=`${H}px`,J.style.display="flex",J.style.flexDirection="column",J.style.overflow="hidden",J.style.border="1px solid var(--color-border-primary, #e5e7eb)",J.style.borderRadius="var(--border-radius-md, 0.375rem)",J.style.background="var(--color-background-secondary, #f9fafb)";let X=_("div","pf-pdf-loading");return X.textContent="Loading PDF…",X.style.display="flex",X.style.alignItems="center",X.style.justifyContent="center",X.style.flex="1",X.style.color="var(--color-text-secondary, #6b7280)",J.appendChild(X),X2(J,X,{src:q,data:Q,initialPage:Y,zoom:U,showToolbar:W}),J}async function X2($,Z,J){try{let q=await M2(),Q;if(J.src)Q={url:J.src};else if(J.data){let E=atob(J.data),L=new Uint8Array(E.length);for(let B=0;B<E.length;B++)L[B]=E.charCodeAt(B);Q={data:L}}else{Z.textContent="Error: No PDF source provided";return}let Y=await q.getDocument(Q).promise;Z.remove();let U=Math.max(1,Math.min(J.initialPage,Y.numPages)),W=null,H=null;if(J.showToolbar){let E=_2(Y.numPages,U,{onPrev:()=>{if(U>1)U--,M()},onNext:()=>{if(U<Y.numPages)U++,M()},onPageChange:(L)=>{let B=Math.max(1,Math.min(L,Y.numPages));if(B!==U)U=B,M()}});W=E.pageInput,H=E.pageCount,$.insertBefore(E.el,$.firstChild)}let X=_("div","pf-pdf-canvas-container");X.style.flex="1",X.style.overflow="auto",X.style.display="flex",X.style.justifyContent="center",X.style.padding="8px",$.appendChild(X);let N=document.createElement("canvas");N.style.display="block",N.style.boxShadow="var(--shadow-md, 0 4px 6px -1px rgba(0,0,0,.1))",X.appendChild(N);async function M(){let E=await Y.getPage(U),L=X.clientWidth-16,B,F=E.getViewport({scale:1});if(J.zoom==="fit-width")B=L/F.width;else if(J.zoom==="fit-page"){let R=X.clientHeight-16,T=L/F.width,D=R/F.height;B=Math.min(T,D)}else B=typeof J.zoom==="number"?J.zoom:1;let z=E.getViewport({scale:B});N.width=z.width,N.height=z.height,N.style.width=`${z.width}px`,N.style.height=`${z.height}px`;let O=N.getContext("2d");if(!O)return;if(await E.render({canvasContext:O,viewport:z}).promise,W)W.value=String(U);if(H)H.textContent=`/ ${Y.numPages}`}await M()}catch(q){Z.textContent=`PDF Error: ${q instanceof Error?q.message:String(q)}`,Z.style.color="var(--color-text-danger, #dc2626)"}}function _2($,Z,J){let q=_("div","pf-pdf-toolbar");q.style.display="flex",q.style.alignItems="center",q.style.gap="8px",q.style.padding="6px 12px",q.style.borderBottom="1px solid var(--color-border-primary, #e5e7eb)",q.style.background="var(--color-background-primary, #fff)",q.style.flexShrink="0",q.style.fontSize="13px";let Q=document.createElement("button");Q.textContent="‹",Q.title="Previous page",Q.className="pf-pdf-btn",y1(Q),Q.addEventListener("click",J.onPrev);let Y=document.createElement("button");Y.textContent="›",Y.title="Next page",Y.className="pf-pdf-btn",y1(Y),Y.addEventListener("click",J.onNext);let U=document.createElement("input");U.type="number",U.min="1",U.max=String($),U.value=String(Z),U.style.width="48px",U.style.textAlign="center",U.style.border="1px solid var(--color-border-primary, #e5e7eb)",U.style.borderRadius="4px",U.style.padding="2px 4px",U.style.fontSize="13px",U.addEventListener("change",()=>{let H=parseInt(U.value,10);if(!isNaN(H))J.onPageChange(H)});let W=document.createElement("span");return W.textContent=`/ ${$}`,W.style.color="var(--color-text-secondary, #6b7280)",q.appendChild(Q),q.appendChild(U),q.appendChild(W),q.appendChild(Y),{el:q,pageInput:U,pageCount:W}}function y1($){$.style.border="1px solid var(--color-border-primary, #e5e7eb)",$.style.borderRadius="4px",$.style.background="var(--color-background-primary, #fff)",$.style.cursor="pointer",$.style.padding="2px 8px",$.style.fontSize="16px",$.style.lineHeight="1"}var V0=["#3b82f6","#10b981","#f59e0b","#ef4444","#8b5cf6","#ec4899"];function T0($,Z){let J=document.createElement("div");return J.className="pf-chart-tooltip",$.appendChild(J),$.addEventListener("mouseleave",()=>{J.classList.remove("pf-visible")}),{wrapper:$,tooltip:J,svgEl:Z}}function Q0($,Z,J,q,Q){let{tooltip:Y,svgEl:U,wrapper:W}=$;if(Q.length===0)return;let H="";if(q)H+=`<div class="pf-chart-tooltip-label">${D0(q)}</div>`;for(let z of Q)H+='<div class="pf-chart-tooltip-row">',H+=`<span class="pf-chart-tooltip-dot" style="background:${D0(z.color)}"></span>`,H+=`<span>${D0(z.label)}:</span> <strong>${D0(String(z.value))}</strong>`,H+="</div>";Y.innerHTML=H;let X=U.getBoundingClientRect(),N=W.getBoundingClientRect(),M=U.viewBox.baseVal,E=X.width/(M.width||1),L=X.left-N.left+Z*E,B=Y.offsetWidth||100,F=L+12;if(F+B>N.width)F=L-B-12;Y.style.left=`${Math.max(0,F)}px`,Y.style.top="4px",Y.classList.add("pf-visible")}function D0($){return $.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}function m1($,Z,J,q,Q,Y,U,W){let H=Q.plotWidth/J.length;for(let X=0;X<J.length;X++){let N=Q.plotLeft+X*H,M=document.createElementNS("http://www.w3.org/2000/svg","rect");M.setAttribute("x",String(N)),M.setAttribute("y",String(Q.plotTop)),M.setAttribute("width",String(H)),M.setAttribute("height",String(Q.plotHeight)),M.setAttribute("fill","transparent"),M.style.cursor="default";let E=Y?J[X][Y]:void 0,L=E!=null?W?W(E):String(E):void 0,B=q.map((R,T)=>({label:R.label??R.dataKey,value:U(J[X][R.dataKey],R,T),color:R.color??V0[T%V0.length]})),F=N+H/2,z=()=>Q0($,F,Q.plotTop,L,B),O=()=>$.tooltip.classList.remove("pf-visible");M.addEventListener("mouseenter",z),M.addEventListener("mouseleave",O),M.addEventListener("touchstart",z,{passive:!0}),M.addEventListener("touchend",O,{passive:!0}),Z.appendChild(M)}}function h1($,Z,J,q,Q,Y,U,W,H,X){let N=J.length===1?Q.plotWidth:Q.plotWidth/(J.length-1);for(let M=0;M<J.length;M++){let E=J.length===1?(Q.plotLeft+Q.plotRight)/2:Q.plotLeft+M/(J.length-1)*Q.plotWidth,L=J.length===1?Q.plotLeft:E-N/2,B=J.length===1?Q.plotWidth:N,F=document.createElementNS("http://www.w3.org/2000/svg","rect");F.setAttribute("x",String(Math.max(Q.plotLeft,L))),F.setAttribute("y",String(Q.plotTop)),F.setAttribute("width",String(Math.min(B,Q.plotRight-Math.max(Q.plotLeft,L)))),F.setAttribute("height",String(Q.plotHeight)),F.setAttribute("fill","transparent"),F.style.cursor="default";let z=Y?J[M][Y]:void 0,O=z!=null?X?X(z):String(z):void 0,R=q.map((j,C)=>({label:j.label??j.dataKey,value:U(J[M][j.dataKey],j,C),color:j.color??V0[C%V0.length]})),T=()=>{if(Q0($,E,Q.plotTop,O,R),W)W.setAttribute("x1",String(E)),W.setAttribute("x2",String(E)),W.setAttribute("opacity","1");if(H)for(let j of H){for(let C of j)C.setAttribute("data-visible","false");j[M]?.setAttribute("data-visible","true")}},D=()=>{if($.tooltip.classList.remove("pf-visible"),W)W.setAttribute("opacity","0");if(H)for(let j of H)for(let C of j)C.setAttribute("data-visible","false")};F.addEventListener("mouseenter",T),F.addEventListener("mouseleave",D),F.addEventListener("touchstart",T,{passive:!0}),F.addEventListener("touchend",D,{passive:!0}),Z.appendChild(F)}}function g1(){G("BarChart",E2),G("LineChart",v1),G("AreaChart",v1),G("PieChart",B2),G("RadarChart",l0),G("ScatterChart",l0),G("RadialChart",l0),G("Histogram",F2)}var s=["#3b82f6","#10b981","#f59e0b","#ef4444","#8b5cf6","#ec4899"],Y0="var(--muted-foreground, #6b7280)",N2="var(--border, #e5e7eb)",s0="10";function u1($,Z,J,q=!1){let Q=J?44:0,Y=$-(q?44:0),U=10,W=Z-24;return{plotLeft:Q,plotRight:Y,plotTop:10,plotBottom:W,plotWidth:Y-Q,plotHeight:W-10}}function x1($,Z=5){if($<=0)return[0];let J=$/Z,q=Math.pow(10,Math.floor(Math.log10(J))),Q=J/q,Y=Q<=1.5?q:Q<=3?2*q:Q<=7?5*q:10*q,U=[];for(let W=0;W<=$+Y*0.01;W+=Y)U.push(Math.round(W*1000)/1000);return U}function p1($,Z,J,q,Q){let Y=x1(J);for(let U of Y){let W=Z.plotBottom-(J>0?U/J*Z.plotHeight:0),H=document.createElementNS("http://www.w3.org/2000/svg","text");if(H.setAttribute("x",String(Z.plotLeft-6)),H.setAttribute("y",String(W+3)),H.setAttribute("text-anchor","end"),H.setAttribute("font-size",s0),H.setAttribute("fill",Y0),H.textContent=i0(U,Q),$.appendChild(H),q&&U>0){let X=document.createElementNS("http://www.w3.org/2000/svg","line");X.setAttribute("x1",String(Z.plotLeft)),X.setAttribute("y1",String(W)),X.setAttribute("x2",String(Z.plotRight)),X.setAttribute("y2",String(W)),X.setAttribute("stroke",N2),X.setAttribute("stroke-width","1"),X.setAttribute("stroke-dasharray","4 3"),$.appendChild(X)}}}function c1($,Z,J,q){let Q=x1(J);for(let Y of Q){let U=Z.plotBottom-(J>0?Y/J*Z.plotHeight:0),W=document.createElementNS("http://www.w3.org/2000/svg","text");W.setAttribute("x",String(Z.plotRight+6)),W.setAttribute("y",String(U+3)),W.setAttribute("text-anchor","start"),W.setAttribute("font-size",s0),W.setAttribute("fill",Y0),W.textContent=i0(Y,q),$.appendChild(W)}}function d1($,Z,J,q,Q,Y){for(let U=0;U<Z.length;U++){let W=document.createElementNS("http://www.w3.org/2000/svg","text");W.setAttribute("x",String(q(U))),W.setAttribute("y",String(Q+14)),W.setAttribute("text-anchor","middle"),W.setAttribute("font-size",s0),W.setAttribute("fill",Y0);let H=Z[U][J];W.textContent=H==null?"":Y?Y(H):String(H),$.appendChild(W)}}function l1($,Z){let J=document.createElementNS("http://www.w3.org/2000/svg","line");J.setAttribute("x1",String(Z.plotLeft)),J.setAttribute("y1",String(Z.plotBottom)),J.setAttribute("x2",String(Z.plotRight)),J.setAttribute("y2",String(Z.plotBottom)),J.setAttribute("stroke",Y0),J.setAttribute("stroke-width","1"),$.appendChild(J)}function Z0($,Z,J){if($==null)return"";let q=b(`{{ __v | ${Z} }}`,{...J,scope:{...J.scope,__v:$}});return q==null?String($):String(q)}function i0($,Z){if(Z==="currency")return`$${$.toLocaleString()}`;if(Z==="percent")return`${$}%`;if($>=1e6)return`${($/1e6).toFixed(1)}M`;if($>=1000)return`${($/1000).toFixed(1)}K`;return String($)}function s1($,Z,J){return(q,Q)=>{if(q===null||q===void 0)return"—";if(Q.tooltipFormat)return Z0(q,Q.tooltipFormat,$);let Y=Q.yAxisId==="right"?J:Z;return i0(Number(q),Y)}}function E2($,Z){let J=_("div","pf-chart pf-bar-chart"),q=b($.data,Z)??[],Q=$.series??[],Y=$.height??300;if(q.length===0||Q.length===0)return J.textContent="No chart data",J;let U=$.showYAxis!==!1,W=$.showGrid===!0,H=$.showYAxisRight===!0,X=$.showTooltip!==!1,N=$.xAxis,M=$.tooltipXKey,E=$.xAxisFormat,L=$.tooltipXFormat,B=Q.filter((A)=>A.yAxisId!=="right"),F=Q.filter((A)=>A.yAxisId==="right"),z=H&&F.length>0,O=B.length>0?Math.max(...q.flatMap((A)=>B.map((P)=>Number(A[P.dataKey]??0))),1):1,R=z?Math.max(...q.flatMap((A)=>F.map((P)=>Number(A[P.dataKey]??0))),1):1,T=400,D=u1(T,Y,U,z),j=j0(T,Y,"Bar");if(U)p1(j,D,O,W,$.yAxisFormat);if(z)c1(j,D,R,$.yAxisRightFormat);l1(j,D);let C=D.plotWidth/q.length,i=C/(Q.length+1);for(let A=0;A<q.length;A++)for(let P=0;P<Q.length;P++){let f=Q[P],p=q[A][f.dataKey];if(p===null||p===void 0)continue;let m=f.yAxisId==="right"?R:O,c=Number(p),d=Math.max(0,c/m*D.plotHeight),a=D.plotLeft+A*C+P*i+i/2,I=document.createElementNS("http://www.w3.org/2000/svg","rect");I.setAttribute("x",String(a)),I.setAttribute("y",String(D.plotBottom-d)),I.setAttribute("width",String(i*0.8)),I.setAttribute("height",String(d)),I.setAttribute("fill",f.color??s[P%s.length]),I.setAttribute("rx","2"),j.appendChild(I)}if(N){let A=E?(P)=>Z0(P,E,Z):void 0;d1(j,q,N,(P)=>{return D.plotLeft+P*C+C/2},D.plotBottom,A)}if(X){let A=T0(J,j),P=s1(Z,$.yAxisFormat,$.yAxisRightFormat);m1(A,j,q,Q,D,M??N,P,L?(p)=>Z0(p,L,Z):void 0)}return n0(J,Q,$.showLegend),J.appendChild(j),J}function v1($,Z){let J=_("div",`pf-chart pf-${$.type.toLowerCase()}-chart`),q=b($.data,Z)??[],Q=$.series??[],Y=$.height??300;if(q.length===0||Q.length===0)return J.textContent="No chart data",J;let U=$.showYAxis!==!1,W=$.showGrid===!0,H=$.showYAxisRight===!0,X=$.showTooltip!==!1,N=$.xAxis,M=$.tooltipXKey,E=$.xAxisFormat,L=$.tooltipXFormat,B=Q.filter((P)=>P.yAxisId!=="right"),F=Q.filter((P)=>P.yAxisId==="right"),z=H&&F.length>0,O=B.length>0?Math.max(...q.flatMap((P)=>B.map((f)=>Number(P[f.dataKey]??0))),1):1,R=z?Math.max(...q.flatMap((P)=>F.map((f)=>Number(P[f.dataKey]??0))),1):1,T=400,D=u1(T,Y,U,z),j=j0(T,Y,$.type==="AreaChart"?"Area":"Line"),C=$.type==="AreaChart";if(U)p1(j,D,O,W,$.yAxisFormat);if(z)c1(j,D,R,$.yAxisRightFormat);l1(j,D);let i=[];for(let P=0;P<Q.length;P++){let f=Q[P],p=f.yAxisId==="right",n=p?R:O,m=f.color??s[P%s.length],c=q.map((I,S)=>{let h=I[f.dataKey],t=h===null||h===void 0,W0=q.length===1?(D.plotLeft+D.plotRight)/2:D.plotLeft+S/(q.length-1)*D.plotWidth,U4=t?D.plotBottom:D.plotBottom-Number(h)/n*D.plotHeight;return{x:W0,y:U4,isNull:t}});if(C){let I=[],S=()=>{if(I.length<2){I=[];return}let h=`M ${I[0].x},${D.plotBottom} `+I.map((W0)=>`L ${W0.x},${W0.y}`).join(" ")+` L ${I[I.length-1].x},${D.plotBottom} Z`,t=document.createElementNS("http://www.w3.org/2000/svg","path");t.setAttribute("d",h),t.setAttribute("fill",m),t.setAttribute("opacity","0.15"),j.appendChild(t),I=[]};for(let h of c){if(h.isNull){S();continue}I.push(h)}S()}let d="";for(let I of c){if(I.isNull)continue;let S=c.indexOf(I),h=S===0||c[S-1].isNull;d+=`${h?"M":"L"} ${I.x},${I.y} `}if(d){let I=document.createElementNS("http://www.w3.org/2000/svg","path");if(I.setAttribute("d",d.trim()),I.setAttribute("fill","none"),I.setAttribute("stroke",m),I.setAttribute("stroke-width","2"),p)I.setAttribute("stroke-dasharray","6 3");j.appendChild(I)}let a=[];for(let I of c){let S=document.createElementNS("http://www.w3.org/2000/svg","circle");if(S.setAttribute("cx",String(I.x)),S.setAttribute("cy",String(I.y)),S.setAttribute("r","4"),S.setAttribute("fill",m),S.setAttribute("class","pf-data-dot"),S.setAttribute("data-visible","false"),S.style.pointerEvents="none",I.isNull)S.style.display="none";j.appendChild(S),a.push(S)}i.push(a)}let A=document.createElementNS("http://www.w3.org/2000/svg","line");if(A.setAttribute("class","pf-crosshair"),A.setAttribute("x1",String(D.plotLeft)),A.setAttribute("x2",String(D.plotLeft)),A.setAttribute("y1",String(D.plotTop)),A.setAttribute("y2",String(D.plotBottom)),A.setAttribute("stroke",Y0),A.setAttribute("stroke-width","1"),A.setAttribute("stroke-dasharray","3 3"),A.setAttribute("opacity","0"),j.appendChild(A),N){let P=E?(f)=>Z0(f,E,Z):void 0;d1(j,q,N,(f)=>{return q.length===1?(D.plotLeft+D.plotRight)/2:D.plotLeft+f/(q.length-1)*D.plotWidth},D.plotBottom,P)}if(X){let P=T0(J,j),f=s1(Z,$.yAxisFormat,$.yAxisRightFormat);h1(P,j,q,Q,D,M??N,f,A,i,L?(n)=>Z0(n,L,Z):void 0)}return n0(J,Q,$.showLegend),J.appendChild(j),J}function B2($,Z){let J=_("div","pf-chart pf-pie-chart"),q=b($.data,Z)??[],Q=$.series??[],Y=$.height??300,U=Math.min(Y,300),W=$.showTooltip!==!1;if(q.length===0||Q.length===0)return J.textContent="No chart data",J;let H=j0(U,U,"Pie"),X=U/2,N=U/2,M=U/2-10,E=Q[0].dataKey,L=$.xAxis,B=$.tooltipXKey,F=$.tooltipXFormat,z=q.map((D)=>Number(D[E]??0)),O=z.reduce((D,j)=>D+j,0);if(O===0)return J.textContent="No chart data",J.appendChild(H),J;let R=W?T0(J,H):void 0,T=-Math.PI/2;for(let D=0;D<z.length;D++){let j=z[D]/O*2*Math.PI,C=T+j,i=j>Math.PI?1:0,A=X+M*Math.cos(T),P=N+M*Math.sin(T),f=X+M*Math.cos(C),p=N+M*Math.sin(C),n=s[D%s.length],m=document.createElementNS("http://www.w3.org/2000/svg","path");if(m.setAttribute("d",`M ${X},${N} L ${A},${P} A ${M},${M} 0 ${i} 1 ${f},${p} Z`),m.setAttribute("fill",n),m.style.cursor="default",R){let c=B??L,d=c?q[D][c]:void 0,a=d!=null?F?Z0(d,F,Z):String(d):`Slice ${D+1}`,I=`${(z[D]/O*100).toFixed(1)}%`,S=T+j/2,h=X+M*0.6*Math.cos(S);m.addEventListener("mouseenter",()=>{Q0(R,h,N,a,[{label:Q[0].label??E,value:`${z[D]} (${I})`,color:n}])}),m.addEventListener("mouseleave",()=>{R.tooltip.classList.remove("pf-visible")}),m.addEventListener("touchstart",()=>{Q0(R,h,N,a,[{label:Q[0].label??E,value:`${z[D]} (${I})`,color:n}])},{passive:!0}),m.addEventListener("touchend",()=>{R.tooltip.classList.remove("pf-visible")},{passive:!0})}H.appendChild(m),T=C}return n0(J,Q,$.showLegend),J.appendChild(H),J}function l0($,Z){let J=_("div",`pf-chart pf-${$.type.toLowerCase()}`);return J.textContent=`${$.type} — not yet supported in renderer`,J.style.padding="24px",J.style.textAlign="center",J}function j0($,Z,J){let q=document.createElementNS("http://www.w3.org/2000/svg","svg");if(q.setAttribute("width","100%"),q.setAttribute("height",String(Z)),q.setAttribute("viewBox",`0 0 ${$} ${Z}`),q.setAttribute("role","img"),J)q.setAttribute("aria-label",`${J} chart`);return q.style.overflow="visible",q}function n0($,Z,J){if(J===!1||Z.length<=1)return;let q=_("div","pf-chart-legend");q.style.display="flex",q.style.gap="12px",q.style.fontSize="12px",q.style.marginBottom="8px";for(let Q=0;Q<Z.length;Q++){let Y=_("div","pf-chart-legend-item");Y.style.display="flex",Y.style.alignItems="center",Y.style.gap="4px";let U=_("span");U.style.width="8px",U.style.height="8px",U.style.borderRadius="50%",U.style.backgroundColor=Z[Q].color??s[Q%s.length];let W=_("span");W.textContent=Z[Q].label??Z[Q].dataKey,Y.appendChild(U),Y.appendChild(W),q.appendChild(Y)}$.appendChild(q)}function F2($,Z){let J=_("div","pf-chart pf-histogram"),q=b($.data,Z);if(!q||q.length===0)return J.textContent="No data",J;let Q=q,Y=$.bins??10,U=$.height??200,W=$.color??s[0],H=Math.min(...Q),N=(Math.max(...Q)-H)/Y||1,M=Array(Y).fill(0);for(let O of Q){let R=Math.min(Math.floor((O-H)/N),Y-1);M[R]++}let E=Math.max(...M),L=300,B=U,F=L/Y,z=j0(L,B,"Histogram");for(let O=0;O<Y;O++){let R=E>0?M[O]/E*B:0,T=document.createElementNS("http://www.w3.org/2000/svg","rect");T.setAttribute("x",String(O*F)),T.setAttribute("y",String(B-R)),T.setAttribute("width",String(F-1)),T.setAttribute("height",String(R)),T.setAttribute("fill",W),z.appendChild(T)}return J.appendChild(z),J}function i1(){G("Table",K2),G("TableHead",r0("thead")),G("TableBody",r0("tbody")),G("TableFooter",r0("tfoot")),G("TableRow",z2),G("TableHeader",L2),G("TableCell",O2),G("TableCaption",D2),G("ExpandableRow",V2)}function K2($,Z){let J=document.createElement("table");return J.className="pf-table",J.style.width="100%",J.style.borderCollapse="collapse",V($,J,Z),J}function r0($){return(Z,J)=>{let q=document.createElement($);return q.className=`pf-${$}`,V(Z,q,J),q}}function z2($,Z){let J=document.createElement("tr");return J.className="pf-table-row",V($,J,Z),J}function L2($,Z){let J=document.createElement("th");return J.className="pf-table-header",J.style.textAlign="left",J.style.padding="8px 12px",J.style.fontWeight="600",J.textContent=K($.content,Z),J}function O2($,Z){let J=document.createElement("td");if(J.className="pf-table-cell",J.style.padding="8px 12px",$.colSpan!=null)J.colSpan=$.colSpan;if($.rowSpan!=null)J.rowSpan=$.rowSpan;return V($,J,Z),J}function D2($,Z){let J=document.createElement("caption");return J.className="pf-table-caption",J.style.padding="8px",J.style.fontSize="14px",J.textContent=K($.content,Z),J}function V2($,Z){let J=_("div","pf-expandable-row"),q=_("div","pf-expandable-row-summary");q.style.cursor="pointer",q.style.display="flex",q.style.alignItems="center",q.style.gap="8px";let Q=_("span","pf-expandable-arrow");Q.textContent="▶",Q.style.transition="transform 0.2s",Q.style.fontSize="10px",q.appendChild(Q);let Y=$.summary;if(Y)for(let H of Y)q.appendChild(w(H,Z));let U=_("div","pf-expandable-row-detail");U.style.display="none",U.style.paddingLeft="24px",V($,U,Z);let W=!1;return q.addEventListener("click",()=>{W=!W,U.style.display=W?"block":"none",Q.style.transform=W?"rotate(90deg)":""}),J.appendChild(q),J.appendChild(U),J}var n1=!1;function I0(){if(n1)return;n1=!0,F1(),O1(),T1(),j1(),R1(),P1(),A1(),S1(),w1(),b1(),g1(),i1()}function r1($){return $.replace(/[^a-zA-Z0-9_-]/g,"")}function o1($){return $.replace(/[{}<>;]/g,"").replace(/\b(url|expression)\s*\(/gi,"")}function o0($,Z){if(!Z)return;if(Z.light)for(let[J,q]of Object.entries(Z.light))$.style.setProperty(`--${r1(J)}`,o1(q));if(Z.dark){let q=document.getElementById("prefab-dark-theme");if(!q)q=document.createElement("style"),q.id="prefab-dark-theme",document.head.appendChild(q);let Q=Object.entries(Z.dark).map(([Y,U])=>` --${r1(Y)}: ${o1(U)};`).join(`
7
7
  `);q.textContent=`[data-theme="dark"] {
8
8
  ${Q}
9
9
  }