@maxhealth.tech/prefab 0.3.8 → 0.3.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +44 -0
- package/README.md +79 -11
- package/dist/a2ui/browser.d.ts +46 -0
- package/dist/a2ui/browser.d.ts.map +1 -0
- package/dist/a2ui/browser.js +58 -0
- package/dist/a2ui/browser.js.map +1 -0
- package/dist/a2ui/catalog.d.ts +51 -0
- package/dist/a2ui/catalog.d.ts.map +1 -0
- package/dist/a2ui/catalog.js +465 -0
- package/dist/a2ui/catalog.js.map +1 -0
- package/dist/a2ui/emit.d.ts +59 -0
- package/dist/a2ui/emit.d.ts.map +1 -0
- package/dist/a2ui/emit.js +269 -0
- package/dist/a2ui/emit.js.map +1 -0
- package/dist/a2ui/expr.d.ts +58 -0
- package/dist/a2ui/expr.d.ts.map +1 -0
- package/dist/a2ui/expr.js +81 -0
- package/dist/a2ui/expr.js.map +1 -0
- package/dist/a2ui/icons.d.ts +30 -0
- package/dist/a2ui/icons.d.ts.map +1 -0
- package/dist/a2ui/icons.js +87 -0
- package/dist/a2ui/icons.js.map +1 -0
- package/dist/a2ui/index.d.ts +27 -0
- package/dist/a2ui/index.d.ts.map +1 -0
- package/dist/a2ui/index.js +23 -0
- package/dist/a2ui/index.js.map +1 -0
- package/dist/a2ui/table.d.ts +31 -0
- package/dist/a2ui/table.d.ts.map +1 -0
- package/dist/a2ui/table.js +155 -0
- package/dist/a2ui/table.js.map +1 -0
- package/dist/a2ui/types.d.ts +174 -0
- package/dist/a2ui/types.d.ts.map +1 -0
- package/dist/a2ui/types.js +35 -0
- package/dist/a2ui/types.js.map +1 -0
- package/dist/a2ui.min.js +1 -0
- package/dist/app.d.ts +17 -0
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +19 -0
- package/dist/app.js.map +1 -1
- package/dist/auto/form.d.ts +25 -0
- package/dist/auto/form.d.ts.map +1 -1
- package/dist/auto/form.js +21 -8
- package/dist/auto/form.js.map +1 -1
- package/dist/components/charts/index.d.ts +4 -0
- package/dist/components/charts/index.d.ts.map +1 -1
- package/dist/components/charts/index.js +2 -0
- package/dist/components/charts/index.js.map +1 -1
- package/dist/components/form/index.d.ts +1 -6
- package/dist/components/form/index.d.ts.map +1 -1
- package/dist/components/form/index.js +7 -37
- package/dist/components/form/index.js.map +1 -1
- package/dist/components/interactive/index.d.ts +5 -1
- package/dist/components/interactive/index.d.ts.map +1 -1
- package/dist/components/interactive/index.js +5 -2
- package/dist/components/interactive/index.js.map +1 -1
- package/dist/components/media/index.d.ts +20 -2
- package/dist/components/media/index.d.ts.map +1 -1
- package/dist/components/media/index.js +13 -1
- package/dist/components/media/index.js.map +1 -1
- package/dist/components/table/index.d.ts +5 -1
- package/dist/components/table/index.d.ts.map +1 -1
- package/dist/components/table/index.js +5 -2
- package/dist/components/table/index.js.map +1 -1
- package/dist/core/component.d.ts +11 -0
- package/dist/core/component.d.ts.map +1 -1
- package/dist/core/component.js +22 -9
- package/dist/core/component.js.map +1 -1
- package/dist/core/version.d.ts +1 -1
- package/dist/core/version.d.ts.map +1 -1
- package/dist/core/version.js +1 -1
- package/dist/core/version.js.map +1 -1
- package/dist/index.d.ts +9 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp/a2ui.d.ts +91 -0
- package/dist/mcp/a2ui.d.ts.map +1 -0
- package/dist/mcp/a2ui.js +134 -0
- package/dist/mcp/a2ui.js.map +1 -0
- package/dist/mcp/display.d.ts +28 -6
- package/dist/mcp/display.d.ts.map +1 -1
- package/dist/mcp/display.js +10 -9
- package/dist/mcp/display.js.map +1 -1
- package/dist/mcp/index.d.ts +7 -2
- package/dist/mcp/index.d.ts.map +1 -1
- package/dist/mcp/index.js +3 -1
- package/dist/mcp/index.js.map +1 -1
- package/dist/mcp/input-required.d.ts +79 -0
- package/dist/mcp/input-required.d.ts.map +1 -0
- package/dist/mcp/input-required.js +231 -0
- package/dist/mcp/input-required.js.map +1 -0
- package/dist/mcp/resource.d.ts +10 -0
- package/dist/mcp/resource.d.ts.map +1 -1
- package/dist/mcp/resource.js +12 -4
- package/dist/mcp/resource.js.map +1 -1
- package/dist/mcp/result.d.ts +7 -5
- package/dist/mcp/result.d.ts.map +1 -1
- package/dist/mcp/result.js +5 -3
- package/dist/mcp/result.js.map +1 -1
- package/dist/mcp/types.d.ts +117 -0
- package/dist/mcp/types.d.ts.map +1 -1
- package/dist/prefab.css +4 -0
- package/dist/renderer/components/data.js +2 -2
- package/dist/renderer/components/data.js.map +1 -1
- package/dist/renderer/components/form.js +41 -15
- package/dist/renderer/components/form.js.map +1 -1
- package/dist/renderer/components/index.d.ts.map +1 -1
- package/dist/renderer/components/index.js +6 -0
- package/dist/renderer/components/index.js.map +1 -1
- package/dist/renderer/components/interactive.js +17 -4
- package/dist/renderer/components/interactive.js.map +1 -1
- package/dist/renderer/components/media.d.ts +7 -0
- package/dist/renderer/components/media.d.ts.map +1 -1
- package/dist/renderer/components/media.js +63 -2
- package/dist/renderer/components/media.js.map +1 -1
- package/dist/renderer/components/table.js +1 -1
- package/dist/renderer/components/table.js.map +1 -1
- package/dist/renderer/engine.d.ts +4 -0
- package/dist/renderer/engine.d.ts.map +1 -1
- package/dist/renderer/engine.js +24 -0
- package/dist/renderer/engine.js.map +1 -1
- package/dist/renderer.auto.min.js +13 -13
- package/dist/renderer.min.js +13 -13
- package/package.json +13 -3
package/dist/renderer.min.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
(()=>{var{defineProperty:e1,getOwnPropertyNames:C4,getOwnPropertyDescriptor:w4}=Object,b4=Object.prototype.hasOwnProperty;function y4($){return this[$]}var m4=($)=>{var Z=(A0??=new WeakMap).get($),J;if(Z)return Z;if(Z=e1({},"__esModule",{value:!0}),$&&typeof $==="object"||typeof $==="function"){for(var q of C4($))if(!b4.call(Z,q))e1(Z,q,{get:y4.bind($,q),enumerable:!(J=w4($,q))||J.enumerable})}return A0.set($,Z),Z},A0;var h4=($)=>$;function v4($,Z){this[$]=h4.bind(null,Z)}var g4=($,Z)=>{for(var J in Z)e1($,J,{get:Z[J],enumerable:!0,configurable:!0,set:v4.bind(Z,J)})};var D5={};g4(D5,{validateWireFormat:()=>L1,unregisterPipe:()=>O1,setLogLevel:()=>k1,registerPipe:()=>T1,registerComponent:()=>X,log:()=>w,listPipes:()=>A1,isValidWireFormat:()=>V4,isIframe:()=>F1,getLogLevel:()=>f0,createThemeToggle:()=>V1,createLogger:()=>Z0,applyHostTheme:()=>j1,app:()=>t1,PrefabRenderer:()=>Z1,DestroyRegistry:()=>I1,Bridge:()=>_1});var S0={silent:0,error:1,warn:2,info:3,debug:4},$0="warn";function k1($){$0=$}function f0(){return $0}function Z0($){let Z=$?`[prefab:${$}]`:"[prefab]",J=(q,Q,Y)=>{if(S0[q]>S0[$0])return;console[q](`${Z} ${Q}`,...Y)};return{error:(q,...Q)=>J("error",q,Q),warn:(q,...Q)=>J("warn",q,Q),info:(q,...Q)=>J("info",q,Q),debug:(q,...Q)=>J("debug",q,Q)}}var w=Z0();class D1{data={};subscribers=new Map;globalSubscribers=new Set;generation=0;constructor($){if($)this.data=structuredClone($)}get($){return u4(this.data,$)}getAll(){return this.data}set($,Z){C0(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($))C0(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 u4($,Z){let J=Z.split("."),q=$;for(let Q of J){if(q==null||typeof q!=="object")return;q=q[Q]}return q}var x4=new Set(["__proto__","constructor","prototype"]);function C0($,Z,J){let q=Z.split(".");if(q.some((Y)=>x4.has(Y))){w.warn(`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 N1=new Map;function T1($,Z){if(N1.has($)&&N1.get($)!==Z)w.warn(`pipe "${$}" re-registered`);N1.set($,Z)}function O1($){return N1.delete($)}function A1(){return[...N1.keys()]}function S1($){return N1.get($)}function b($){if($==null)return"";if(typeof $==="string")return $;if(typeof $==="number"||typeof $==="boolean"||typeof $==="bigint")return String($);if(typeof $==="symbol")return $.description??"";if(typeof $==="function")return $.name;if($ instanceof Date)return Number.isNaN($.getTime())?"":$.toISOString();if(Array.isArray($))return $.map(b).join(", ");try{return JSON.stringify($)??""}catch{return""}}var w0=-1,J0=new Map,p4=/\{\{\s*(.+?)\s*\}\}/g;function o($){return typeof $==="string"&&$.includes("{{")&&$.includes("}}")}function t($,Z,J){let q=$.trim();if(q.startsWith("{{")&&q.endsWith("}}")&&r4(q,"{{")===1){let Q=q.slice(2,-2).trim();return b0(Q,Z,J)}return $.replace(p4,(Q,Y)=>{let U=b0(Y.trim(),Z,J);return b(U)})}function b0($,Z,J){let[q,...Q]=n4($),Y=a(q.trim(),Z,J);for(let U of Q)Y=c4(U.trim(),Y,Z,J);return Y}function a($,Z,J){let q=i4($);if(q>=0){let U=$.slice(0,q).trim(),H=$.slice(q+1),W=s4(H);if(W>=0){let _=H.slice(0,W).trim(),E=H.slice(W+1).trim(),G=a(U,Z,J);return G!==null&&G!==void 0&&G!==!1&&G!==0&&G!==""?a(_,Z,J):a(E,Z,J)}}let Q=f1($,"||");if(Q>=0){let U=a($.slice(0,Q).trim(),Z,J);return U!==null&&U!==void 0&&U!==!1&&U!==0&&U!==""?U:a($.slice(Q+2).trim(),Z,J)}let Y=f1($,"&&");if(Y>=0){let U=a($.slice(0,Y).trim(),Z,J);if(U===null||U===void 0||U===!1||U===0||U==="")return U;return a($.slice(Y+2).trim(),Z,J)}for(let[U,H]of d4){let W=f1($,U);if(W>=0){let _=a($.slice(0,W).trim(),Z,J),E=a($.slice(W+U.length).trim(),Z,J);return H(_,E)}}if($.startsWith("!")){let U=a($.slice(1).trim(),Z,J);return U===null||U===void 0||U===!1||U===0||U===""}for(let[U,H]of l4){let W=f1($,U);if(W>=0){let _=a($.slice(0,W).trim(),Z,J),E=a($.slice(W+U.length).trim(),Z,J);return H(Number(_),Number(E))}}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 H=$.slice(0,U),W=$.slice(U+1),_=J[H];return C1(_,W)}return J[$]}if(J){let U=$.split(".")[0];if(U in J)return C1(J[U],$.includes(".")?$.slice(U.length+1):"")}return Z.get($)}function c4($,Z,J,q){let Q=$.indexOf(":"),Y=Q>=0?$.slice(0,Q).trim():$,U=Q>=0?$.slice(Q+1).trim():void 0,H=U?q0(U):void 0;switch(Y){case"find":{if(!Array.isArray(Z)||!U)return;let W=y0(U);if(W.length<2)return;let _=q0(W[0]),E=W[1].trim(),G;if(E.startsWith("'")&&E.endsWith("'")||E.startsWith('"')&&E.endsWith('"'))G=E.slice(1,-1);else if(J){if(q&&E.startsWith("$")){let M=E.indexOf(".");if(M>=0){let z=E.slice(0,M);if(z in q)G=C1(q[z],E.slice(M+1))}else if(E in q)G=q[E]}if(G===void 0&&!(q&&E.startsWith("$")))if(q){let M=E.split(".")[0];G=M in q?C1(q[M],E.includes(".")?E.slice(M.length+1):""):J.get(E)}else G=J.get(E)}else G=E;if(G==null)return;let B=J?.generation??0;if(B!==w0)J0=new Map,w0=B;let K=J0.get(Z);if(!K)K=new Map,J0.set(Z,K);let L=K.get(_);if(!L){L=new Map;for(let M of Z)if(M!=null&&typeof M==="object"){let z=M[_];if(z!=null)L.set(b(z),M)}K.set(_,L)}return L.get(b(G))}case"dot":{if(Z==null||typeof Z!=="object"||typeof H!=="string")return;return Z[H]}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 H==="number")return Z.slice(0,H);return Z;case"join":return Array.isArray(Z)?Z.join(typeof H==="string"?H:", "):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 H==="number"?Number(Number(Z).toFixed(H)):Math.round(Number(Z));case"number":return typeof H==="number"?Number(Number(Z).toFixed(H)):Number(Z);case"currency":{let W=typeof H==="string"?H:"USD";try{return new Intl.NumberFormat("en-US",{style:"currency",currency:W}).format(Number(Z))}catch{return Z}}case"percent":return typeof H==="number"?`${(Number(Z)*100).toFixed(H)}%`:`${Math.round(Number(Z)*100)}%`;case"compact":{let W=typeof H==="number"?H:1;try{return new Intl.NumberFormat("en-US",{notation:"compact",maximumFractionDigits:W}).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 W=Number(Z),_=typeof H==="string"?H:"";return W===1?_:`${_}s`}case"default":return Z==null||Z===""?H:Z;case"selectattr":return Array.isArray(Z)&&typeof H==="string"?Z.filter((W)=>W!=null&&typeof W==="object"&&Boolean(W[H])):Z;case"rejectattr":return Array.isArray(Z)&&typeof H==="string"?Z.filter((W)=>{if(W==null||typeof W!=="object")return!1;let _=W[H];return _==null||_===!1||_===0||_===""}):Z;default:{let W=S1(Y);if(W){let _=U?y0(U).map(q0):[];return W(Z,..._)}return Z}}}var d4=[["!==",($,Z)=>$!==Z],["===",($,Z)=>$===Z],["!=",($,Z)=>$!=Z],["==",($,Z)=>$==Z],[">=",($,Z)=>Number($)>=Number(Z)],["<=",($,Z)=>Number($)<=Number(Z)],[">",($,Z)=>Number($)>Number(Z)],["<",($,Z)=>Number($)<Number(Z)]],l4=[[" + ",($,Z)=>$+Z],[" - ",($,Z)=>$-Z],[" * ",($,Z)=>$*Z],[" / ",($,Z)=>Z!==0?$/Z:0],[" % ",($,Z)=>Z!==0?$%Z:0]];function f1($,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 i4($){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 s4($){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 n4($){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 q0($){let Z=$.replace(/^['"]|['"]$/g,"");if(Z==="true")return!0;if(Z==="false")return!1;let J=Number(Z);return isNaN(J)?Z:J}function y0($){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 C1($,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 r4($,Z){let J=0,q=0;while((q=$.indexOf(Z,q))!==-1)J++,q+=Z.length;return J}function w1($){return $.replace(/_([a-z])/g,(Z,J)=>J.toUpperCase())}function Y0($){let Z={};for(let[J,q]of Object.entries($)){let Q=J.startsWith("$")?J:w1(J);if(Array.isArray(q))Z[Q]=q.map((Y)=>Y!=null&&typeof Y==="object"&&!Array.isArray(Y)?Y0(Y):Y);else if(q!=null&&typeof q==="object"&&!Array.isArray(q))Z[Q]=Y0(q);else Z[Q]=q}return Z}async function h($,Z){let J=Array.isArray($)?$:[$];for(let q of J)await a4(q,Z)}function v($,Z){$.catch((J)=>w.error(`${Z} failed:`,J))}async function m1($,Z,J,q){if(J!=null)w.debug(`${$} failed:`,Z),await W1(J,q,{$error:Z});else w.warn(`${$} failed:`,Z)}async function a4($,Z){let J=Y0($),q=J.action;switch(q){case"setState":{o4(J,Z);return}case"toggleState":{t4(J,Z);return}case"appendState":{e4(J,Z);return}case"popState":{$8(J,Z);return}case"showToast":{Z8(J,Z);return}case"closeOverlay":{J8(J,Z);return}case"openLink":{q8(J);return}case"setInterval":{Y8(J,Z);return}case"toolCall":case"callTool":return U8(J,Z);case"sendMessage":return H8(J,Z);case"updateContext":{W8(J,Z);return}case"fetch":return G8(J,Z);case"openFilePicker":{X8(J,Z);return}case"callHandler":return B8(J,Z);case"requestDisplayMode":{M8(J,Z);return}case"subscribe":{E8(J,Z);return}case"unsubscribe":{z8(J);return}default:w.warn(`Unknown action: ${q}`)}}function o4($,Z){let{key:J,value:q}=$;if(o(q))q=t(q,Z.store,Z.scope);Z.store.set(J,q),Z.rerender(),W1($.onSuccess,Z)}function t4($,Z){Z.store.toggle($.key),Z.rerender()}function e4($,Z){let J=$.value??$.item;if(o(J))J=t(J,Z.store,Z.scope);Z.store.append($.key,J,$.index),Z.rerender()}function $8($,Z){Z.store.pop($.key,$.index),Z.rerender()}function Z8($,Z){Z.onToast?.({message:y1($.message,Z),description:$.description!=null?y1($.description,Z):void 0,variant:$.variant,duration:$.duration})}function J8($,Z){if(typeof document<"u")document.dispatchEvent(new CustomEvent("prefab:close-overlay"))}function q8($){if(typeof window<"u"){let Z=$.url;if(!Z){w.warn("openLink: missing url");return}if(!g0(Z)){w.warn(`Blocked unsafe URL scheme: ${Z}`);return}window.open(Z,$.target??"_blank")}}var b1=new Set,Q8=20,m0=100;function Y8($,Z){let J=Math.max($.intervalMs,m0),q=$.onTick;if(typeof globalThis.setInterval!=="function")return;if(b1.size>=Q8){w.warn("Max intervals reached, ignoring new setInterval");return}let Q=globalThis.setInterval(()=>v(h(q,Z),"interval action"),J);b1.add(Q)}function h0(){for(let $ of b1)globalThis.clearInterval($);b1.clear()}async function U8($,Z){if(!Z.transport){w.warn("No MCP transport configured for toolCall");return}let J=$.tool,q=U0($.arguments,Z);try{let Q=await Z.transport.callTool(J,q);if($.resultKey!=null)Z.store.set($.resultKey,Q);let Y=h1(Q);if(Y&&Z.remount)Z.remount(Y);else v1(Q,Z),Z.rerender();await W1($.onSuccess,Z,{$result:Q})}catch(Q){await m1("toolCall",Q,$.onError,Z)}}async function H8($,Z){if(!Z.transport){w.warn("No MCP transport configured for sendMessage");return}await Z.transport.sendMessage(y1($.message,Z))}function W8($,Z){let J=$.context;if(J!=null)Z.store.merge(J),Z.rerender()}async function G8($,Z){let J=y1($.url,Z);if(!g0(J)){w.warn(`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}}),H=await U.json().catch(()=>U.text());if($.resultKey!=null)Z.store.set($.resultKey,H);let W=h1(H);if(W&&Z.remount)Z.remount(W);else v1(H,Z),Z.rerender();await W1($.onSuccess,Z,{$result:H})}catch(U){await m1("fetch",U,$.onError,Z)}}function X8($,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(),W1($.onSuccess,Z,{$result:q})}),J.click()}async function B8($,Z){let J=$.handler,q=U0($.arguments,Z);if(!Z.transport){w.warn(`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=h1(Q);if(Y&&Z.remount)Z.remount(Y);else v1(Q,Z),Z.rerender();await W1($.onSuccess,Z,{$result:Q})}catch(Q){await m1("callHandler",Q,$.onError,Z)}}function M8($,Z){if(typeof document<"u")document.dispatchEvent(new CustomEvent("prefab:request-display-mode",{detail:{mode:$.mode}}))}var Q1=new Map,_8=50,N8=2000;function E8($,Z){let{uri:J,stateKey:q}=$;if(!J||!q){w.warn("subscribe: missing uri or stateKey");return}if(Q1.has(J))return;if(Q1.size>=_8){w.warn("Max subscriptions reached, ignoring new subscribe");return}let Q=(G)=>{let B=h1(G);if(B&&Z.remount)Z.remount(B);else{if(!v1(G,Z))Z.store.set(q,G);Z.rerender()}W1($.onData,Z,{$data:G})};if(Z.transport?.subscribe&&Z.transport.capabilities?.subscriptions){let G=Z.transport.subscribe(J,Q);Q1.set(J,G);return}let Y=$.fallbackTool,U=$.fallbackInterval??N8;if(!Y){w.warn("subscribe: host lacks subscriptions and no fallbackTool specified");return}if(!Z.transport){w.warn("No MCP transport configured for subscribe fallback");return}let H=$.fallbackArgs??{},W=Math.max(U,m0),_=Z.transport,E=globalThis.setInterval(()=>{(async()=>{try{let G=U0(H,Z),B=await _.callTool(Y,G);Q(B)}catch(G){m1("subscribe",G,$.onError,Z)}})()},W);Q1.set(J,()=>globalThis.clearInterval(E))}function z8($){let Z=$.uri;if(!Z){w.warn("unsubscribe: missing uri");return}let J=Q1.get(Z);if(J)J(),Q1.delete(Z)}function v0(){for(let[$,Z]of Q1)try{Z()}catch(J){w.warn(`Error cleaning up subscription '${$}':`,J)}Q1.clear()}function h1($){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 K8($){if($==null||typeof $!=="object")return null;let Z=$;if(Q0(Z))return Z;if("structuredContent"in Z){let J=Z.structuredContent;if(J!=null&&typeof J==="object"&&Q0(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"&&Q0(q))return q}catch{}}return null}function Q0($){if(!("$prefab"in $)||!("update"in $))return!1;let Z=$.update;return Z!=null&&typeof Z==="object"&&"state"in Z}function v1($,Z){let J=K8($);if(!J)return!1;let q=J.update;if(Z.store.merge(q.state),q.actions!=null)v(h(q.actions,Z),"update action");return!0}var F8=/^\s*(javascript|vbscript|data):/i;function g0($){return!F8.test($)}function y1($,Z){if(o($)){let J=t($,Z.store,Z.scope);return b(J)}return b($)}function U0($,Z){if(!$)return{};let J={};for(let[q,Q]of Object.entries($))J[q]=o(Q)?t(Q,Z.store,Z.scope):Q;return J}async function W1($,Z,J){if($==null)return;let q={...Z.scope,...J};await h($,{...Z,scope:q})}function W0($){let Z={};for(let[J,q]of Object.entries($)){let Q=J.startsWith("$")?J:w1(J);if(Array.isArray(q))Z[Q]=q.map((Y)=>Y!=null&&typeof Y==="object"&&!Array.isArray(Y)?W0(Y):Y);else if(q!=null&&typeof q==="object"&&!Array.isArray(q))Z[Q]=W0(q);else Z[Q]=q}return Z}class I1{callbacks=[];track($){this.callbacks.push($)}flush(){for(let $ of this.callbacks)try{$()}catch(Z){w.warn("destroy callback error:",Z)}this.callbacks=[]}get size(){return this.callbacks.length}}function L8($){return typeof $==="object"&&"element"in $}var G0=new Map;function X($,Z){if(G0.has($))w.warn(`overriding existing renderer for "${$}"`);G0.set($,Z)}function u($,Z){let J=W0($);if(Z.defs?.[J.type]){let Y={...Z.defs[J.type],...J,type:Z.defs[J.type].type};return u(Y,Z)}let q=G0.get(J.type),Q;if(q){let Y=q(J,Z);if(L8(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(u(Y,Z));if(Q instanceof HTMLElement){if(J.id)Q.id=J.id;if(J.cssClass){let Y=F(J.cssClass,Z);if(Y)Q.className=(Q.className?Q.className+" ":"")+Y}if(J.onClick!=null){if(Q.addEventListener("click",()=>{v(h(J.onClick,l(Z)),"onClick")}),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(),v(h(J.onClick,l(Z)),"onClick")})}}if(J.onMount){let Y=J.onMount,U=l(Z);queueMicrotask(()=>v(h(Y,U),"onMount"))}return Q}function C($,Z,J){if(!$.children)return;Y1($.children,Z,J)}function Y1($,Z,J){let q=0;while(q<$.length){let Q=$[q];if(Q.type==="If")q=D8($,q,Z,J);else if(Q.type==="Elif"||Q.type==="Else")q++;else Z.appendChild(u(Q,J)),q++}}function D8($,Z,J,q){let Q=!1,Y=Z,U=$[Y];if(u0(U.condition,q))H0(U,J,q),Q=!0;Y++;while(Y<$.length){let H=$[Y];if(H.type==="Elif"){if(!Q&&u0(H.condition,q))H0(H,J,q),Q=!0;Y++}else if(H.type==="Else"){if(!Q)H0(H,J,q);Y++;break}else break}return Y}function u0($,Z){if(!$)return!1;if(o($))return Boolean(t($,Z.store,Z.scope));return Boolean(Z.store.get($))}function H0($,Z,J){if(!$.children)return;Y1($.children,Z,J)}function F($,Z){if(o($)){let J=t($,Z.store,Z.scope);return b(J)}return b($)}function d($,Z){if(o($))return t($,Z.store,Z.scope);return $}function l($){return{store:$.store,transport:$.transport,scope:$.scope,rerender:$.rerender,onToast:$.onToast,remount:$.remount}}function N($,Z){let J=document.createElement($);if(Z)J.className=Z;return J}function X0($,Z){return $.textContent=Z,$}function d0(){X("Column",T8),X("Row",O8),X("Grid",x0),X("GridItem",p0),X("Container",I8),X("Div",c0),X("Span",P8),X("Dashboard",x0),X("DashboardItem",p0),X("Pages",R8),X("Page",c0),X("Detail",V8),X("MasterDetail",j8)}function T8($,Z){let J=N("div","pf-column");J.style.display="flex",J.style.flexDirection="column";let q=g1($);if(q!=null)J.style.gap=`${q*4}px`;if($.align!=null)J.style.alignItems=l0($.align);if($.justify!=null)J.style.justifyContent=i0($.justify);return C($,J,Z),J}function O8($,Z){let J=N("div","pf-row");J.style.display="flex",J.style.flexDirection="row";let q=g1($);if(q!=null)J.style.gap=`${q*4}px`;if($.align!=null)J.style.alignItems=l0($.align);if($.justify!=null)J.style.justifyContent=i0($.justify);if($.wrap===!0)J.style.flexWrap="wrap";return C($,J,Z),J}function x0($,Z){let J=N("div","pf-grid");J.style.display="grid";let q=$.columns??3;J.style.gridTemplateColumns=`repeat(${q}, 1fr)`;let Q=g1($);if(Q!=null)J.style.gap=`${Q*4}px`;return C($,J,Z),J}function p0($,Z){let J=N("div","pf-grid-item");if($.colSpan!=null)J.style.gridColumn=`span ${$.colSpan}`;if($.rowSpan!=null)J.style.gridRow=`span ${$.rowSpan}`;return C($,J,Z),J}function I8($,Z){let J=N("div","pf-container");if(J.style.maxWidth=$.maxWidth??"1200px",J.style.margin="0 auto",$.padding!=null)J.style.padding=`${$.padding*4}px`;return C($,J,Z),J}function c0($,Z){let J=N("div","pf-div");return C($,J,Z),J}function P8($,Z){let J=N("span","pf-span");return C($,J,Z),J}function R8($,Z){let J=N("div","pf-pages");return C($,J,Z),J}function V8($,Z){let J=N("div","pf-detail"),q=$.of!=null?d($.of,Z):void 0;if(q!=null&&q!==""&&q!==!1&&q!==0)C($,J,Z);else if($.empty!=null){let Q=$.empty;J.appendChild(u(Q,Z))}return J}function j8($,Z){let J=N("div","pf-master-detail");J.style.display="flex",J.style.flexDirection="row";let q=g1($);if(q!=null)J.style.gap=`${q*4}px`;let Q=$.masterWidth??"33%",Y=$.children??[];if(Y.length>0){let U=N("div","pf-master-detail-master");U.style.width=Q,U.style.flexShrink="0",U.style.overflow="auto",U.appendChild(u(Y[0],Z)),J.appendChild(U)}if(Y.length>1){let U=N("div","pf-master-detail-detail");U.style.flex="1",U.style.overflow="auto",U.appendChild(u(Y[1],Z)),J.appendChild(U)}return J}var k8=/\bgap-(\d+)\b/;function g1($){if($.gap!=null)return $.gap;if(typeof $.cssClass==="string"){let Z=k8.exec($.cssClass);if(Z)return Number(Z[1])}return null}function l0($){return{start:"flex-start",end:"flex-end",center:"center",stretch:"stretch",baseline:"baseline"}[$]??$}function i0($){return{start:"flex-start",end:"flex-end",center:"center",between:"space-between",around:"space-around",evenly:"space-evenly"}[$]??$}var A8={"&":"&","<":"<",">":">",'"':""","'":"'"};function P1($){return $.replace(/[&<>"']/g,(Z)=>A8[Z]??Z)}function n0(){X("Heading",S8),X("H1",($,Z)=>u1($,Z,"h1")),X("H2",($,Z)=>u1($,Z,"h2")),X("H3",($,Z)=>u1($,Z,"h3")),X("H4",($,Z)=>u1($,Z,"h4")),X("Text",f8),X("P",C8),X("Lead",($,Z)=>E1($,Z,"p","pf-lead")),X("Large",($,Z)=>E1($,Z,"span","pf-large")),X("Small",($,Z)=>E1($,Z,"small","pf-small")),X("Muted",($,Z)=>E1($,Z,"p","pf-muted")),X("BlockQuote",($,Z)=>E1($,Z,"blockquote","pf-blockquote")),X("Label",($,Z)=>E1($,Z,"label","pf-label")),X("Link",b8),X("Code",y8),X("Markdown",m8),X("Kbd",h8)}function S8($,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=F($.content,Z),Q}function u1($,Z,J){let q=document.createElement(J);return q.className=`pf-heading pf-${J}`,q.textContent=F($.content,Z),q}function f8($,Z){return X0(N("span","pf-text"),F($.content,Z))}function C8($,Z){return X0(N("p","pf-p"),F($.content,Z))}function E1($,Z,J,q){let Q=document.createElement(J);return Q.className=q,Q.textContent=F($.content,Z),Q}var w8=/^\s*(javascript|vbscript|data):/i;function b8($,Z){let J=document.createElement("a");if(J.className="pf-link",J.textContent=F($.content,Z),$.href!=null){let q=F($.href,Z);if(!w8.test(q))J.href=q}if($.target!=null)J.target=F($.target,Z);return J}function y8($,Z){let J=N("pre","pf-code"),q=N("code");if(q.textContent=F($.content,Z),$.language!=null)q.setAttribute("data-language",$.language);return J.appendChild(q),J}function m8($,Z){let J=N("div","pf-markdown"),q=F($.content,Z);return J.innerHTML=r0(q),J.setAttribute("data-markdown","true"),J}var s0=/^\s*(javascript|vbscript|data):/i;function x1($){let Z=P1($),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(s0.test(Y))return P1(Q);return`<img src="${Y}" alt="${Q}" />`}),Z=Z.replace(/\[([^\]]+)\]\(([^)]+)\)/g,(q,Q,Y)=>{if(s0.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 r0($){let Z=$.replace(/\r\n?/g,`
|
|
1
|
+
(()=>{var{defineProperty:nt,getOwnPropertyNames:Fn,getOwnPropertyDescriptor:Bn}=Object,Jn=Object.prototype.hasOwnProperty;function zn(e){return this[e]}var _n=(e)=>{var t=(Ht??=new WeakMap).get(e),n;if(t)return t;if(t=nt({},"__esModule",{value:!0}),e&&typeof e==="object"||typeof e==="function"){for(var r of Fn(e))if(!Jn.call(t,r))nt(t,r,{get:zn.bind(e,r),enumerable:!(n=Bn(e,r))||n.enumerable})}return Ht.set(e,t),t},Ht;var Vn=(e)=>e;function Wn(e,t){this[e]=Vn.bind(null,t)}var Kn=(e,t)=>{for(var n in t)nt(e,n,{get:t[n],enumerable:!0,configurable:!0,set:Wn.bind(t,n)})};var Ns={};Kn(Ns,{Bridge:()=>me,DestroyRegistry:()=>Se,PrefabRenderer:()=>ne,app:()=>tt,applyHostTheme:()=>Ne,createLogger:()=>ot,createThemeToggle:()=>Te,getLogLevel:()=>$t,isIframe:()=>Ce,isValidWireFormat:()=>Pn,listPipes:()=>Le,log:()=>P,registerComponent:()=>p,registerPipe:()=>xe,setLogLevel:()=>Me,unregisterPipe:()=>ke,validateWireFormat:()=>ve});var Pt={silent:0,error:1,warn:2,info:3,debug:4},rt="warn";function Me(e){rt=e}function $t(){return rt}function ot(e){let t=e?`[prefab:${e}]`:"[prefab]",n=(r,o,s)=>{if(Pt[r]>Pt[rt])return;console[r](`${t} ${o}`,...s)};return{error:(r,...o)=>n("error",r,o),warn:(r,...o)=>n("warn",r,o),info:(r,...o)=>n("info",r,o),debug:(r,...o)=>n("debug",r,o)}}var P=ot();class we{data={};subscribers=new Map;globalSubscribers=new Set;generation=0;constructor(e){if(e)this.data=structuredClone(e)}get(e){return Gn(this.data,e)}getAll(){return this.data}set(e,t){Ot(this.data,e,t),this.notify(e)}toggle(e){let t=this.get(e),n=t==null||t===!1||t===0||t==="";this.set(e,n)}append(e,t,n){let r=this.get(e);if(!Array.isArray(r)){this.set(e,[t]);return}if(n!==void 0)r.splice(n,0,t);else r.push(t);this.notify(e)}pop(e,t){let n=this.get(e);if(!Array.isArray(n))return;if(typeof t==="number")n.splice(t,1);else{let r=n.indexOf(t);if(r>=0)n.splice(r,1)}this.notify(e)}merge(e){for(let[t,n]of Object.entries(e))Ot(this.data,t,n);for(let t of Object.keys(e))this.notify(t)}subscribe(e,t){if(!this.subscribers.has(e))this.subscribers.set(e,new Set);return this.subscribers.get(e)?.add(t),()=>this.subscribers.get(e)?.delete(t)}subscribeAll(e){return this.globalSubscribers.add(e),()=>this.globalSubscribers.delete(e)}notify(e){this.generation++;let t=e.split(".");for(let n=1;n<=t.length;n++){let r=t.slice(0,n).join("."),o=this.subscribers.get(r);if(o)o.forEach((s)=>s())}this.globalSubscribers.forEach((n)=>n())}}function Gn(e,t){let n=t.split("."),r=e;for(let o of n){if(r==null||typeof r!=="object")return;r=r[o]}return r}var qn=new Set(["__proto__","constructor","prototype"]);function Ot(e,t,n){let r=t.split(".");if(r.some((s)=>qn.has(s))){P.warn(`Blocked prototype pollution attempt: ${t}`);return}let o=e;for(let s=0;s<r.length-1;s++){let i=r[s];if(o[i]==null||typeof o[i]!=="object")o[i]={};o=o[i]}o[r[r.length-1]]=n}var ge=new Map;function xe(e,t){if(ge.has(e)&&ge.get(e)!==t)P.warn(`pipe "${e}" re-registered`);ge.set(e,t)}function ke(e){return ge.delete(e)}function Le(){return[...ge.keys()]}function He(e){return ge.get(e)}function O(e){if(e==null)return"";if(typeof e==="string")return e;if(typeof e==="number"||typeof e==="boolean"||typeof e==="bigint")return String(e);if(typeof e==="symbol")return e.description??"";if(typeof e==="function")return e.name;if(e instanceof Date)return Number.isNaN(e.getTime())?"":e.toISOString();if(Array.isArray(e))return e.map(O).join(", ");try{return JSON.stringify(e)??""}catch{return""}}var Dt=-1,st=new Map,Un=/\{\{\s*(.+?)\s*\}\}/g;function Z(e){return typeof e==="string"&&e.includes("{{")&&e.includes("}}")}function Q(e,t,n){let r=e.trim();if(r.startsWith("{{")&&r.endsWith("}}")&&nr(r,"{{")===1){let o=r.slice(2,-2).trim();return jt(o,t,n)}return e.replace(Un,(o,s)=>{let i=jt(s.trim(),t,n);return O(i)})}function jt(e,t,n){let[r,...o]=tr(e),s=Y(r.trim(),t,n);for(let i of o)s=Xn(i.trim(),s,t,n);return s}function Y(e,t,n){let r=Qn(e);if(r>=0){let i=e.slice(0,r).trim(),a=e.slice(r+1),l=er(a);if(l>=0){let c=a.slice(0,l).trim(),u=a.slice(l+1).trim(),d=Y(i,t,n);return d!==null&&d!==void 0&&d!==!1&&d!==0&&d!==""?Y(c,t,n):Y(u,t,n)}}let o=Pe(e,"||");if(o>=0){let i=Y(e.slice(0,o).trim(),t,n);return i!==null&&i!==void 0&&i!==!1&&i!==0&&i!==""?i:Y(e.slice(o+2).trim(),t,n)}let s=Pe(e,"&&");if(s>=0){let i=Y(e.slice(0,s).trim(),t,n);if(i===null||i===void 0||i===!1||i===0||i==="")return i;return Y(e.slice(s+2).trim(),t,n)}for(let[i,a]of Yn){let l=Pe(e,i);if(l>=0){let c=Y(e.slice(0,l).trim(),t,n),u=Y(e.slice(l+i.length).trim(),t,n);return a(c,u)}}if(e.startsWith("!")){let i=Y(e.slice(1).trim(),t,n);return i===null||i===void 0||i===!1||i===0||i===""}for(let[i,a]of Zn){let l=Pe(e,i);if(l>=0){let c=Y(e.slice(0,l).trim(),t,n),u=Y(e.slice(l+i.length).trim(),t,n);return a(Number(c),Number(u))}}if(e==="true")return!0;if(e==="false")return!1;if(e==="null"||e==="undefined")return null;if(/^-?\d+(\.\d+)?$/.test(e))return Number(e);if(e.startsWith("'")&&e.endsWith("'")||e.startsWith('"')&&e.endsWith('"'))return e.slice(1,-1);if(n&&e.startsWith("$")){let i=e.indexOf(".");if(i>=0){let a=e.slice(0,i),l=e.slice(i+1),c=n[a];return $e(c,l)}return n[e]}if(n){let i=e.split(".")[0];if(i in n)return $e(n[i],e.includes(".")?e.slice(i.length+1):"")}return t.get(e)}function Xn(e,t,n,r){let o=e.indexOf(":"),s=o>=0?e.slice(0,o).trim():e,i=o>=0?e.slice(o+1).trim():void 0,a=i?it(i):void 0;switch(s){case"find":{if(!Array.isArray(t)||!i)return;let l=It(i);if(l.length<2)return;let c=it(l[0]),u=l[1].trim(),d;if(u.startsWith("'")&&u.endsWith("'")||u.startsWith('"')&&u.endsWith('"'))d=u.slice(1,-1);else if(n){if(r&&u.startsWith("$")){let f=u.indexOf(".");if(f>=0){let b=u.slice(0,f);if(b in r)d=$e(r[b],u.slice(f+1))}else if(u in r)d=r[u]}if(d===void 0&&!(r&&u.startsWith("$")))if(r){let f=u.split(".")[0];d=f in r?$e(r[f],u.includes(".")?u.slice(f.length+1):""):n.get(u)}else d=n.get(u)}else d=u;if(d==null)return;let g=n?.generation??0;if(g!==Dt)st=new Map,Dt=g;let h=st.get(t);if(!h)h=new Map,st.set(t,h);let y=h.get(c);if(!y){y=new Map;for(let f of t)if(f!=null&&typeof f==="object"){let b=f[c];if(b!=null)y.set(O(b),f)}h.set(c,y)}return y.get(O(d))}case"dot":{if(t==null||typeof t!=="object"||typeof a!=="string")return;return t[a]}case"length":return Array.isArray(t)?t.length:typeof t==="string"?t.length:0;case"upper":return typeof t==="string"?t.toUpperCase():t;case"lower":return typeof t==="string"?t.toLowerCase():t;case"truncate":if(typeof t==="string"&&typeof a==="number")return t.slice(0,a);return t;case"join":return Array.isArray(t)?t.join(typeof a==="string"?a:", "):t;case"first":return Array.isArray(t)?t[0]:t;case"last":return Array.isArray(t)?t[t.length-1]:t;case"abs":return Math.abs(Number(t));case"round":return typeof a==="number"?Number(Number(t).toFixed(a)):Math.round(Number(t));case"number":return typeof a==="number"?Number(Number(t).toFixed(a)):Number(t);case"currency":{let l=typeof a==="string"?a:"USD";try{return new Intl.NumberFormat("en-US",{style:"currency",currency:l}).format(Number(t))}catch{return t}}case"percent":return typeof a==="number"?`${(Number(t)*100).toFixed(a)}%`:`${Math.round(Number(t)*100)}%`;case"compact":{let l=typeof a==="number"?a:1;try{return new Intl.NumberFormat("en-US",{notation:"compact",maximumFractionDigits:l}).format(Number(t))}catch{return t}}case"date":try{return new Date(t).toLocaleDateString()}catch{return t}case"time":try{return new Date(t).toLocaleTimeString()}catch{return t}case"datetime":try{return new Date(t).toLocaleString()}catch{return t}case"pluralize":{let l=Number(t),c=typeof a==="string"?a:"";return l===1?c:`${c}s`}case"default":return t==null||t===""?a:t;case"selectattr":return Array.isArray(t)&&typeof a==="string"?t.filter((l)=>l!=null&&typeof l==="object"&&Boolean(l[a])):t;case"rejectattr":return Array.isArray(t)&&typeof a==="string"?t.filter((l)=>{if(l==null||typeof l!=="object")return!1;let c=l[a];return c==null||c===!1||c===0||c===""}):t;default:{let l=He(s);if(l){let c=i?It(i).map(it):[];return l(t,...c)}return t}}}var Yn=[["!==",(e,t)=>e!==t],["===",(e,t)=>e===t],["!=",(e,t)=>e!=t],["==",(e,t)=>e==t],[">=",(e,t)=>Number(e)>=Number(t)],["<=",(e,t)=>Number(e)<=Number(t)],[">",(e,t)=>Number(e)>Number(t)],["<",(e,t)=>Number(e)<Number(t)]],Zn=[[" + ",(e,t)=>e+t],[" - ",(e,t)=>e-t],[" * ",(e,t)=>e*t],[" / ",(e,t)=>t!==0?e/t:0],[" % ",(e,t)=>t!==0?e%t:0]];function Pe(e,t){let n=null;for(let r=0;r<e.length;r++){let o=e[r];if(o==="'"||o==='"')n=n===o?null:n??o;if(!n&&e.slice(r,r+t.length)===t)return r}return-1}function Qn(e){let t=0,n=null;for(let r=0;r<e.length;r++){let o=e[r];if(o==="'"||o==='"')n=n===o?null:n??o;if(!n){if(o==="(")t++;else if(o===")")t--;else if(o==="?"&&t===0)return r}}return-1}function er(e){let t=0,n=null;for(let r=0;r<e.length;r++){let o=e[r];if(o==="'"||o==='"')n=n===o?null:n??o;if(!n){if(o==="?"||o==="(")t++;else if(o===")")t--;else if(o===":"&&t===0)return r}}return-1}function tr(e){let t=[],n="",r=null;for(let o=0;o<e.length;o++){let s=e[o];if(s==="'"||s==='"')r=r===s?null:r??s;if(s==="|"&&!r)if(e[o+1]==="|")n+="||",o++;else t.push(n),n="";else n+=s}return t.push(n),t}function it(e){let t=e.replace(/^['"]|['"]$/g,"");if(t==="true")return!0;if(t==="false")return!1;let n=Number(t);return isNaN(n)?t:n}function It(e){let t=[],n="",r=null;for(let o of e){if(o==="'"||o==='"')r=r===o?null:r??o;if(o===","&&!r)t.push(n),n="";else n+=o}return t.push(n),t}function $e(e,t){if(!t)return e;let n=t.split("."),r=e;for(let o of n){if(r==null||typeof r!=="object")return;r=r[o]}return r}function nr(e,t){let n=0,r=0;while((r=e.indexOf(t,r))!==-1)n++,r+=t.length;return n}function Oe(e){return e.replace(/_([a-z])/g,(t,n)=>n.toUpperCase())}function lt(e){let t={};for(let[n,r]of Object.entries(e)){let o=n.startsWith("$")?n:Oe(n);if(Array.isArray(r))t[o]=r.map((s)=>s!=null&&typeof s==="object"&&!Array.isArray(s)?lt(s):s);else if(r!=null&&typeof r==="object"&&!Array.isArray(r))t[o]=lt(r);else t[o]=r}return t}async function j(e,t){let n=Array.isArray(e)?e:[e];for(let r of n)await rr(r,t)}function F(e,t){e.catch((n)=>P.error(`${t} failed:`,n))}async function Ie(e,t,n,r){if(n!=null)P.debug(`${e} failed:`,t),await de(n,r,{$error:t});else P.warn(`${e} failed:`,t)}async function rr(e,t){let n=lt(e),r=n.action;switch(r){case"setState":{or(n,t);return}case"toggleState":{sr(n,t);return}case"appendState":{ir(n,t);return}case"popState":{ar(n,t);return}case"showToast":{lr(n,t);return}case"closeOverlay":{dr(n,t);return}case"openLink":{cr(n);return}case"setInterval":{ur(n,t);return}case"toolCall":case"callTool":return fr(n,t);case"sendMessage":return mr(n,t);case"updateContext":{gr(n,t);return}case"fetch":return hr(n,t);case"openFilePicker":{br(n,t);return}case"callHandler":return yr(n,t);case"requestDisplayMode":{Cr(n,t);return}case"subscribe":{xr(n,t);return}case"unsubscribe":{kr(n);return}default:P.warn(`Unknown action: ${r}`)}}function or(e,t){let{key:n,value:r}=e;if(Z(r))r=Q(r,t.store,t.scope);t.store.set(n,r),t.rerender(),de(e.onSuccess,t)}function sr(e,t){t.store.toggle(e.key),t.rerender()}function ir(e,t){let n=e.value??e.item;if(Z(n))n=Q(n,t.store,t.scope);t.store.append(e.key,n,e.index),t.rerender()}function ar(e,t){t.store.pop(e.key,e.index),t.rerender()}function lr(e,t){t.onToast?.({message:je(e.message,t),description:e.description!=null?je(e.description,t):void 0,variant:e.variant,duration:e.duration})}function dr(e,t){if(typeof document<"u")document.dispatchEvent(new CustomEvent("prefab:close-overlay"))}function cr(e){if(typeof window<"u"){let t=e.url;if(!t){P.warn("openLink: missing url");return}if(!zt(t)){P.warn(`Blocked unsafe URL scheme: ${t}`);return}window.open(t,e.target??"_blank")}}var De=new Set,pr=20,Ft=100;function ur(e,t){let n=Math.max(e.intervalMs,Ft),r=e.onTick;if(typeof globalThis.setInterval!=="function")return;if(De.size>=pr){P.warn("Max intervals reached, ignoring new setInterval");return}let o=globalThis.setInterval(()=>F(j(r,t),"interval action"),n);De.add(o)}function Bt(){for(let e of De)globalThis.clearInterval(e);De.clear()}async function fr(e,t){if(!t.transport){P.warn("No MCP transport configured for toolCall");return}let n=e.tool,r=dt(e.arguments,t);try{let o=await t.transport.callTool(n,r);if(e.resultKey!=null)t.store.set(e.resultKey,o);let s=Fe(o);if(s&&t.remount)t.remount(s);else Be(o,t),t.rerender();await de(e.onSuccess,t,{$result:o})}catch(o){await Ie("toolCall",o,e.onError,t)}}async function mr(e,t){if(!t.transport){P.warn("No MCP transport configured for sendMessage");return}await t.transport.sendMessage(je(e.message,t))}function gr(e,t){let n=e.context;if(n!=null)t.store.merge(n),t.rerender()}async function hr(e,t){let n=je(e.url,t);if(!zt(n)){P.warn(`Blocked unsafe URL in fetch: ${n}`);return}let r=e.method??"GET",o=e.headers,s=e.body!==void 0?JSON.stringify(e.body):void 0;try{let i=await globalThis.fetch(n,{method:r,headers:{"Content-Type":"application/json",...o},...s&&{body:s}}),a=await i.json().catch(()=>i.text());if(e.resultKey!=null)t.store.set(e.resultKey,a);let l=Fe(a);if(l&&t.remount)t.remount(l);else Be(a,t),t.rerender();await de(e.onSuccess,t,{$result:a})}catch(i){await Ie("fetch",i,e.onError,t)}}function br(e,t){if(typeof document>"u")return;let n=document.createElement("input");if(n.type="file",e.accept!=null)n.accept=e.accept;if(e.multiple===!0)n.multiple=!0;n.addEventListener("change",()=>{let r=Array.from(n.files??[]);if(e.resultKey!=null)t.store.set(e.resultKey,r);t.rerender(),de(e.onSuccess,t,{$result:r})}),n.click()}async function yr(e,t){let n=e.handler,r=dt(e.arguments,t);if(!t.transport){P.warn(`No transport configured for callHandler: ${n}`);return}try{let o=await t.transport.callTool(n,r);if(e.resultKey!=null)t.store.set(e.resultKey,o);let s=Fe(o);if(s&&t.remount)t.remount(s);else Be(o,t),t.rerender();await de(e.onSuccess,t,{$result:o})}catch(o){await Ie("callHandler",o,e.onError,t)}}function Cr(e,t){if(typeof document<"u")document.dispatchEvent(new CustomEvent("prefab:request-display-mode",{detail:{mode:e.mode}}))}var se=new Map,vr=50,wr=2000;function xr(e,t){let{uri:n,stateKey:r}=e;if(!n||!r){P.warn("subscribe: missing uri or stateKey");return}if(se.has(n))return;if(se.size>=vr){P.warn("Max subscriptions reached, ignoring new subscribe");return}let o=(d)=>{let g=Fe(d);if(g&&t.remount)t.remount(g);else{if(!Be(d,t))t.store.set(r,d);t.rerender()}de(e.onData,t,{$data:d})};if(t.transport?.subscribe&&t.transport.capabilities?.subscriptions){let d=t.transport.subscribe(n,o);se.set(n,d);return}let s=e.fallbackTool,i=e.fallbackInterval??wr;if(!s){P.warn("subscribe: host lacks subscriptions and no fallbackTool specified");return}if(!t.transport){P.warn("No MCP transport configured for subscribe fallback");return}let a=e.fallbackArgs??{},l=Math.max(i,Ft),c=t.transport,u=globalThis.setInterval(()=>{(async()=>{try{let d=dt(a,t),g=await c.callTool(s,d);o(g)}catch(d){Ie("subscribe",d,e.onError,t)}})()},l);se.set(n,()=>globalThis.clearInterval(u))}function kr(e){let t=e.uri;if(!t){P.warn("unsubscribe: missing uri");return}let n=se.get(t);if(n)n(),se.delete(t)}function Jt(){for(let[e,t]of se)try{t()}catch(n){P.warn(`Error cleaning up subscription '${e}':`,n)}se.clear()}function Fe(e){if(e==null||typeof e!=="object")return null;let t=e;if("$prefab"in t&&"view"in t)return t;if("structuredContent"in t){let n=t.structuredContent;if(n!=null&&typeof n==="object"){let r=n;if("$prefab"in r&&"view"in r)return r}}if("content"in t&&Array.isArray(t.content)){for(let n of t.content)if(n.type==="text"&&typeof n.text==="string")try{let r=JSON.parse(n.text);if(r!=null&&typeof r==="object"){let o=r;if("$prefab"in o&&"view"in o)return o}}catch{}}return null}function Sr(e){if(e==null||typeof e!=="object")return null;let t=e;if(at(t))return t;if("structuredContent"in t){let n=t.structuredContent;if(n!=null&&typeof n==="object"&&at(n))return n}if("content"in t&&Array.isArray(t.content)){for(let n of t.content)if(n.type==="text"&&typeof n.text==="string")try{let r=JSON.parse(n.text);if(r!=null&&typeof r==="object"&&at(r))return r}catch{}}return null}function at(e){if(!("$prefab"in e)||!("update"in e))return!1;let t=e.update;return t!=null&&typeof t==="object"&&"state"in t}function Be(e,t){let n=Sr(e);if(!n)return!1;let r=n.update;if(t.store.merge(r.state),r.actions!=null)F(j(r.actions,t),"update action");return!0}var Er=/^\s*(javascript|vbscript|data):/i;function zt(e){return!Er.test(e)}function je(e,t){if(Z(e)){let n=Q(e,t.store,t.scope);return O(n)}return O(e)}function dt(e,t){if(!e)return{};let n={};for(let[r,o]of Object.entries(e))n[r]=Z(o)?Q(o,t.store,t.scope):o;return n}async function de(e,t,n){if(e==null)return;let r={...t.scope,...n};await j(e,{...t,scope:r})}function pt(e){let t={};for(let[n,r]of Object.entries(e)){let o=n.startsWith("$")?n:Oe(n);if(Array.isArray(r))t[o]=r.map((s)=>s!=null&&typeof s==="object"&&!Array.isArray(s)?pt(s):s);else if(r!=null&&typeof r==="object"&&!Array.isArray(r))t[o]=pt(r);else t[o]=r}return t}class Se{callbacks=[];track(e){this.callbacks.push(e)}flush(){for(let e of this.callbacks)try{e()}catch(t){P.warn("destroy callback error:",t)}this.callbacks=[]}get size(){return this.callbacks.length}}function Ar(e){return typeof e==="object"&&"element"in e}var Je=new Map;function p(e,t){if(Je.has(e))P.warn(`overriding existing renderer for "${e}"`);Je.set(e,t)}function ut(){return[...Je.keys()].sort()}var _t=new Set;function Wt(e){_t.clear();for(let t of e)_t.add(t)}function J(e,t){let n=pt(e);if(t.defs?.[n.type]){let s={...t.defs[n.type],...n,type:t.defs[n.type].type};return J(s,t)}let r=Je.get(n.type),o;if(r){let s=r(n,t);if(Ar(s))o=s.element,t.destroyRegistry?.track(s.destroy);else o=s}else if(o=document.createElement("div"),o.setAttribute("data-prefab-type",n.type),n.children)for(let s of n.children)o.appendChild(J(s,t));if(o instanceof HTMLElement){if(n.id)o.id=n.id;if(n.cssClass){let s=C(n.cssClass,t);if(s)o.className=(o.className?o.className+" ":"")+s}if(n.onClick!=null){if(o.addEventListener("click",()=>{F(j(n.onClick,W(t)),"onClick")}),o.tagName!=="BUTTON"&&o.tagName!=="A")o.setAttribute("role","button"),o.setAttribute("tabindex","0"),o.addEventListener("keydown",(s)=>{let i=s.key;if(i==="Enter"||i===" ")s.preventDefault(),F(j(n.onClick,W(t)),"onClick")})}}if(n.onMount){let s=n.onMount,i=W(t);queueMicrotask(()=>F(j(s,i),"onMount"))}return o}function H(e,t,n){if(!e.children)return;ie(e.children,t,n)}function ie(e,t,n){let r=0;while(r<e.length){let o=e[r];if(o.type==="If")r=Rr(e,r,t,n);else if(o.type==="Elif"||o.type==="Else")r++;else t.appendChild(J(o,n)),r++}}function Rr(e,t,n,r){let o=!1,s=t,i=e[s];if(Vt(i.condition,r))ct(i,n,r),o=!0;s++;while(s<e.length){let a=e[s];if(a.type==="Elif"){if(!o&&Vt(a.condition,r))ct(a,n,r),o=!0;s++}else if(a.type==="Else"){if(!o)ct(a,n,r);s++;break}else break}return s}function Vt(e,t){if(!e)return!1;if(Z(e))return Boolean(Q(e,t.store,t.scope));return Boolean(t.store.get(e))}function ct(e,t,n){if(!e.children)return;ie(e.children,t,n)}function C(e,t){if(Z(e)){let n=Q(e,t.store,t.scope);return O(n)}return O(e)}function K(e,t){if(Z(e))return Q(e,t.store,t.scope);return e}function W(e){return{store:e.store,transport:e.transport,scope:e.scope,rerender:e.rerender,onToast:e.onToast,remount:e.remount}}function m(e,t){let n=document.createElement(e);if(t)n.className=t;return n}function ft(e,t){return e.textContent=t,e}function Ut(){p("Column",Tr),p("Row",Nr),p("Grid",Kt),p("GridItem",Gt),p("Container",Mr),p("Div",qt),p("Span",Lr),p("Dashboard",Kt),p("DashboardItem",Gt),p("Pages",Hr),p("Page",qt),p("Detail",Pr),p("MasterDetail",$r)}function Tr(e,t){let n=m("div","pf-column");n.style.display="flex",n.style.flexDirection="column";let r=ze(e);if(r!=null)n.style.gap=`${r*4}px`;if(e.align!=null)n.style.alignItems=Xt(e.align);if(e.justify!=null)n.style.justifyContent=Yt(e.justify);return H(e,n,t),n}function Nr(e,t){let n=m("div","pf-row");n.style.display="flex",n.style.flexDirection="row";let r=ze(e);if(r!=null)n.style.gap=`${r*4}px`;if(e.align!=null)n.style.alignItems=Xt(e.align);if(e.justify!=null)n.style.justifyContent=Yt(e.justify);if(e.wrap===!0)n.style.flexWrap="wrap";return H(e,n,t),n}function Kt(e,t){let n=m("div","pf-grid");n.style.display="grid";let r=e.columns??3;n.style.gridTemplateColumns=`repeat(${r}, 1fr)`;let o=ze(e);if(o!=null)n.style.gap=`${o*4}px`;return H(e,n,t),n}function Gt(e,t){let n=m("div","pf-grid-item");if(e.colSpan!=null)n.style.gridColumn=`span ${e.colSpan}`;if(e.rowSpan!=null)n.style.gridRow=`span ${e.rowSpan}`;return H(e,n,t),n}function Mr(e,t){let n=m("div","pf-container");if(n.style.maxWidth=e.maxWidth??"1200px",n.style.margin="0 auto",e.padding!=null)n.style.padding=`${e.padding*4}px`;return H(e,n,t),n}function qt(e,t){let n=m("div","pf-div");return H(e,n,t),n}function Lr(e,t){let n=m("span","pf-span");return H(e,n,t),n}function Hr(e,t){let n=m("div","pf-pages");return H(e,n,t),n}function Pr(e,t){let n=m("div","pf-detail"),r=e.of!=null?K(e.of,t):void 0;if(r!=null&&r!==""&&r!==!1&&r!==0)H(e,n,t);else if(e.empty!=null){let o=e.empty;n.appendChild(J(o,t))}return n}function $r(e,t){let n=m("div","pf-master-detail");n.style.display="flex",n.style.flexDirection="row";let r=ze(e);if(r!=null)n.style.gap=`${r*4}px`;let o=e.masterWidth??"33%",s=e.children??[];if(s.length>0){let i=m("div","pf-master-detail-master");i.style.width=o,i.style.flexShrink="0",i.style.overflow="auto",i.appendChild(J(s[0],t)),n.appendChild(i)}if(s.length>1){let i=m("div","pf-master-detail-detail");i.style.flex="1",i.style.overflow="auto",i.appendChild(J(s[1],t)),n.appendChild(i)}return n}var Or=/\bgap-(\d+)\b/;function ze(e){if(e.gap!=null)return e.gap;if(typeof e.cssClass==="string"){let t=Or.exec(e.cssClass);if(t)return Number(t[1])}return null}function Xt(e){return{start:"flex-start",end:"flex-end",center:"center",stretch:"stretch",baseline:"baseline"}[e]??e}function Yt(e){return{start:"flex-start",end:"flex-end",center:"center",between:"space-between",around:"space-around",evenly:"space-evenly"}[e]??e}var Dr={"&":"&","<":"<",">":">",'"':""","'":"'"};function Ee(e){return e.replace(/[&<>"']/g,(t)=>Dr[t]??t)}function Qt(){p("Heading",jr),p("H1",(e,t)=>_e(e,t,"h1")),p("H2",(e,t)=>_e(e,t,"h2")),p("H3",(e,t)=>_e(e,t,"h3")),p("H4",(e,t)=>_e(e,t,"h4")),p("Text",Ir),p("P",Fr),p("Lead",(e,t)=>he(e,t,"p","pf-lead")),p("Large",(e,t)=>he(e,t,"span","pf-large")),p("Small",(e,t)=>he(e,t,"small","pf-small")),p("Muted",(e,t)=>he(e,t,"p","pf-muted")),p("BlockQuote",(e,t)=>he(e,t,"blockquote","pf-blockquote")),p("Label",(e,t)=>he(e,t,"label","pf-label")),p("Link",Jr),p("Code",zr),p("Markdown",_r),p("Kbd",Vr)}function jr(e,t){let n=e.level??2,r=`h${Math.min(Math.max(n,1),6)}`,o=document.createElement(r);return o.className=`pf-heading pf-${r}`,o.textContent=C(e.content,t),o}function _e(e,t,n){let r=document.createElement(n);return r.className=`pf-heading pf-${n}`,r.textContent=C(e.content,t),r}function Ir(e,t){return ft(m("span","pf-text"),C(e.content,t))}function Fr(e,t){return ft(m("p","pf-p"),C(e.content,t))}function he(e,t,n,r){let o=document.createElement(n);return o.className=r,o.textContent=C(e.content,t),o}var Br=/^\s*(javascript|vbscript|data):/i;function Jr(e,t){let n=document.createElement("a");if(n.className="pf-link",n.textContent=C(e.content,t),e.href!=null){let r=C(e.href,t);if(!Br.test(r))n.href=r}if(e.target!=null)n.target=C(e.target,t);return n}function zr(e,t){let n=m("pre","pf-code"),r=m("code");if(r.textContent=C(e.content,t),e.language!=null)r.setAttribute("data-language",e.language);return n.appendChild(r),n}function _r(e,t){let n=m("div","pf-markdown"),r=C(e.content,t);return n.innerHTML=en(r),n.setAttribute("data-markdown","true"),n}var Zt=/^\s*(javascript|vbscript|data):/i;function Ve(e){let t=Ee(e),n=[];return t=t.replace(/`([^`]+)`/g,(r,o)=>(n.push(`<code>${o}</code>`),`CODE${n.length-1}`)),t=t.replace(/!\[([^\]]*)\]\(([^)]+)\)/g,(r,o,s)=>{if(Zt.test(s))return Ee(o);return`<img src="${s}" alt="${o}" />`}),t=t.replace(/\[([^\]]+)\]\(([^)]+)\)/g,(r,o,s)=>{if(Zt.test(s))return o;return`<a href="${s}">${o}</a>`}),t=t.replace(/\*{3}(.+?)\*{3}/g,"<strong><em>$1</em></strong>"),t=t.replace(/_{3}(.+?)_{3}/g,"<strong><em>$1</em></strong>"),t=t.replace(/\*{2}(.+?)\*{2}/g,"<strong>$1</strong>"),t=t.replace(/_{2}(.+?)_{2}/g,"<strong>$1</strong>"),t=t.replace(/\*(.+?)\*/g,"<em>$1</em>"),t=t.replace(/(?<!\w)_(.+?)_(?!\w)/g,"<em>$1</em>"),t=t.replace(/~~(.+?)~~/g,"<del>$1</del>"),t=t.replace(/\uFDD0CODE(\d+)\uFDD0/g,(r,o)=>n[parseInt(o)]),t}function en(e){let t=e.replace(/\r\n?/g,`
|
|
2
2
|
`).split(`
|
|
3
|
-
`),
|
|
4
|
-
`)}</code></pre>`);continue}if(/^(\s*[-*_]\s*){3,}$/.test(
|
|
5
|
-
`))}</blockquote>`);continue}if(/^[\s]*[-*+]\s+/.test(
|
|
6
|
-
`)}function h8($,Z){let J=document.createElement("kbd");return J.className="pf-kbd",J.textContent=F($.content,Z),J}function o0(){X("Card",v8),X("CardHeader",B0("pf-card-header")),X("CardTitle",a0("pf-card-title","h3")),X("CardDescription",a0("pf-card-description","p")),X("CardContent",B0("pf-card-content")),X("CardFooter",B0("pf-card-footer"))}function v8($,Z){let J=N("div","pf-card");return J.style.overflow="hidden",C($,J,Z),J}function B0($){return(Z,J)=>{let q=N("div",$);return q.style.padding="16px 24px",C(Z,q,J),q}}function a0($,Z){return(J,q)=>{let Q=document.createElement(Z);return Q.className=$,Q.textContent=F(J.content,q),Q}}function t0(){X("DataTable",g8),X("Badge",u8),X("Dot",x8),X("Metric",p8),X("Ring",c8),X("Progress",d8),X("Separator",l8),X("Loader",i8),X("Icon",s8),X("Sparkline",n8)}function g8($,Z){let J=N("div","pf-datatable-wrapper"),q=document.createElement("table");q.className="pf-datatable",q.style.width="100%",q.style.borderCollapse="collapse";let Q=$.columns??[],Y=d($.rows,Z),U=$.rowKey,H=$.selected,W=document.createElement("thead"),_=document.createElement("tr");for(let G of Q){let B=document.createElement("th");B.className="pf-datatable-th",B.textContent=G.header??G.key,B.style.padding="8px 12px",B.style.textAlign="left",_.appendChild(B)}W.appendChild(_),q.appendChild(W);let E=document.createElement("tbody");if(Array.isArray(Y)){let G=H!=null?d(H,Z):void 0;for(let B of Y){let K=document.createElement("tr");K.className="pf-datatable-row";let L=B,M=B===null||typeof B!=="object";if(U&&G!=null&&L[U]!=null&&b(L[U])===b(G))K.classList.add("pf-datatable-row-selected");if($.onRowClick!=null&&U)K.style.cursor="pointer",K.addEventListener("click",()=>{let z={...Z.scope,$item:L,$index:Y.indexOf(B)},T=l({...Z,scope:z});v(h($.onRowClick,T),"onRowClick")});for(let z of Q){let T=document.createElement("td");T.className="pf-datatable-td";let P;if(z.accessor)P=d(`{{ $item.${z.accessor} }}`,{...Z,scope:{...Z.scope,$item:L}});else if(P=M?B:L[z.key],z.format&&P!=null)P=d(`{{ __fmtVal | ${z.format} }}`,{...Z,scope:{...Z.scope,__fmtVal:P}});T.textContent=b(P),T.style.padding="8px 12px",K.appendChild(T)}E.appendChild(K)}}if(q.appendChild(E),$.search===!0){let G=document.createElement("input");G.type="text",G.placeholder="Search...",G.className="pf-datatable-search",G.style.marginBottom="8px",G.style.padding="6px 12px",G.style.width="100%",G.style.boxSizing="border-box",G.addEventListener("input",()=>{let B=G.value.toLowerCase(),K=Array.from(E.querySelectorAll("tr"));for(let L of K){let M=(L.textContent??"").toLowerCase();L.style.display=M.includes(B)?"":"none"}}),J.appendChild(G)}return J.appendChild(q),J}function u8($,Z){let J=N("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=F($.label??$.content,Z),r8(J,q),J}function x8($,Z){let J=N("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 p8($,Z){let J=N("div","pf-metric"),q=N("div","pf-metric-label");q.textContent=F($.label,Z),q.style.fontSize="14px",J.appendChild(q);let Q=N("div","pf-metric-value");if(Q.textContent=F($.value,Z),Q.style.fontSize="28px",Q.style.fontWeight="700",J.appendChild(Q),$.delta!=null){let Y=N("span","pf-metric-delta");Y.textContent=F($.delta,Z);let U=$.trend??"",H=$.trendSentiment??"neutral";if(Y.style.fontSize="14px",Y.style.color=H==="positive"?"green":H==="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=N("div","pf-metric-desc");Y.textContent=F($.description,Z),Y.style.fontSize="12px",J.appendChild(Y)}return J}function c8($,Z){let J=N("div","pf-ring"),q=$.size??80,Q=$.thickness??8,Y=Number(d($.value,Z)??0),U=Math.max(0,Math.min(100,Y)),H=(q-Q)/2,W=2*Math.PI*H,_=W*(1-U/100),E=document.createElementNS("http://www.w3.org/2000/svg","svg");E.setAttribute("width",String(q)),E.setAttribute("height",String(q)),E.setAttribute("viewBox",`0 0 ${q} ${q}`);let G=document.createElementNS("http://www.w3.org/2000/svg","circle");G.setAttribute("cx",String(q/2)),G.setAttribute("cy",String(q/2)),G.setAttribute("r",String(H)),G.setAttribute("fill","none"),G.setAttribute("stroke","var(--muted, #e5e7eb)"),G.setAttribute("stroke-width",String(Q));let B=document.createElementNS("http://www.w3.org/2000/svg","circle");if(B.setAttribute("cx",String(q/2)),B.setAttribute("cy",String(q/2)),B.setAttribute("r",String(H)),B.setAttribute("fill","none"),B.setAttribute("stroke","var(--primary, #3b82f6)"),B.setAttribute("stroke-width",String(Q)),B.setAttribute("stroke-dasharray",String(W)),B.setAttribute("stroke-dashoffset",String(_)),B.setAttribute("stroke-linecap","round"),B.style.transform="rotate(-90deg)",B.style.transformOrigin="center",E.appendChild(G),E.appendChild(B),J.appendChild(E),$.label!=null){let K=N("div","pf-ring-label");K.textContent=F($.label,Z),K.style.textAlign="center",K.style.fontSize="12px",J.appendChild(K)}return J}function d8($,Z){let J=N("div","pf-progress");J.setAttribute("role","progressbar");let q=Number(d($.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=N("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 l8($,Z){let J=document.createElement("hr");return J.className="pf-separator",J.style.border="none",J.style.margin="8px 0",J}function i8($,Z){let J=N("div","pf-loader");return J.textContent="⏳",J.style.display="flex",J.style.justifyContent="center",J.style.padding="16px",J}function s8($,Z){let J=N("span","pf-icon");return J.setAttribute("data-icon",F($.name??$.content,Z)),J}function n8($,Z){let J=N("div","pf-sparkline"),q=$.data??[];if(q.length===0)return J;let Q=120,Y=32,U=Math.max(...q),H=Math.min(...q),W=U-H||1,_=document.createElementNS("http://www.w3.org/2000/svg","svg");_.setAttribute("width",String(Q)),_.setAttribute("height",String(Y)),_.setAttribute("viewBox",`0 0 ${Q} ${Y}`);let E=q.length>1?q.length-1:1,G=q.map((K,L)=>{let M=L/E*Q,z=Y-(K-H)/W*(Y-4)-2;return`${M},${z}`}).join(" "),B=document.createElementNS("http://www.w3.org/2000/svg","polyline");return B.setAttribute("points",G),B.setAttribute("fill","none"),B.setAttribute("stroke","var(--primary, #3b82f6)"),B.setAttribute("stroke-width","1.5"),_.appendChild(B),J.appendChild(_),J}function r8($,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 $4(){X("Form",a8),X("Input",o8),X("Textarea",t8),X("Button",e8),X("ButtonGroup",$6),X("Select",Z6),X("SelectOption",J6),X("SelectGroup",p1("pf-select-group")),X("SelectLabel",R1("pf-select-label")),X("SelectSeparator",e0),X("Checkbox",q6),X("Switch",Q6),X("Slider",Y6),X("Radio",H6),X("RadioGroup",W6),X("Combobox",G6),X("ComboboxOption",X6),X("ComboboxGroup",p1("pf-combobox-group")),X("ComboboxLabel",R1("pf-combobox-label")),X("ComboboxSeparator",e0),X("Calendar",B6),X("DatePicker",M6),X("Field",p1("pf-field")),X("FieldTitle",R1("pf-field-title")),X("FieldDescription",R1("pf-field-description")),X("FieldContent",p1("pf-field-content")),X("FieldError",R1("pf-field-error")),X("ChoiceCard",_6)}function a8($,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,H)=>{Y[H]=U}),Z.store.merge(Y),$.onSubmit!=null){let U=l(Z);U.scope={...Z.scope,...Y},v(h($.onSubmit,U),"onSubmit")}}),C($,J,Z),J}function o8($,Z){let J=N("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=F($.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=F($.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=b(Y);q.addEventListener("input",()=>{if(Z.store.set(Q,q.value),$.onChange!=null)v(h($.onChange,{...l(Z),scope:{...Z.scope,$event:q.value}}),"onChange")})}return M0(q),J.appendChild(q),J}function t8($,Z){let J=N("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=F($.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=b(Y);q.addEventListener("input",()=>{if(Z.store.set(Q,q.value),$.onChange!=null)v(h($.onChange,{...l(Z),scope:{...Z.scope,$event:q.value}}),"onChange")})}return M0(q),J.appendChild(q),J}function e8($,Z){let J=document.createElement("button");J.className="pf-button",J.type=$.submit===!0?"submit":"button",J.textContent=F($.label,Z);let q=$.variant??"default";if(J.setAttribute("data-variant",q),U6(J,q),$.size!=null)J.setAttribute("data-size",$.size);if($.disabled===!0)J.disabled=!0;return J}function $6($,Z){let J=N("div","pf-button-group");return J.style.display="flex",J.style.gap="8px",C($,J,Z),J}function Z6($,Z){let J=N("div","pf-select-wrapper"),q=document.createElement("select");if(q.className="pf-select",$.name!=null)q.name=$.name;if(M0(q),$.placeholder!=null){let U=document.createElement("option");U.value="",U.textContent=F($.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 H=document.createElement("option");H.value=U.value??"",H.textContent=U.label??H.value,q.appendChild(H)}if($.children)for(let U of $.children)if(U.type==="SelectOption"){let H=document.createElement("option");H.value=U.value??"",H.textContent=U.label??H.value,q.appendChild(H)}else q.appendChild(u(U,Z));let Y=$.name;if(Y){let U=Z.store.get(Y);if(U!=null)q.value=b(U);q.addEventListener("change",()=>{if(Z.store.set(Y,q.value),$.onChange!=null)v(h($.onChange,{...l(Z),scope:{...Z.scope,$event:q.value}}),"onChange")})}return J.appendChild(q),J}function J6($,Z){return N("span")}function q6($,Z){let J=N("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)v(h($.onChange,{...l(Z),scope:{...Z.scope,$event:q.checked}}),"onChange")})}if(J.appendChild(q),$.label!=null){let Y=N("span");Y.textContent=F($.label,Z),J.appendChild(Y)}return J}function Q6($,Z){let J=N("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)v(h($.onChange,{...l(Z),scope:{...Z.scope,$event:q.checked}}),"onChange")})}if(J.appendChild(q),$.label!=null){let Y=N("span");Y.textContent=F($.label,Z),J.appendChild(Y)}return J}function Y6($,Z){let J=N("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=b($.min);if($.max!=null)q.max=b($.max);if($.step!=null)q.step=b($.step);let Q=$.name;if(Q){let Y=Z.store.get(Q);if(Y!=null)q.value=b(Y);q.addEventListener("input",()=>{if(Z.store.set(Q,Number(q.value)),$.onChange!=null)v(h($.onChange,{...l(Z),scope:{...Z.scope,$event:Number(q.value)}}),"onChange")})}return J.appendChild(q),J}function M0($){$.style.padding="8px 12px",$.style.fontSize="14px",$.style.width="100%",$.style.boxSizing="border-box"}function U6($,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 p1($){return(Z,J)=>{let q=N("div",$);return C(Z,q,J),q}}function R1($){return(Z,J)=>{let q=N("span",$);return q.textContent=F(Z.content,J),q}}function e0(){let $=document.createElement("hr");return $.className="pf-separator",$.style.border="none",$.style.margin="4px 0",$}function H6($,Z){let J=N("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=F($.value,Z),J.appendChild(q),$.label!=null){let Q=N("span","pf-radio-label");Q.textContent=F($.label,Z),J.appendChild(Q)}return J}function W6($,Z){let J=N("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=F($.label,Z),Y.style.fontWeight="500",Y.style.marginBottom="4px",J.appendChild(Y)}C($,J,Z);let q=F($.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===b(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)v(h($.onChange,l(Z)),"onChange")}}),J}function G6($,Z){let J=N("div","pf-combobox"),q=document.createElement("input");if(q.className="pf-combobox-input",q.type="text",q.name=F($.name,Z),$.placeholder!=null)q.placeholder=F($.placeholder,Z);if($.value!==void 0)q.value=F($.value,Z);let Q=q.name,Y=Z.store.get(Q);if(Y!=null)q.value=b(Y);q.style.padding="6px 12px",q.style.borderRadius="6px",q.style.width="100%",q.style.boxSizing="border-box";let U=N("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",C($,U,Z),q.addEventListener("focus",()=>{U.style.display="block"}),q.addEventListener("blur",()=>{setTimeout(()=>{U.style.display="none"},150)}),$.searchable!==!1)q.addEventListener("input",()=>{let H=q.value.toLowerCase();for(let W of Array.from(U.querySelectorAll(".pf-combobox-option"))){let _=(W.textContent??"").toLowerCase();W.style.display=_.includes(H)?"":"none"}});if($.onChange!=null)J.addEventListener("pf-combobox-select",()=>{v(h($.onChange,{...l(Z),scope:{...Z.scope,$event:q.value}}),"onChange")});return J.style.position="relative",J.appendChild(q),J.appendChild(U),J}function X6($,Z){let J=N("div","pf-combobox-option");return J.style.padding="6px 12px",J.style.cursor="pointer",J.textContent=F($.label??$.value,Z),J.dataset.value=F($.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 B6($,Z){let J=N("div","pf-calendar"),q=document.createElement("input");if(q.type="date",q.name=F($.name,Z),$.value!==void 0)q.value=F($.value,Z);let Q=q.name,Y=Z.store.get(Q);if(Y!=null)q.value=b(Y);if($.minDate!=null)q.min=F($.minDate,Z);if($.maxDate!=null)q.max=F($.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)v(h($.onChange,l(Z)),"onChange")}),J.appendChild(q),J}function M6($,Z){let J=N("div","pf-datepicker"),q=document.createElement("input");if(q.type="date",q.name=F($.name,Z),$.placeholder!=null)q.placeholder=F($.placeholder,Z);if($.value!==void 0)q.value=F($.value,Z);let Q=q.name,Y=Z.store.get(Q);if(Y!=null)q.value=b(Y);if($.minDate!=null)q.min=F($.minDate,Z);if($.maxDate!=null)q.max=F($.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)v(h($.onChange,l(Z)),"onChange")}),J.appendChild(q),J}function _6($,Z){let J=N("div","pf-choice-card");if(J.style.padding="16px",J.style.cursor="pointer",J.style.transition="border-color 0.2s",J.dataset.value=F($.value,Z),$.selected===!0)J.dataset.selected="true";if($.label!=null){let q=N("div","pf-choice-card-label");q.textContent=F($.label,Z),q.style.fontWeight="600",J.appendChild(q)}if($.description!=null){let q=N("div","pf-choice-card-description");q.textContent=F($.description,Z),q.style.fontSize="14px",J.appendChild(q)}return C($,J,Z),J}function Z4(){X("Tabs",N6),X("Tab",E6),X("Accordion",z6),X("AccordionItem",K6),X("Dialog",F6),X("Popover",L6),X("Tooltip",D6),X("HoverCard",T6),X("Carousel",O6)}function N6($,Z){let J=N("div","pf-tabs"),q=N("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 H=0;H<$.children.length;H++){let W=$.children[H],_=`pf-tab-${Math.random().toString(36).slice(2,8)}`,E=`pf-panel-${Math.random().toString(36).slice(2,8)}`,G=document.createElement("button");G.type="button",G.className="pf-tab-trigger",G.textContent=W.title??`Tab ${H+1}`,G.setAttribute("role","tab"),G.setAttribute("aria-selected",H===0?"true":"false"),G.setAttribute("aria-controls",E),G.id=_,G.tabIndex=H===0?0:-1,G.style.padding="8px 16px",G.style.border="none",G.style.background="none",G.style.cursor="pointer",G.style.borderBottom="2px solid transparent",G.style.marginBottom="-2px",G.style.fontSize="14px";let B=N("div","pf-tab-panel");if(B.style.display=H===0?"block":"none",B.setAttribute("role","tabpanel"),B.setAttribute("aria-labelledby",_),B.id=E,B.tabIndex=0,C(W,B,Z),G.addEventListener("click",()=>{U(H)}),H===0)G.classList.add("pf-tab-active"),G.style.fontWeight="600";Y.push(G),Q.push(B),q.appendChild(G)}function U(H){Q.forEach((W)=>W.style.display="none"),Y.forEach((W)=>{W.style.borderBottomColor="transparent",W.style.fontWeight="normal",W.classList.remove("pf-tab-active"),W.setAttribute("aria-selected","false"),W.tabIndex=-1}),Q[H].style.display="block",Y[H].classList.add("pf-tab-active"),Y[H].style.fontWeight="600",Y[H].setAttribute("aria-selected","true"),Y[H].tabIndex=0,Y[H].focus()}q.addEventListener("keydown",(H)=>{let W=Y.indexOf(H.target);if(W<0)return;let _;if(H.key==="ArrowRight")_=(W+1)%Y.length;else if(H.key==="ArrowLeft")_=(W-1+Y.length)%Y.length;else if(H.key==="Home")_=0;else if(H.key==="End")_=Y.length-1;else return;H.preventDefault(),U(_)}),J.appendChild(q);for(let H of Q)J.appendChild(H);return J}function E6($,Z){let J=N("div","pf-tab");return C($,J,Z),J}function z6($,Z){let J=N("div","pf-accordion");return C($,J,Z),J}function K6($,Z){let J=N("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=N("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",C($,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 F6($,Z){let J=N("div","pf-dialog-wrapper");if($.trigger!=null){let Y=u($.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=N("h2","pf-dialog-title");Y.textContent=F($.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=N("p","pf-dialog-desc");Y.textContent=F($.description,Z),q.appendChild(Y)}let Q=N("div","pf-dialog-body");if(C($,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 L6($,Z){let J=N("div","pf-popover");J.style.position="relative",J.style.display="inline-block";let q=N("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 Y=N("div","pf-popover-title");Y.textContent=F($.title,Z),Y.style.fontWeight="600",Y.style.marginBottom="4px",q.appendChild(Y)}C($,q,Z);let Q=()=>{q.style.display=q.style.display==="none"?"block":"none"};if($.trigger!=null){let Y=u($.trigger,Z);Y.addEventListener("click",(U)=>{U.stopPropagation(),Q()}),J.appendChild(Y)}else J.addEventListener("click",(Y)=>{if(q.contains(Y.target)&&q.style.display!=="none")return;Q()});return J.appendChild(q),J}function D6($,Z){let J=N("div","pf-tooltip");J.style.position="relative",J.style.display="inline-block";let q=`pf-tip-${Math.random().toString(36).slice(2,8)}`,Q=N("div","pf-tooltip-content");return Q.id=q,Q.setAttribute("role","tooltip"),Q.textContent=F($.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",C($,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 T6($,Z){let J=N("div","pf-hover-card");J.style.position="relative",J.style.display="inline-block";let q=N("div","pf-hover-card-content");if(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",$.trigger!=null)J.appendChild(u($.trigger,Z));return C($,q,Z),J.addEventListener("mouseenter",()=>{q.style.display="block"}),J.addEventListener("mouseleave",()=>{q.style.display="none"}),J.appendChild(q),J}function O6($,Z){let J=N("div","pf-carousel");J.style.position="relative",J.style.overflow="hidden",J.setAttribute("role","region"),J.setAttribute("aria-roledescription","carousel"),J.setAttribute("aria-label",F($.label??"Carousel",Z));let q=N("div","pf-carousel-track");q.style.display="flex",q.style.transition="transform 0.3s ease",C($,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 H=document.createElement("button");H.type="button",H.textContent="›",H.className="pf-carousel-next",H.setAttribute("aria-label","Next slide"),H.style.position="absolute",H.style.right="4px",H.style.top="50%",H.style.transform="translateY(-50%)",H.style.zIndex="10";let W=()=>{q.style.transform=`translateX(-${Q*100}%)`};return U.addEventListener("click",()=>{if(Y===0)return;Q=Math.max(0,Q-1),W()}),H.addEventListener("click",()=>{if(Y===0)return;Q=Math.min(Y-1,Q+1),W()}),J.appendChild(q),J.appendChild(U),J.appendChild(H),J}function J4(){X("ForEach",I6),X("If",q4),X("Elif",P6),X("Else",R6),X("Condition",V6),X("Define",j6),X("Use",k6),X("Slot",A6)}function I6($,Z){let J=document.createDocumentFragment(),q=$.expression;if(!q)return J;let Q;if(o(q)){let U=t(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 H=Q[U],W={...Z.scope,$item:H,$index:U,...Y},_={...Z,scope:W};if($.children)Y1($.children,J,_)}return J}function q4($,Z){if(Q4($.condition,Z)){let q=document.createDocumentFragment();if($.children)Y1($.children,q,Z);return q}return document.createDocumentFragment()}function P6($,Z){return q4($,Z)}function R6($,Z){let J=document.createDocumentFragment();if($.children)Y1($.children,J,Z);return J}function Q4($,Z){if(!$)return!1;if(o($))return Boolean(t($,Z.store,Z.scope));return Boolean(Z.store.get($))}function V6($,Z){let J=document.createDocumentFragment(),q=$.cases,Q=$.else;if(q){for(let Y of q)if(Q4(Y.when,Z)){if(Y.children)Y1(Y.children,J,Z);return J}}if(Q)Y1(Q,J,Z);return J}function j6($,Z){let J=$.name;if(J&&$.children)Z.templates=Z.templates??{},Z.templates[J]=$.children;return document.createDocumentFragment()}function k6($,Z){let J=document.createDocumentFragment(),q=$.def??$.name,Q=Z.templates?.[q];if(!Q)return J;let Y=$.overrides??{},U={...Z.scope,...Y},H={...Z.slots??{},...$.slots??{}};if(Array.isArray($.children))H.default=$.children;let W={...Z,scope:U,slots:H};for(let _ of Q)J.appendChild(u(_,W));return J}function A6($,Z){let J=document.createDocumentFragment(),q=$.name??"default",Y=Z.slots?.[q]??$.children;if(Y)for(let U of Y)J.appendChild(u(U,Z));return J}function Y4(){X("Alert",S6),X("AlertTitle",f6),X("AlertDescription",C6)}function S6($,Z){let J=N("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=N("span","pf-alert-icon");Q.setAttribute("data-icon",$.icon),Q.style.marginRight="8px",J.appendChild(Q)}return C($,J,Z),J}function f6($,Z){let J=N("h5","pf-alert-title");return J.textContent=F($.content,Z),J.style.fontWeight="600",J.style.marginBottom="4px",J}function C6($,Z){let J=N("p","pf-alert-description");return J.textContent=F($.content,Z),J.style.fontSize="14px",J}function U4(){X("Image",w6),X("Audio",b6),X("Video",y6),X("Embed",m6),X("Svg",v6),X("DropZone",g6),X("Mermaid",u6)}function w6($,Z){let J=document.createElement("img");if(J.className="pf-image",J.src=F($.src,Z),$.alt!=null)J.alt=F($.alt,Z);if($.width!=null)J.width=$.width;if($.height!=null)J.height=$.height;return J.style.maxWidth="100%",J}function b6($,Z){let J=document.createElement("audio");return J.className="pf-audio",J.src=F($.src,Z),J.controls=!0,J}function y6($,Z){let J=document.createElement("video");if(J.className="pf-video",J.src=F($.src,Z),J.controls=!0,$.width!=null)J.width=$.width;if($.height!=null)J.height=$.height;return J.style.maxWidth="100%",J}function m6($,Z){let J=N("div","pf-embed"),q=document.createElement("iframe");return q.src=F($.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 h6=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 v6($,Z){let J=N("div","pf-svg"),q=F($.content,Z);if(!q.includes("<svg"))return J;if(!/<svg[^>]*\sxmlns\s*=/.test(q))q=q.replace(/<svg\b/,'<svg xmlns="http://www.w3.org/2000/svg"');let Y=new DOMParser().parseFromString(q,"image/svg+xml").querySelector("svg");if(!Y)return J;return H4(Y),J.appendChild(document.importNode(Y,!0)),J}function H4($){let Z=Array.from($.children);for(let J of Z){if(!h6.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)}H4(J)}}function g6($,Z){let J=N("div","pf-dropzone");return J.style.padding="32px",J.style.textAlign="center",J.style.cursor="pointer",J.textContent=F($.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 u6($,Z){let J=N("div","pf-mermaid");J.setAttribute("data-mermaid","true");let q=F($.content,Z);if(J.textContent=q,typeof globalThis.mermaid<"u")J.classList.add("mermaid"),J.textContent=q;return J}var x6="https://cdn.jsdelivr.net/npm/pdfjs-dist@4.9/build/pdf.min.mjs",p6="https://cdn.jsdelivr.net/npm/pdfjs-dist@4.9/build/pdf.worker.min.mjs",_0=null,c1=null;async function c6(){if(_0)return _0;if(c1)return c1;return c1=import(x6).then(($)=>{let Z=$;return Z.GlobalWorkerOptions.workerSrc=p6,_0=Z,Z}),c1}function G4(){X("PdfViewer",d6)}function d6($,Z){let J=N("div","pf-pdf-viewer"),q=$.src!=null?F($.src,Z):void 0,Q=$.data,Y=$.page!=null?$.page:1,U=$.zoom!=null?$.zoom:"fit-width",H=$.toolbar!==!1,W=$.height!=null?$.height:600;J.style.height=`${W}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 _=N("div","pf-pdf-loading");return _.textContent="Loading PDF…",_.style.display="flex",_.style.alignItems="center",_.style.justifyContent="center",_.style.flex="1",_.style.color="var(--color-text-secondary, #6b7280)",J.appendChild(_),l6(J,_,{src:q,data:Q,initialPage:Y,zoom:U,showToolbar:H}),J}async function l6($,Z,J){try{let q=await c6(),Q;if(J.src)Q={url:J.src};else if(J.data){let B=atob(J.data),K=new Uint8Array(B.length);for(let L=0;L<B.length;L++)K[L]=B.charCodeAt(L);Q={data:K}}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)),H=null,W=null;if(J.showToolbar){let B=i6(Y.numPages,U,{onPrev:()=>{if(U>1)U--,G()},onNext:()=>{if(U<Y.numPages)U++,G()},onPageChange:(K)=>{let L=Math.max(1,Math.min(K,Y.numPages));if(L!==U)U=L,G()}});H=B.pageInput,W=B.pageCount,$.insertBefore(B.el,$.firstChild)}let _=N("div","pf-pdf-canvas-container");_.style.flex="1",_.style.overflow="auto",_.style.display="flex",_.style.justifyContent="center",_.style.padding="8px",$.appendChild(_);let E=document.createElement("canvas");E.style.display="block",E.style.boxShadow="var(--shadow-md, 0 4px 6px -1px rgba(0,0,0,.1))",_.appendChild(E);async function G(){let B=await Y.getPage(U),K=_.clientWidth-16,L,M=B.getViewport({scale:1});if(J.zoom==="fit-width")L=K/M.width;else if(J.zoom==="fit-page"){let P=_.clientHeight-16,A=K/M.width,I=P/M.height;L=Math.min(A,I)}else L=typeof J.zoom==="number"?J.zoom:1;let z=B.getViewport({scale:L});E.width=z.width,E.height=z.height,E.style.width=`${z.width}px`,E.style.height=`${z.height}px`;let T=E.getContext("2d");if(!T)return;if(await B.render({canvasContext:T,viewport:z}).promise,H)H.value=String(U);if(W)W.textContent=`/ ${Y.numPages}`}await G()}catch(q){Z.textContent=`PDF Error: ${q instanceof Error?q.message:String(q)}`,Z.style.color="var(--color-text-danger, #dc2626)"}}function i6($,Z,J){let q=N("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",W4(Q),Q.addEventListener("click",J.onPrev);let Y=document.createElement("button");Y.textContent="›",Y.title="Next page",Y.className="pf-pdf-btn",W4(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 W=parseInt(U.value,10);if(!isNaN(W))J.onPageChange(W)});let H=document.createElement("span");return H.textContent=`/ ${$}`,H.style.color="var(--color-text-secondary, #6b7280)",q.appendChild(Q),q.appendChild(U),q.appendChild(H),q.appendChild(Y),{el:q,pageInput:U,pageCount:H}}function W4($){$.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 l1=["#3b82f6","#10b981","#f59e0b","#ef4444","#8b5cf6","#ec4899"];function G1($,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 e($,Z,J,q,Q){let{tooltip:Y,svgEl:U,wrapper:H}=$;if(Q.length===0)return;let W="";if(q)W+=`<div class="pf-chart-tooltip-label">${d1(q)}</div>`;for(let z of Q)W+='<div class="pf-chart-tooltip-row">',W+=`<span class="pf-chart-tooltip-dot" style="background:${d1(z.color)}"></span>`,W+=`<span>${d1(z.label)}:</span> <strong>${d1(String(z.value))}</strong>`,W+="</div>";Y.innerHTML=W;let _=U.getBoundingClientRect(),E=H.getBoundingClientRect(),G=U.viewBox.baseVal,B=_.width/(G.width||1),K=_.left-E.left+Z*B,L=Y.offsetWidth||100,M=K+12;if(M+L>E.width)M=K-L-12;Y.style.left=`${Math.max(0,M)}px`,Y.style.top="4px",Y.classList.add("pf-visible")}function d1($){return $.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}function X4($,Z,J,q,Q,Y,U,H){let W=Q.plotWidth/J.length;for(let _=0;_<J.length;_++){let E=Q.plotLeft+_*W,G=document.createElementNS("http://www.w3.org/2000/svg","rect");G.setAttribute("x",String(E)),G.setAttribute("y",String(Q.plotTop)),G.setAttribute("width",String(W)),G.setAttribute("height",String(Q.plotHeight)),G.setAttribute("fill","transparent"),G.style.cursor="default";let B=Y?J[_][Y]:void 0,K=B!=null?H?H(B):b(B):void 0,L=q.map((P,A)=>({label:P.label??P.dataKey,value:U(J[_][P.dataKey],P,A),color:P.color??l1[A%l1.length]})),M=E+W/2,z=()=>e($,M,Q.plotTop,K,L),T=()=>$.tooltip.classList.remove("pf-visible");G.addEventListener("mouseenter",z),G.addEventListener("mouseleave",T),G.addEventListener("touchstart",z,{passive:!0}),G.addEventListener("touchend",T,{passive:!0}),Z.appendChild(G)}}function B4($,Z,J,q,Q,Y,U,H,W,_){let E=J.length===1?Q.plotWidth:Q.plotWidth/(J.length-1);for(let G=0;G<J.length;G++){let B=J.length===1?(Q.plotLeft+Q.plotRight)/2:Q.plotLeft+G/(J.length-1)*Q.plotWidth,K=J.length===1?Q.plotLeft:B-E/2,L=J.length===1?Q.plotWidth:E,M=document.createElementNS("http://www.w3.org/2000/svg","rect");M.setAttribute("x",String(Math.max(Q.plotLeft,K))),M.setAttribute("y",String(Q.plotTop)),M.setAttribute("width",String(Math.min(L,Q.plotRight-Math.max(Q.plotLeft,K)))),M.setAttribute("height",String(Q.plotHeight)),M.setAttribute("fill","transparent"),M.style.cursor="default";let z=Y?J[G][Y]:void 0,T=z!=null?_?_(z):b(z):void 0,P=q.map((j,f)=>({label:j.label??j.dataKey,value:U(J[G][j.dataKey],j,f),color:j.color??l1[f%l1.length]})),A=()=>{if(e($,B,Q.plotTop,T,P),H)H.setAttribute("x1",String(B)),H.setAttribute("x2",String(B)),H.setAttribute("opacity","1");if(W)for(let j of W){for(let f of j)f.setAttribute("data-visible","false");j[G]?.setAttribute("data-visible","true")}},I=()=>{if($.tooltip.classList.remove("pf-visible"),H)H.setAttribute("opacity","0");if(W)for(let j of W)for(let f of j)f.setAttribute("data-visible","false")};M.addEventListener("mouseenter",A),M.addEventListener("mouseleave",I),M.addEventListener("touchstart",A,{passive:!0}),M.addEventListener("touchend",I,{passive:!0}),Z.appendChild(M)}}var s=["#3b82f6","#10b981","#f59e0b","#ef4444","#8b5cf6","#ec4899"],J1="var(--muted-foreground, #6b7280)",z1="var(--border, #e5e7eb)",X1="10";function i1($,Z,J,q=!1){let Q=J?44:0,Y=$-(q?44:0),U=10,H=Z-24;return{plotLeft:Q,plotRight:Y,plotTop:10,plotBottom:H,plotWidth:Y-Q,plotHeight:H-10}}function M4($,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 H=0;H<=$+Y*0.01;H+=Y)U.push(Math.round(H*1000)/1000);return U}function N0($,Z,J,q,Q){let Y=M4(J);for(let U of Y){let H=Z.plotBottom-(J>0?U/J*Z.plotHeight:0),W=n("text",{x:Z.plotLeft-6,y:H+3,"text-anchor":"end","font-size":X1,fill:J1});if(W.textContent=K0(U,Q),$.appendChild(W),q&&U>0)$.appendChild(n("line",{x1:Z.plotLeft,y1:H,x2:Z.plotRight,y2:H,stroke:z1,"stroke-width":1,"stroke-dasharray":"4 3"}))}}function E0($,Z,J,q){let Q=M4(J);for(let Y of Q){let U=Z.plotBottom-(J>0?Y/J*Z.plotHeight:0),H=n("text",{x:Z.plotRight+6,y:U+3,"text-anchor":"start","font-size":X1,fill:J1});H.textContent=K0(Y,q),$.appendChild(H)}}function z0($,Z,J,q,Q,Y){for(let U=0;U<Z.length;U++){let H=Z[U][J],W=n("text",{x:q(U),y:Q+14,"text-anchor":"middle","font-size":X1,fill:J1});W.textContent=H==null?"":Y?Y(H):b(H),$.appendChild(W)}}function s1($,Z){$.appendChild(n("line",{x1:Z.plotLeft,y1:Z.plotBottom,x2:Z.plotRight,y2:Z.plotBottom,stroke:J1,"stroke-width":1}))}function $1($,Z,J){if($==null)return"";let q=d(`{{ __v | ${Z} }}`,{...J,scope:{...J.scope,__v:$}});return b(q??$)}function K0($,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 q1($){let Z=$.yAxisFormat??$.valueFormat;return Z&&Z!=="auto"?Z:void 0}function F0($,Z,J){return(q,Q)=>{if(q===null||q===void 0)return"—";if(Q.tooltipFormat)return $1(q,Q.tooltipFormat,$);let Y=Q.yAxisId==="right"?J:Z;return K0(Number(q),Y)}}function U1($,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 n($,Z){let J=document.createElementNS("http://www.w3.org/2000/svg",$);for(let[q,Q]of Object.entries(Z))J.setAttribute(q,String(Q));return J}function n1($,Z){let J=n("text",$);return J.textContent=Z,J}function B1($,Z,J,q){let Q=q*Math.PI/180;return{x:$+J*Math.cos(Q),y:Z-J*Math.sin(Q)}}function L0($,Z,J,q,Q){let Y=Math.max(2,Math.ceil(Math.abs(Q-q)/4)),U=[];for(let H=0;H<=Y;H++){let W=B1($,Z,J,q+(Q-q)*H/Y);U.push(`${H===0?"M":"L"} ${W.x.toFixed(2)} ${W.y.toFixed(2)}`)}return U.join(" ")}function M1($,Z,J){if(J===!1||Z.length<=1)return;let q=N("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=N("div","pf-chart-legend-item");Y.style.display="flex",Y.style.alignItems="center",Y.style.gap="4px";let U=N("span");U.style.width="8px",U.style.height="8px",U.style.borderRadius="50%",U.style.backgroundColor=Z[Q].color??s[Q%s.length];let H=N("span");H.textContent=Z[Q].label??Z[Q].dataKey,Y.appendChild(U),Y.appendChild(H),q.appendChild(Y)}$.appendChild(q)}function N4(){X("BarChart",s6),X("LineChart",_4),X("AreaChart",_4),X("PieChart",n6),X("RadarChart",o6),X("ScatterChart",r6),X("RadialChart",a6),X("Histogram",t6)}function s6($,Z){let J=N("div","pf-chart pf-bar-chart"),q=d($.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,H=$.showGrid===!0,W=$.showYAxisRight===!0,_=$.showTooltip!==!1,E=$.xAxis,G=$.tooltipXKey,B=$.xAxisFormat,K=$.tooltipXFormat,L=Q.filter((O)=>O.yAxisId!=="right"),M=Q.filter((O)=>O.yAxisId==="right"),z=W&&M.length>0,T=L.length>0?Math.max(...q.flatMap((O)=>L.map((D)=>Number(O[D.dataKey]??0))),1):1,P=z?Math.max(...q.flatMap((O)=>M.map((D)=>Number(O[D.dataKey]??0))),1):1,A=400,I=i1(A,Y,U,z),j=U1(A,Y,"Bar");if(U)N0(j,I,T,H,q1($));if(z)E0(j,I,P,$.yAxisRightFormat);s1(j,I);let f=I.plotWidth/q.length,S=f/(Q.length+1);for(let O=0;O<q.length;O++)for(let D=0;D<Q.length;D++){let k=Q[D],y=q[O][k.dataKey];if(y===null||y===void 0)continue;let i=k.yAxisId==="right"?P:T,g=Number(y),R=Math.max(0,g/i*I.plotHeight),p=I.plotLeft+O*f+D*S+S/2,V=document.createElementNS("http://www.w3.org/2000/svg","rect");V.setAttribute("x",String(p)),V.setAttribute("y",String(I.plotBottom-R)),V.setAttribute("width",String(S*0.8)),V.setAttribute("height",String(R)),V.setAttribute("fill",k.color??s[D%s.length]),V.setAttribute("rx","2"),j.appendChild(V)}if(E){let O=B?(D)=>$1(D,B,Z):void 0;z0(j,q,E,(D)=>{return I.plotLeft+D*f+f/2},I.plotBottom,O)}if(_){let O=G1(J,j),D=F0(Z,q1($),$.yAxisRightFormat);X4(O,j,q,Q,I,G??E,D,K?(y)=>$1(y,K,Z):void 0)}return M1(J,Q,$.showLegend),J.appendChild(j),J}function _4($,Z){let J=N("div",`pf-chart pf-${$.type.toLowerCase()}-chart`),q=d($.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,H=$.showGrid===!0,W=$.showYAxisRight===!0,_=$.showTooltip!==!1,E=$.xAxis,G=$.tooltipXKey,B=$.xAxisFormat,K=$.tooltipXFormat,L=Q.filter((D)=>D.yAxisId!=="right"),M=Q.filter((D)=>D.yAxisId==="right"),z=W&&M.length>0,T=L.length>0?Math.max(...q.flatMap((D)=>L.map((k)=>Number(D[k.dataKey]??0))),1):1,P=z?Math.max(...q.flatMap((D)=>M.map((k)=>Number(D[k.dataKey]??0))),1):1,A=400,I=i1(A,Y,U,z),j=U1(A,Y,$.type==="AreaChart"?"Area":"Line"),f=$.type==="AreaChart";if(U)N0(j,I,T,H,q1($));if(z)E0(j,I,P,$.yAxisRightFormat);s1(j,I);let S=[];for(let D=0;D<Q.length;D++){let k=Q[D],y=k.yAxisId==="right",x=y?P:T,i=k.color??s[D%s.length],g=q.map((V,m)=>{let c=V[k.dataKey],r=c===null||c===void 0,H1=q.length===1?(I.plotLeft+I.plotRight)/2:I.plotLeft+m/(q.length-1)*I.plotWidth,f4=r?I.plotBottom:I.plotBottom-Number(c)/x*I.plotHeight;return{x:H1,y:f4,isNull:r}});if(f){let V=[],m=()=>{if(V.length<2){V=[];return}let c=`M ${V[0].x},${I.plotBottom} `+V.map((H1)=>`L ${H1.x},${H1.y}`).join(" ")+` L ${V[V.length-1].x},${I.plotBottom} Z`,r=document.createElementNS("http://www.w3.org/2000/svg","path");r.setAttribute("d",c),r.setAttribute("fill",i),r.setAttribute("opacity","0.15"),j.appendChild(r),V=[]};for(let c of g){if(c.isNull){m();continue}V.push(c)}m()}let R="";for(let V of g){if(V.isNull)continue;let m=g.indexOf(V),c=m===0||g[m-1].isNull;R+=`${c?"M":"L"} ${V.x},${V.y} `}if(R){let V=document.createElementNS("http://www.w3.org/2000/svg","path");if(V.setAttribute("d",R.trim()),V.setAttribute("fill","none"),V.setAttribute("stroke",i),V.setAttribute("stroke-width","2"),y)V.setAttribute("stroke-dasharray","6 3");j.appendChild(V)}let p=[];for(let V of g){let m=document.createElementNS("http://www.w3.org/2000/svg","circle");if(m.setAttribute("cx",String(V.x)),m.setAttribute("cy",String(V.y)),m.setAttribute("r","4"),m.setAttribute("fill",i),m.setAttribute("class","pf-data-dot"),m.setAttribute("data-visible","false"),m.style.pointerEvents="none",V.isNull)m.style.display="none";j.appendChild(m),p.push(m)}S.push(p)}let O=document.createElementNS("http://www.w3.org/2000/svg","line");if(O.setAttribute("class","pf-crosshair"),O.setAttribute("x1",String(I.plotLeft)),O.setAttribute("x2",String(I.plotLeft)),O.setAttribute("y1",String(I.plotTop)),O.setAttribute("y2",String(I.plotBottom)),O.setAttribute("stroke",J1),O.setAttribute("stroke-width","1"),O.setAttribute("stroke-dasharray","3 3"),O.setAttribute("opacity","0"),j.appendChild(O),E){let D=B?(k)=>$1(k,B,Z):void 0;z0(j,q,E,(k)=>{return q.length===1?(I.plotLeft+I.plotRight)/2:I.plotLeft+k/(q.length-1)*I.plotWidth},I.plotBottom,D)}if(_){let D=G1(J,j),k=F0(Z,q1($),$.yAxisRightFormat);B4(D,j,q,Q,I,G??E,k,O,S,K?(x)=>$1(x,K,Z):void 0)}return M1(J,Q,$.showLegend),J.appendChild(j),J}function n6($,Z){let J=N("div","pf-chart pf-pie-chart"),q=d($.data,Z)??[],Q=$.series??[],Y=$.height??300,U=Math.min(Y,300),H=$.showTooltip!==!1,W=$.dataKey??Q[0]?.dataKey,_=$.nameKey??$.tooltipXKey??$.xAxis,E=Q.length>0?Q:W?[{dataKey:W,label:W}]:[];if(q.length===0||!W)return J.textContent="No chart data",J;let G=U1(U,U,"Pie"),B=U/2,K=U/2,L=U/2-10,M=$.tooltipXFormat,z=q1($),T=(f)=>z?$1(f,z,Z):String(f),P=q.map((f)=>Number(f[W]??0)),A=P.reduce((f,S)=>f+S,0);if(A===0)return J.textContent="No chart data",J.appendChild(G),J;let I=H?G1(J,G):void 0,j=-Math.PI/2;for(let f=0;f<P.length;f++){let S=P[f]/A*2*Math.PI,O=j+S,D=S>Math.PI?1:0,k=B+L*Math.cos(j),y=K+L*Math.sin(j),x=B+L*Math.cos(O),i=K+L*Math.sin(O),g=s[f%s.length],R=document.createElementNS("http://www.w3.org/2000/svg","path");if(R.setAttribute("d",`M ${B},${K} L ${k},${y} A ${L},${L} 0 ${D} 1 ${x},${i} Z`),R.setAttribute("fill",g),R.style.cursor="default",I){let p=_?q[f][_]:void 0,V=p!=null?M?$1(p,M,Z):b(p):`Slice ${f+1}`,m=`${(P[f]/A*100).toFixed(1)}%`,c=j+S/2,r=B+L*0.6*Math.cos(c);R.addEventListener("mouseenter",()=>{e(I,r,K,V,[{label:E[0].label??W,value:`${T(P[f])} (${m})`,color:g}])}),R.addEventListener("mouseleave",()=>{I.tooltip.classList.remove("pf-visible")}),R.addEventListener("touchstart",()=>{e(I,r,K,V,[{label:E[0].label??W,value:`${T(P[f])} (${m})`,color:g}])},{passive:!0}),R.addEventListener("touchend",()=>{I.tooltip.classList.remove("pf-visible")},{passive:!0})}G.appendChild(R),j=O}return M1(J,E,$.showLegend),J.appendChild(G),J}function r6($,Z){let J=N("div","pf-chart pf-scatter-chart"),q=d($.data,Z)??[],Q=$.xAxis,Y=$.yAxis,U=$.zAxis,H=$.series??[],W=$.height??300;if(q.length===0||!Q||!Y)return J.textContent="No chart data",J;let _=$.showGrid!==!1,E=$.showTooltip!==!1,G=H[0]?.color??s[0],B=q1($),K=(R)=>B?$1(R,B,Z):String(Math.round(R*100)/100),L=q.map((R)=>Number(R[Q]??0)),M=q.map((R)=>Number(R[Y]??0)),z=Math.min(...L),T=Math.max(...L),P=Math.min(...M),A=Math.max(...M),I=T-z||1,j=A-P||1,f=U?q.map((R)=>Number(R[U]??0)):[],S=U?Math.max(...f,1):1,O=400,D=i1(O,W,!0),k=U1(O,W,"Scatter"),y=(R)=>D.plotLeft+(R-z)/I*D.plotWidth,x=(R)=>D.plotBottom-(R-P)/j*D.plotHeight,i=4;for(let R=0;R<=i;R++){let p=P+j*R/i,V=x(p);if(k.appendChild(n1({x:D.plotLeft-6,y:V+3,"text-anchor":"end","font-size":X1,fill:J1},K(p))),_&&R>0)k.appendChild(n("line",{x1:D.plotLeft,y1:V,x2:D.plotRight,y2:V,stroke:z1,"stroke-width":1,"stroke-dasharray":"4 3"}))}s1(k,D);for(let R of[z,(z+T)/2,T])k.appendChild(n1({x:y(R),y:D.plotBottom+14,"text-anchor":"middle","font-size":X1,fill:J1},String(Math.round(R*100)/100)));let g=E?G1(J,k):void 0;for(let R=0;R<q.length;R++){let p=y(L[R]),V=x(M[R]),m=U?4+Math.sqrt(f[R]/S)*14:4,c=n("circle",{cx:p,cy:V,r:m,fill:G,"fill-opacity":U?0.6:0.85});if(g){let r=[{label:Q,value:K(L[R]),color:G},{label:Y,value:K(M[R]),color:G},...U?[{label:U,value:K(f[R]),color:G}]:[]],H1=H[0]?.label??"Point";c.addEventListener("mouseenter",()=>e(g,p,V,H1,r)),c.addEventListener("mouseleave",()=>g.tooltip.classList.remove("pf-visible")),c.addEventListener("touchstart",()=>e(g,p,V,H1,r),{passive:!0}),c.addEventListener("touchend",()=>g.tooltip.classList.remove("pf-visible"),{passive:!0})}k.appendChild(c)}return M1(J,H,$.showLegend),J.appendChild(k),J}function a6($,Z){let J=N("div","pf-chart pf-radial-chart"),q=d($.data,Z)??[],Q=$.series??[],Y=$.dataKey??Q[0]?.dataKey,U=$.nameKey??$.tooltipXKey??$.xAxis,H=$.height??300;if(q.length===0||!Y)return J.textContent="No chart data",J;let W=Math.min(H,300),_=W/2,E=W/2,G=W/2-10,B=Math.max(0,Math.min($.innerRadius??30,G-10)),K=$.startAngle??180,L=$.endAngle??0,M=$.showTooltip!==!1,z=q.map((D)=>Number(D[Y]??0)),T=Math.max(...z,1),P=U1(W,W,"Radial"),A=(G-B)/q.length,I=Math.max(2,A*0.7),j=q1($),f=(D)=>j?$1(D,j,Z):String(D),S=M?G1(J,P):void 0,O=[];for(let D=0;D<q.length;D++){let k=G-A*D-A/2,y=Q[D]?.color??s[D%s.length],x=z[D]/T,i=K+x*(L-K),g=U?q[D][U]:null,R=g!=null?b(g):Q[D]?.label??Y;O.push({dataKey:R||Y,label:R||Y,color:y}),P.appendChild(n("path",{d:L0(_,E,k,K,L),fill:"none",stroke:z1,"stroke-width":I,"stroke-linecap":"round"}));let p=n("path",{d:L0(_,E,k,K,i),fill:"none",stroke:y,"stroke-width":I,"stroke-linecap":"round"});if(S){let V=B1(_,E,k,(K+i)/2),m=[{label:Y,value:f(z[D]),color:y}],c=R||Y;p.addEventListener("mouseenter",()=>e(S,V.x,V.y,c,m)),p.addEventListener("mouseleave",()=>S.tooltip.classList.remove("pf-visible")),p.addEventListener("touchstart",()=>e(S,V.x,V.y,c,m),{passive:!0}),p.addEventListener("touchend",()=>S.tooltip.classList.remove("pf-visible"),{passive:!0})}P.appendChild(p)}return M1(J,O,$.showLegend),J.appendChild(P),J}function o6($,Z){let J=N("div","pf-chart pf-radar-chart"),q=d($.data,Z)??[],Q=$.series??[],Y=$.axisKey??$.xAxis,U=$.height??300;if(q.length===0||Q.length===0)return J.textContent="No chart data",J;let H=$.filled!==!1,W=$.showDots===!0,_=$.showGrid!==!1,E=$.showTooltip!==!1,G=Math.min(U,320),B=G/2,K=G/2,L=G/2-24,M=q.length,z=Math.max(...q.flatMap((S)=>Q.map((O)=>Number(S[O.dataKey]??0))),1),T=(S)=>90-360*S/M,P=(S)=>S.map((O)=>`${O.x.toFixed(1)},${O.y.toFixed(1)}`).join(" "),A=U1(G,G,"Radar");if(_){for(let O=1;O<=4;O++){let D=L*O/4,k=Array.from({length:M},(y,x)=>B1(B,K,D,T(x)));A.appendChild(n("polygon",{points:P(k),fill:"none",stroke:z1,"stroke-width":1}))}for(let O=0;O<M;O++){let D=B1(B,K,L,T(O));A.appendChild(n("line",{x1:B,y1:K,x2:D.x,y2:D.y,stroke:z1,"stroke-width":1}))}}for(let S=0;S<M;S++){let O=B1(B,K,L+12,T(S)),D=Y?q[S][Y]:null;A.appendChild(n1({x:O.x,y:O.y+3,"text-anchor":"middle","font-size":X1,fill:J1},D!=null?String(D):""))}let I=E?G1(J,A):void 0,j=q1($),f=(S)=>j?$1(S,j,Z):String(S);for(let S=0;S<Q.length;S++){let O=Q[S],D=O.color??s[S%s.length],k=q.map((y,x)=>B1(B,K,Number(y[O.dataKey]??0)/z*L,T(x)));if(A.appendChild(n("polygon",{points:P(k),fill:H?D:"none","fill-opacity":H?0.2:0,stroke:D,"stroke-width":2})),W||I)for(let y=0;y<k.length;y++){let x=n("circle",{cx:k[y].x,cy:k[y].y,r:W?3:6,fill:W?D:"transparent","fill-opacity":W?1:0});if(I){let i=Y?q[y][Y]:null,g=i!=null?b(i):O.label??O.dataKey,R=[{label:O.label??O.dataKey,value:f(Number(q[y][O.dataKey]??0)),color:D}];x.addEventListener("mouseenter",()=>e(I,k[y].x,k[y].y,g,R)),x.addEventListener("mouseleave",()=>I.tooltip.classList.remove("pf-visible")),x.addEventListener("touchstart",()=>e(I,k[y].x,k[y].y,g,R),{passive:!0}),x.addEventListener("touchend",()=>I.tooltip.classList.remove("pf-visible"),{passive:!0})}A.appendChild(x)}}return M1(J,Q,$.showLegend),J.appendChild(A),J}function t6($,Z){let J=N("div","pf-chart pf-histogram"),q=d($.data,Z);if(!q||q.length===0)return J.textContent="No data",J;let Q=q,Y=$.bins??10,U=$.height??200,H=$.color??s[0],W=Math.min(...Q),E=(Math.max(...Q)-W)/Y||1,G=Array(Y).fill(0);for(let T of Q){let P=Math.min(Math.floor((T-W)/E),Y-1);G[P]++}let B=Math.max(...G),K=300,L=U,M=K/Y,z=U1(K,L,"Histogram");for(let T=0;T<Y;T++){let P=B>0?G[T]/B*L:0,A=document.createElementNS("http://www.w3.org/2000/svg","rect");A.setAttribute("x",String(T*M)),A.setAttribute("y",String(L-P)),A.setAttribute("width",String(M-1)),A.setAttribute("height",String(P)),A.setAttribute("fill",H),z.appendChild(A)}return J.appendChild(z),J}function E4(){X("Table",e6),X("TableHead",D0("thead")),X("TableBody",D0("tbody")),X("TableFooter",D0("tfoot")),X("TableRow",$5),X("TableHeader",Z5),X("TableCell",J5),X("TableCaption",q5),X("ExpandableRow",Q5)}function e6($,Z){let J=document.createElement("table");return J.className="pf-table",J.style.width="100%",J.style.borderCollapse="collapse",C($,J,Z),J}function D0($){return(Z,J)=>{let q=document.createElement($);return q.className=`pf-${$}`,C(Z,q,J),q}}function $5($,Z){let J=document.createElement("tr");return J.className="pf-table-row",C($,J,Z),J}function Z5($,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=F($.content,Z),J}function J5($,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 C($,J,Z),J}function q5($,Z){let J=document.createElement("caption");return J.className="pf-table-caption",J.style.padding="8px",J.style.fontSize="14px",J.textContent=F($.content,Z),J}function Q5($,Z){let J=N("div","pf-expandable-row"),q=N("div","pf-expandable-row-summary");q.style.cursor="pointer",q.style.display="flex",q.style.alignItems="center",q.style.gap="8px";let Q=N("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 W of Y)q.appendChild(u(W,Z));let U=N("div","pf-expandable-row-detail");U.style.display="none",U.style.paddingLeft="24px",C($,U,Z);let H=!1;return q.addEventListener("click",()=>{H=!H,U.style.display=H?"block":"none",Q.style.transform=H?"rotate(90deg)":""}),J.appendChild(q),J.appendChild(U),J}var z4=!1;function r1(){if(z4)return;z4=!0,d0(),n0(),o0(),t0(),$4(),Z4(),J4(),Y4(),U4(),G4(),N4(),E4()}function O0($){return $.replace(/[^a-zA-Z0-9_-]/g,"")}function I0($){return $.replace(/[{}<>;]/g,"").replace(/\b(url|expression)\s*\(/gi,"")}function T0($,Z=" "){return Object.entries($).map(([J,q])=>`${Z}--${O0(J)}: ${I0(q)};`).join(`
|
|
7
|
-
`)}function
|
|
8
|
-
${
|
|
9
|
-
}`);if(
|
|
10
|
-
${
|
|
11
|
-
}`),
|
|
3
|
+
`),n=[],r=0;while(r<t.length){let o=t[r];if(o.trimStart().startsWith("```")){let a=o.trimStart().slice(3).trim(),l=[];r++;while(r<t.length&&!t[r].trimStart().startsWith("```"))l.push(Ee(t[r])),r++;r++;let c=a?` data-language="${Ee(a)}"`:"";n.push(`<pre class="pf-code"><code${c}>${l.join(`
|
|
4
|
+
`)}</code></pre>`);continue}if(/^(\s*[-*_]\s*){3,}$/.test(o)){n.push("<hr />"),r++;continue}let s=/^(#{1,6})\s+(.+)$/.exec(o);if(s){let a=s[1].length;n.push(`<h${a}>${Ve(s[2])}</h${a}>`),r++;continue}if(o.startsWith("> ")||o===">"){let a=[];while(r<t.length&&(t[r].startsWith("> ")||t[r]===">"))a.push(t[r].replace(/^>\s?/,"")),r++;n.push(`<blockquote>${en(a.join(`
|
|
5
|
+
`))}</blockquote>`);continue}if(/^[\s]*[-*+]\s+/.test(o)){n.push("<ul>");while(r<t.length&&/^[\s]*[-*+]\s+/.test(t[r]))n.push(`<li>${Ve(t[r].replace(/^[\s]*[-*+]\s+/,""))}</li>`),r++;n.push("</ul>");continue}if(/^[\s]*\d+\.\s+/.test(o)){n.push("<ol>");while(r<t.length&&/^[\s]*\d+\.\s+/.test(t[r]))n.push(`<li>${Ve(t[r].replace(/^[\s]*\d+\.\s+/,""))}</li>`),r++;n.push("</ol>");continue}if(o.trim()===""){r++;continue}let i=[];while(r<t.length&&t[r].trim()!==""&&!/^#{1,6}\s/.test(t[r])&&!/^[-*+]\s/.test(t[r])&&!/^\d+\.\s/.test(t[r])&&!t[r].startsWith("> ")&&!t[r].trimStart().startsWith("```")&&!/^(\s*[-*_]\s*){3,}$/.test(t[r]))i.push(t[r]),r++;n.push(`<p>${i.map(Ve).join("<br />")}</p>`)}return n.join(`
|
|
6
|
+
`)}function Vr(e,t){let n=document.createElement("kbd");return n.className="pf-kbd",n.textContent=C(e.content,t),n}function nn(){p("Card",Wr),p("CardHeader",mt("pf-card-header")),p("CardTitle",tn("pf-card-title","h3")),p("CardDescription",tn("pf-card-description","p")),p("CardContent",mt("pf-card-content")),p("CardFooter",mt("pf-card-footer"))}function Wr(e,t){let n=m("div","pf-card");return n.style.overflow="hidden",H(e,n,t),n}function mt(e){return(t,n)=>{let r=m("div",e);return r.style.padding="16px 24px",H(t,r,n),r}}function tn(e,t){return(n,r)=>{let o=document.createElement(t);return o.className=e,o.textContent=C(n.content,r),o}}function rn(){p("DataTable",Kr),p("Badge",Gr),p("Dot",qr),p("Metric",Ur),p("Ring",Xr),p("Progress",Yr),p("Separator",Zr),p("Loader",Qr),p("Icon",eo),p("Sparkline",to)}function Kr(e,t){let n=m("div","pf-datatable-wrapper"),r=document.createElement("table");r.className="pf-datatable",r.style.width="100%",r.style.borderCollapse="collapse";let o=e.columns??[],s=K(e.rows,t),i=e.rowKey,a=e.selected,l=document.createElement("thead"),c=document.createElement("tr");for(let d of o){let g=document.createElement("th");g.className="pf-datatable-th",g.textContent=d.header??d.key,g.style.padding="8px 12px",g.style.textAlign="left",c.appendChild(g)}l.appendChild(c),r.appendChild(l);let u=document.createElement("tbody");if(Array.isArray(s)){let d=a!=null?K(a,t):void 0;for(let g of s){let h=document.createElement("tr");h.className="pf-datatable-row";let y=g,f=g===null||typeof g!=="object";if(i&&d!=null&&y[i]!=null&&O(y[i])===O(d))h.classList.add("pf-datatable-row-selected");if(e.onRowClick!=null&&i)h.style.cursor="pointer",h.addEventListener("click",()=>{let b={...t.scope,$item:y,$index:s.indexOf(g)},w=W({...t,scope:b});F(j(e.onRowClick,w),"onRowClick")});for(let b of o){let w=document.createElement("td");w.className="pf-datatable-td";let S;if(b.accessor)S=K(`{{ $item.${b.accessor} }}`,{...t,scope:{...t.scope,$item:y}});else if(S=f?g:y[b.key],b.format&&S!=null)S=K(`{{ __fmtVal | ${b.format} }}`,{...t,scope:{...t.scope,__fmtVal:S}});w.textContent=O(S),w.style.padding="8px 12px",h.appendChild(w)}u.appendChild(h)}}if(r.appendChild(u),e.search===!0){let d=document.createElement("input");d.type="text",d.placeholder="Search...",d.className="pf-datatable-search",d.style.marginBottom="8px",d.style.padding="6px 12px",d.style.width="100%",d.style.boxSizing="border-box",d.addEventListener("input",()=>{let g=d.value.toLowerCase(),h=Array.from(u.querySelectorAll("tr"));for(let y of h){let f=(y.textContent??"").toLowerCase();y.style.display=f.includes(g)?"":"none"}}),n.appendChild(d)}return n.appendChild(r),n}function Gr(e,t){let n=m("span","pf-badge"),r=e.variant??"default";return n.setAttribute("data-variant",r),n.style.alignItems="center",n.style.padding="2px 10px",n.style.borderRadius="9999px",n.style.fontSize="12px",n.style.fontWeight="500",n.textContent=C(e.label??e.content,t),no(n,r),n}function qr(e,t){let n=m("span","pf-dot"),r=e.color??"gray";return n.style.display="inline-block",n.style.width="8px",n.style.height="8px",n.style.borderRadius="50%",n.style.backgroundColor=r,n}function Ur(e,t){let n=m("div","pf-metric"),r=m("div","pf-metric-label");r.textContent=C(e.label,t),r.style.fontSize="14px",n.appendChild(r);let o=m("div","pf-metric-value");if(o.textContent=C(e.value,t),o.style.fontSize="28px",o.style.fontWeight="700",n.appendChild(o),e.delta!=null){let s=m("span","pf-metric-delta");s.textContent=C(e.delta,t);let i=e.trend??"",a=e.trendSentiment??"neutral";if(s.style.fontSize="14px",s.style.color=a==="positive"?"green":a==="negative"?"red":"inherit",i==="up")s.textContent="↑ "+s.textContent;else if(i==="down")s.textContent="↓ "+s.textContent;n.appendChild(s)}if(e.description!=null){let s=m("div","pf-metric-desc");s.textContent=C(e.description,t),s.style.fontSize="12px",n.appendChild(s)}return n}function Xr(e,t){let n=m("div","pf-ring"),r=e.size??80,o=e.thickness??8,s=Number(K(e.value,t)??0),i=Math.max(0,Math.min(100,s)),a=(r-o)/2,l=2*Math.PI*a,c=l*(1-i/100),u=document.createElementNS("http://www.w3.org/2000/svg","svg");u.setAttribute("width",String(r)),u.setAttribute("height",String(r)),u.setAttribute("viewBox",`0 0 ${r} ${r}`);let d=document.createElementNS("http://www.w3.org/2000/svg","circle");d.setAttribute("cx",String(r/2)),d.setAttribute("cy",String(r/2)),d.setAttribute("r",String(a)),d.setAttribute("fill","none"),d.setAttribute("stroke","var(--muted, #e5e7eb)"),d.setAttribute("stroke-width",String(o));let g=document.createElementNS("http://www.w3.org/2000/svg","circle");if(g.setAttribute("cx",String(r/2)),g.setAttribute("cy",String(r/2)),g.setAttribute("r",String(a)),g.setAttribute("fill","none"),g.setAttribute("stroke","var(--primary, #3b82f6)"),g.setAttribute("stroke-width",String(o)),g.setAttribute("stroke-dasharray",String(l)),g.setAttribute("stroke-dashoffset",String(c)),g.setAttribute("stroke-linecap","round"),g.style.transform="rotate(-90deg)",g.style.transformOrigin="center",u.appendChild(d),u.appendChild(g),n.appendChild(u),e.label!=null){let h=m("div","pf-ring-label");h.textContent=C(e.label,t),h.style.textAlign="center",h.style.fontSize="12px",n.appendChild(h)}return n}function Yr(e,t){let n=m("div","pf-progress");n.setAttribute("role","progressbar");let r=Number(K(e.value,t)??0),o=e.max??100,s=o>0?Math.max(0,Math.min(100,r/o*100)):0;n.setAttribute("aria-valuenow",String(r)),n.setAttribute("aria-valuemin","0"),n.setAttribute("aria-valuemax",String(o)),n.style.height="8px",n.style.borderRadius="4px",n.style.overflow="hidden";let i=m("div","pf-progress-fill");return i.style.height="100%",i.style.width=`${s}%`,i.style.borderRadius="4px",i.style.transition="width 0.3s ease",n.appendChild(i),n}function Zr(e,t){let n=document.createElement("hr");return n.className="pf-separator",n.style.border="none",n.style.margin="8px 0",n}function Qr(e,t){let n=m("div","pf-loader");return n.textContent="⏳",n.style.display="flex",n.style.justifyContent="center",n.style.padding="16px",n}function eo(e,t){let n=m("span","pf-icon");return n.setAttribute("data-icon",C(e.name??e.content,t)),n}function to(e,t){let n=m("div","pf-sparkline"),r=e.data??[];if(r.length===0)return n;let o=e.width??120,s=e.height??32,i=Math.max(...r),a=Math.min(...r),l=i-a||1,c=document.createElementNS("http://www.w3.org/2000/svg","svg");c.setAttribute("width",String(o)),c.setAttribute("height",String(s)),c.setAttribute("viewBox",`0 0 ${o} ${s}`);let u=r.length>1?r.length-1:1,d=r.map((h,y)=>{let f=y/u*o,b=s-(h-a)/l*(s-4)-2;return`${f},${b}`}).join(" "),g=document.createElementNS("http://www.w3.org/2000/svg","polyline");return g.setAttribute("points",d),g.setAttribute("fill","none"),g.setAttribute("stroke","var(--primary, #3b82f6)"),g.setAttribute("stroke-width","1.5"),c.appendChild(g),n.appendChild(c),n}function no(e,t){let r={success:{bg:"#10b981",fg:"#fff"},warning:{bg:"#f59e0b",fg:"#fff"},info:{bg:"#3b82f6",fg:"#fff"}}[t];if(r)e.style.backgroundColor=r.bg,e.style.color=r.fg}function sn(){p("Form",ro),p("Input",oo),p("Textarea",Ae(so)),p("Button",io),p("ButtonGroup",ao),p("Select",Ae(lo)),p("SelectOption",co),p("SelectGroup",We("pf-select-group")),p("SelectLabel",Re("pf-select-label")),p("SelectSeparator",on),p("Checkbox",po),p("Switch",uo),p("Slider",Ae(fo)),p("Radio",go),p("RadioGroup",ho),p("Combobox",Ae(bo)),p("ComboboxOption",yo),p("ComboboxGroup",We("pf-combobox-group")),p("ComboboxLabel",Re("pf-combobox-label")),p("ComboboxSeparator",on),p("Calendar",Co),p("DatePicker",Ae(vo)),p("Field",We("pf-field")),p("FieldTitle",Re("pf-field-title")),p("FieldDescription",Re("pf-field-description")),p("FieldContent",We("pf-field-content")),p("FieldError",Re("pf-field-error")),p("ChoiceCard",wo)}function ro(e,t){let n=document.createElement("form");return n.className="pf-form",n.addEventListener("submit",(r)=>{r.preventDefault();let o=new FormData(n),s={};if(o.forEach((i,a)=>{s[a]=i}),t.store.merge(s),e.onSubmit!=null){let i=W(t);i.scope={...t.scope,...s},F(j(e.onSubmit,i),"onSubmit")}}),H(e,n,t),n}function an(e,t,n){if(t.label==null)return;let r=document.createElement("label");if(r.className="pf-input-label",r.textContent=C(t.label,n),t.name!=null)r.htmlFor=t.name;r.style.fontSize="14px",r.style.fontWeight="500",e.insertBefore(r,e.firstChild)}function Ae(e){return(t,n)=>{let r=e(t,n);return r.style.display="flex",r.style.flexDirection="column",r.style.gap="4px",an(r,t,n),r}}function oo(e,t){let n=m("div","pf-input-wrapper");n.style.display="flex",n.style.flexDirection="column",n.style.gap="4px",an(n,e,t);let r=document.createElement("input");if(r.className="pf-input",r.type=e.inputType??"text",e.name!=null)r.name=e.name;if(e.name!=null)r.id=`pf-input-${e.name}`;if(e.placeholder!=null)r.placeholder=C(e.placeholder,t);if(e.required===!0)r.required=!0,r.setAttribute("aria-required","true");if(e.error!=null)r.setAttribute("aria-invalid","true");let o=e.name;if(o){let s=t.store.get(o);if(s!=null)r.value=O(s);r.addEventListener("input",()=>{if(t.store.set(o,r.value),e.onChange!=null)F(j(e.onChange,{...W(t),scope:{...t.scope,$event:r.value}}),"onChange")})}return gt(r),n.appendChild(r),n}function so(e,t){let n=m("div","pf-textarea-wrapper"),r=document.createElement("textarea");if(r.className="pf-textarea",e.name!=null)r.name=e.name;if(e.name!=null)r.id=`pf-textarea-${e.name}`;if(e.placeholder!=null)r.placeholder=C(e.placeholder,t);if(e.rows!=null)r.rows=e.rows;if(e.required===!0)r.setAttribute("aria-required","true");let o=e.name;if(o!=null){let s=t.store.get(o);if(s!=null)r.value=O(s);r.addEventListener("input",()=>{if(t.store.set(o,r.value),e.onChange!=null)F(j(e.onChange,{...W(t),scope:{...t.scope,$event:r.value}}),"onChange")})}return gt(r),n.appendChild(r),n}function io(e,t){let n=document.createElement("button");n.className="pf-button",n.type=e.submit===!0?"submit":"button",n.textContent=C(e.label,t);let r=e.variant??"default";if(n.setAttribute("data-variant",r),mo(n,r),e.size!=null)n.setAttribute("data-size",e.size);if(e.disabled===!0)n.disabled=!0;return n}function ao(e,t){let n=m("div","pf-button-group");return n.style.display="flex",n.style.gap="8px",H(e,n,t),n}function lo(e,t){let n=m("div","pf-select-wrapper"),r=document.createElement("select");if(r.className="pf-select",e.name!=null)r.name=e.name;if(gt(r),e.placeholder!=null){let i=document.createElement("option");i.value="",i.textContent=C(e.placeholder,t),i.disabled=!0,i.selected=!0,i.hidden=!0,r.appendChild(i)}let o=e.options;if(Array.isArray(o))for(let i of o){let a=document.createElement("option");a.value=i.value??"",a.textContent=i.label??a.value,r.appendChild(a)}if(e.children)for(let i of e.children)if(i.type==="SelectOption"){let a=document.createElement("option");a.value=i.value??"",a.textContent=i.label??a.value,r.appendChild(a)}else r.appendChild(J(i,t));let s=e.name;if(s){let i=t.store.get(s);if(i!=null)r.value=O(i);r.addEventListener("change",()=>{if(t.store.set(s,r.value),e.onChange!=null)F(j(e.onChange,{...W(t),scope:{...t.scope,$event:r.value}}),"onChange")})}return n.appendChild(r),n}function co(e,t){return m("span")}function po(e,t){let n=m("label","pf-checkbox-wrapper");n.style.display="flex",n.style.alignItems="center",n.style.gap="8px",n.style.cursor="pointer";let r=document.createElement("input");if(r.type="checkbox",r.className="pf-checkbox",e.name!=null)r.name=e.name;if(e.checked===!0)r.checked=!0;let o=e.name;if(o){let s=t.store.get(o);if(typeof s==="boolean")r.checked=s;r.addEventListener("change",()=>{if(t.store.set(o,r.checked),e.onChange!=null)F(j(e.onChange,{...W(t),scope:{...t.scope,$event:r.checked}}),"onChange")})}if(n.appendChild(r),e.label!=null){let s=m("span");s.textContent=C(e.label,t),n.appendChild(s)}return n}function uo(e,t){let n=m("label","pf-switch-wrapper");n.style.display="flex",n.style.alignItems="center",n.style.gap="8px",n.style.cursor="pointer";let r=document.createElement("input");if(r.type="checkbox",r.className="pf-switch",r.setAttribute("role","switch"),e.name!=null)r.name=e.name;let o=e.name;if(o){let s=t.store.get(o);if(typeof s==="boolean")r.checked=s;r.addEventListener("change",()=>{if(t.store.set(o,r.checked),e.onChange!=null)F(j(e.onChange,{...W(t),scope:{...t.scope,$event:r.checked}}),"onChange")})}if(n.appendChild(r),e.label!=null){let s=m("span");s.textContent=C(e.label,t),n.appendChild(s)}return n}function fo(e,t){let n=m("div","pf-slider-wrapper"),r=document.createElement("input");if(r.type="range",r.className="pf-slider",e.name!=null)r.name=e.name;if(e.min!=null)r.min=O(e.min);if(e.max!=null)r.max=O(e.max);if(e.step!=null)r.step=O(e.step);let o=e.name;if(o){let s=t.store.get(o);if(s!=null)r.value=O(s);r.addEventListener("input",()=>{if(t.store.set(o,Number(r.value)),e.onChange!=null)F(j(e.onChange,{...W(t),scope:{...t.scope,$event:Number(r.value)}}),"onChange")})}return n.appendChild(r),n}function gt(e){e.style.padding="8px 12px",e.style.fontSize="14px",e.style.width="100%",e.style.boxSizing="border-box"}function mo(e,t){if(e.style.padding="8px 16px",e.style.fontSize="14px",e.style.fontWeight="500",e.style.cursor="pointer",e.style.border="none",t==="ghost")e.style.backgroundColor="transparent",e.style.color="inherit"}function We(e){return(t,n)=>{let r=m("div",e);return H(t,r,n),r}}function Re(e){return(t,n)=>{let r=m("span",e);return r.textContent=C(t.content,n),r}}function on(){let e=document.createElement("hr");return e.className="pf-separator",e.style.border="none",e.style.margin="4px 0",e}function go(e,t){let n=m("label","pf-radio");n.style.display="flex",n.style.alignItems="center",n.style.gap="8px",n.style.cursor="pointer";let r=document.createElement("input");if(r.type="radio",r.value=C(e.value,t),n.appendChild(r),e.label!=null){let o=m("span","pf-radio-label");o.textContent=C(e.label,t),n.appendChild(o)}return n}function ho(e,t){let n=m("fieldset","pf-radio-group");if(n.style.border="none",n.style.padding="0",n.style.display="flex",n.style.flexDirection="column",n.style.gap="8px",e.label!=null){let s=document.createElement("legend");s.textContent=C(e.label,t),s.style.fontWeight="500",s.style.marginBottom="4px",n.appendChild(s)}H(e,n,t);let r=C(e.name,t),o=t.store.get(r);for(let s of Array.from(n.querySelectorAll('input[type="radio"]')))if(s.name=r,o!=null&&s.value===O(o))s.checked=!0;return n.addEventListener("change",(s)=>{let i=s.target;if(i.type==="radio"){if(t.store.set(r,i.value),e.onChange!=null)F(j(e.onChange,W(t)),"onChange")}}),n}function bo(e,t){let n=m("div","pf-combobox"),r=document.createElement("input");if(r.className="pf-combobox-input",r.type="text",r.name=C(e.name,t),e.placeholder!=null)r.placeholder=C(e.placeholder,t);if(e.value!==void 0)r.value=C(e.value,t);let o=r.name,s=t.store.get(o);if(s!=null)r.value=O(s);r.style.padding="6px 12px",r.style.borderRadius="6px",r.style.width="100%",r.style.boxSizing="border-box";let i=m("div","pf-combobox-dropdown");if(i.style.display="none",i.style.position="absolute",i.style.borderRadius="6px",i.style.maxHeight="200px",i.style.overflowY="auto",i.style.zIndex="50",H(e,i,t),r.addEventListener("focus",()=>{i.style.display="block"}),r.addEventListener("blur",()=>{setTimeout(()=>{i.style.display="none"},150)}),e.searchable!==!1)r.addEventListener("input",()=>{let a=r.value.toLowerCase();for(let l of Array.from(i.querySelectorAll(".pf-combobox-option"))){let c=(l.textContent??"").toLowerCase();l.style.display=c.includes(a)?"":"none"}});if(e.onChange!=null)n.addEventListener("pf-combobox-select",()=>{F(j(e.onChange,{...W(t),scope:{...t.scope,$event:r.value}}),"onChange")});return n.style.position="relative",n.appendChild(r),n.appendChild(i),n}function yo(e,t){let n=m("div","pf-combobox-option");return n.style.padding="6px 12px",n.style.cursor="pointer",n.textContent=C(e.label??e.value,t),n.dataset.value=C(e.value,t),n.addEventListener("mousedown",()=>{let r=n.closest(".pf-combobox"),o=r?.querySelector("input");if(o)o.value=n.dataset.value??"",t.store.set(o.name,o.value),r?.dispatchEvent(new CustomEvent("pf-combobox-select",{bubbles:!1}))}),n}function Co(e,t){let n=m("div","pf-calendar"),r=document.createElement("input");if(r.type="date",r.name=C(e.name,t),e.value!==void 0)r.value=C(e.value,t);let o=r.name,s=t.store.get(o);if(s!=null)r.value=O(s);if(e.minDate!=null)r.min=C(e.minDate,t);if(e.maxDate!=null)r.max=C(e.maxDate,t);return r.style.padding="6px 12px",r.style.borderRadius="6px",r.addEventListener("change",()=>{if(t.store.set(r.name,r.value),e.onChange!=null)F(j(e.onChange,W(t)),"onChange")}),n.appendChild(r),n}function vo(e,t){let n=m("div","pf-datepicker"),r=document.createElement("input");if(r.type="date",r.name=C(e.name,t),e.placeholder!=null)r.placeholder=C(e.placeholder,t);if(e.value!==void 0)r.value=C(e.value,t);let o=r.name,s=t.store.get(o);if(s!=null)r.value=O(s);if(e.minDate!=null)r.min=C(e.minDate,t);if(e.maxDate!=null)r.max=C(e.maxDate,t);return r.style.padding="6px 12px",r.style.borderRadius="6px",r.style.width="100%",r.style.boxSizing="border-box",r.addEventListener("change",()=>{if(t.store.set(r.name,r.value),e.onChange!=null)F(j(e.onChange,W(t)),"onChange")}),n.appendChild(r),n}function wo(e,t){let n=m("div","pf-choice-card");if(n.style.padding="16px",n.style.cursor="pointer",n.style.transition="border-color 0.2s",n.dataset.value=C(e.value,t),e.selected===!0)n.dataset.selected="true";if(e.label!=null){let r=m("div","pf-choice-card-label");r.textContent=C(e.label,t),r.style.fontWeight="600",n.appendChild(r)}if(e.description!=null){let r=m("div","pf-choice-card-description");r.textContent=C(e.description,t),r.style.fontSize="14px",n.appendChild(r)}return H(e,n,t),n}function ln(){p("Tabs",xo),p("Tab",ko),p("Accordion",So),p("AccordionItem",Eo),p("Dialog",Ao),p("Popover",Ro),p("Tooltip",To),p("HoverCard",No),p("Carousel",Mo)}function xo(e,t){let n=m("div","pf-tabs"),r=m("div","pf-tabs-bar");r.setAttribute("role","tablist"),r.style.display="flex",r.style.gap="4px",r.style.marginBottom="12px";let o=[],s=[],i=e.children??[],a=(()=>{let c=e.defaultTab;if(typeof c==="number")return c>=0&&c<i.length?c:0;if(typeof c==="string"){let u=i.findIndex((d)=>d.title===c);return u>=0?u:0}return 0})();if(e.children)for(let c=0;c<e.children.length;c++){let u=e.children[c],d=`pf-tab-${Math.random().toString(36).slice(2,8)}`,g=`pf-panel-${Math.random().toString(36).slice(2,8)}`,h=document.createElement("button");h.type="button",h.className="pf-tab-trigger",h.textContent=u.title??`Tab ${c+1}`,h.setAttribute("role","tab"),h.setAttribute("aria-selected",c===a?"true":"false"),h.setAttribute("aria-controls",g),h.id=d,h.tabIndex=c===a?0:-1,h.style.padding="8px 16px",h.style.border="none",h.style.background="none",h.style.cursor="pointer",h.style.borderBottom="2px solid transparent",h.style.marginBottom="-2px",h.style.fontSize="14px";let y=m("div","pf-tab-panel");if(y.style.display=c===a?"block":"none",y.setAttribute("role","tabpanel"),y.setAttribute("aria-labelledby",d),y.id=g,y.tabIndex=0,H(u,y,t),h.addEventListener("click",()=>{l(c)}),c===a)h.classList.add("pf-tab-active"),h.style.fontWeight="600";s.push(h),o.push(y),r.appendChild(h)}function l(c){o.forEach((u)=>u.style.display="none"),s.forEach((u)=>{u.style.borderBottomColor="transparent",u.style.fontWeight="normal",u.classList.remove("pf-tab-active"),u.setAttribute("aria-selected","false"),u.tabIndex=-1}),o[c].style.display="block",s[c].classList.add("pf-tab-active"),s[c].style.fontWeight="600",s[c].setAttribute("aria-selected","true"),s[c].tabIndex=0,s[c].focus()}r.addEventListener("keydown",(c)=>{let u=s.indexOf(c.target);if(u<0)return;let d;if(c.key==="ArrowRight")d=(u+1)%s.length;else if(c.key==="ArrowLeft")d=(u-1+s.length)%s.length;else if(c.key==="Home")d=0;else if(c.key==="End")d=s.length-1;else return;c.preventDefault(),l(d)}),n.appendChild(r);for(let c of o)n.appendChild(c);return n}function ko(e,t){let n=m("div","pf-tab");return H(e,n,t),n}function So(e,t){let n=m("div","pf-accordion");return H(e,n,t),n}function Eo(e,t){let n=m("div","pf-accordion-item"),r=`pf-acc-${Math.random().toString(36).slice(2,8)}`,o=document.createElement("button");o.type="button",o.className="pf-accordion-trigger",o.textContent=e.title??"",o.setAttribute("aria-expanded","false"),o.setAttribute("aria-controls",r),o.style.width="100%",o.style.textAlign="left",o.style.padding="12px 0",o.style.border="none",o.style.background="none",o.style.cursor="pointer",o.style.fontSize="14px",o.style.fontWeight="500";let s=m("div","pf-accordion-content");return s.id=r,s.setAttribute("role","region"),s.setAttribute("aria-labelledby",o.id),s.style.display="none",s.style.paddingBottom="12px",H(e,s,t),o.addEventListener("click",()=>{let i=s.style.display!=="none";s.style.display=i?"none":"block",o.setAttribute("aria-expanded",i?"false":"true")}),n.appendChild(o),n.appendChild(s),n}function Ao(e,t){let n=m("div","pf-dialog-wrapper");if(e.trigger!=null){let s=J(e.trigger,t);s.addEventListener("click",()=>{r.showModal()}),n.appendChild(s)}let r=document.createElement("dialog");if(r.className="pf-dialog",r.setAttribute("aria-modal","true"),r.style.maxWidth="500px",r.style.width="100%",r.style.padding="24px",e.title!=null){let s=m("h2","pf-dialog-title");s.textContent=C(e.title,t),s.id=`pf-dialog-title-${Math.random().toString(36).slice(2,8)}`,r.setAttribute("aria-labelledby",s.id),r.appendChild(s)}if(e.description!=null){let s=m("p","pf-dialog-desc");s.textContent=C(e.description,t),r.appendChild(s)}let o=m("div","pf-dialog-body");if(H(e,o,t),r.appendChild(o),e.dismissible!==!1)r.addEventListener("click",(s)=>{if(s.target===r)r.close()});return document.addEventListener("prefab:close-overlay",()=>r.close()),n.appendChild(r),n}function Ro(e,t){let n=m("div","pf-popover");n.style.position="relative",n.style.display="inline-block";let r=m("div","pf-popover-content");if(r.style.display="none",r.style.position="absolute",r.style.zIndex="50",r.style.padding="12px",r.style.boxShadow="0 4px 6px -1px rgb(0 0 0 / 0.1)",e.title!=null){let s=m("div","pf-popover-title");s.textContent=C(e.title,t),s.style.fontWeight="600",s.style.marginBottom="4px",r.appendChild(s)}H(e,r,t);let o=()=>{r.style.display=r.style.display==="none"?"block":"none"};if(e.trigger!=null){let s=J(e.trigger,t);s.addEventListener("click",(i)=>{i.stopPropagation(),o()}),n.appendChild(s)}else n.addEventListener("click",(s)=>{if(r.contains(s.target)&&r.style.display!=="none")return;o()});return n.appendChild(r),n}function To(e,t){let n=m("div","pf-tooltip");n.style.position="relative",n.style.display="inline-block";let r=`pf-tip-${Math.random().toString(36).slice(2,8)}`,o=m("div","pf-tooltip-content");return o.id=r,o.setAttribute("role","tooltip"),o.textContent=C(e.content??"",t),o.style.display="none",o.style.position="absolute",o.style.bottom="100%",o.style.left="50%",o.style.transform="translateX(-50%)",o.style.padding="4px 8px",o.style.borderRadius="4px",o.style.color="#fff",o.style.fontSize="12px",o.style.whiteSpace="nowrap",o.style.zIndex="50",H(e,n,t),n.setAttribute("aria-describedby",r),n.addEventListener("mouseenter",()=>{o.style.display="block"}),n.addEventListener("mouseleave",()=>{o.style.display="none"}),n.addEventListener("focus",()=>{o.style.display="block"},!0),n.addEventListener("blur",()=>{o.style.display="none"},!0),n.appendChild(o),n}function No(e,t){let n=m("div","pf-hover-card");n.style.position="relative",n.style.display="inline-block";let r=m("div","pf-hover-card-content");if(r.style.display="none",r.style.position="absolute",r.style.zIndex="50",r.style.padding="16px",r.style.boxShadow="0 4px 6px -1px rgb(0 0 0 / 0.1)",r.style.minWidth="200px",e.trigger!=null)n.appendChild(J(e.trigger,t));return H(e,r,t),n.addEventListener("mouseenter",()=>{r.style.display="block"}),n.addEventListener("mouseleave",()=>{r.style.display="none"}),n.appendChild(r),n}function Mo(e,t){let n=m("div","pf-carousel");n.style.position="relative",n.style.overflow="hidden",n.setAttribute("role","region"),n.setAttribute("aria-roledescription","carousel"),n.setAttribute("aria-label",C(e.label??"Carousel",t));let r=m("div","pf-carousel-track");r.style.display="flex",r.style.transition="transform 0.3s ease",H(e,r,t);let o=0,s=e.children?.length??0,i=document.createElement("button");i.type="button",i.textContent="‹",i.className="pf-carousel-prev",i.setAttribute("aria-label","Previous slide"),i.style.position="absolute",i.style.left="4px",i.style.top="50%",i.style.transform="translateY(-50%)",i.style.zIndex="10";let a=document.createElement("button");a.type="button",a.textContent="›",a.className="pf-carousel-next",a.setAttribute("aria-label","Next slide"),a.style.position="absolute",a.style.right="4px",a.style.top="50%",a.style.transform="translateY(-50%)",a.style.zIndex="10";let l=()=>{r.style.transform=`translateX(-${o*100}%)`};return i.addEventListener("click",()=>{if(s===0)return;o=Math.max(0,o-1),l()}),a.addEventListener("click",()=>{if(s===0)return;o=Math.min(s-1,o+1),l()}),n.appendChild(r),n.appendChild(i),n.appendChild(a),n}function dn(){p("ForEach",Lo),p("If",cn),p("Elif",Ho),p("Else",Po),p("Condition",$o),p("Define",Oo),p("Use",Do),p("Slot",jo)}function Lo(e,t){let n=document.createDocumentFragment(),r=e.expression;if(!r)return n;let o;if(Z(r)){let i=Q(r,t.store,t.scope);o=Array.isArray(i)?i:[]}else{let i=t.store.get(r);o=Array.isArray(i)?i:[]}let s=e.let??{};for(let i=0;i<o.length;i++){let a=o[i],l={...t.scope,$item:a,$index:i,...s},c={...t,scope:l};if(e.children)ie(e.children,n,c)}return n}function cn(e,t){if(pn(e.condition,t)){let r=document.createDocumentFragment();if(e.children)ie(e.children,r,t);return r}return document.createDocumentFragment()}function Ho(e,t){return cn(e,t)}function Po(e,t){let n=document.createDocumentFragment();if(e.children)ie(e.children,n,t);return n}function pn(e,t){if(!e)return!1;if(Z(e))return Boolean(Q(e,t.store,t.scope));return Boolean(t.store.get(e))}function $o(e,t){let n=document.createDocumentFragment(),r=e.cases,o=e.else;if(r){for(let s of r)if(pn(s.when,t)){if(s.children)ie(s.children,n,t);return n}}if(o)ie(o,n,t);return n}function Oo(e,t){let n=e.name;if(n&&e.children)t.templates=t.templates??{},t.templates[n]=e.children;return document.createDocumentFragment()}function Do(e,t){let n=document.createDocumentFragment(),r=e.def??e.name,o=t.templates?.[r];if(!o)return n;let s=e.overrides??{},i={...t.scope,...s},a={...t.slots??{},...e.slots??{}};if(Array.isArray(e.children))a.default=e.children;let l={...t,scope:i,slots:a};for(let c of o)n.appendChild(J(c,l));return n}function jo(e,t){let n=document.createDocumentFragment(),r=e.name??"default",s=t.slots?.[r]??e.children;if(s)for(let i of s)n.appendChild(J(i,t));return n}function un(){p("Alert",Io),p("AlertTitle",Fo),p("AlertDescription",Bo)}function Io(e,t){let n=m("div","pf-alert");n.setAttribute("role","alert");let r=e.variant??"default";if(n.setAttribute("data-variant",r),n.style.padding="12px 16px",e.icon!=null){let o=m("span","pf-alert-icon");o.setAttribute("data-icon",e.icon),o.style.marginRight="8px",n.appendChild(o)}return H(e,n,t),n}function Fo(e,t){let n=m("h5","pf-alert-title");return n.textContent=C(e.content,t),n.style.fontWeight="600",n.style.marginBottom="4px",n}function Bo(e,t){let n=m("p","pf-alert-description");return n.textContent=C(e.content,t),n.style.fontSize="14px",n}function fn(){p("Image",Jo),p("Audio",zo),p("Video",_o),p("Embed",Vo),p("Svg",Ko),p("DropZone",qo),p("Mermaid",Uo)}function Jo(e,t){let n=document.createElement("img");if(n.className="pf-image",n.src=C(e.src,t),e.alt!=null)n.alt=C(e.alt,t);if(e.width!=null)n.width=e.width;if(e.height!=null)n.height=e.height;return n.style.maxWidth="100%",n}function zo(e,t){let n=document.createElement("audio");return n.className="pf-audio",n.src=C(e.src,t),n.controls=!0,n}function _o(e,t){let n=document.createElement("video");if(n.className="pf-video",n.src=C(e.src,t),n.controls=!0,e.width!=null)n.width=e.width;if(e.height!=null)n.height=e.height;return n.style.maxWidth="100%",n}function Vo(e,t){let n=m("div","pf-embed"),r=document.createElement("iframe");return r.src=C(e.src,t),r.style.width="100%",r.style.height=e.height!=null?`${e.height}px`:"400px",r.style.border="none",r.setAttribute("sandbox","allow-scripts"),n.appendChild(r),n}var Wo=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 Ko(e,t){let n=m("div","pf-svg"),r=C(e.content,t);if(!r.includes("<svg"))return n;if(!/<svg[^>]*\sxmlns\s*=/.test(r))r=r.replace(/<svg\b/,'<svg xmlns="http://www.w3.org/2000/svg"');let s=new DOMParser().parseFromString(r,"image/svg+xml").querySelector("svg");if(!s)return n;return mn(s),n.appendChild(document.importNode(s,!0)),n}function mn(e){let t=Array.from(e.children);for(let n of t){if(!Wo.has(n.tagName.toLowerCase())){n.remove();continue}for(let r of Array.from(n.attributes)){let o=r.name.toLowerCase();if(o.startsWith("on")||o==="href"&&r.value.trim().toLowerCase().startsWith("javascript:"))n.removeAttribute(r.name)}mn(n)}}function Go(e,t){let n=(t??"").split(",").map((s)=>s.trim().toLowerCase()).filter(Boolean);if(n.length===0)return!0;let r=e.name.toLowerCase(),o=e.type.toLowerCase();return n.some((s)=>{if(s.startsWith("."))return r.endsWith(s);if(s.endsWith("/*"))return o.startsWith(s.slice(0,-1));return o===s})}function qo(e,t){let n=m("div","pf-dropzone");n.style.padding="32px",n.style.textAlign="center",n.style.cursor="pointer",n.textContent=C(e.label??"Drop files here",t);let r=document.createElement("input");if(r.type="file",r.style.display="none",e.accept!=null)r.accept=e.accept;if(e.multiple===!0)r.multiple=!0;n.appendChild(r),n.setAttribute("role","button"),n.tabIndex=0;function o(i){let a=Array.from(i??[]).filter((l)=>Go(l,e.accept));return e.multiple===!0?a:a.slice(0,1)}function s(i){if(i.length===0)return;if(e.resultKey!=null)t.store.set(e.resultKey,i),t.rerender();if(e.onDrop!=null)F(j(e.onDrop,{...W(t),scope:{...t.scope,$result:i}}),"onDrop")}return r.addEventListener("change",()=>{s(o(r.files)),r.value=""}),n.addEventListener("click",()=>r.click()),n.addEventListener("keydown",(i)=>{if(i.key==="Enter"||i.key===" ")i.preventDefault(),r.click()}),n.addEventListener("dragover",(i)=>{i.preventDefault(),n.classList.add("pf-dropzone-active")}),n.addEventListener("dragleave",()=>{n.classList.remove("pf-dropzone-active")}),n.addEventListener("drop",(i)=>{i.preventDefault(),n.classList.remove("pf-dropzone-active"),s(o(i.dataTransfer?.files??null))}),n}function Uo(e,t){let n=m("div","pf-mermaid");n.setAttribute("data-mermaid","true");let r=C(e.content,t);if(n.textContent=r,typeof globalThis.mermaid<"u")n.classList.add("mermaid"),n.textContent=r;return n}var Xo="https://cdn.jsdelivr.net/npm/pdfjs-dist@4.9/build/pdf.min.mjs",Yo="https://cdn.jsdelivr.net/npm/pdfjs-dist@4.9/build/pdf.worker.min.mjs",ht=null,Ke=null;async function Zo(){if(ht)return ht;if(Ke)return Ke;return Ke=import(Xo).then((e)=>{let t=e;return t.GlobalWorkerOptions.workerSrc=Yo,ht=t,t}),Ke}function hn(){p("PdfViewer",Qo)}function Qo(e,t){let n=m("div","pf-pdf-viewer"),r=e.src!=null?C(e.src,t):void 0,o=e.data,s=e.page!=null?e.page:1,i=e.zoom!=null?e.zoom:"fit-width",a=e.toolbar!==!1,l=e.height!=null?e.height:600;n.style.height=`${l}px`,n.style.display="flex",n.style.flexDirection="column",n.style.overflow="hidden",n.style.border="1px solid var(--color-border-primary, #e5e7eb)",n.style.borderRadius="var(--border-radius-md, 0.375rem)",n.style.background="var(--color-background-secondary, #f9fafb)";let c=m("div","pf-pdf-loading");return c.textContent="Loading PDF…",c.style.display="flex",c.style.alignItems="center",c.style.justifyContent="center",c.style.flex="1",c.style.color="var(--color-text-secondary, #6b7280)",n.appendChild(c),es(n,c,{src:r,data:o,initialPage:s,zoom:i,showToolbar:a}),n}async function es(e,t,n){try{let r=await Zo(),o;if(n.src)o={url:n.src};else if(n.data){let g=atob(n.data),h=new Uint8Array(g.length);for(let y=0;y<g.length;y++)h[y]=g.charCodeAt(y);o={data:h}}else{t.textContent="Error: No PDF source provided";return}let s=await r.getDocument(o).promise;t.remove();let i=Math.max(1,Math.min(n.initialPage,s.numPages)),a=null,l=null;if(n.showToolbar){let g=ts(s.numPages,i,{onPrev:()=>{if(i>1)i--,d()},onNext:()=>{if(i<s.numPages)i++,d()},onPageChange:(h)=>{let y=Math.max(1,Math.min(h,s.numPages));if(y!==i)i=y,d()}});a=g.pageInput,l=g.pageCount,e.insertBefore(g.el,e.firstChild)}let c=m("div","pf-pdf-canvas-container");c.style.flex="1",c.style.overflow="auto",c.style.display="flex",c.style.justifyContent="center",c.style.padding="8px",e.appendChild(c);let u=document.createElement("canvas");u.style.display="block",u.style.boxShadow="var(--shadow-md, 0 4px 6px -1px rgba(0,0,0,.1))",c.appendChild(u);async function d(){let g=await s.getPage(i),h=c.clientWidth-16,y,f=g.getViewport({scale:1});if(n.zoom==="fit-width")y=h/f.width;else if(n.zoom==="fit-page"){let S=c.clientHeight-16,N=h/f.width,k=S/f.height;y=Math.min(N,k)}else y=typeof n.zoom==="number"?n.zoom:1;let b=g.getViewport({scale:y});u.width=b.width,u.height=b.height,u.style.width=`${b.width}px`,u.style.height=`${b.height}px`;let w=u.getContext("2d");if(!w)return;if(await g.render({canvasContext:w,viewport:b}).promise,a)a.value=String(i);if(l)l.textContent=`/ ${s.numPages}`}await d()}catch(r){t.textContent=`PDF Error: ${r instanceof Error?r.message:String(r)}`,t.style.color="var(--color-text-danger, #dc2626)"}}function ts(e,t,n){let r=m("div","pf-pdf-toolbar");r.style.display="flex",r.style.alignItems="center",r.style.gap="8px",r.style.padding="6px 12px",r.style.borderBottom="1px solid var(--color-border-primary, #e5e7eb)",r.style.background="var(--color-background-primary, #fff)",r.style.flexShrink="0",r.style.fontSize="13px";let o=document.createElement("button");o.textContent="‹",o.title="Previous page",o.className="pf-pdf-btn",gn(o),o.addEventListener("click",n.onPrev);let s=document.createElement("button");s.textContent="›",s.title="Next page",s.className="pf-pdf-btn",gn(s),s.addEventListener("click",n.onNext);let i=document.createElement("input");i.type="number",i.min="1",i.max=String(e),i.value=String(t),i.style.width="48px",i.style.textAlign="center",i.style.border="1px solid var(--color-border-primary, #e5e7eb)",i.style.borderRadius="4px",i.style.padding="2px 4px",i.style.fontSize="13px",i.addEventListener("change",()=>{let l=parseInt(i.value,10);if(!isNaN(l))n.onPageChange(l)});let a=document.createElement("span");return a.textContent=`/ ${e}`,a.style.color="var(--color-text-secondary, #6b7280)",r.appendChild(o),r.appendChild(i),r.appendChild(a),r.appendChild(s),{el:r,pageInput:i,pageCount:a}}function gn(e){e.style.border="1px solid var(--color-border-primary, #e5e7eb)",e.style.borderRadius="4px",e.style.background="var(--color-background-primary, #fff)",e.style.cursor="pointer",e.style.padding="2px 8px",e.style.fontSize="16px",e.style.lineHeight="1"}var qe=["#3b82f6","#10b981","#f59e0b","#ef4444","#8b5cf6","#ec4899"];function ce(e,t){let n=document.createElement("div");return n.className="pf-chart-tooltip",e.appendChild(n),e.addEventListener("mouseleave",()=>{n.classList.remove("pf-visible")}),{wrapper:e,tooltip:n,svgEl:t}}function ee(e,t,n,r,o){let{tooltip:s,svgEl:i,wrapper:a}=e;if(o.length===0)return;let l="";if(r)l+=`<div class="pf-chart-tooltip-label">${Ge(r)}</div>`;for(let b of o)l+='<div class="pf-chart-tooltip-row">',l+=`<span class="pf-chart-tooltip-dot" style="background:${Ge(b.color)}"></span>`,l+=`<span>${Ge(b.label)}:</span> <strong>${Ge(String(b.value))}</strong>`,l+="</div>";s.innerHTML=l;let c=i.getBoundingClientRect(),u=a.getBoundingClientRect(),d=i.viewBox.baseVal,g=c.width/(d.width||1),h=c.left-u.left+t*g,y=s.offsetWidth||100,f=h+12;if(f+y>u.width)f=h-y-12;s.style.left=`${Math.max(0,f)}px`,s.style.top="4px",s.classList.add("pf-visible")}function Ge(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}function bn(e,t,n,r,o,s,i,a){let l=o.plotWidth/n.length;for(let c=0;c<n.length;c++){let u=o.plotLeft+c*l,d=document.createElementNS("http://www.w3.org/2000/svg","rect");d.setAttribute("x",String(u)),d.setAttribute("y",String(o.plotTop)),d.setAttribute("width",String(l)),d.setAttribute("height",String(o.plotHeight)),d.setAttribute("fill","transparent"),d.style.cursor="default";let g=s?n[c][s]:void 0,h=g!=null?a?a(g):O(g):void 0,y=r.map((S,N)=>({label:S.label??S.dataKey,value:i(n[c][S.dataKey],S,N),color:S.color??qe[N%qe.length]})),f=u+l/2,b=()=>ee(e,f,o.plotTop,h,y),w=()=>e.tooltip.classList.remove("pf-visible");d.addEventListener("mouseenter",b),d.addEventListener("mouseleave",w),d.addEventListener("touchstart",b,{passive:!0}),d.addEventListener("touchend",w,{passive:!0}),t.appendChild(d)}}function yn(e,t,n,r,o,s,i,a,l,c){let u=n.length===1?o.plotWidth:o.plotWidth/(n.length-1);for(let d=0;d<n.length;d++){let g=n.length===1?(o.plotLeft+o.plotRight)/2:o.plotLeft+d/(n.length-1)*o.plotWidth,h=n.length===1?o.plotLeft:g-u/2,y=n.length===1?o.plotWidth:u,f=document.createElementNS("http://www.w3.org/2000/svg","rect");f.setAttribute("x",String(Math.max(o.plotLeft,h))),f.setAttribute("y",String(o.plotTop)),f.setAttribute("width",String(Math.min(y,o.plotRight-Math.max(o.plotLeft,h)))),f.setAttribute("height",String(o.plotHeight)),f.setAttribute("fill","transparent"),f.style.cursor="default";let b=s?n[d][s]:void 0,w=b!=null?c?c(b):O(b):void 0,S=r.map((R,L)=>({label:R.label??R.dataKey,value:i(n[d][R.dataKey],R,L),color:R.color??qe[L%qe.length]})),N=()=>{if(ee(e,g,o.plotTop,w,S),a)a.setAttribute("x1",String(g)),a.setAttribute("x2",String(g)),a.setAttribute("opacity","1");if(l)for(let R of l){for(let L of R)L.setAttribute("data-visible","false");R[d]?.setAttribute("data-visible","true")}},k=()=>{if(e.tooltip.classList.remove("pf-visible"),a)a.setAttribute("opacity","0");if(l)for(let R of l)for(let L of R)L.setAttribute("data-visible","false")};f.addEventListener("mouseenter",N),f.addEventListener("mouseleave",k),f.addEventListener("touchstart",N,{passive:!0}),f.addEventListener("touchend",k,{passive:!0}),t.appendChild(f)}}var q=["#3b82f6","#10b981","#f59e0b","#ef4444","#8b5cf6","#ec4899"],re="var(--muted-foreground, #6b7280)",be="var(--border, #e5e7eb)",pe="10";function Ue(e,t,n,r=!1){let o=n?44:0,s=e-(r?44:0),i=10,a=t-24;return{plotLeft:o,plotRight:s,plotTop:10,plotBottom:a,plotWidth:s-o,plotHeight:a-10}}function Cn(e,t=5){if(e<=0)return[0];let n=e/t,r=Math.pow(10,Math.floor(Math.log10(n))),o=n/r,s=o<=1.5?r:o<=3?2*r:o<=7?5*r:10*r,i=[];for(let a=0;a<=e+s*0.01;a+=s)i.push(Math.round(a*1000)/1000);return i}function bt(e,t,n,r,o){let s=Cn(n);for(let i of s){let a=t.plotBottom-(n>0?i/n*t.plotHeight:0),l=U("text",{x:t.plotLeft-6,y:a+3,"text-anchor":"end","font-size":pe,fill:re});if(l.textContent=vt(i,o),e.appendChild(l),r&&i>0)e.appendChild(U("line",{x1:t.plotLeft,y1:a,x2:t.plotRight,y2:a,stroke:be,"stroke-width":1,"stroke-dasharray":"4 3"}))}}function yt(e,t,n,r){let o=Cn(n);for(let s of o){let i=t.plotBottom-(n>0?s/n*t.plotHeight:0),a=U("text",{x:t.plotRight+6,y:i+3,"text-anchor":"start","font-size":pe,fill:re});a.textContent=vt(s,r),e.appendChild(a)}}function Ct(e,t,n,r,o,s){for(let i=0;i<t.length;i++){let a=t[i][n],l=U("text",{x:r(i),y:o+14,"text-anchor":"middle","font-size":pe,fill:re});l.textContent=a==null?"":s?s(a):O(a),e.appendChild(l)}}function Xe(e,t){e.appendChild(U("line",{x1:t.plotLeft,y1:t.plotBottom,x2:t.plotRight,y2:t.plotBottom,stroke:re,"stroke-width":1}))}function te(e,t,n){if(e==null)return"";let r=K(`{{ __v | ${t} }}`,{...n,scope:{...n.scope,__v:e}});return O(r??e)}function vt(e,t){if(t==="currency")return`$${e.toLocaleString()}`;if(t==="percent")return`${e}%`;if(e>=1e6)return`${(e/1e6).toFixed(1)}M`;if(e>=1000)return`${(e/1000).toFixed(1)}K`;return String(e)}function oe(e){let t=e.yAxisFormat??e.valueFormat;return t&&t!=="auto"?t:void 0}function wt(e,t,n){return(r,o)=>{if(r===null||r===void 0)return"—";if(o.tooltipFormat)return te(r,o.tooltipFormat,e);let s=o.yAxisId==="right"?n:t;return vt(Number(r),s)}}function ae(e,t,n){let r=document.createElementNS("http://www.w3.org/2000/svg","svg");if(r.setAttribute("width","100%"),r.setAttribute("height",String(t)),r.setAttribute("viewBox",`0 0 ${e} ${t}`),r.setAttribute("role","img"),n)r.setAttribute("aria-label",`${n} chart`);return r.style.overflow="visible",r}function U(e,t){let n=document.createElementNS("http://www.w3.org/2000/svg",e);for(let[r,o]of Object.entries(t))n.setAttribute(r,String(o));return n}function Ye(e,t){let n=U("text",e);return n.textContent=t,n}function ue(e,t,n,r){let o=r*Math.PI/180;return{x:e+n*Math.cos(o),y:t-n*Math.sin(o)}}function xt(e,t,n,r,o){let s=Math.max(2,Math.ceil(Math.abs(o-r)/4)),i=[];for(let a=0;a<=s;a++){let l=ue(e,t,n,r+(o-r)*a/s);i.push(`${a===0?"M":"L"} ${l.x.toFixed(2)} ${l.y.toFixed(2)}`)}return i.join(" ")}function fe(e,t,n){if(n===!1||t.length<=1)return;let r=m("div","pf-chart-legend");r.style.display="flex",r.style.gap="12px",r.style.fontSize="12px",r.style.marginBottom="8px";for(let o=0;o<t.length;o++){let s=m("div","pf-chart-legend-item");s.style.display="flex",s.style.alignItems="center",s.style.gap="4px";let i=m("span");i.style.width="8px",i.style.height="8px",i.style.borderRadius="50%",i.style.backgroundColor=t[o].color??q[o%q.length];let a=m("span");a.textContent=t[o].label??t[o].dataKey,s.appendChild(i),s.appendChild(a),r.appendChild(s)}e.appendChild(r)}function wn(){p("BarChart",ns),p("LineChart",vn),p("AreaChart",vn),p("PieChart",rs),p("RadarChart",is),p("ScatterChart",os),p("RadialChart",ss),p("Histogram",as)}function ns(e,t){let n=m("div","pf-chart pf-bar-chart"),r=K(e.data,t)??[],o=e.series??[],s=e.height??300;if(r.length===0||o.length===0)return n.textContent="No chart data",n;let i=e.showYAxis!==!1,a=e.showGrid===!0,l=e.showYAxisRight===!0,c=e.showTooltip!==!1,u=e.xAxis,d=e.tooltipXKey,g=e.xAxisFormat,h=e.tooltipXFormat,y=o.filter((x)=>x.yAxisId!=="right"),f=o.filter((x)=>x.yAxisId==="right"),b=l&&f.length>0,w=y.length>0?Math.max(...r.flatMap((x)=>y.map((v)=>Number(x[v.dataKey]??0))),1):1,S=b?Math.max(...r.flatMap((x)=>f.map((v)=>Number(x[v.dataKey]??0))),1):1,N=400,k=Ue(N,s,i,b),R=ae(N,s,"Bar");if(i)bt(R,k,w,a,oe(e));if(b)yt(R,k,S,e.yAxisRightFormat);Xe(R,k);let L=k.plotWidth/r.length,M=L/(o.length+1);for(let x=0;x<r.length;x++)for(let v=0;v<o.length;v++){let T=o[v],D=r[x][T.dataKey];if(D===null||D===void 0)continue;let G=T.yAxisId==="right"?S:w,B=Number(D),E=Math.max(0,B/G*k.plotHeight),_=k.plotLeft+x*L+v*M+M/2,A=document.createElementNS("http://www.w3.org/2000/svg","rect");A.setAttribute("x",String(_)),A.setAttribute("y",String(k.plotBottom-E)),A.setAttribute("width",String(M*0.8)),A.setAttribute("height",String(E)),A.setAttribute("fill",T.color??q[v%q.length]),A.setAttribute("rx","2"),R.appendChild(A)}if(u){let x=g?(v)=>te(v,g,t):void 0;Ct(R,r,u,(v)=>k.plotLeft+v*L+L/2,k.plotBottom,x)}if(c){let x=ce(n,R),v=wt(t,oe(e),e.yAxisRightFormat);bn(x,R,r,o,k,d??u,v,h?(D)=>te(D,h,t):void 0)}return fe(n,o,e.showLegend),n.appendChild(R),n}function vn(e,t){let n=m("div",`pf-chart pf-${e.type.toLowerCase()}-chart`),r=K(e.data,t)??[],o=e.series??[],s=e.height??300;if(r.length===0||o.length===0)return n.textContent="No chart data",n;let i=e.showYAxis!==!1,a=e.showGrid===!0,l=e.showYAxisRight===!0,c=e.showTooltip!==!1,u=e.xAxis,d=e.tooltipXKey,g=e.xAxisFormat,h=e.tooltipXFormat,y=o.filter((v)=>v.yAxisId!=="right"),f=o.filter((v)=>v.yAxisId==="right"),b=l&&f.length>0,w=y.length>0?Math.max(...r.flatMap((v)=>y.map((T)=>Number(v[T.dataKey]??0))),1):1,S=b?Math.max(...r.flatMap((v)=>f.map((T)=>Number(v[T.dataKey]??0))),1):1,N=400,k=Ue(N,s,i,b),R=ae(N,s,e.type==="AreaChart"?"Area":"Line"),L=e.type==="AreaChart";if(i)bt(R,k,w,a,oe(e));if(b)yt(R,k,S,e.yAxisRightFormat);Xe(R,k);let M=[];for(let v=0;v<o.length;v++){let T=o[v],D=T.yAxisId==="right",z=D?S:w,G=T.color??q[v%q.length],B=r.map((A,I)=>{let V=A[T.dataKey],X=V===null||V===void 0,le=r.length===1?(k.plotLeft+k.plotRight)/2:k.plotLeft+I/(r.length-1)*k.plotWidth,In=X?k.plotBottom:k.plotBottom-Number(V)/z*k.plotHeight;return{x:le,y:In,isNull:X}});if(L){let A=[],I=()=>{if(A.length<2){A=[];return}let V=`M ${A[0].x},${k.plotBottom} `+A.map((le)=>`L ${le.x},${le.y}`).join(" ")+` L ${A[A.length-1].x},${k.plotBottom} Z`,X=document.createElementNS("http://www.w3.org/2000/svg","path");X.setAttribute("d",V),X.setAttribute("fill",G),X.setAttribute("opacity","0.15"),R.appendChild(X),A=[]};for(let V of B){if(V.isNull){I();continue}A.push(V)}I()}let E="";for(let A of B){if(A.isNull)continue;let I=B.indexOf(A),V=I===0||B[I-1].isNull;E+=`${V?"M":"L"} ${A.x},${A.y} `}if(E){let A=document.createElementNS("http://www.w3.org/2000/svg","path");if(A.setAttribute("d",E.trim()),A.setAttribute("fill","none"),A.setAttribute("stroke",G),A.setAttribute("stroke-width","2"),D)A.setAttribute("stroke-dasharray","6 3");R.appendChild(A)}let _=[];for(let A of B){let I=document.createElementNS("http://www.w3.org/2000/svg","circle");if(I.setAttribute("cx",String(A.x)),I.setAttribute("cy",String(A.y)),I.setAttribute("r","4"),I.setAttribute("fill",G),I.setAttribute("class","pf-data-dot"),I.setAttribute("data-visible","false"),I.style.pointerEvents="none",A.isNull)I.style.display="none";R.appendChild(I),_.push(I)}M.push(_)}let x=document.createElementNS("http://www.w3.org/2000/svg","line");if(x.setAttribute("class","pf-crosshair"),x.setAttribute("x1",String(k.plotLeft)),x.setAttribute("x2",String(k.plotLeft)),x.setAttribute("y1",String(k.plotTop)),x.setAttribute("y2",String(k.plotBottom)),x.setAttribute("stroke",re),x.setAttribute("stroke-width","1"),x.setAttribute("stroke-dasharray","3 3"),x.setAttribute("opacity","0"),R.appendChild(x),u){let v=g?(T)=>te(T,g,t):void 0;Ct(R,r,u,(T)=>r.length===1?(k.plotLeft+k.plotRight)/2:k.plotLeft+T/(r.length-1)*k.plotWidth,k.plotBottom,v)}if(c){let v=ce(n,R),T=wt(t,oe(e),e.yAxisRightFormat);yn(v,R,r,o,k,d??u,T,x,M,h?(z)=>te(z,h,t):void 0)}return fe(n,o,e.showLegend),n.appendChild(R),n}function rs(e,t){let n=m("div","pf-chart pf-pie-chart"),r=K(e.data,t)??[],o=e.series??[],s=e.height??300,i=Math.min(s,300),a=e.showTooltip!==!1,l=e.dataKey??o[0]?.dataKey,c=e.nameKey??e.tooltipXKey??e.xAxis,u=o.length>0?o:l?[{dataKey:l,label:l}]:[];if(r.length===0||!l)return n.textContent="No chart data",n;let d=ae(i,i,"Pie"),g=i/2,h=i/2,y=i/2-10,f=e.tooltipXFormat,b=oe(e),w=(L)=>b?te(L,b,t):String(L),S=r.map((L)=>Number(L[l]??0)),N=S.reduce((L,M)=>L+M,0);if(N===0)return n.textContent="No chart data",n.appendChild(d),n;let k=a?ce(n,d):void 0,R=-Math.PI/2;for(let L=0;L<S.length;L++){let M=S[L]/N*2*Math.PI,x=R+M,v=M>Math.PI?1:0,T=g+y*Math.cos(R),D=h+y*Math.sin(R),z=g+y*Math.cos(x),G=h+y*Math.sin(x),B=q[L%q.length],E=document.createElementNS("http://www.w3.org/2000/svg","path");if(E.setAttribute("d",`M ${g},${h} L ${T},${D} A ${y},${y} 0 ${v} 1 ${z},${G} Z`),E.setAttribute("fill",B),E.style.cursor="default",k){let _=c?r[L][c]:void 0,A=_!=null?f?te(_,f,t):O(_):`Slice ${L+1}`,I=`${(S[L]/N*100).toFixed(1)}%`,V=R+M/2,X=g+y*0.6*Math.cos(V);E.addEventListener("mouseenter",()=>{ee(k,X,h,A,[{label:u[0].label??l,value:`${w(S[L])} (${I})`,color:B}])}),E.addEventListener("mouseleave",()=>{k.tooltip.classList.remove("pf-visible")}),E.addEventListener("touchstart",()=>{ee(k,X,h,A,[{label:u[0].label??l,value:`${w(S[L])} (${I})`,color:B}])},{passive:!0}),E.addEventListener("touchend",()=>{k.tooltip.classList.remove("pf-visible")},{passive:!0})}d.appendChild(E),R=x}return fe(n,u,e.showLegend),n.appendChild(d),n}function os(e,t){let n=m("div","pf-chart pf-scatter-chart"),r=K(e.data,t)??[],o=e.xAxis,s=e.yAxis,i=e.zAxis,a=e.series??[],l=e.height??300;if(r.length===0||!o||!s)return n.textContent="No chart data",n;let c=e.showGrid!==!1,u=e.showTooltip!==!1,d=a[0]?.color??q[0],g=oe(e),h=(E)=>g?te(E,g,t):String(Math.round(E*100)/100),y=r.map((E)=>Number(E[o]??0)),f=r.map((E)=>Number(E[s]??0)),b=Math.min(...y),w=Math.max(...y),S=Math.min(...f),N=Math.max(...f),k=w-b||1,R=N-S||1,L=i?r.map((E)=>Number(E[i]??0)):[],M=i?Math.max(...L,1):1,x=400,v=Ue(x,l,!0),T=ae(x,l,"Scatter"),D=(E)=>v.plotLeft+(E-b)/k*v.plotWidth,z=(E)=>v.plotBottom-(E-S)/R*v.plotHeight,G=4;for(let E=0;E<=G;E++){let _=S+R*E/G,A=z(_);if(T.appendChild(Ye({x:v.plotLeft-6,y:A+3,"text-anchor":"end","font-size":pe,fill:re},h(_))),c&&E>0)T.appendChild(U("line",{x1:v.plotLeft,y1:A,x2:v.plotRight,y2:A,stroke:be,"stroke-width":1,"stroke-dasharray":"4 3"}))}Xe(T,v);for(let E of[b,(b+w)/2,w])T.appendChild(Ye({x:D(E),y:v.plotBottom+14,"text-anchor":"middle","font-size":pe,fill:re},String(Math.round(E*100)/100)));let B=u?ce(n,T):void 0;for(let E=0;E<r.length;E++){let _=D(y[E]),A=z(f[E]),I=i?4+Math.sqrt(L[E]/M)*14:4,V=U("circle",{cx:_,cy:A,r:I,fill:d,"fill-opacity":i?0.6:0.85});if(B){let X=[{label:o,value:h(y[E]),color:d},{label:s,value:h(f[E]),color:d},...i?[{label:i,value:h(L[E]),color:d}]:[]],le=a[0]?.label??"Point";V.addEventListener("mouseenter",()=>ee(B,_,A,le,X)),V.addEventListener("mouseleave",()=>B.tooltip.classList.remove("pf-visible")),V.addEventListener("touchstart",()=>ee(B,_,A,le,X),{passive:!0}),V.addEventListener("touchend",()=>B.tooltip.classList.remove("pf-visible"),{passive:!0})}T.appendChild(V)}return fe(n,a,e.showLegend),n.appendChild(T),n}function ss(e,t){let n=m("div","pf-chart pf-radial-chart"),r=K(e.data,t)??[],o=e.series??[],s=e.dataKey??o[0]?.dataKey,i=e.nameKey??e.tooltipXKey??e.xAxis,a=e.height??300;if(r.length===0||!s)return n.textContent="No chart data",n;let l=Math.min(a,300),c=l/2,u=l/2,d=l/2-10,g=Math.max(0,Math.min(e.innerRadius??30,d-10)),h=e.startAngle??180,y=e.endAngle??0,f=e.showTooltip!==!1,b=r.map((v)=>Number(v[s]??0)),w=Math.max(...b,1),S=ae(l,l,"Radial"),N=(d-g)/r.length,k=Math.max(2,N*0.7),R=oe(e),L=(v)=>R?te(v,R,t):String(v),M=f?ce(n,S):void 0,x=[];for(let v=0;v<r.length;v++){let T=d-N*v-N/2,D=o[v]?.color??q[v%q.length],z=b[v]/w,G=h+z*(y-h),B=i?r[v][i]:null,E=B!=null?O(B):o[v]?.label??s;x.push({dataKey:E||s,label:E||s,color:D}),S.appendChild(U("path",{d:xt(c,u,T,h,y),fill:"none",stroke:be,"stroke-width":k,"stroke-linecap":"round"}));let _=U("path",{d:xt(c,u,T,h,G),fill:"none",stroke:D,"stroke-width":k,"stroke-linecap":"round"});if(M){let A=ue(c,u,T,(h+G)/2),I=[{label:s,value:L(b[v]),color:D}],V=E||s;_.addEventListener("mouseenter",()=>ee(M,A.x,A.y,V,I)),_.addEventListener("mouseleave",()=>M.tooltip.classList.remove("pf-visible")),_.addEventListener("touchstart",()=>ee(M,A.x,A.y,V,I),{passive:!0}),_.addEventListener("touchend",()=>M.tooltip.classList.remove("pf-visible"),{passive:!0})}S.appendChild(_)}return fe(n,x,e.showLegend),n.appendChild(S),n}function is(e,t){let n=m("div","pf-chart pf-radar-chart"),r=K(e.data,t)??[],o=e.series??[],s=e.axisKey??e.xAxis,i=e.height??300;if(r.length===0||o.length===0)return n.textContent="No chart data",n;let a=e.filled!==!1,l=e.showDots===!0,c=e.showGrid!==!1,u=e.showTooltip!==!1,d=Math.min(i,320),g=d/2,h=d/2,y=d/2-24,f=r.length,b=Math.max(...r.flatMap((M)=>o.map((x)=>Number(M[x.dataKey]??0))),1),w=(M)=>90-360*M/f,S=(M)=>M.map((x)=>`${x.x.toFixed(1)},${x.y.toFixed(1)}`).join(" "),N=ae(d,d,"Radar");if(c){for(let x=1;x<=4;x++){let v=y*x/4,T=Array.from({length:f},(D,z)=>ue(g,h,v,w(z)));N.appendChild(U("polygon",{points:S(T),fill:"none",stroke:be,"stroke-width":1}))}for(let x=0;x<f;x++){let v=ue(g,h,y,w(x));N.appendChild(U("line",{x1:g,y1:h,x2:v.x,y2:v.y,stroke:be,"stroke-width":1}))}}for(let M=0;M<f;M++){let x=ue(g,h,y+12,w(M)),v=s?r[M][s]:null;N.appendChild(Ye({x:x.x,y:x.y+3,"text-anchor":"middle","font-size":pe,fill:re},v!=null?String(v):""))}let k=u?ce(n,N):void 0,R=oe(e),L=(M)=>R?te(M,R,t):String(M);for(let M=0;M<o.length;M++){let x=o[M],v=x.color??q[M%q.length],T=r.map((D,z)=>ue(g,h,Number(D[x.dataKey]??0)/b*y,w(z)));if(N.appendChild(U("polygon",{points:S(T),fill:a?v:"none","fill-opacity":a?0.2:0,stroke:v,"stroke-width":2})),l||k)for(let D=0;D<T.length;D++){let z=U("circle",{cx:T[D].x,cy:T[D].y,r:l?3:6,fill:l?v:"transparent","fill-opacity":l?1:0});if(k){let G=s?r[D][s]:null,B=G!=null?O(G):x.label??x.dataKey,E=[{label:x.label??x.dataKey,value:L(Number(r[D][x.dataKey]??0)),color:v}];z.addEventListener("mouseenter",()=>ee(k,T[D].x,T[D].y,B,E)),z.addEventListener("mouseleave",()=>k.tooltip.classList.remove("pf-visible")),z.addEventListener("touchstart",()=>ee(k,T[D].x,T[D].y,B,E),{passive:!0}),z.addEventListener("touchend",()=>k.tooltip.classList.remove("pf-visible"),{passive:!0})}N.appendChild(z)}}return fe(n,o,e.showLegend),n.appendChild(N),n}function as(e,t){let n=m("div","pf-chart pf-histogram"),r=K(e.data,t);if(!r||r.length===0)return n.textContent="No data",n;let o=r,s=e.bins??10,i=e.height??200,a=e.color??q[0],l=Math.min(...o),u=(Math.max(...o)-l)/s||1,d=Array(s).fill(0);for(let w of o){let S=Math.min(Math.floor((w-l)/u),s-1);d[S]++}let g=Math.max(...d),h=300,y=i,f=h/s,b=ae(h,y,"Histogram");for(let w=0;w<s;w++){let S=g>0?d[w]/g*y:0,N=document.createElementNS("http://www.w3.org/2000/svg","rect");N.setAttribute("x",String(w*f)),N.setAttribute("y",String(y-S)),N.setAttribute("width",String(f-1)),N.setAttribute("height",String(S)),N.setAttribute("fill",a),b.appendChild(N)}return n.appendChild(b),n}function xn(){p("Table",ls),p("TableHead",kt("thead")),p("TableBody",kt("tbody")),p("TableFooter",kt("tfoot")),p("TableRow",ds),p("TableHeader",cs),p("TableCell",ps),p("TableCaption",us),p("ExpandableRow",fs)}function ls(e,t){let n=document.createElement("table");return n.className=e.striped===!0?"pf-table pf-table-striped":"pf-table",n.style.width="100%",n.style.borderCollapse="collapse",H(e,n,t),n}function kt(e){return(t,n)=>{let r=document.createElement(e);return r.className=`pf-${e}`,H(t,r,n),r}}function ds(e,t){let n=document.createElement("tr");return n.className="pf-table-row",H(e,n,t),n}function cs(e,t){let n=document.createElement("th");return n.className="pf-table-header",n.style.textAlign="left",n.style.padding="8px 12px",n.style.fontWeight="600",n.textContent=C(e.content,t),n}function ps(e,t){let n=document.createElement("td");if(n.className="pf-table-cell",n.style.padding="8px 12px",e.colSpan!=null)n.colSpan=e.colSpan;if(e.rowSpan!=null)n.rowSpan=e.rowSpan;return H(e,n,t),n}function us(e,t){let n=document.createElement("caption");return n.className="pf-table-caption",n.style.padding="8px",n.style.fontSize="14px",n.textContent=C(e.content,t),n}function fs(e,t){let n=m("div","pf-expandable-row"),r=m("div","pf-expandable-row-summary");r.style.cursor="pointer",r.style.display="flex",r.style.alignItems="center",r.style.gap="8px";let o=m("span","pf-expandable-arrow");o.textContent="▶",o.style.transition="transform 0.2s",o.style.fontSize="10px",r.appendChild(o);let s=e.summary;if(s)for(let l of s)r.appendChild(J(l,t));let i=m("div","pf-expandable-row-detail");i.style.display="none",i.style.paddingLeft="24px",H(e,i,t);let a=!1;return r.addEventListener("click",()=>{a=!a,i.style.display=a?"block":"none",o.style.transform=a?"rotate(90deg)":""}),n.appendChild(r),n.appendChild(i),n}var kn=!1;function Ze(){if(kn)return;kn=!0;let e=new Set(ut());Ut(),Qt(),nn(),rn(),sn(),ln(),dn(),un(),fn(),hn(),wn(),xn(),Wt(ut().filter((t)=>!e.has(t)))}function Et(e){return e.replace(/[^a-zA-Z0-9_-]/g,"")}function At(e){return e.replace(/[{}<>;]/g,"").replace(/\b(url|expression)\s*\(/gi,"")}function St(e,t=" "){return Object.entries(e).map(([n,r])=>`${t}--${Et(n)}: ${At(r)};`).join(`
|
|
7
|
+
`)}function Sn(e){if(!e)return"";let t=[];if(e.light&&Object.keys(e.light).length>0)t.push(`:root {
|
|
8
|
+
${St(e.light)}
|
|
9
|
+
}`);if(e.dark&&Object.keys(e.dark).length>0){let n=St(e.dark);t.push(`.dark, [data-theme="dark"] {
|
|
10
|
+
${n}
|
|
11
|
+
}`),t.push(`@media (prefers-color-scheme: dark) {
|
|
12
12
|
:root:not([data-theme="light"]):not(.light) {
|
|
13
|
-
${
|
|
13
|
+
${St(e.dark," ")}
|
|
14
14
|
}
|
|
15
|
-
}`)}return
|
|
16
|
-
`)}function K1($,Z){$.setAttribute("data-theme",Z),$.classList.toggle("dark",Z==="dark"),$.classList.toggle("light",Z==="light")}function P0($,Z){if(!Z)return;if(Z.light)for(let[J,q]of Object.entries(Z.light))$.style.setProperty(`--${O0(J)}`,I0(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);q.textContent=K4({dark:Z.dark})}}function R0($,Z){if(!$||typeof document>"u")return;let J=(q)=>{for(let[Q,Y]of Object.entries($))if(Y5(Q,q))q.preventDefault(),Z(Y)};return document.addEventListener("keydown",J),()=>document.removeEventListener("keydown",J)}function Y5($,Z){let J=$.toLowerCase().split("+").map((Y)=>Y.trim()),q=J[J.length-1],Q=new Set(J.slice(0,-1));if(Q.has("ctrl")!==(Z.ctrlKey||Z.metaKey))return!1;if(Q.has("shift")!==Z.shiftKey)return!1;if(Q.has("alt")!==Z.altKey)return!1;return Z.key.toLowerCase()===q}var F4='<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="M12 3v2.25m6.364.386-1.591 1.591M21 12h-2.25m-.386 6.364-1.591-1.591M12 18.75V21m-4.773-4.227-1.591 1.591M5.25 12H3m4.227-4.773L5.636 5.636M15.75 12a3.75 3.75 0 1 1-7.5 0 3.75 3.75 0 0 1 7.5 0Z"/></svg>',L4='<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="M21.752 15.002A9.72 9.72 0 0 1 18 15.75c-5.385 0-9.75-4.365-9.75-9.75 0-1.33.266-2.597.748-3.752A9.753 9.753 0 0 0 3 11.25C3 16.635 7.365 21 12.75 21a9.753 9.753 0 0 0 9.002-5.998Z"/></svg>',D4={"top-right":"top: 8px; right: 8px;","top-left":"top: 8px; left: 8px;","bottom-right":"bottom: 8px; right: 8px;","bottom-left":"bottom: 8px; left: 8px;"};function U5($,Z){try{let q=localStorage.getItem(Z);if(q==="light"||q==="dark")return q}catch{}let J=$.getAttribute("data-theme")??document.documentElement.getAttribute("data-theme");if(J==="light"||J==="dark")return J;if(typeof window<"u"&&window.matchMedia("(prefers-color-scheme: light)").matches)return"light";return"dark"}function V1($,Z){if(typeof document>"u")return()=>{};let J=Z?.position??"top-right",q=Z?.storageKey??"prefab-theme",Q=Z?.syncDocument??!0,Y=getComputedStyle($).position;if(Y==="static"||Y==="")$.style.position="relative";let U=document.createElement("button");U.className="pf-theme-toggle",U.setAttribute("aria-label","Toggle theme"),U.setAttribute("title","Toggle light/dark"),Object.assign(U.style,{position:"absolute",zIndex:"100",width:"28px",height:"28px",border:"1px solid var(--border, #e5e7eb)",borderRadius:"6px",background:"var(--card, rgba(255,255,255,0.8))",color:"var(--foreground, #333)",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",padding:"0",opacity:"0.7",transition:"opacity 0.15s, border-color 0.15s"});let H=D4[J]??D4["top-right"];for(let G of H.split(";")){let[B,K]=G.split(":").map((L)=>L.trim());if(B&&K)U.style.setProperty(B,K)}U.addEventListener("mouseenter",()=>{U.style.opacity="1"}),U.addEventListener("mouseleave",()=>{U.style.opacity="0.7"});function W(G){if(K1($,G),Q)K1(document.documentElement,G);U.innerHTML=G==="dark"?L4:F4;try{localStorage.setItem(q,G)}catch{}}let _=U5($,q);W(_),U.addEventListener("click",()=>{let G=$.getAttribute("data-theme")??"dark";W(G==="dark"?"light":"dark")}),$.appendChild(U);let E;if(Q)E=new MutationObserver((G)=>{for(let B of G)if(B.type==="attributes"&&B.attributeName==="data-theme"){let K=document.documentElement.getAttribute("data-theme");if((K==="light"||K==="dark")&&K!==$.getAttribute("data-theme")){K1($,K),U.innerHTML=K==="dark"?L4:F4;try{localStorage.setItem(q,K)}catch{}}}}),E.observe(document.documentElement,{attributes:!0,attributeFilter:["data-theme"]});return()=>{E?.disconnect(),U.remove()}}function a1($){let Z=$?.baseUrl??(typeof window<"u"?window.location.origin:""),J={"Content-Type":"application/json",...$?.headers},q=$?.fetch??globalThis.fetch.bind(globalThis);return{async callTool(Q,Y){let U=await q(`${Z}/mcp/tools/call`,{method:"POST",headers:J,body:JSON.stringify({jsonrpc:"2.0",method:"tools/call",params:{name:Q,arguments:Y}})});if(!U.ok)throw Error(`MCP tool call failed: ${U.status} ${U.statusText}`);let H=await U.json();if(H.error)throw Error(H.error.message??"MCP tool call returned error");let W=H.result?.content??H.content??[];for(let _ of W)if(_.type==="text"&&_.text!==void 0){try{let E=JSON.parse(_.text);if(typeof E==="object"&&E!==null&&"$prefab"in E)return E;return E}catch{}return _.text}return H.result??H},async sendMessage(Q){await q(`${Z}/mcp/messages`,{method:"POST",headers:J,body:JSON.stringify({message:Q})})}}}function o1(){return{callTool($){return w.warn(`No MCP transport: callTool('${$}') ignored`),Promise.resolve(null)},sendMessage($){return w.warn("No MCP transport: sendMessage ignored",$),Promise.resolve()}}}var T4="0.3.8";function H5($){return $!==null&&typeof $==="object"&&$.jsonrpc==="2.0"}class _1{hostOrigin;listeners=new Map;protocol="prefab";cleanup;pending=new Map;callIdCounter=0;rpcPending=new Map;rpcIdCounter=0;sentRpcIds=new Set;postFn;_hostSupportsSubscriptions=!1;constructor($="*"){this.hostOrigin=$}connect(){if(typeof window>"u")return;let $=X5();if($)this.postFn=(J)=>$.postMessage(J);let Z=(J)=>{if(this.hostOrigin!=="*"&&J.origin!==this.hostOrigin)return;let q=J.data;if(H5(q)){this.handleJsonRpc(q);return}let Q=q;if(!Q?.type.startsWith("prefab:"))return;if(Q.type==="prefab:tool-call-response"&&Q.id){let U=this.pending.get(Q.id);if(U){if(this.pending.delete(Q.id),Q.payload?.error!=null)U.reject(Error(Q.payload.error));else U.resolve(Q.payload?.result);return}}let Y=this.listeners.get(Q.type);if(Y)for(let U of Y)U(Q.payload??{})};window.addEventListener("message",Z),this.cleanup=()=>window.removeEventListener("message",Z)}async initialize($){try{return await Promise.any([this.initPrefab($),this.initJsonRpc($)])}catch(Z){let J=Z instanceof AggregateError?Z.errors.map((q)=>q.message).join("; "):String(Z);throw Error(`Bridge init failed — no host responded. Tried: ${J}`,{cause:Z})}}createTransport(){if(this.protocol==="jsonrpc")return this.createJsonRpcTransport();return this.createPrefabTransport()}requestMode($){if(this.protocol==="jsonrpc")this.sendRpcRequest("ui/request-display-mode",{mode:$});else this.sendPrefab("prefab:request-mode",{mode:$})}openLink($,Z){if(this.protocol==="jsonrpc")this.sendRpcRequest("ui/open-link",{url:$,target:Z});else this.sendPrefab("prefab:open-link",{url:$,target:Z})}updateContext($){if(this.protocol==="jsonrpc")this.sendRpcRequest("ui/update-model-context",{structuredContent:$});else this.sendPrefab("prefab:update-context",{context:$})}setupAutoResize($){if(typeof ResizeObserver>"u")return W5;let Z=-1,J=-1,q=(U,H)=>{if(U===Z&&H===J)return;if(Z=U,J=H,this.protocol==="jsonrpc")this.sendRpcNotification("ui/notifications/size-changed",{width:U,height:H});else this.sendPrefab("prefab:size-changed",{width:U,height:H})},Q=new ResizeObserver((U)=>{for(let H of U)if(H.borderBoxSize.length){let W=H.borderBoxSize[0];q(Math.ceil(W.inlineSize),Math.ceil(W.blockSize))}else{let W=H.target.getBoundingClientRect();q(Math.ceil(W.width),Math.ceil(W.height))}});Q.observe($);let Y=$.getBoundingClientRect();return q(Math.ceil(Y.width),Math.ceil(Y.height)),()=>Q.disconnect()}notifyPreferredSize($){if(this.protocol==="jsonrpc")this.sendRpcNotification("ui/notifications/preferred-size",$);else this.sendPrefab("prefab:preferred-size",$)}subscribe($,Z){let J=(q)=>{if(q.uri!==$)return;Z(q.contents??q.data??q)};if(this.protocol==="jsonrpc")this.on("prefab:resource-updated",J),this.sendRpcRequest("resources/subscribe",{uri:$});else this.on("prefab:resource-updated",J),this.sendPrefab("prefab:subscribe",{uri:$});return()=>{if(this.off("prefab:resource-updated",J),this.protocol==="jsonrpc")this.sendRpcRequest("resources/unsubscribe",{uri:$});else this.sendPrefab("prefab:unsubscribe",{uri:$})}}get supportsSubscriptions(){return this._hostSupportsSubscriptions}on($,Z){if(!this.listeners.has($))this.listeners.set($,new Set);let J=this.listeners.get($);if(J)J.add(Z)}off($,Z){this.listeners.get($)?.delete(Z)}disconnect(){this.cleanup?.(),this.listeners.clear();for(let[,$]of this.pending)$.reject(Error("Bridge disconnected"));this.pending.clear();for(let[,$]of this.rpcPending)$.reject(Error("Bridge disconnected"));this.rpcPending.clear(),this.sentRpcIds.clear()}get activeProtocol(){return this.protocol}initPrefab($){return new Promise((Z,J)=>{let q=!1,Q=(Y)=>{if(q)return;q=!0,this.off("prefab:init-response",Q),this.protocol="prefab";let U=Y.capabilities;this._hostSupportsSubscriptions=U?.subscriptions===!0,Z(Y)};this.on("prefab:init-response",Q),this.sendPrefab("prefab:init",{capabilities:$}),setTimeout(()=>{if(!q)q=!0,this.off("prefab:init-response",Q),J(Error("prefab:init timeout"))},2000)})}createPrefabTransport(){return{callTool:($,Z)=>{let J=`tc-${++this.callIdCounter}`;return new Promise((q,Q)=>{this.pending.set(J,{resolve:q,reject:Q}),this.sendPrefab("prefab:tool-call",{tool:$,arguments:Z},J),setTimeout(()=>{if(this.pending.has(J))this.pending.delete(J),Q(Error(`Tool call '${$}' timed out`))},30000)})},sendMessage:($)=>{return this.sendPrefab("prefab:send-message",{message:$}),Promise.resolve()},subscribe:($,Z)=>{return this.subscribe($,Z)},capabilities:{subscriptions:this._hostSupportsSubscriptions}}}sendPrefab($,Z,J){if(typeof window>"u")return;let q=window.parent!==window?window.parent:window,Q={type:$,payload:Z,id:J};q.postMessage(Q,this.hostOrigin)}handleJsonRpc($){if(!("method"in $)){let q=this.rpcPending.get($.id);if(q)if(this.rpcPending.delete($.id),$.error)q.reject(Error($.error.message));else q.resolve($.result);return}let Z=$.method,J=$.params??{};if($.id!=null&&this.sentRpcIds.delete($.id))return;if($.id!=null)this.postJsonRpc({jsonrpc:"2.0",id:$.id,result:{}});switch(Z){case"ui/notifications/tool-input":this.dispatch("prefab:tool-input",{args:J.arguments??J});break;case"ui/notifications/tool-input-partial":this.dispatch("prefab:tool-input-partial",{args:J.arguments??J});break;case"ui/notifications/tool-result":this.dispatch("prefab:tool-result",{result:J});break;case"ui/notifications/tool-cancelled":this.dispatch("prefab:tool-cancelled",J);break;case"ui/notifications/host-context-changed":{let q={};if(typeof J.theme==="string")q.colorScheme=J.theme;if(typeof J.styles==="object"&&J.styles!==null){let Q=J.styles;if(Q.variables)q.variables=Q.variables;if(typeof Q.css?.fonts==="string")q.fontCss=Q.css.fonts}this.dispatch("prefab:theme-update",q),this.dispatch("prefab:host-context-changed",J);break}case"ui/resource-teardown":this.dispatch("prefab:teardown",J);break;case"ui/notifications/resource-updated":case"notifications/resources/updated":this.dispatch("prefab:resource-updated",J);break}}initJsonRpc($){return new Promise((Z,J)=>{let q=++this.rpcIdCounter,Q=!1;this.rpcPending.set(q,{resolve:(Y)=>{if(Q)return;Q=!0,this.protocol="jsonrpc";let U=Y??{},H=U.hostInfo??{},W=U.hostContext??{},_=U.hostCapabilities??{},E;if(typeof W.theme==="string"||typeof W.styles==="object"){if(E={},typeof W.theme==="string")E.colorScheme=W.theme;if(typeof W.styles==="object"&&W.styles!==null){let B=W.styles;if(B.variables)E.variables=B.variables;if(typeof B.css?.fonts==="string")E.fontCss=B.css.fonts}}this.postJsonRpc({jsonrpc:"2.0",method:"ui/notifications/initialized",params:{}});let G=_.resources;this._hostSupportsSubscriptions=_.subscriptions===!0||G?.subscribe===!0,Z({hostName:H.name,hostVersion:H.version,capabilities:{toast:!0,navigation:_.openLinks!=null,messaging:!0,displayModes:W.availableDisplayModes??[]},theme:E,toolInput:void 0,meta:W})},reject:(Y)=>{if(Q)return;Q=!0,J(Y)}}),this.postJsonRpc({jsonrpc:"2.0",id:q,method:"ui/initialize",params:{protocolVersion:"2026-01-26",appInfo:{name:"prefab",version:T4},appCapabilities:{...$.displayModes&&{availableDisplayModes:$.displayModes}}}}),setTimeout(()=>{if(!Q)Q=!0,this.rpcPending.delete(q),J(Error("ui/initialize timeout"))},2000)})}createJsonRpcTransport(){return{callTool:($,Z)=>{return this.sendRpcRequest("tools/call",{name:$,arguments:Z})},sendMessage:($)=>{return this.sendRpcRequest("ui/message",{role:"user",content:{type:"text",text:$}})},subscribe:($,Z)=>{return this.subscribe($,Z)},capabilities:{subscriptions:this._hostSupportsSubscriptions}}}sendRpcRequest($,Z){let J=++this.rpcIdCounter;return new Promise((q,Q)=>{this.rpcPending.set(J,{resolve:q,reject:Q}),this.postJsonRpc({jsonrpc:"2.0",id:J,method:$,params:Z}),setTimeout(()=>{if(this.rpcPending.has(J))this.rpcPending.delete(J),Q(Error(`JSON-RPC '${$}' timed out`))},30000)})}sendRpcNotification($,Z){this.postJsonRpc({jsonrpc:"2.0",method:$,params:Z})}postJsonRpc($){if(typeof window>"u")return;if($.id!=null&&typeof $.method==="string")this.sentRpcIds.add($.id);if(this.postFn)this.postFn($);else(window.parent!==window?window.parent:window).postMessage($,this.hostOrigin)}dispatch($,Z){let J=this.listeners.get($);if(J)for(let q of J)q(Z)}}var W5=()=>{};function j1($,Z){if(Z.variables)for(let[J,q]of Object.entries(Z.variables))$.style.setProperty(J.startsWith("--")?J:`--${J}`,q);if(Z.colorScheme&&Z.colorScheme!=="auto")$.setAttribute("data-theme",Z.colorScheme);if(Z.fontCss)G5(Z.fontCss)}function G5($){if(document.getElementById("__prefab-host-fonts"))return;let J=document.createElement("style");J.id="__prefab-host-fonts",J.textContent=$,document.head.appendChild(J)}function F1(){if(typeof window>"u")return!1;try{return window.self!==window.top}catch{return!0}}function X5(){if(typeof window>"u")return;let $=window;if(typeof $.acquireVsCodeApi==="function")try{let Z=$.acquireVsCodeApi();if(Z!==null&&typeof Z==="object"&&"postMessage"in Z)return Z}catch{return}return}async function t1($){r1();let Z=$?.mode??"auto",J=Z==="bridge"||Z==="auto"&&F1(),q,Q,Y={capabilities:{}};if(J)Q=new _1($?.hostOrigin),Q.connect(),Y=await Q.initialize($?.capabilities??{toolInput:!0}),q=Q.createTransport();else if($?.transport)q=a1($.transport);else q=o1();if(Y.theme&&typeof document<"u")j1(document.documentElement,Y.theme);if(typeof document<"u"&&!Q)M5();let U,H,W,_,E,G=Y.toolInput,B;if(Q)Q.on("prefab:tool-input",(M)=>{let z=M.args??M;if(U)U(z);else G=z}),Q.on("prefab:tool-result",(M)=>{let z=M.result??M;if(H)H(z);else B=z}),Q.on("prefab:tool-cancelled",()=>{W?.()}),Q.on("prefab:tool-input-partial",(M)=>{_?.(M.args??M)}),Q.on("prefab:theme-update",(M)=>{if(typeof document<"u")j1(document.documentElement,M)}),Q.on("prefab:host-context-changed",(M)=>{E?.(M)});function K(M,...z){let T=V0(M),P=new D1,A={store:P,scope:{},transport:q,rerender:()=>I(),onToast:void 0};function I(){T.innerHTML="";for(let j of z)T.appendChild(u(j,A))}return I(),{rerender:I,store:P,destroy:()=>{T.innerHTML=""}}}return{callTool:(M,z={})=>q.callTool(M,z),sendMessage:(M)=>q.sendMessage(M),onToolInput:(M)=>{if(U=M,G){let z=G;G=void 0,queueMicrotask(()=>M(z))}},onToolResult:(M)=>{if(H=M,B!==void 0){let z=B;B=void 0,queueMicrotask(()=>M(z))}},onToolCancelled:(M)=>{W=M},onToolInputPartial:(M)=>{_=M},onHostContextChanged:(M)=>{E=M},render:K,mount:(M,z,T)=>{let P=V0(M);return Z1.mount(P,z,{transport:q,...T})},requestMode:(M)=>Q?.requestMode(M),openLink:(M,z)=>{if(Q)Q.openLink(M,z);else if(typeof window<"u")window.open(M,z??"_blank")},updateContext:(M)=>{if(Q)Q.updateContext(M)},setupAutoResize:(M)=>{if(!Q)return B5;let z=typeof M==="string"?V0(M):M;return Q.setupAutoResize(z)},notifyPreferredSize:(M)=>{if(Q)Q.notifyPreferredSize(M)},host:Y,capabilities:Y.capabilities,theme:Y.theme,transport:q,destroy:()=>Q?.disconnect()}}var B5=()=>{};function V0($){if(typeof $==="string"){if(typeof document>"u")throw Error("Cannot resolve selector outside browser");let Z=document.querySelector($);if(!Z)throw Error(`Element not found: ${$}`);return Z}return $}function M5(){function $(){let J=document.body.getAttribute("data-vscode-theme-kind");if(!J)return;let q=J.includes("light")?"light":"dark";document.documentElement.setAttribute("data-theme",q)}$(),new MutationObserver($).observe(document.body,{attributes:!0,attributeFilter:["data-vscode-theme-kind"]})}var O4=["Accordion","AccordionItem","Alert","AlertDescription","AlertTitle","AreaChart","Audio","Badge","BarChart","BlockQuote","Button","ButtonGroup","Calendar","Card","CardContent","CardDescription","CardFooter","CardHeader","CardTitle","Carousel","Checkbox","ChoiceCard","Code","Column","Combobox","ComboboxGroup","ComboboxLabel","ComboboxOption","ComboboxSeparator","Condition","Container","Dashboard","DashboardItem","DataTable","DatePicker","Define","Detail","Dialog","Div","Dot","DropZone","Elif","Else","Embed","ExpandableRow","Field","FieldContent","FieldDescription","FieldError","FieldTitle","ForEach","Form","Grid","GridItem","H1","H2","H3","H4","Heading","Histogram","HoverCard","Icon","If","Image","Input","Kbd","Label","Large","Lead","LineChart","Link","Loader","Markdown","MasterDetail","Mermaid","Metric","Muted","P","Page","Pages","PdfViewer","PieChart","Popover","Progress","RadarChart","RadialChart","Radio","RadioGroup","Ring","Row","ScatterChart","Select","SelectGroup","SelectLabel","SelectOption","SelectSeparator","Separator","Slider","Slot","Small","Span","Sparkline","Svg","Switch","Tab","Table","TableBody","TableCaption","TableCell","TableFooter","TableHead","TableHeader","TableRow","Tabs","Text","Textarea","Tooltip","Use","Video"];var R4=new Set(O4);function L1($,Z={}){let J=[],q=Z.strict??!1;if($==null||typeof $!=="object")return J.push({path:"$",message:"Wire data must be a non-null object"}),{valid:!1,errors:J};let Q=$;if(Q.$prefab==null||typeof Q.$prefab!=="object")J.push({path:"$.$prefab",message:"Missing or invalid $prefab header"});else if(typeof Q.$prefab.version!=="string")J.push({path:"$.$prefab.version",message:"version must be a string"});if(Q.view==null)J.push({path:"$.view",message:'Missing required "view" field'});else j0(Q.view,"$.view",J,q);if(Q.state!==void 0){if(Q.state===null||typeof Q.state!=="object"||Array.isArray(Q.state))J.push({path:"$.state",message:"state must be a plain object"})}if(Q.theme!==void 0)N5(Q.theme,J);if(Q.css!==void 0)P4(Q.css,"$.css",J);if(Q.stylesheets!==void 0)P4(Q.stylesheets,"$.stylesheets",J);if(Q.mode!==void 0&&Q.mode!=="light"&&Q.mode!=="dark")J.push({path:"$.mode",message:'mode must be "light" or "dark"'});if(Q.defs!==void 0)if(Q.defs===null||typeof Q.defs!=="object"||Array.isArray(Q.defs))J.push({path:"$.defs",message:"defs must be a plain object"});else for(let[Y,U]of Object.entries(Q.defs))j0(U,`$.defs.${Y}`,J,q);if(Q.keyBindings!==void 0)if(Q.keyBindings===null||typeof Q.keyBindings!=="object"||Array.isArray(Q.keyBindings))J.push({path:"$.keyBindings",message:"keyBindings must be a plain object"});else for(let[Y,U]of Object.entries(Q.keyBindings))k0(U,`$.keyBindings.${Y}`,J);return{valid:J.length===0,errors:J}}function V4($){return L1($).valid}function j0($,Z,J,q){if($==null||typeof $!=="object"||Array.isArray($)){J.push({path:Z,message:"Component must be a plain object"});return}let Q=$;if(typeof Q.type!=="string"||Q.type.length===0){J.push({path:`${Z}.type`,message:'Component must have a non-empty "type" string'});return}if(q&&!R4.has(Q.type))J.push({path:`${Z}.type`,message:`Unknown component type: "${Q.type}"`});if(Q.children!==void 0)if(!Array.isArray(Q.children))J.push({path:`${Z}.children`,message:"children must be an array"});else for(let U=0;U<Q.children.length;U++)j0(Q.children[U],`${Z}.children[${U}]`,J,q);let Y=["onClick","on_click","onChange","on_change","onSubmit","on_submit","onMount","on_mount","onClose","on_close"];for(let U of Y)if(Q[U]!==void 0)k0(Q[U],`${Z}.${U}`,J);for(let[U,H]of Object.entries(Q)){if(U==="type"||_5.has(U)||Y.includes(U))continue;if(I4(H)||Array.isArray(H)&&H.some(I4))J.push({path:`${Z}.${U}`,message:`Components under "${U}" are ignored by the renderer; move them into "children"`})}}var _5=new Set(["children","fallback","trigger","empty","else","summary"]);function I4($){if($==null||typeof $!=="object"||Array.isArray($))return!1;let Z=$.type;return typeof Z==="string"&&R4.has(Z)}function k0($,Z,J){if(Array.isArray($)){for(let H=0;H<$.length;H++)k0($[H],`${Z}[${H}]`,J);return}if($==null||typeof $!=="object"){J.push({path:Z,message:"Action must be an object or array of objects"});return}let q=$,Q=typeof q.type==="string"&&q.type.length>0,Y=typeof q.action==="string"&&q.action.length>0;if(!Q&&!Y){J.push({path:`${Z}.type`,message:'Action must have a non-empty "type" or "action" string'});return}if((Y?q.action:q.type).toLowerCase()==="showtoast"){if(typeof q.message!=="string"||q.message.length===0)J.push({path:`${Z}.message`,message:'showToast requires a non-empty "message" string'})}}function P4($,Z,J){if(!Array.isArray($)){J.push({path:Z,message:`${Z} must be an array of strings`});return}for(let q=0;q<$.length;q++)if(typeof $[q]!=="string")J.push({path:`${Z}[${q}]`,message:"must be a string"})}function N5($,Z){if($===null||typeof $!=="object"||Array.isArray($)){Z.push({path:"$.theme",message:"theme must be a plain object"});return}let J=$;for(let q of["light","dark"])if(J[q]!==void 0){if(J[q]===null||typeof J[q]!=="object"||Array.isArray(J[q]))Z.push({path:`$.theme.${q}`,message:`theme.${q} must be a plain object`})}}var Z1={mount($,Z,J){if(r1(),J?.validate!==!1)for(let z of L1(Z).errors)w.warn(`wire validation ${z.path}: ${z.message}`);let q=Z,Q={tracked:[],evalBlocked:!1};if(q.pipes)for(let[z,T]of Object.entries(q.pipes))j4(z,T,Q);let Y=new D1(q.state),U;if(J?.transport&&"callTool"in J.transport)U=J.transport;else if(J?.transport)U=a1(J.transport);else U=o1();let H=J?.onToast??K5,W=new I1;function _(z){let T=z;if(q=T,T.state)Y.merge(T.state);if(T.defs)E.defs=T.defs;if(T.theme)P0($,T.theme);if(T.mode)k4($,T.mode);if(T.pipes)for(let[P,A]of Object.entries(T.pipes))j4(P,A,Q);for(let P of G)P.remove();if(G.length=0,G.push(...A4(T.css,T.stylesheets)),S4($,T.layout),B?.(),B=void 0,T.keyBindings)B=R0(T.keyBindings,(P)=>{v(h(P,{store:Y,transport:U,scope:{},rerender:()=>M(),remount:_,onToast:H}),"keyBinding")});M()}let E={store:Y,scope:{},transport:U,rerender:()=>M(),remount:_,onToast:H,defs:q.defs,destroyRegistry:W};if(P0($,q.theme),q.mode)k4($,q.mode);S4($,q.layout);let G=A4(q.css,q.stylesheets),B;if(q.keyBindings)B=R0(q.keyBindings,(z)=>{v(h(z,{store:Y,transport:U,scope:{},rerender:()=>M(),remount:_,onToast:H}),"keyBinding")});let K,L=J?.themeToggle??!0;if(L!==!1)K=V1($,typeof L==="object"?L:void 0);function M(){W.flush();let z=$.querySelector(".pf-theme-toggle");$.innerHTML="";let T=u(q.view,E);if($.appendChild(T),z)$.appendChild(z)}return M(),{rerender:()=>M(),update(z){if(Y.merge(z.update.state),M(),z.update.actions!=null)v(h(z.update.actions,E),"update action")},store:Y,destroy(){W.flush(),K?.(),B?.(),h0(),v0();for(let z of G)z.remove();for(let z of Q.tracked)O1(z);$.innerHTML=""}}},isPrefabData($){return $!=null&&typeof $==="object"&&"$prefab"in $},isPrefabUpdate($){return $!=null&&typeof $==="object"&&"$prefab"in $&&"update"in $}},E5=new Set(["find","dot","length","upper","lower","truncate","join","first","last","abs","round","number","currency","percent","compact","date","time","datetime","pluralize","default","selectattr","rejectattr"]);function z5($){if($ instanceof EvalError)return!0;return $ instanceof Error&&/unsafe-eval|Content Security Policy|call to Function/i.test($.message)}function j4($,Z,J){if(E5.has($)){w.warn(`wire pipe "${$}" ignored — shadows built-in`);return}if(S1($)!=null){w.debug(`wire pipe "${$}" — already registered, keeping local implementation`);return}if(J.evalBlocked)return;try{let q=Function("return ("+Z+")")();if(typeof q!=="function"){w.warn(`wire pipe "${$}" — source did not evaluate to a function`);return}T1($,q),J.tracked.push($)}catch(q){if(z5(q)){J.evalBlocked=!0,w.warn("wire pipes cannot be hydrated — this host's CSP forbids eval. Pre-register them with "+"prefab.registerPipe() from a companion script (rendererHtml({ scripts })) and they are used as-is.");return}w.warn(`wire pipe "${$}" — failed to hydrate:`,q)}}function K5($){if(typeof document>"u")return;let Z=L5(),J=document.createElement("div"),q=$.variant??"default";J.className=`pf-toast${q!=="default"?` pf-toast--${q}`:""}`,J.setAttribute("data-variant",q),J.style.marginBottom="8px",J.style.transition="opacity 0.3s ease";let Q=document.createElement("div");if(Q.textContent=$.message,Q.style.fontWeight="500",J.appendChild(Q),$.description){let U=document.createElement("div");U.textContent=$.description,U.style.fontSize="14px",U.style.color="var(--muted-foreground, #6b7280)",J.appendChild(U)}Z.appendChild(J);let Y=$.duration??4000;setTimeout(()=>{J.style.opacity="0",setTimeout(()=>J.remove(),300)},Y)}function k4($,Z){if(K1($,Z),typeof document<"u")K1(document.documentElement,Z)}function F5($){let Z=$.trim();if(Z.includes("{")||Z.includes("}"))return!1;return/^(https?:)?\/\//i.test(Z)||Z.startsWith("/")||/\.css(\?|#|$)/i.test(Z)}function A4($,Z){let J=[];if(typeof document>"u")return J;for(let q of $??[]){let Q=document.createElement("style");Q.textContent=q,Q.dataset.prefab="injected",document.head.appendChild(Q),J.push(Q)}for(let q of Z??[])if(F5(q)){let Q=document.createElement("link");Q.rel="stylesheet",Q.href=q,Q.dataset.prefab="injected",document.head.appendChild(Q),J.push(Q)}else{let Q=document.createElement("style");Q.textContent=q,Q.dataset.prefab="injected",document.head.appendChild(Q),J.push(Q)}return J}function S4($,Z){if($.style.height="",$.style.minHeight="",$.style.maxHeight="",$.style.overflow="",!Z)return;if(Z.preferredHeight!=null)$.style.height=`${Z.preferredHeight}px`;if(Z.minHeight!=null)$.style.minHeight=`${Z.minHeight}px`;if(Z.maxHeight!=null)$.style.maxHeight=`${Z.maxHeight}px`,$.style.overflow="auto"}function L5(){let Z=document.getElementById("prefab-toast-container");if(!Z)Z=document.createElement("div"),Z.id="prefab-toast-container",Z.style.position="fixed",Z.style.bottom="16px",Z.style.right="16px",Z.style.zIndex="9999",Z.style.maxWidth="400px",document.body.appendChild(Z);return Z}if(typeof window<"u"){let $=window;$.PrefabRenderer=Z1,$.prefab={app:t1,mount:Z1.mount.bind(Z1),isPrefabData:Z1.isPrefabData.bind(Z1),isPrefabUpdate:Z1.isPrefabUpdate.bind(Z1),Bridge:_1,isIframe:F1,registerPipe:T1,unregisterPipe:O1,listPipes:A1,registerComponent:X,createThemeToggle:V1,validateWireFormat:L1,setLogLevel:k1};let Z=$.__PREFAB_DATA__;if(Z!=null){let J=document.getElementById("prefab-root");if(J)Z1.mount(J,Z)}}})();
|
|
15
|
+
}`)}return t.join(`
|
|
16
|
+
`)}function ye(e,t){e.setAttribute("data-theme",t),e.classList.toggle("dark",t==="dark"),e.classList.toggle("light",t==="light")}function Rt(e,t){if(!t)return;if(t.light)for(let[n,r]of Object.entries(t.light))e.style.setProperty(`--${Et(n)}`,At(r));if(t.dark){let r=document.getElementById("prefab-dark-theme");if(!r)r=document.createElement("style"),r.id="prefab-dark-theme",document.head.appendChild(r);r.textContent=Sn({dark:t.dark})}}function Tt(e,t){if(!e||typeof document>"u")return;let n=(r)=>{for(let[o,s]of Object.entries(e))if(ms(o,r))r.preventDefault(),t(s)};return document.addEventListener("keydown",n),()=>document.removeEventListener("keydown",n)}function ms(e,t){let n=e.toLowerCase().split("+").map((s)=>s.trim()),r=n[n.length-1],o=new Set(n.slice(0,-1));if(o.has("ctrl")!==(t.ctrlKey||t.metaKey))return!1;if(o.has("shift")!==t.shiftKey)return!1;if(o.has("alt")!==t.altKey)return!1;return t.key.toLowerCase()===r}var En='<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="M12 3v2.25m6.364.386-1.591 1.591M21 12h-2.25m-.386 6.364-1.591-1.591M12 18.75V21m-4.773-4.227-1.591 1.591M5.25 12H3m4.227-4.773L5.636 5.636M15.75 12a3.75 3.75 0 1 1-7.5 0 3.75 3.75 0 0 1 7.5 0Z"/></svg>',An='<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="M21.752 15.002A9.72 9.72 0 0 1 18 15.75c-5.385 0-9.75-4.365-9.75-9.75 0-1.33.266-2.597.748-3.752A9.753 9.753 0 0 0 3 11.25C3 16.635 7.365 21 12.75 21a9.753 9.753 0 0 0 9.002-5.998Z"/></svg>',Rn={"top-right":"top: 8px; right: 8px;","top-left":"top: 8px; left: 8px;","bottom-right":"bottom: 8px; right: 8px;","bottom-left":"bottom: 8px; left: 8px;"};function gs(e,t){try{let r=localStorage.getItem(t);if(r==="light"||r==="dark")return r}catch{}let n=e.getAttribute("data-theme")??document.documentElement.getAttribute("data-theme");if(n==="light"||n==="dark")return n;if(typeof window<"u"&&window.matchMedia("(prefers-color-scheme: light)").matches)return"light";return"dark"}function Te(e,t){if(typeof document>"u")return()=>{};let n=t?.position??"top-right",r=t?.storageKey??"prefab-theme",o=t?.syncDocument??!0,s=getComputedStyle(e).position;if(s==="static"||s==="")e.style.position="relative";let i=document.createElement("button");i.className="pf-theme-toggle",i.setAttribute("aria-label","Toggle theme"),i.setAttribute("title","Toggle light/dark"),Object.assign(i.style,{position:"absolute",zIndex:"100",width:"28px",height:"28px",border:"1px solid var(--border, #e5e7eb)",borderRadius:"6px",background:"var(--card, rgba(255,255,255,0.8))",color:"var(--foreground, #333)",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",padding:"0",opacity:"0.7",transition:"opacity 0.15s, border-color 0.15s"});let a=Rn[n]??Rn["top-right"];for(let d of a.split(";")){let[g,h]=d.split(":").map((y)=>y.trim());if(g&&h)i.style.setProperty(g,h)}i.addEventListener("mouseenter",()=>{i.style.opacity="1"}),i.addEventListener("mouseleave",()=>{i.style.opacity="0.7"});function l(d){if(ye(e,d),o)ye(document.documentElement,d);i.innerHTML=d==="dark"?An:En;try{localStorage.setItem(r,d)}catch{}}let c=gs(e,r);l(c),i.addEventListener("click",()=>{let d=e.getAttribute("data-theme")??"dark";l(d==="dark"?"light":"dark")}),e.appendChild(i);let u;if(o)u=new MutationObserver((d)=>{for(let g of d)if(g.type==="attributes"&&g.attributeName==="data-theme"){let h=document.documentElement.getAttribute("data-theme");if((h==="light"||h==="dark")&&h!==e.getAttribute("data-theme")){ye(e,h),i.innerHTML=h==="dark"?An:En;try{localStorage.setItem(r,h)}catch{}}}}),u.observe(document.documentElement,{attributes:!0,attributeFilter:["data-theme"]});return()=>{u?.disconnect(),i.remove()}}function Qe(e){let t=e?.baseUrl??(typeof window<"u"?window.location.origin:""),n={"Content-Type":"application/json",...e?.headers},r=e?.fetch??globalThis.fetch.bind(globalThis);return{async callTool(o,s){let i=await r(`${t}/mcp/tools/call`,{method:"POST",headers:n,body:JSON.stringify({jsonrpc:"2.0",method:"tools/call",params:{name:o,arguments:s}})});if(!i.ok)throw Error(`MCP tool call failed: ${i.status} ${i.statusText}`);let a=await i.json();if(a.error)throw Error(a.error.message??"MCP tool call returned error");let l=a.result?.content??a.content??[];for(let c of l)if(c.type==="text"&&c.text!==void 0){try{let u=JSON.parse(c.text);if(typeof u==="object"&&u!==null&&"$prefab"in u)return u;return u}catch{}return c.text}return a.result??a},async sendMessage(o){await r(`${t}/mcp/messages`,{method:"POST",headers:n,body:JSON.stringify({message:o})})}}}function et(){return{callTool(e){return P.warn(`No MCP transport: callTool('${e}') ignored`),Promise.resolve(null)},sendMessage(e){return P.warn("No MCP transport: sendMessage ignored",e),Promise.resolve()}}}var Tn="0.3.10";function hs(e){return e!==null&&typeof e==="object"&&e.jsonrpc==="2.0"}class me{hostOrigin;listeners=new Map;protocol="prefab";cleanup;pending=new Map;callIdCounter=0;rpcPending=new Map;rpcIdCounter=0;sentRpcIds=new Set;postFn;_hostSupportsSubscriptions=!1;constructor(e="*"){this.hostOrigin=e}connect(){if(typeof window>"u")return;let e=Cs();if(e)this.postFn=(n)=>e.postMessage(n);let t=(n)=>{if(this.hostOrigin!=="*"&&n.origin!==this.hostOrigin)return;let r=n.data;if(hs(r)){this.handleJsonRpc(r);return}let o=r;if(!o?.type.startsWith("prefab:"))return;if(o.type==="prefab:tool-call-response"&&o.id){let i=this.pending.get(o.id);if(i){if(this.pending.delete(o.id),o.payload?.error!=null)i.reject(Error(o.payload.error));else i.resolve(o.payload?.result);return}}let s=this.listeners.get(o.type);if(s)for(let i of s)i(o.payload??{})};window.addEventListener("message",t),this.cleanup=()=>window.removeEventListener("message",t)}async initialize(e){try{return await Promise.any([this.initPrefab(e),this.initJsonRpc(e)])}catch(t){let n=t instanceof AggregateError?t.errors.map((r)=>r.message).join("; "):String(t);throw Error(`Bridge init failed — no host responded. Tried: ${n}`,{cause:t})}}createTransport(){if(this.protocol==="jsonrpc")return this.createJsonRpcTransport();return this.createPrefabTransport()}requestMode(e){if(this.protocol==="jsonrpc")this.sendRpcRequest("ui/request-display-mode",{mode:e});else this.sendPrefab("prefab:request-mode",{mode:e})}openLink(e,t){if(this.protocol==="jsonrpc")this.sendRpcRequest("ui/open-link",{url:e,target:t});else this.sendPrefab("prefab:open-link",{url:e,target:t})}updateContext(e){if(this.protocol==="jsonrpc")this.sendRpcRequest("ui/update-model-context",{structuredContent:e});else this.sendPrefab("prefab:update-context",{context:e})}setupAutoResize(e){if(typeof ResizeObserver>"u")return bs;let t=-1,n=-1,r=(i,a)=>{if(i===t&&a===n)return;if(t=i,n=a,this.protocol==="jsonrpc")this.sendRpcNotification("ui/notifications/size-changed",{width:i,height:a});else this.sendPrefab("prefab:size-changed",{width:i,height:a})},o=new ResizeObserver((i)=>{for(let a of i)if(a.borderBoxSize.length){let l=a.borderBoxSize[0];r(Math.ceil(l.inlineSize),Math.ceil(l.blockSize))}else{let l=a.target.getBoundingClientRect();r(Math.ceil(l.width),Math.ceil(l.height))}});o.observe(e);let s=e.getBoundingClientRect();return r(Math.ceil(s.width),Math.ceil(s.height)),()=>o.disconnect()}notifyPreferredSize(e){if(this.protocol==="jsonrpc")this.sendRpcNotification("ui/notifications/preferred-size",e);else this.sendPrefab("prefab:preferred-size",e)}subscribe(e,t){let n=(r)=>{if(r.uri!==e)return;t(r.contents??r.data??r)};if(this.protocol==="jsonrpc")this.on("prefab:resource-updated",n),this.sendRpcRequest("resources/subscribe",{uri:e});else this.on("prefab:resource-updated",n),this.sendPrefab("prefab:subscribe",{uri:e});return()=>{if(this.off("prefab:resource-updated",n),this.protocol==="jsonrpc")this.sendRpcRequest("resources/unsubscribe",{uri:e});else this.sendPrefab("prefab:unsubscribe",{uri:e})}}get supportsSubscriptions(){return this._hostSupportsSubscriptions}on(e,t){if(!this.listeners.has(e))this.listeners.set(e,new Set);let n=this.listeners.get(e);if(n)n.add(t)}off(e,t){this.listeners.get(e)?.delete(t)}disconnect(){this.cleanup?.(),this.listeners.clear();for(let[,e]of this.pending)e.reject(Error("Bridge disconnected"));this.pending.clear();for(let[,e]of this.rpcPending)e.reject(Error("Bridge disconnected"));this.rpcPending.clear(),this.sentRpcIds.clear()}get activeProtocol(){return this.protocol}initPrefab(e){return new Promise((t,n)=>{let r=!1,o=(s)=>{if(r)return;r=!0,this.off("prefab:init-response",o),this.protocol="prefab";let i=s.capabilities;this._hostSupportsSubscriptions=i?.subscriptions===!0,t(s)};this.on("prefab:init-response",o),this.sendPrefab("prefab:init",{capabilities:e}),setTimeout(()=>{if(!r)r=!0,this.off("prefab:init-response",o),n(Error("prefab:init timeout"))},2000)})}createPrefabTransport(){return{callTool:(e,t)=>{let n=`tc-${++this.callIdCounter}`;return new Promise((r,o)=>{this.pending.set(n,{resolve:r,reject:o}),this.sendPrefab("prefab:tool-call",{tool:e,arguments:t},n),setTimeout(()=>{if(this.pending.has(n))this.pending.delete(n),o(Error(`Tool call '${e}' timed out`))},30000)})},sendMessage:(e)=>(this.sendPrefab("prefab:send-message",{message:e}),Promise.resolve()),subscribe:(e,t)=>this.subscribe(e,t),capabilities:{subscriptions:this._hostSupportsSubscriptions}}}sendPrefab(e,t,n){if(typeof window>"u")return;let r=window.parent!==window?window.parent:window,o={type:e,payload:t,id:n};r.postMessage(o,this.hostOrigin)}handleJsonRpc(e){if(!("method"in e)){let r=this.rpcPending.get(e.id);if(r)if(this.rpcPending.delete(e.id),e.error)r.reject(Error(e.error.message));else r.resolve(e.result);return}let t=e.method,n=e.params??{};if(e.id!=null&&this.sentRpcIds.delete(e.id))return;if(e.id!=null)this.postJsonRpc({jsonrpc:"2.0",id:e.id,result:{}});switch(t){case"ui/notifications/tool-input":this.dispatch("prefab:tool-input",{args:n.arguments??n});break;case"ui/notifications/tool-input-partial":this.dispatch("prefab:tool-input-partial",{args:n.arguments??n});break;case"ui/notifications/tool-result":this.dispatch("prefab:tool-result",{result:n});break;case"ui/notifications/tool-cancelled":this.dispatch("prefab:tool-cancelled",n);break;case"ui/notifications/host-context-changed":{let r={};if(typeof n.theme==="string")r.colorScheme=n.theme;if(typeof n.styles==="object"&&n.styles!==null){let o=n.styles;if(o.variables)r.variables=o.variables;if(typeof o.css?.fonts==="string")r.fontCss=o.css.fonts}this.dispatch("prefab:theme-update",r),this.dispatch("prefab:host-context-changed",n);break}case"ui/resource-teardown":this.dispatch("prefab:teardown",n);break;case"ui/notifications/resource-updated":case"notifications/resources/updated":this.dispatch("prefab:resource-updated",n);break}}initJsonRpc(e){return new Promise((t,n)=>{let r=++this.rpcIdCounter,o=!1;this.rpcPending.set(r,{resolve:(s)=>{if(o)return;o=!0,this.protocol="jsonrpc";let i=s??{},a=i.hostInfo??{},l=i.hostContext??{},c=i.hostCapabilities??{},u;if(typeof l.theme==="string"||typeof l.styles==="object"){if(u={},typeof l.theme==="string")u.colorScheme=l.theme;if(typeof l.styles==="object"&&l.styles!==null){let g=l.styles;if(g.variables)u.variables=g.variables;if(typeof g.css?.fonts==="string")u.fontCss=g.css.fonts}}this.postJsonRpc({jsonrpc:"2.0",method:"ui/notifications/initialized",params:{}});let d=c.resources;this._hostSupportsSubscriptions=c.subscriptions===!0||d?.subscribe===!0,t({hostName:a.name,hostVersion:a.version,capabilities:{toast:!0,navigation:c.openLinks!=null,messaging:!0,displayModes:l.availableDisplayModes??[]},theme:u,toolInput:void 0,meta:l})},reject:(s)=>{if(o)return;o=!0,n(s)}}),this.postJsonRpc({jsonrpc:"2.0",id:r,method:"ui/initialize",params:{protocolVersion:"2026-01-26",appInfo:{name:"prefab",version:Tn},appCapabilities:{...e.displayModes&&{availableDisplayModes:e.displayModes}}}}),setTimeout(()=>{if(!o)o=!0,this.rpcPending.delete(r),n(Error("ui/initialize timeout"))},2000)})}createJsonRpcTransport(){return{callTool:(e,t)=>this.sendRpcRequest("tools/call",{name:e,arguments:t}),sendMessage:(e)=>this.sendRpcRequest("ui/message",{role:"user",content:{type:"text",text:e}}),subscribe:(e,t)=>this.subscribe(e,t),capabilities:{subscriptions:this._hostSupportsSubscriptions}}}sendRpcRequest(e,t){let n=++this.rpcIdCounter;return new Promise((r,o)=>{this.rpcPending.set(n,{resolve:r,reject:o}),this.postJsonRpc({jsonrpc:"2.0",id:n,method:e,params:t}),setTimeout(()=>{if(this.rpcPending.has(n))this.rpcPending.delete(n),o(Error(`JSON-RPC '${e}' timed out`))},30000)})}sendRpcNotification(e,t){this.postJsonRpc({jsonrpc:"2.0",method:e,params:t})}postJsonRpc(e){if(typeof window>"u")return;if(e.id!=null&&typeof e.method==="string")this.sentRpcIds.add(e.id);if(this.postFn)this.postFn(e);else(window.parent!==window?window.parent:window).postMessage(e,this.hostOrigin)}dispatch(e,t){let n=this.listeners.get(e);if(n)for(let r of n)r(t)}}var bs=()=>{};function Ne(e,t){if(t.variables)for(let[n,r]of Object.entries(t.variables))e.style.setProperty(n.startsWith("--")?n:`--${n}`,r);if(t.colorScheme&&t.colorScheme!=="auto")e.setAttribute("data-theme",t.colorScheme);if(t.fontCss)ys(t.fontCss)}function ys(e){if(document.getElementById("__prefab-host-fonts"))return;let n=document.createElement("style");n.id="__prefab-host-fonts",n.textContent=e,document.head.appendChild(n)}function Ce(){if(typeof window>"u")return!1;try{return window.self!==window.top}catch{return!0}}function Cs(){if(typeof window>"u")return;let e=window;if(typeof e.acquireVsCodeApi==="function")try{let t=e.acquireVsCodeApi();if(t!==null&&typeof t==="object"&&"postMessage"in t)return t}catch{return}return}async function tt(e){Ze();let t=e?.mode??"auto",n=t==="bridge"||t==="auto"&&Ce(),r,o,s={capabilities:{}};if(n)o=new me(e?.hostOrigin),o.connect(),s=await o.initialize(e?.capabilities??{toolInput:!0}),r=o.createTransport();else if(e?.transport)r=Qe(e.transport);else r=et();if(s.theme&&typeof document<"u")Ne(document.documentElement,s.theme);if(typeof document<"u"&&!o)ws();let i,a,l,c,u,d=s.toolInput,g;if(o)o.on("prefab:tool-input",(f)=>{let b=f.args??f;if(i)i(b);else d=b}),o.on("prefab:tool-result",(f)=>{let b=f.result??f;if(a)a(b);else g=b}),o.on("prefab:tool-cancelled",()=>{l?.()}),o.on("prefab:tool-input-partial",(f)=>{c?.(f.args??f)}),o.on("prefab:theme-update",(f)=>{if(typeof document<"u")Ne(document.documentElement,f)}),o.on("prefab:host-context-changed",(f)=>{u?.(f)});function h(f,...b){let w=Nt(f),S=new we,N={store:S,scope:{},transport:r,rerender:()=>k(),onToast:void 0};function k(){w.innerHTML="";for(let R of b)w.appendChild(J(R,N))}return k(),{rerender:k,store:S,destroy:()=>{w.innerHTML=""}}}return{callTool:(f,b={})=>r.callTool(f,b),sendMessage:(f)=>r.sendMessage(f),onToolInput:(f)=>{if(i=f,d){let b=d;d=void 0,queueMicrotask(()=>f(b))}},onToolResult:(f)=>{if(a=f,g!==void 0){let b=g;g=void 0,queueMicrotask(()=>f(b))}},onToolCancelled:(f)=>{l=f},onToolInputPartial:(f)=>{c=f},onHostContextChanged:(f)=>{u=f},render:h,mount:(f,b,w)=>{let S=Nt(f);return ne.mount(S,b,{transport:r,...w})},requestMode:(f)=>o?.requestMode(f),openLink:(f,b)=>{if(o)o.openLink(f,b);else if(typeof window<"u")window.open(f,b??"_blank")},updateContext:(f)=>{if(o)o.updateContext(f)},setupAutoResize:(f)=>{if(!o)return vs;let b=typeof f==="string"?Nt(f):f;return o.setupAutoResize(b)},notifyPreferredSize:(f)=>{if(o)o.notifyPreferredSize(f)},host:s,capabilities:s.capabilities,theme:s.theme,transport:r,destroy:()=>o?.disconnect()}}var vs=()=>{};function Nt(e){if(typeof e==="string"){if(typeof document>"u")throw Error("Cannot resolve selector outside browser");let t=document.querySelector(e);if(!t)throw Error(`Element not found: ${e}`);return t}return e}function ws(){function e(){let n=document.body.getAttribute("data-vscode-theme-kind");if(!n)return;let r=n.includes("light")?"light":"dark";document.documentElement.setAttribute("data-theme",r)}e(),new MutationObserver(e).observe(document.body,{attributes:!0,attributeFilter:["data-vscode-theme-kind"]})}var Nn=["Accordion","AccordionItem","Alert","AlertDescription","AlertTitle","AreaChart","Audio","Badge","BarChart","BlockQuote","Button","ButtonGroup","Calendar","Card","CardContent","CardDescription","CardFooter","CardHeader","CardTitle","Carousel","Checkbox","ChoiceCard","Code","Column","Combobox","ComboboxGroup","ComboboxLabel","ComboboxOption","ComboboxSeparator","Condition","Container","Dashboard","DashboardItem","DataTable","DatePicker","Define","Detail","Dialog","Div","Dot","DropZone","Elif","Else","Embed","ExpandableRow","Field","FieldContent","FieldDescription","FieldError","FieldTitle","ForEach","Form","Grid","GridItem","H1","H2","H3","H4","Heading","Histogram","HoverCard","Icon","If","Image","Input","Kbd","Label","Large","Lead","LineChart","Link","Loader","Markdown","MasterDetail","Mermaid","Metric","Muted","P","Page","Pages","PdfViewer","PieChart","Popover","Progress","RadarChart","RadialChart","Radio","RadioGroup","Ring","Row","ScatterChart","Select","SelectGroup","SelectLabel","SelectOption","SelectSeparator","Separator","Slider","Slot","Small","Span","Sparkline","Svg","Switch","Tab","Table","TableBody","TableCaption","TableCell","TableFooter","TableHead","TableHeader","TableRow","Tabs","Text","Textarea","Tooltip","Use","Video"];var Hn=new Set(Nn);function ve(e,t={}){let n=[],r=t.strict??!1;if(e==null||typeof e!=="object")return n.push({path:"$",message:"Wire data must be a non-null object"}),{valid:!1,errors:n};let o=e;if(o.$prefab==null||typeof o.$prefab!=="object")n.push({path:"$.$prefab",message:"Missing or invalid $prefab header"});else if(typeof o.$prefab.version!=="string")n.push({path:"$.$prefab.version",message:"version must be a string"});if(o.view==null)n.push({path:"$.view",message:'Missing required "view" field'});else Mt(o.view,"$.view",n,r);if(o.state!==void 0){if(o.state===null||typeof o.state!=="object"||Array.isArray(o.state))n.push({path:"$.state",message:"state must be a plain object"})}if(o.theme!==void 0)ks(o.theme,n);if(o.css!==void 0)Ln(o.css,"$.css",n);if(o.stylesheets!==void 0)Ln(o.stylesheets,"$.stylesheets",n);if(o.mode!==void 0&&o.mode!=="light"&&o.mode!=="dark")n.push({path:"$.mode",message:'mode must be "light" or "dark"'});if(o.defs!==void 0)if(o.defs===null||typeof o.defs!=="object"||Array.isArray(o.defs))n.push({path:"$.defs",message:"defs must be a plain object"});else for(let[s,i]of Object.entries(o.defs))Mt(i,`$.defs.${s}`,n,r);if(o.keyBindings!==void 0)if(o.keyBindings===null||typeof o.keyBindings!=="object"||Array.isArray(o.keyBindings))n.push({path:"$.keyBindings",message:"keyBindings must be a plain object"});else for(let[s,i]of Object.entries(o.keyBindings))Lt(i,`$.keyBindings.${s}`,n);return{valid:n.length===0,errors:n}}function Pn(e){return ve(e).valid}function Mt(e,t,n,r){if(e==null||typeof e!=="object"||Array.isArray(e)){n.push({path:t,message:"Component must be a plain object"});return}let o=e;if(typeof o.type!=="string"||o.type.length===0){n.push({path:`${t}.type`,message:'Component must have a non-empty "type" string'});return}if(r&&!Hn.has(o.type))n.push({path:`${t}.type`,message:`Unknown component type: "${o.type}"`});if(o.children!==void 0)if(!Array.isArray(o.children))n.push({path:`${t}.children`,message:"children must be an array"});else for(let i=0;i<o.children.length;i++)Mt(o.children[i],`${t}.children[${i}]`,n,r);let s=["onClick","on_click","onChange","on_change","onSubmit","on_submit","onMount","on_mount","onClose","on_close"];for(let i of s)if(o[i]!==void 0)Lt(o[i],`${t}.${i}`,n);for(let[i,a]of Object.entries(o)){if(i==="type"||xs.has(i)||s.includes(i))continue;if(Mn(a)||Array.isArray(a)&&a.some(Mn))n.push({path:`${t}.${i}`,message:`Components under "${i}" are ignored by the renderer; move them into "children"`})}}var xs=new Set(["children","fallback","trigger","empty","else","summary"]);function Mn(e){if(e==null||typeof e!=="object"||Array.isArray(e))return!1;let t=e.type;return typeof t==="string"&&Hn.has(t)}function Lt(e,t,n){if(Array.isArray(e)){for(let a=0;a<e.length;a++)Lt(e[a],`${t}[${a}]`,n);return}if(e==null||typeof e!=="object"){n.push({path:t,message:"Action must be an object or array of objects"});return}let r=e,o=typeof r.type==="string"&&r.type.length>0,s=typeof r.action==="string"&&r.action.length>0;if(!o&&!s){n.push({path:`${t}.type`,message:'Action must have a non-empty "type" or "action" string'});return}if((s?r.action:r.type).toLowerCase()==="showtoast"){if(typeof r.message!=="string"||r.message.length===0)n.push({path:`${t}.message`,message:'showToast requires a non-empty "message" string'})}}function Ln(e,t,n){if(!Array.isArray(e)){n.push({path:t,message:`${t} must be an array of strings`});return}for(let r=0;r<e.length;r++)if(typeof e[r]!=="string")n.push({path:`${t}[${r}]`,message:"must be a string"})}function ks(e,t){if(e===null||typeof e!=="object"||Array.isArray(e)){t.push({path:"$.theme",message:"theme must be a plain object"});return}let n=e;for(let r of["light","dark"])if(n[r]!==void 0){if(n[r]===null||typeof n[r]!=="object"||Array.isArray(n[r]))t.push({path:`$.theme.${r}`,message:`theme.${r} must be a plain object`})}}var ne={mount(e,t,n){if(Ze(),n?.validate!==!1)for(let b of ve(t).errors)P.warn(`wire validation ${b.path}: ${b.message}`);let r=t,o={tracked:[],evalBlocked:!1};if(r.pipes)for(let[b,w]of Object.entries(r.pipes))$n(b,w,o);let s=new we(r.state),i;if(n?.transport&&"callTool"in n.transport)i=n.transport;else if(n?.transport)i=Qe(n.transport);else i=et();let a=n?.onToast??As,l=new Se;function c(b){let w=b;if(r=w,w.state)s.merge(w.state);if(w.defs)u.defs=w.defs;if(w.theme)Rt(e,w.theme);if(w.mode)On(e,w.mode);if(w.pipes)for(let[S,N]of Object.entries(w.pipes))$n(S,N,o);for(let S of d)S.remove();if(d.length=0,d.push(...Dn(w.css,w.stylesheets)),jn(e,w.layout),g?.(),g=void 0,w.keyBindings)g=Tt(w.keyBindings,(S)=>{F(j(S,{store:s,transport:i,scope:{},rerender:()=>f(),remount:c,onToast:a}),"keyBinding")});f()}let u={store:s,scope:{},transport:i,rerender:()=>f(),remount:c,onToast:a,defs:r.defs,destroyRegistry:l};if(Rt(e,r.theme),r.mode)On(e,r.mode);jn(e,r.layout);let d=Dn(r.css,r.stylesheets),g;if(r.keyBindings)g=Tt(r.keyBindings,(b)=>{F(j(b,{store:s,transport:i,scope:{},rerender:()=>f(),remount:c,onToast:a}),"keyBinding")});let h,y=n?.themeToggle??!0;if(y!==!1)h=Te(e,typeof y==="object"?y:void 0);function f(){l.flush();let b=e.querySelector(".pf-theme-toggle");e.innerHTML="";let w=J(r.view,u);if(e.appendChild(w),b)e.appendChild(b)}return f(),{rerender:()=>f(),update(b){if(s.merge(b.update.state),f(),b.update.actions!=null)F(j(b.update.actions,u),"update action")},store:s,destroy(){l.flush(),h?.(),g?.(),Bt(),Jt();for(let b of d)b.remove();for(let b of o.tracked)ke(b);e.innerHTML=""}}},isPrefabData(e){return e!=null&&typeof e==="object"&&"$prefab"in e},isPrefabUpdate(e){return e!=null&&typeof e==="object"&&"$prefab"in e&&"update"in e}},Ss=new Set(["find","dot","length","upper","lower","truncate","join","first","last","abs","round","number","currency","percent","compact","date","time","datetime","pluralize","default","selectattr","rejectattr"]);function Es(e){if(e instanceof EvalError)return!0;return e instanceof Error&&/unsafe-eval|Content Security Policy|call to Function/i.test(e.message)}function $n(e,t,n){if(Ss.has(e)){P.warn(`wire pipe "${e}" ignored — shadows built-in`);return}if(He(e)!=null){P.debug(`wire pipe "${e}" — already registered, keeping local implementation`);return}if(n.evalBlocked)return;try{let r=Function("return ("+t+")")();if(typeof r!=="function"){P.warn(`wire pipe "${e}" — source did not evaluate to a function`);return}xe(e,r),n.tracked.push(e)}catch(r){if(Es(r)){n.evalBlocked=!0,P.warn("wire pipes cannot be hydrated — this host's CSP forbids eval. Pre-register them with "+"prefab.registerPipe() from a companion script (rendererHtml({ scripts })) and they are used as-is.");return}P.warn(`wire pipe "${e}" — failed to hydrate:`,r)}}function As(e){if(typeof document>"u")return;let t=Ts(),n=document.createElement("div"),r=e.variant??"default";n.className=`pf-toast${r!=="default"?` pf-toast--${r}`:""}`,n.setAttribute("data-variant",r),n.style.marginBottom="8px",n.style.transition="opacity 0.3s ease";let o=document.createElement("div");if(o.textContent=e.message,o.style.fontWeight="500",n.appendChild(o),e.description){let i=document.createElement("div");i.textContent=e.description,i.style.fontSize="14px",i.style.color="var(--muted-foreground, #6b7280)",n.appendChild(i)}t.appendChild(n);let s=e.duration??4000;setTimeout(()=>{n.style.opacity="0",setTimeout(()=>n.remove(),300)},s)}function On(e,t){if(ye(e,t),typeof document<"u")ye(document.documentElement,t)}function Rs(e){let t=e.trim();if(t.includes("{")||t.includes("}"))return!1;return/^(https?:)?\/\//i.test(t)||t.startsWith("/")||/\.css(\?|#|$)/i.test(t)}function Dn(e,t){let n=[];if(typeof document>"u")return n;for(let r of e??[]){let o=document.createElement("style");o.textContent=r,o.dataset.prefab="injected",document.head.appendChild(o),n.push(o)}for(let r of t??[])if(Rs(r)){let o=document.createElement("link");o.rel="stylesheet",o.href=r,o.dataset.prefab="injected",document.head.appendChild(o),n.push(o)}else{let o=document.createElement("style");o.textContent=r,o.dataset.prefab="injected",document.head.appendChild(o),n.push(o)}return n}function jn(e,t){if(e.style.height="",e.style.minHeight="",e.style.maxHeight="",e.style.overflow="",!t)return;if(t.preferredHeight!=null)e.style.height=`${t.preferredHeight}px`;if(t.minHeight!=null)e.style.minHeight=`${t.minHeight}px`;if(t.maxHeight!=null)e.style.maxHeight=`${t.maxHeight}px`,e.style.overflow="auto"}function Ts(){let t=document.getElementById("prefab-toast-container");if(!t)t=document.createElement("div"),t.id="prefab-toast-container",t.style.position="fixed",t.style.bottom="16px",t.style.right="16px",t.style.zIndex="9999",t.style.maxWidth="400px",document.body.appendChild(t);return t}if(typeof window<"u"){let e=window;e.PrefabRenderer=ne,e.prefab={app:tt,mount:ne.mount.bind(ne),isPrefabData:ne.isPrefabData.bind(ne),isPrefabUpdate:ne.isPrefabUpdate.bind(ne),Bridge:me,isIframe:Ce,registerPipe:xe,unregisterPipe:ke,listPipes:Le,registerComponent:p,createThemeToggle:Te,validateWireFormat:ve,setLogLevel:Me};let t=e.__PREFAB_DATA__;if(t!=null){let n=document.getElementById("prefab-root");if(n)ne.mount(n,t)}}})();
|