mcard-studio 0.0.1 → 0.0.2
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/astro.config.mjs +6 -1
- package/bin/mcard-studio.mjs +1 -1
- package/dist/client/_astro/{ChartAnalyticsViewlet.Cevj0EOs.js → ChartAnalyticsViewlet.jrwIemvb.js} +1 -1
- package/dist/client/_astro/ClmPcardViewlet.C-fU7oZf.js +3 -0
- package/dist/client/_astro/D3GraphViewlet.BCZl0b2U.js +2 -0
- package/dist/client/_astro/DockviewSpatialWorkbench.B_I1GJHw.js +12 -0
- package/dist/client/_astro/{DocumentViewlets.Dm_GL3AL.js → DocumentViewlets.B53IqmpY.js} +1 -1
- package/dist/client/_astro/ExcalidrawWhiteboardViewlet.CFpPYSdn.js +1 -0
- package/dist/client/_astro/{FaroVCardSpanInstrumenter.BIk2NhJY.js → FaroVCardSpanInstrumenter.un8kDMWv.js} +1 -1
- package/dist/client/_astro/{FontSpecimenViewlet.CpONhJh0.js → FontSpecimenViewlet.D7Aw2xBZ.js} +1 -1
- package/dist/client/_astro/HeadMeta.astro_astro_type_script_index_0_lang.VDRYJCM-.js +1 -0
- package/dist/client/_astro/{ImageViewlet.CHeNvX6L.js → ImageViewlet.D4FN87n_.js} +1 -1
- package/dist/client/_astro/{KatexFormulaViewlet.Cy_InWOK.js → KatexFormulaViewlet.CzhdIOw8.js} +1 -1
- package/dist/client/_astro/KoishiChatViewlet.5mepQvLX.js +16 -0
- package/dist/client/_astro/MCardLibraryHarness.DE8KeghO.js +2 -0
- package/dist/client/_astro/{MarkdownViewlet.qoPlM-TZ.js → MarkdownViewlet.CRuuXXmF.js} +1 -1
- package/dist/client/_astro/{MermaidDiagramViewlet.RnwDfQl6.js → MermaidDiagramViewlet.eW6sk-rF.js} +1 -1
- package/dist/client/_astro/PCardRendererBridge.oxVKc0gN.js +1 -0
- package/dist/client/_astro/RendererPCardRegistry.CWjYZs2H.js +1 -0
- package/dist/client/_astro/{SchemaYamlViewlet.D6HVdmrq.js → SchemaYamlViewlet.ZJBvxItR.js} +1 -1
- package/dist/client/_astro/{ShellContainer.astro_astro_type_script_index_0_lang.2oi8fhQo.js → ShellContainer.astro_astro_type_script_index_0_lang.j_ELcN5d.js} +1 -1
- package/dist/client/_astro/{Spatial3dViewlet.CCYBSSib.js → Spatial3dViewlet.DnVMBENJ.js} +1 -1
- package/dist/client/_astro/StudioWorkbench.Blo5oSIw.js +7 -0
- package/dist/client/_astro/{SvgViewlet.BxlWQ-JX.js → SvgViewlet.BCje7Qqb.js} +1 -1
- package/dist/client/_astro/{TerminalView.DWZR-hUa.js → TerminalView.C_Ksz6lT.js} +4 -4
- package/dist/client/_astro/{ThemeSettingsViewlet.Cb1r8fWw.js → ThemeSettingsViewlet.DJpjQQ0Z.js} +1 -1
- package/dist/client/_astro/{TikzDiagramViewlet.CqY7VTeP.js → TikzDiagramViewlet.CXb1A8nf.js} +1 -1
- package/dist/client/_astro/{VideoPlayerViewlet.DoSYmmoQ.js → VideoPlayerViewlet.CmECt7yT.js} +1 -1
- package/dist/client/_astro/{WebappZenViewlet.CQW50OhX.js → WebappZenViewlet.whCmGVHR.js} +1 -1
- package/dist/client/_astro/{WelcomeViewport.LwKTA6h7.js → WelcomeViewport.BiYwLh6l.js} +1 -1
- package/dist/client/_astro/__vite-browser-external.CQZnr-r3.js +1 -0
- package/dist/client/_astro/{agentIdentityCredentialService.BtKVsl2C.js → agentIdentityCredentialService.UzMMwBwv.js} +5 -5
- package/dist/client/_astro/cardTypeDetector.Ci4APwhX.js +1 -0
- package/dist/client/_astro/disposable.Dsb0sbRP.js +1 -0
- package/dist/client/_astro/{markdownService.D-tM2RYx.js → markdownService.BgWjyJ57.js} +1 -1
- package/dist/client/_astro/{mcardStore.BiAvqM-D.js → mcardStore.CT-ollfl.js} +2 -2
- package/dist/client/_astro/mcardVfs.2UOw9Z-r.js +3 -0
- package/dist/client/_astro/polyfills._3wYPjZf.js +1 -0
- package/dist/client/_astro/rendererEventBus.DMH9afq9.js +1 -0
- package/dist/client/_astro/themeStore.CEt0e54l.js +1 -0
- package/dist/client/_astro/{tikzCompiler.DFojjdxR.js → tikzCompiler.fe3qomFY.js} +1 -1
- package/dist/client/_astro/{useMCardHydration.Co47OH3D.js → useMCardHydration.7Z-HfBh5.js} +1 -1
- package/dist/client/_astro/vendor-ai.D6NcJ6lu.js +69 -0
- package/dist/client/_astro/vendor-clm-kernel.Bvk3XHk2.js +116 -0
- package/dist/client/_astro/vfsHandles.IX_wTpw_.js +1 -0
- package/dist/client/_astro/vfsPersistence.BuhXYeSb.js +1 -0
- package/dist/client/_astro/vfsTransactions.C_IQQg0s.js +1 -0
- package/dist/client/_astro/{workspaceStore.CXakha4Y.js → workspaceStore.CD0kAVAl.js} +1 -1
- package/dist/client/js/buffer-polyfill.js +14 -0
- package/dist/server/chunks/{StudioLayout_D163irJ0.mjs → StudioLayout_B5ZnlqjF.mjs} +2 -2
- package/dist/server/chunks/{_.._ZXsz792-.mjs → _.._5gPhVOLM.mjs} +1 -1
- package/dist/server/chunks/{mcard-library_DvPPUs9_.mjs → mcard-library_7Wzoihkm.mjs} +1 -1
- package/dist/server/chunks/{ws-server-init_CkcgcI5V.mjs → ws-server-init_DUjuR2-o.mjs} +3 -3
- package/dist/server/entry.mjs +8 -4
- package/dist/server/entry2.mjs +3 -3
- package/dist/server/virtual_astro_middleware.mjs +1 -1
- package/package.json +1 -1
- package/public/js/buffer-polyfill.js +14 -0
- package/src/layouts/StudioLayout.astro +1 -0
- package/src/pages/index.astro +75 -0
- package/src/services/inBrowserLlm/engines/litertEngine.ts +1 -1
- package/dist/client/_astro/ClmPcardViewlet.DW5Yft0E.js +0 -3
- package/dist/client/_astro/D3GraphViewlet.DAjPz1DP.js +0 -2
- package/dist/client/_astro/DockviewSpatialWorkbench.DyQjSoHd.js +0 -12
- package/dist/client/_astro/ExcalidrawWhiteboardViewlet.DrlW7B6G.js +0 -1
- package/dist/client/_astro/HeadMeta.astro_astro_type_script_index_0_lang.DGXU-3Lu.js +0 -1
- package/dist/client/_astro/KoishiChatViewlet.B0eDEMnT.js +0 -16
- package/dist/client/_astro/MCardLibraryHarness.CUJLJFBt.js +0 -2
- package/dist/client/_astro/PCardRendererBridge.BnyaE05I.js +0 -1
- package/dist/client/_astro/RendererPCardRegistry.CLr4j1Ub.js +0 -1
- package/dist/client/_astro/StudioWorkbench.CF0SOYwy.js +0 -7
- package/dist/client/_astro/cardTypeDetector.C9kGObMh.js +0 -1
- package/dist/client/_astro/disposable.66apX1Q2.js +0 -1
- package/dist/client/_astro/empty.DOwCrGXH.js +0 -1
- package/dist/client/_astro/mcardVfs.Bj-RA0p7.js +0 -2
- package/dist/client/_astro/path.CR60mj9W.js +0 -1
- package/dist/client/_astro/polyfills.DcBkS56X.js +0 -1
- package/dist/client/_astro/rendererEventBus.CyFnSRLk.js +0 -1
- package/dist/client/_astro/themeStore.zUMFLo3Q.js +0 -1
- package/dist/client/_astro/vendor-ai.CZe7UVVK.js +0 -69
- package/dist/client/_astro/vfsHandles.B-nczBRy.js +0 -1
- package/dist/client/_astro/vfsPersistence.D6zRzVML.js +0 -1
- package/dist/client/_astro/vfsTransactions.04mkEHxD.js +0 -1
|
@@ -67,7 +67,7 @@ export class LiteRtEngine {
|
|
|
67
67
|
});
|
|
68
68
|
onProgress?.('[Initializing Google LiteRT-LM WebGPU Runtime...]\n');
|
|
69
69
|
|
|
70
|
-
const litert = await import(
|
|
70
|
+
const litert = await import('@litert-lm/core');
|
|
71
71
|
|
|
72
72
|
notifyProgress({
|
|
73
73
|
modelId,
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime.Dd_uD5pT.js";import{a as t,i as n}from"./vendor-react.DpDU3q_x.js";import{h as r}from"./themeStore.zUMFLo3Q.js";import{C as i,w as a,y as o}from"./mcardStore.BiAvqM-D.js";import{r as s}from"./disposable.66apX1Q2.js";import{t as c}from"./pathsConfig.D0hV34p7.js";import{D as l,b as u}from"./Codicons.6XKAVgP8.js";import{n as d,t as f}from"./vfsHandles.B-nczBRy.js";import{_ as p,b as m,t as h}from"./mcardVfs.Bj-RA0p7.js";import{n as g,t as _}from"./FaroVCardSpanInstrumenter.BIk2NhJY.js";import{n as v,r as y,t as b}from"./VCardBottomSheet.Cc6xhQDU.js";import{t as x}from"./js-yaml.D3snemtB.js";import{AgentDid as S,BooleanPCard as C,ContentHash as w,DynamicPCard as T,MCard as E}from"clm-kernel";var D=e(t(),1);function O(e,t){if(e===t)return!0;if(typeof e==`number`&&typeof t==`number`)return Math.abs(e-t)<2**-52;if(e&&t&&typeof e==`object`&&typeof t==`object`){let n=e,r=t,i=new Set([...Object.keys(n),...Object.keys(r)]);for(let e of i)if(!O(n[e],r[e]))return!1;return!0}return String(e)===String(t)}function k(e,t){let n=e;if(typeof e==`string`)try{n=JSON.parse(e)}catch{}for(let[e,r]of Object.entries(t)){if(n&&typeof n==`object`&&e in n){if(!O(n[e],r))return{passed:!1,detail:`\n⚠ Expected [${e}]: ${JSON.stringify(r)}\n✗ Actual: ${JSON.stringify(n[e])}`};continue}if(e===`result`){if(!O(n,r))return{passed:!1,detail:`\n⚠ Expected result: ${JSON.stringify(r)}\n✗ Actual: ${typeof n==`string`?n:JSON.stringify(n)}`};continue}if(e===`result_contains`){let e=typeof n==`string`?n:JSON.stringify(n);if(!e.includes(String(r)))return{passed:!1,detail:`\n⚠ Expected output containing: "${r}"\n✗ Actual output: "${e}"`};continue}return{passed:!1,detail:`\n⚠ Missing expected key: "${e}" in execution result`}}return{passed:!0,detail:` ✓ matches expected`}}function A(){let[e,t]=(0,D.useState)(!1);return{isExecuting:e,executeWith:(0,D.useCallback)(async(e,n,r={},i)=>{t(!0);let a=performance.now(),o=0,s=0,c=0;try{let t=performance.now();o=Math.max(.1,performance.now()-t);let n=performance.now(),l=await g({pcard:{name:e,handle:e,polynomialDegree:1,coeffects:[`config.kernel`,`identity.did`],execute:async e=>{let t=Number(r.a),n=Number(r.b);return!isNaN(t)&&!isNaN(n)?{result:t+n}:{result:r}}},preCondition:{name:`CoeffectsSatisfied`,evaluate:()=>!0},postCondition:{name:`NoetherianMeetTop`,evaluate:()=>!0},kanFillerCheck:()=>!0,telemetryInstrumenter:{startSandwichSpan:e=>_.startSandwichSpan(e),recordStage:(e,t,n,r)=>_.recordStage(e,t,n,r),endSpan:(e,t,n)=>_.endSpan(e,t,n)}},{handle:e});s=Math.max(.1,performance.now()-n);let u=performance.now(),d=l.output?.result??l.output??r,f=performance.now()-a,p=`blake3-${Math.random().toString(16).substring(2,10)}${Math.random().toString(16).substring(2,10)}`,m,h=l.success,v=l.success?`success`:`exception`,y=JSON.stringify(d);l.error?(v=`exception`,h=!1,y=l.error.message):i&&(m=k(d,i),m.passed||(h=!1,v=`failure`),y+=m.detail),c=Math.max(.1,performance.now()-u);let b={prepMs:Number(o.toFixed(2)),execMs:Number(s.toFixed(2)),postMs:Number(c.toFixed(2)),totalMs:Number(f.toFixed(2))};return{success:h,status:v,output:y,result:d,executionTimeMs:f,stageTimings:b,validationOutcome:m,vcardHash:h?p:void 0,error:l.error?.message,errorObj:l.error,trace:l.trace}}catch(e){let t=performance.now()-a,n={prepMs:Number(o.toFixed(2)),execMs:Number(s.toFixed(2)),postMs:.1,totalMs:Number(t.toFixed(2))};return{success:!1,status:`exception`,output:e.message||`Execution failed`,result:null,executionTimeMs:t,stageTimings:n,error:e.message,errorObj:e instanceof Error?e:Error(String(e))}}finally{t(!1)}},[])}}var j=class e{static validateMorphismComposition(e,t){let n=[],r={dimension:1,direction:1,signature:e.targetInvariant||e.outputType,mcardHandle:e.name},i={dimension:1,direction:0,signature:t.requiredInvariant||t.inputType,mcardHandle:t.name};r.signature!==i.signature&&i.signature!==`any`&&n.push({faceA:r,faceB:i,reason:`Kan boundary mismatch: Output of '${e.name}' [${r.signature}] does not match input of '${t.name}' [${i.signature}]`});let a=n.length===0,o=`${e.name}->${t.name}:${a?`KAN_FILLED`:`BOUNDARY_MISMATCH`}`,s;try{s=`sha256:kan:${w.compute(new TextEncoder().encode(o)).asHex()}`}catch{let e=0;for(let t=0;t<o.length;t++)e=(e<<5)-e+o.charCodeAt(t)|0;s=`sha256:kan:${Math.abs(e).toString(16).padStart(8,`0`)}`}return{valid:a,boxDimension:2,mismatches:n,witnessHash:s}}static validateCubicalBox(e){let t=[];for(let n=0;n<e.faces.length;n++)for(let r=n+1;r<e.faces.length;r++){let i=e.faces[n],a=e.faces[r];i.dimension===a.dimension&&i.direction===a.direction&&i.signature!==a.signature&&t.push({faceA:i,faceB:a,reason:`Conflicting parallel face signatures on dimension ${i.dimension}`})}let n=t.length===0;return{valid:n,boxDimension:e.dimension,mismatches:t,witnessHash:`sha256:box:${n?`filled`:`open`}:${e.dimension}`}}static validatePCardComposition(t,n){let r=t.signature.includes(`->`)?t.signature.split(`->`)[1].trim():`Any`,i=n.signature.includes(`->`)?n.signature.split(`->`)[0].replace(/[()]/g,``).trim():`Any`;return e.validateMorphismComposition({name:t.id,outputType:r},{name:n.id,inputType:i})}static createKanFillerVCard(t,n){let r=new C({id:`vcard:kan-filler:${t.name}->${n.name}`,phase:`postcondition`,expression:`kan_box_filled == true`});return r.predicate=()=>{let r=e.validateMorphismComposition(t,n);return r.valid?{verdict:`pass`}:{verdict:`bail`,reason:r.mismatches.map(e=>e.reason).join(`; `),invariantCode:`KAN_BOX_BOUNDARY_MISMATCH`,evidence:r.mismatches}},r}},M=[`concept`,`context`,`goal`,`description`,`specification`,`success_criteria`],ee=[`runtime`,`operation`,`process`,`description`,`manifestation`,`code`,`code_file`,`io_effects`,`input_type`,`output_type`,`process_type`];function N(e){if(typeof e!=`string`)return!1;let t=e.trim();return t.startsWith(`handle:`)||t.startsWith(`mcard:`)||t.startsWith(`hash:`)||t.startsWith(`./`)||t.startsWith(`../`)||t.startsWith(`${c.paths.knowledge_dirname}/`)||/\.(yaml|yml|sh|py|ts|js)$/i.test(t)}var te=new Set([`face`,`facet`,`layer`,`stage`,`type`,`transclude`,`name`]);function P(e){let t={};for(let[n,r]of Object.entries(e))te.has(n)||(t[n]=r);return t}function F(e){try{let t;if(t=typeof e==`string`?x.load(e):e,!t||typeof t!=`object`)return null;let n=t,r=n.clm||n,i=r.face||r.facet||n.face||n.facet,a=r.transclude||n.transclude,o=r.abstract_spec??r.abstract??a?.abstract_spec??a?.abstract??null,s=r.concrete_impl??r.concrete??a?.concrete_impl??a?.concrete??null,c=r.balanced_exp??r.balanced??a?.balanced_exp??a?.balanced??null;return i===`A`&&o===null?o=P(r):i===`C`&&s===null?s=P(r):i===`B`&&c===null&&(c=P(r)),{version:n.version,chapter:n.chapter,abstract:o,concrete:s,balanced:c,transclude:a,face:i,examples:n.examples,raw:n}}catch{return null}}function I(e){if(!e||typeof e!=`object`)return[];let t=typeof e.balanced==`object`&&e.balanced!==null?e.balanced:void 0;return t?.test_cases||t?.pending_cases||t?.tested_cases||e.examples||[]}function L(e,t){if(e.chapter?.title)return e.chapter.title;if(t){let e=t.split(`/`).pop()?.replace(/\.(yaml|yml|json)$/,``);if(e)return e}return`Cubical Logic Model`}function ne(e){let t=new Set(M);return Object.entries(e).filter(([e])=>!t.has(e))}function re(e){let t=new Set(ee);return Object.entries(e).filter(([e])=>!t.has(e))}function R(e,t){return e.given||e.name||e.description||`Test Case ${t+1}`}function z(e){return e.when&&typeof e.when==`object`?e.when:e.input&&typeof e.input==`object`?e.input:null}function B(e){return e.then&&typeof e.then==`object`?e.then:e.expected_output===void 0?e.result_contains?{result_contains:e.result_contains}:null:{expected:e.expected_output}}function V(e,t){try{let n=x.load(e)||{};if(n.clm&&typeof n.clm==`object`){!n.clm.balanced_exp&&!n.clm.balanced&&(n.clm.balanced_exp={expectation:`Verification of postconditions`});let e=n.clm.balanced_exp||n.clm.balanced;e.test_cases=t}else{!n.balanced_exp&&!n.balanced&&(n.balanced_exp={expectation:`Verification of postconditions`});let e=n.balanced_exp||n.balanced;e.test_cases=t}return x.dump(n,{indent:2,lineWidth:-1,noRefs:!0})}catch(e){throw console.error(`Failed to serialize CLM with test cases:`,e),Error(`YAML Serialization Error: ${e.message}`)}}function H(e){return(e.split(`/`).pop()?.split(`:`).pop()||`operation`).replace(/\.[^.]+$/,``).replace(/[^a-zA-Z0-9_]/g,`_`)}var U=new Set([`face`,`facet`,`layer`,`stage`,`type`,`transclude`,`name`]);function W(e){let t={};for(let[n,r]of Object.entries(e))U.has(n)||(t[n]=r);return t}async function ie(e,t,n=p){if(!e)return{spec:null,meta:{sourceType:`unbound`}};if(typeof e==`object`)return{spec:e,meta:{sourceType:`inline`}};let r=e.trim();try{let e=await n(r,t);if(!e||!e.content)return{spec:null,meta:{sourceType:`unbound`,referenceUri:r,isReadOnly:!0}};let i=null;try{let t=x.load(e.content);if(t&&typeof t==`object`){let e=t.clm||t;e.abstract_spec&&typeof e.abstract_spec==`object`?i=e.abstract_spec:e.abstract&&typeof e.abstract==`object`?i=e.abstract:e.face===`A`||e.facet===`A`?(i=W(e),!i.concept&&e.name&&(i.concept=e.name)):i=W(t)}}catch{i={concept:H(r),description:e.content}}return{spec:i,meta:{sourceType:e.sourceType,referenceUri:r,sourceHash:e.hash,resolvedPath:e.path,isReadOnly:!0}}}catch{return{spec:null,meta:{sourceType:`unbound`,referenceUri:r}}}}async function ae(e,t,n=p){if(!e)return{impl:null,meta:{sourceType:`unbound`}};if(typeof e==`object`)return{impl:e,meta:{sourceType:`inline`}};let r=e.trim();try{let e=await n(r,t);if(!e||!e.content)return{impl:null,meta:{sourceType:`unbound`,referenceUri:r,isReadOnly:!0}};let i=(e.path||r).toLowerCase(),a=null;if(i.endsWith(`.sh`))a={runtime:`bash`,operation:H(r),process:typeof e.content==`string`?e.content:JSON.stringify(e.content),description:`Transcluded Shell script from ${r}`};else if(i.endsWith(`.py`))a={runtime:`python`,operation:H(r),process:typeof e.content==`string`?e.content:JSON.stringify(e.content),description:`Transcluded Python script from ${r}`};else if(i.endsWith(`.js`)||i.endsWith(`.ts`))a={runtime:`javascript-browser`,operation:H(r),process:typeof e.content==`string`?e.content:JSON.stringify(e.content),description:`Transcluded JavaScript/TypeScript from ${r}`};else try{let t=x.load(e.content);if(t&&typeof t==`object`){let e=t.clm||t;e.concrete_impl&&typeof e.concrete_impl==`object`?a=e.concrete_impl:e.concrete&&typeof e.concrete==`object`?a=e.concrete:e.face===`C`||e.facet===`C`?(a=W(e),!a.operation&&e.name&&(a.operation=e.name)):a=W(t)}}catch{a={runtime:`unknown`,operation:H(r),process:typeof e.content==`string`?e.content:JSON.stringify(e.content),description:`Transcluded raw process asset from ${r}`}}return{impl:a,meta:{sourceType:e.sourceType,referenceUri:r,sourceHash:e.hash,resolvedPath:e.path,isReadOnly:!0}}}catch{return{impl:null,meta:{sourceType:`unbound`,referenceUri:r}}}}async function oe(e,t,n=p){if(!e)return{exp:null,meta:{sourceType:`unbound`}};if(typeof e==`object`){let t=e,n=t.test_cases||t.pending_cases||t.tested_cases||[];return{exp:{...t,test_cases:n},meta:{sourceType:`inline`}}}let r=e.trim();try{let e=await n(r,t);if(!e||!e.content)return{exp:null,meta:{sourceType:`unbound`,referenceUri:r,isReadOnly:!0}};let i=null;try{let t=x.load(e.content);if(t&&typeof t==`object`){let e=t.clm||t,n=null;if(n=e.balanced_exp&&typeof e.balanced_exp==`object`?e.balanced_exp:e.balanced&&typeof e.balanced==`object`?e.balanced:e.face===`B`||e.facet===`B`?W(e):W(t),n){let e=n.test_cases||n.pending_cases||n.tested_cases||[];i={...n,test_cases:e}}}}catch{i=null}return{exp:i,meta:{sourceType:e.sourceType,referenceUri:r,sourceHash:e.hash,resolvedPath:e.path,isReadOnly:!0}}}catch{return{exp:null,meta:{sourceType:`unbound`,referenceUri:r}}}}async function se(e,t,n=p){let r=typeof e==`string`||!(`abstract`in e)?F(e):e;if(!r)throw Error(`Failed to parse CLM content`);let[i,a,o]=await Promise.all([ie(r.abstract,t,n),ae(r.concrete,t,n),oe(r.balanced,t,n)]);return{version:r.version,chapter:r.chapter,abstract:i.spec,concrete:a.impl,balanced:o.exp,aspectSources:{abstract:i.meta,concrete:a.meta,balanced:o.meta},examples:r.examples,raw:r.raw}}function ce({pcard:e,content:t,executionMode:n=`client-wasm`}){let[r,a]=(0,D.useState)(null),s=(0,D.useMemo)(()=>r===null?t||(e.content&&typeof e.content==`string`?e.content:e.content&&typeof e.content==`object`?JSON.stringify(e.content,null,2):`version: "1.0"\nchapter:\n title: "${e.name||e.handle}"\nclm:\n abstract:\n concept: "PCard Morphism"\n specification: "computable_knowledge/Abstract"\n concrete:\n runtime: "${n}"\n operation: "execute"\n balanced:\n expectation: "Noetherian Conservation"\n test_cases:\n - given: "Canonical Ingress Verification"\n when:\n context: { a: 10, b: 20 }\n then:\n result: 30\n`):r,[r,t,e,n]),c=(0,D.useMemo)(()=>F(s),[s]),[l,u]=(0,D.useState)(null),[d,p]=(0,D.useState)(!1);(0,D.useEffect)(()=>{let t=!0;return p(!0),se(s,e.path||e.handle).then(e=>{t&&(u(e),p(!1))}).catch(e=>{console.warn(`[useClmParsing] Transclusion resolution warning:`,e),t&&p(!1)}),()=>{t=!1}},[s,e.path,e.handle]);let m=l||c;return{localContent:r,setLocalContent:a,rawContent:s,clm:c,resolvedClm:l,isResolving:d,activeClm:m,testCases:(0,D.useMemo)(()=>m?I(m):[],[m]),chapterTitle:(0,D.useMemo)(()=>m?L(m,e.handle):e.name||e.handle,[m,e]),aspectSources:(0,D.useMemo)(()=>l?l.aspectSources:{abstract:{sourceType:N(c?.abstract)?`handle`:c?.abstract?`inline`:`unbound`,referenceUri:typeof c?.abstract==`string`?c.abstract:void 0},concrete:{sourceType:N(c?.concrete)?`handle`:c?.concrete?`inline`:`unbound`,referenceUri:typeof c?.concrete==`string`?c.concrete:void 0},balanced:{sourceType:N(c?.balanced)?`handle`:c?.balanced?`inline`:`unbound`,referenceUri:typeof c?.balanced==`string`?c.balanced:void 0}},[l,c]),handleNavigateToSource:(0,D.useCallback)(e=>{if(!e)return;let t=e.replace(/^handle:/,``).trim(),n=o.get(),r=f(t,null,n);r&&i(r)},[])}}async function le(e){let t=new Date().toISOString(),n=e.testCase.id||`tc-${e.testCaseIndex}`,i=e.testCase.given||e.testCase.description||e.testCase.name||n,a={status:e.status,testCaseId:n,testCaseTitle:i,pcardHandle:e.pcardHandle,inputContext:e.input,stageTimings:e.stageTimings,timestamp:t,result:e.result,vcardHash:e.vcardHash,expected:e.expected,actual:e.result,diff:e.diff,errorType:e.error?.name,errorMessage:e.error?.message,errorStack:e.error?.stack,trace:e.trace},o=`mcard:eventlog/${e.pcardHandle.replace(/[^a-zA-Z0-9_-]/g,`_`)}/${n}/${Date.now()}`,s=S.create(`did:clm:agent:fiber_runtime`),c=new Map([[`execution/status`,e.status],[`execution/pcard`,e.pcardHandle],[`execution/test_case`,i],[`execution/duration_ms`,e.stageTimings.totalMs],[`execution/vcard_hash`,e.vcardHash],[`execution/error_kind`,e.error?`runtime`:e.status===`failure`?`assertion`:`none`],[`execution/timestamp`,t]]),l=JSON.stringify(a,null,2),u=E.create(o,l,s,1,c);try{r&&(typeof r.putCard==`function`?r.putCard(u):typeof r.writeFile==`function`&&r.writeFile(o,l,s))}catch(e){console.warn(`Non-fatal: Could not write execution MCard to studioMCardFs:`,e)}return{id:u.hash.toString(),uri:o,mcard:u,status:e.status,testCaseTitle:i,stageTimings:e.stageTimings,timestamp:new Date().toLocaleTimeString(),vcardHash:e.vcardHash,payload:a}}function ue({pcard:e,rawContent:t,testCases:n,executeWith:r,onExecutionComplete:i}){let[a,o]=(0,D.useState)([]),[s,c]=(0,D.useState)(!1),[l,u]=(0,D.useState)(),[d,f]=(0,D.useState)(!1),[p,h]=(0,D.useState)(void 0),[g,_]=(0,D.useState)(void 0),v=(0,D.useCallback)(async n=>{try{let r=V(t,n),i=e.path||e.handle;i&&await m(i,r)}catch(e){console.error(`Failed to persist test cases to YAML:`,e)}},[t,e.path,e.handle]);return{execLog:a,setExecLog:o,isVCardDrawerOpen:s,setIsVCardDrawerOpen:c,lastVCardHash:l,setLastVCardHash:u,isEditorOpen:d,setIsEditorOpen:f,editingTestCase:p,setEditingTestCase:h,editingIndex:g,setEditingIndex:_,handleOpenCreateModal:(0,D.useCallback)(()=>{h(void 0),_(void 0),f(!0)},[]),handleEditScenario:(0,D.useCallback)((e,t)=>{h(e),_(t),f(!0)},[]),handleCloneScenario:(0,D.useCallback)(async(e,t)=>{let r={...JSON.parse(JSON.stringify(e)),id:e.id?`${e.id}-copy`:void 0,given:`${e.given||`Scenario`} (Copy)`},i=[...n];i.splice(t+1,0,r),await v(i)},[n,v]),handleDeleteScenario:(0,D.useCallback)(async(e,t)=>{if(n.length<=1){alert(`Cannot delete the last remaining scenario.`);return}let r=n.filter((e,n)=>n!==t);await v(r)},[n,v]),handleSaveScenario:(0,D.useCallback)(async e=>{let t;t=g!==void 0&&g>=0?n.map((t,n)=>n===g?e:t):[...n,e],await v(t),f(!1),h(void 0),_(void 0)},[g,n,v]),handleUseAsInput:(0,D.useCallback)(e=>{let t=a.find(t=>t.mcardUri===e||t.mcardHash===e||t.vcardHash===e),n={id:`tc-chain-${Date.now().toString(36)}`,given:`Chained from ${t?.testCase||e}`,when:{context:{mcard:e,parentHash:t?.mcardHash||t?.vcardHash}},then:{result:`assert_confluent`}};h(n),_(void 0),f(!0)},[a]),handleRunTestCase:(0,D.useCallback)(async(n,a)=>{let s=`evt-${Date.now()}-${a}`,c=R(n,a),l={id:s,timestamp:new Date().toLocaleTimeString(),testCase:c,status:`running`};o(e=>[l,...e]);let d=n.when?.context||n.when?.arguments||n.input||n.when||{},f=n.then,p=await r(e.handle,t,d,f),m=p.status===`success`?`success`:p.status===`failure`?`failure`:`exception`,h;try{h=await le({pcardHandle:e.handle,testCase:n,testCaseIndex:a,status:m,stageTimings:p.stageTimings,input:d,result:p.result,expected:f,vcardHash:p.vcardHash,error:p.errorObj,trace:p.trace})}catch(e){console.warn(`Failed to seal execution outcome into MCard CAS:`,e)}o(e=>e.map(e=>e.id===s?{...e,status:m,result:p.output,durationMs:p.executionTimeMs,stageTimings:p.stageTimings,vcardHash:p.vcardHash,mcardUri:h?.uri,mcardHash:h?.mcard?.hash?.asHex(),sealedRecord:h,payload:h?.payload}:e)),p.vcardHash&&u(p.vcardHash),i&&i(p.vcardHash||s)},[e.handle,t,r,i])}}var G={abstract:`abstract_spec`,concrete:`concrete_impl`,balanced:`balanced_exp`};function de(e,t,n){let r=e.split(/\r?\n/),i=-1,a=0;for(let e=0;e<r.length;e++){let n=r[e].match(RegExp(`^(\\s*)${t}\\s*:`));if(n){i=e,a=n[1].length;break}}if(i===-1)return{replaced:!1,content:e};let o=i+1;for(;o<r.length;){let e=r[o];if(e.trim()===``){o++;continue}if(e.match(/^(\s*)/)[1].length>a)o++;else break}let s=`${` `.repeat(a)}${t}: "${n}"`;return r.splice(i,o-i,s),{replaced:!0,content:r.join(`
|
|
2
|
-
`)}}function fe(e){let{hostContent:t,facet:n,targetRef:r}=e,i=G[n],a=de(t,i,r);if(a.replaced)return a.content;if(t.includes(`transclude:`)){let e=/(transclude:\s*\r?\n)/;if(e.test(t))return t.replace(e,`$1 ${i}: "${r}"\n`)}let o=/^(clm:\s*\r?\n)/m;if(o.test(t))return t.replace(o,`$1 ${i}: "${r}"\n`);try{let e=x.load(t)||{};return e.clm||={},e.clm[i]=r,x.dump(e,{indent:2,lineWidth:-1})}catch(e){return console.warn(`[clmMutationService] js-yaml fallback failed:`,e),t+`\nclm:\n ${i}: "${r}"\n`}}async function pe(e,t,n,r){let i=F(t);if(!i)throw Error(`Cannot parse host YAML content`);let a=G[n],o=i[n],s=i.raw?.clm||i.raw,c=(typeof o==`string`?o:void 0)||i.transclude?.[a]||s?.[a]||s?.transclude?.[a];if(!c||typeof c!=`string`)return t;let l=await(r||(t=>p(t,e)))(c);if(!l||!l.content)throw Error(`Unable to fetch transclusion target: ${c}`);let u;if(c.endsWith(`.py`)||c.endsWith(`.sh`)||c.endsWith(`.ts`)||c.endsWith(`.js`))u={runtime:c.endsWith(`.py`)?`python`:c.endsWith(`.sh`)?`bash`:`javascript`,operation:c.split(`/`).pop()?.replace(/\.[^.]+$/,``)||`operation`,process:l.content};else try{let e=x.load(l.content);if(e&&typeof e==`object`){if(e.clm){if(e.clm[a])u=e.clm[a];else if(e.clm.concrete&&n===`concrete`)u=e.clm.concrete;else if(e.clm.abstract&&n===`abstract`)u=e.clm.abstract;else if(e.clm.balanced&&n===`balanced`)u=e.clm.balanced;else if(e.clm.face){let{face:t,layer:n,stage:r,transclude:i,type:a,framework:o,...s}=e.clm;u=s}else u=e.clm}else u=e}else u=l.content}catch{u=l.content}let d=x.load(t)||{};return d.clm||={},d.clm.transclude&&d.clm.transclude[a]&&(delete d.clm.transclude[a],Object.keys(d.clm.transclude).length===0&&delete d.clm.transclude),d.clm[a]=u,x.dump(d,{indent:2,lineWidth:-1})}async function me(e,t,n,r,i){let a=F(t);if(!a)throw Error(`Cannot parse host YAML content`);G[n];let o=a[n];if(!o||typeof o==`string`)throw Error(`Facet '${n}' is already transcluded or unbound; cannot extract.`);let s=n===`abstract`?`A`:n===`concrete`?`C`:`B`,c=i||r.replace(/\//g,`:`),l={version:`1.0`,clm:{face:s,name:o.operation||o.concept||o.name||`extracted_facet`,...o}},u=x.dump(l,{indent:2,lineWidth:-1}),d=await h(r,u,c);return{updatedHostContent:fe({hostPath:e,hostContent:t,facet:n,targetRef:`handle:${c}`}),newCardHash:d.hash,newCardContent:u}}function he({pcard:e,rawContent:t,setLocalContent:n,degree:r,setExecLog:i}){let[a,o]=(0,D.useState)(null);return{bindingFacet:a,setBindingFacet:o,handleFacetBind:(0,D.useCallback)(async r=>{if(a)try{let i=fe({hostPath:e.path,hostContent:t,facet:a,targetRef:r});n(i);let o=e.path||e.handle;o&&await m(o,i)}catch(e){console.error(`[useFacetMutation] Failed to bind facet:`,e)}},[a,e.path,e.handle,t,n]),handleMaterialize:(0,D.useCallback)(async r=>{try{let i=e.path||e.handle||``,a=await pe(i,t,r);n(a),i&&await m(i,a)}catch(e){console.error(`[useFacetMutation] Failed to materialize facet:`,e)}},[e.path,e.handle,t,n]),handleExtract:(0,D.useCallback)(async r=>{try{let i=(e.name||e.handle||`pcard`).replace(/\.[^.]+$/,``),a=r===`abstract`?c.paths.epistemic_dirs.definition:r===`concrete`?c.paths.epistemic_dirs.proof:c.paths.epistemic_dirs.theorem,o=`${`${c.paths.knowledge_dirname}/${a}`}/${i}_${r}.yaml`,s=`${r}:${i}`,{updatedHostContent:l}=await me(e.path||``,t,r,o,s);n(l);let u=e.path||e.handle;u&&await m(u,l)}catch(e){console.error(`[useFacetMutation] Failed to extract facet:`,e)}},[e.name,e.handle,e.path,t,n]),handleBaldwinOperator:(0,D.useCallback)(e=>{let t={id:`evt-${Date.now()}-baldwin`,timestamp:new Date().toLocaleTimeString(),testCase:`Baldwin Operator: ${e}`,status:`success`,result:`Applied algebraic polynomial transform: ${e} over P(y) = y^${r}. Confluence preserved.`};i(e=>[t,...e])},[r,i])}}var K=n(),ge=({chapterTitle:e,rawContent:t,toggleBar:n})=>(0,K.jsxs)(`div`,{className:`clm-viewlet-root clm-viewlet-yaml`,style:{display:`flex`,flexDirection:`column`,height:`100%`,backgroundColor:`var(--vscode-editor-background, #1e1e1e)`,color:`var(--vscode-foreground, #cccccc)`,fontFamily:y},children:[(0,K.jsxs)(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`,padding:`10px 16px`,borderBottom:`1px solid rgba(255, 255, 255, 0.08)`,backgroundColor:`rgba(0, 0, 0, 0.2)`},children:[(0,K.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`8px`},children:[(0,K.jsx)(`span`,{style:{fontSize:`14px`},children:`📄`}),(0,K.jsxs)(`strong`,{style:{fontSize:`13px`,color:`#9cdcfe`},children:[e,` (YAML Source)`]})]}),n]}),(0,K.jsx)(`div`,{style:{flex:1,padding:`16px`,overflow:`auto`},children:(0,K.jsx)(`pre`,{style:{margin:0,fontSize:`12px`,lineHeight:1.6,color:`#d4d4d4`,whiteSpace:`pre-wrap`},children:t})})]}),_e=({selectedFace:e,onSelectFace:t})=>{let[n,r]=(0,D.useState)(null),i=t=>e===`all`||e===t,a=e=>n===e;return(0,K.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`16px`,backgroundColor:`rgba(0, 0, 0, 0.2)`,padding:`10px 14px`,borderRadius:`6px`,border:`1px solid rgba(255, 255, 255, 0.08)`,marginBottom:`12px`},children:[(0,K.jsxs)(`svg`,{width:`110`,height:`95`,viewBox:`30 15 140 140`,style:{flexShrink:0,cursor:`pointer`,overflow:`visible`},children:[(0,K.jsxs)(`defs`,{children:[(0,K.jsxs)(`linearGradient`,{id:`gradA`,x1:`0%`,y1:`0%`,x2:`100%`,y2:`100%`,children:[(0,K.jsx)(`stop`,{offset:`0%`,stopColor:`#7c6bf0`,stopOpacity:`0.8`}),(0,K.jsx)(`stop`,{offset:`100%`,stopColor:`#5544cc`,stopOpacity:`0.5`})]}),(0,K.jsxs)(`linearGradient`,{id:`gradC`,x1:`0%`,y1:`0%`,x2:`100%`,y2:`100%`,children:[(0,K.jsx)(`stop`,{offset:`0%`,stopColor:`#3b9eff`,stopOpacity:`0.8`}),(0,K.jsx)(`stop`,{offset:`100%`,stopColor:`#1e68d0`,stopOpacity:`0.5`})]}),(0,K.jsxs)(`linearGradient`,{id:`gradB`,x1:`0%`,y1:`0%`,x2:`100%`,y2:`100%`,children:[(0,K.jsx)(`stop`,{offset:`0%`,stopColor:`#10b981`,stopOpacity:`0.8`}),(0,K.jsx)(`stop`,{offset:`100%`,stopColor:`#0a7c55`,stopOpacity:`0.5`})]})]}),(0,K.jsx)(`polygon`,{points:`100,25 152,55 100,85 48,55`,fill:`url(#gradA)`,stroke:`#7c6bf0`,strokeWidth:a(`A`)||e===`A`?2.5:1,opacity:i(`A`)?.95:.25,onMouseEnter:()=>r(`A`),onMouseLeave:()=>r(null),onClick:()=>t(e===`A`?`all`:`A`)}),(0,K.jsx)(`text`,{x:`100`,y:`58`,fill:`#ffffff`,fontSize:`10`,fontWeight:`bold`,textAnchor:`middle`,pointerEvents:`none`,children:`Face A`}),(0,K.jsx)(`polygon`,{points:`48,55 100,85 100,145 48,115`,fill:`url(#gradC)`,stroke:`#3b9eff`,strokeWidth:a(`C`)||e===`C`?2.5:1,opacity:i(`C`)?.95:.25,onMouseEnter:()=>r(`C`),onMouseLeave:()=>r(null),onClick:()=>t(e===`C`?`all`:`C`)}),(0,K.jsx)(`text`,{x:`74`,y:`103`,fill:`#ffffff`,fontSize:`10`,fontWeight:`bold`,textAnchor:`middle`,pointerEvents:`none`,children:`Face C`}),(0,K.jsx)(`polygon`,{points:`100,85 152,55 152,115 100,145`,fill:`url(#gradB)`,stroke:`#10b981`,strokeWidth:a(`B`)||e===`B`?2.5:1,opacity:i(`B`)?.95:.25,onMouseEnter:()=>r(`B`),onMouseLeave:()=>r(null),onClick:()=>t(e===`B`?`all`:`B`)}),(0,K.jsx)(`text`,{x:`126`,y:`103`,fill:`#ffffff`,fontSize:`10`,fontWeight:`bold`,textAnchor:`middle`,pointerEvents:`none`,children:`Face B`}),(0,K.jsx)(`polygon`,{points:`100,25 48,115 152,115`,fill:`rgba(255, 215, 0, 0.08)`,stroke:`#ffd700`,strokeWidth:`1.2`,strokeDasharray:`3 2`,pointerEvents:`none`}),(0,K.jsx)(`circle`,{cx:`100`,cy:`85`,r:`3`,fill:`#ffd700`,pointerEvents:`none`})]}),(0,K.jsxs)(`div`,{style:{flex:1},children:[(0,K.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`},children:[(0,K.jsx)(`div`,{style:{fontWeight:600,fontSize:`12px`,color:`#ffd700`},children:`3D Cubical Model: A × C × B`}),(0,K.jsx)(`button`,{onClick:()=>t(`all`),style:{padding:`2px 8px`,fontSize:`10px`,backgroundColor:e===`all`?`rgba(255, 255, 255, 0.15)`:`transparent`,color:`var(--vscode-foreground, #cccccc)`,border:`1px solid rgba(255, 255, 255, 0.12)`,borderRadius:`3px`,cursor:`pointer`},children:`Reset View`})]}),(0,K.jsxs)(`div`,{style:{fontSize:`11px`,color:`var(--vscode-descriptionForeground, #888888)`,marginTop:`3px`,lineHeight:1.4},children:[`Encloses the `,(0,K.jsx)(`strong`,{style:{color:`#ffd700`},children:`2-Simplex`}),` (VCard Proof Object). Click faces above or buttons below to filter focus.`]})]})]})},ve=({meta:e,color:t,onNavigateToSource:n,onMaterialize:r})=>{let[i,a]=(0,D.useState)(!1);if(e.sourceType===`inline`||e.sourceType===`unbound`||!e.referenceUri)return null;let o=t=>{t.stopPropagation(),e.referenceUri&&(navigator.clipboard?.writeText(e.referenceUri),a(!0),setTimeout(()=>a(!1),1500))},s=t=>{t.stopPropagation(),e.referenceUri&&n&&n(e.referenceUri)},c=e=>{e.stopPropagation(),r&&r()},l=e.sourceHash?`#${e.sourceHash.slice(0,8)}`:null;return(0,K.jsxs)(`div`,{"data-testid":`transclusion-ribbon`,style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,padding:`6px 10px`,marginBottom:`10px`,backgroundColor:t.bg,border:`1px solid ${t.border}`,borderRadius:`4px`,fontSize:`11px`,color:`var(--vscode-foreground, #cccccc)`},children:[(0,K.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`8px`,minWidth:0,flex:1},children:[(0,K.jsx)(`span`,{style:{color:t.accent,fontWeight:600},children:`🔗 Transcluded:`}),(0,K.jsx)(`code`,{title:e.referenceUri,style:{backgroundColor:`rgba(0, 0, 0, 0.25)`,padding:`2px 6px`,borderRadius:`3px`,color:t.accent,fontFamily:`var(--vscode-editor-font-family, monospace)`,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`,maxWidth:`320px`},children:e.referenceUri}),l&&(0,K.jsx)(`span`,{title:`Source CAS Hash: ${e.sourceHash}`,style:{fontSize:`10px`,color:`var(--vscode-descriptionForeground, #888888)`,fontFamily:`monospace`},children:l})]}),(0,K.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`6px`,flexShrink:0},children:[(0,K.jsx)(`button`,{type:`button`,onClick:o,title:`Copy transclusion URI`,style:{background:`transparent`,border:`1px solid var(--vscode-widget-border, rgba(255, 255, 255, 0.15))`,borderRadius:`3px`,color:`var(--vscode-foreground, #cccccc)`,cursor:`pointer`,fontSize:`10px`,padding:`2px 6px`},children:i?`✓ Copied`:`Copy`}),n&&(0,K.jsx)(`button`,{type:`button`,onClick:s,title:`Open source MCard in Studio`,style:{background:`transparent`,border:`1px solid ${t.border}`,borderRadius:`3px`,color:t.accent,cursor:`pointer`,fontSize:`10px`,padding:`2px 6px`,fontWeight:500},children:`Open Source ↗`}),r&&(0,K.jsx)(`button`,{type:`button`,onClick:c,title:`Materialize: Embed remote content directly inline into this card`,style:{background:`transparent`,border:`1px solid var(--vscode-widget-border, rgba(255, 255, 255, 0.15))`,borderRadius:`3px`,color:`var(--vscode-foreground, #cccccc)`,cursor:`pointer`,fontSize:`10px`,padding:`2px 6px`},children:`Materialize ⤓`})]})]})},ye=({faceTitle:e,color:t,onBindAspect:n,onAuthorInline:r})=>(0,K.jsxs)(`div`,{"data-testid":`unbound-aspect-placeholder`,style:{border:`1px dashed ${t.border}`,borderRadius:`6px`,padding:`16px 20px`,textAlign:`center`,backgroundColor:`rgba(0, 0, 0, 0.1)`,display:`flex`,flexDirection:`column`,alignItems:`center`,gap:`10px`,margin:`4px 0`},children:[(0,K.jsxs)(`div`,{style:{fontSize:`12px`,color:`var(--vscode-descriptionForeground, #888888)`},children:[`No `,(0,K.jsx)(`span`,{style:{color:t.accent,fontWeight:600},children:e}),` is currently bound to this PCard.`]}),(0,K.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`8px`},children:[n&&(0,K.jsxs)(`button`,{type:`button`,"data-testid":`btn-bind-aspect`,onClick:e=>{e.stopPropagation(),n()},style:{backgroundColor:t.bg,border:`1px solid ${t.border}`,color:t.accent,padding:`4px 12px`,borderRadius:`4px`,cursor:`pointer`,fontSize:`11px`,fontWeight:600,display:`inline-flex`,alignItems:`center`,gap:`4px`},children:[(0,K.jsx)(`span`,{children:`+`}),` Bind Aspect MCard`]}),r&&(0,K.jsx)(`button`,{type:`button`,onClick:e=>{e.stopPropagation(),r()},style:{backgroundColor:`transparent`,border:`1px solid var(--vscode-widget-border, rgba(255, 255, 255, 0.15))`,color:`var(--vscode-foreground, #cccccc)`,padding:`4px 10px`,borderRadius:`4px`,cursor:`pointer`,fontSize:`11px`},children:`+ Author Inline`})]})]}),be={fontSize:`11px`,fontWeight:600,padding:`2px 8px`,borderRadius:`10px`,display:`inline-flex`,alignItems:`center`,gap:`4px`},q=({title:e,subtitle:t,icon:n,color:r,badge:i,defaultOpen:a=!0,isOpen:o,onToggle:s,compact:c=!1,actions:l,sourceMeta:u,onNavigateToSource:d,onMaterialize:f,onBindAspect:p,onAuthorInline:m,onExtract:h,children:g})=>{let[_,v]=(0,D.useState)(a),y=o===void 0?_:o,b=i??(u?.sourceType===`handle`?`TRANSCLUDED (HANDLE)`:u?.sourceType===`cas-hash`?`TRANSCLUDED (CAS)`:u?.sourceType===`vfs-path`?`TRANSCLUDED (PATH)`:u?.sourceType===`unbound`?`UNBOUND`:u?.sourceType===`inline`?`INLINE`:void 0),x=()=>{let e=!y;o===void 0&&v(e),s?.(e)},S=c?`6px 12px`:`10px 14px`;return(0,K.jsxs)(`div`,{className:`triad-section-container`,style:{backgroundColor:`var(--vscode-editor-background, #1e1e1e)`,border:`1px solid ${r.border}`,borderRadius:`6px`,marginBottom:`8px`,overflow:`hidden`,boxShadow:`0 2px 6px rgba(0, 0, 0, 0.2)`,width:`100%`,transition:`border-color 0.15s ease`},children:[(0,K.jsxs)(`div`,{className:`triad-section-header`,onClick:x,style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`,padding:S,backgroundColor:r.bg,borderBottom:y?`1px solid ${r.border}`:`none`,cursor:`pointer`,userSelect:`none`,minHeight:c?`32px`:`38px`},children:[(0,K.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`8px`,minWidth:0,flex:1},children:[(0,K.jsx)(`span`,{style:{fontSize:c?`13px`:`15px`,flexShrink:0},children:n}),(0,K.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`8px`,flexWrap:`wrap`,minWidth:0},children:[(0,K.jsx)(`span`,{className:`triad-section-title`,style:{fontWeight:600,fontSize:c?`12px`:`13px`,color:r.accent},children:e}),t&&(0,K.jsx)(`span`,{style:{fontSize:`11px`,color:`var(--vscode-descriptionForeground, #888888)`,whiteSpace:`nowrap`,overflow:`hidden`,textOverflow:`ellipsis`},children:t})]})]}),(0,K.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`8px`,flexShrink:0},onClick:e=>e.stopPropagation(),children:[l,h&&u?.sourceType===`inline`&&(0,K.jsx)(`button`,{onClick:h,title:`Extract this inlined aspect to a sovereign standalone MCard`,style:{background:`transparent`,border:`1px solid ${r.border}`,borderRadius:`4px`,color:r.accent,fontSize:`10px`,padding:`2px 8px`,cursor:`pointer`,fontWeight:500},children:`Extract ↗`}),b&&(0,K.jsx)(`span`,{style:{...be,backgroundColor:r.pill||r.bg,color:r.accent,border:`1px solid ${r.border}`},children:b}),(0,K.jsx)(`span`,{onClick:x,style:{fontSize:`11px`,color:`var(--vscode-foreground, #cccccc)`,transform:y?`rotate(90deg)`:`rotate(0deg)`,transition:`transform 0.15s ease`,cursor:`pointer`,padding:`2px`},children:`▶`})]})]}),y&&(0,K.jsx)(`div`,{className:`triad-section-body`,style:{padding:c?`10px 14px`:`14px 16px`,backgroundColor:`rgba(0, 0, 0, 0.15)`,width:`100%`,boxSizing:`border-box`},children:u?.sourceType===`unbound`?(0,K.jsx)(ye,{faceTitle:e,color:r,onBindAspect:p,onAuthorInline:m}):(0,K.jsxs)(K.Fragment,{children:[u&&(0,K.jsx)(ve,{meta:u,color:r,onNavigateToSource:d,onMaterialize:f}),g]})})]})},J=({children:e,minColWidth:t=`260px`,gap:n=`12px 16px`,style:r})=>(0,K.jsx)(`div`,{className:`clm-field-grid`,style:{display:`grid`,gridTemplateColumns:`repeat(auto-fit, minmax(${t}, 1fr))`,gap:n,alignItems:`start`,width:`100%`,...r},children:e}),xe=({children:e,span:t=`full`,style:n})=>(0,K.jsx)(`div`,{style:{gridColumn:t===`full`?`1 / -1`:`span ${t}`,width:`100%`,...n},children:e}),Se=({degree:e,onApplyOperator:t})=>(0,K.jsxs)(`div`,{style:{display:`flex`,flexWrap:`wrap`,alignItems:`center`,justifyContent:`space-between`,gap:`8px`,padding:`8px 12px`,backgroundColor:`rgba(255, 255, 255, 0.03)`,borderRadius:`5px`,border:`1px solid rgba(255, 255, 255, 0.08)`,marginBottom:`12px`},children:[(0,K.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`8px`},children:[(0,K.jsx)(`span`,{style:{fontSize:`11px`,color:`var(--vscode-descriptionForeground, #888888)`},children:`Functor:`}),(0,K.jsxs)(`code`,{style:{fontSize:`11px`,backgroundColor:`#264f78`,color:`#ffffff`,padding:`2px 8px`,borderRadius:`3px`,fontWeight:600},children:[`P(y) = y^`,e]})]}),(0,K.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`4px`,flexWrap:`wrap`},children:[(0,K.jsx)(`span`,{style:{fontSize:`10px`,textTransform:`uppercase`,letterSpacing:`0.5px`,color:`var(--vscode-descriptionForeground, #888888)`,marginRight:`2px`},children:`Baldwin:`}),[{id:`SPLIT`,label:`Split (Σ)`,tooltip:`Decompose Σ-type into independent summands`,icon:`✂️`},{id:`SUBSTITUTE`,label:`Sub (Π)`,tooltip:`Substitute Π-type implementation preserving interface`,icon:`🔄`},{id:`AUGMENT`,label:`Aug (+)`,tooltip:`Add new summand to expand design space`,icon:`➕`},{id:`EXCLUDE`,label:`Excl (-)`,tooltip:`Remove summand to simplify type and cap risk`,icon:`➖`},{id:`INVERT`,label:`Inv (⟲)`,tooltip:`Convert dependency into service or expose latent capability`,icon:`🔃`},{id:`PORT`,label:`Port (⇄)`,tooltip:`Transport modular subsystem across architectural layers`,icon:`🚢`}].map(e=>(0,K.jsxs)(`button`,{title:e.tooltip,onClick:()=>t&&t(e.id),style:{padding:`2px 7px`,fontSize:`10px`,fontWeight:500,backgroundColor:`transparent`,color:`#9cdcfe`,border:`1px solid rgba(255, 255, 255, 0.12)`,borderRadius:`3px`,cursor:`pointer`,display:`inline-flex`,alignItems:`center`,gap:`3px`,transition:`all 0.15s ease`},children:[(0,K.jsx)(`span`,{children:e.icon}),(0,K.jsx)(`span`,{children:e.label})]},e.id))]})]}),Y={blue:`#3b9eff`,green:`#10b981`,purple:`#7c6bf0`,orange:`#f59e0b`},X=({data:e,accent:t,compact:n=!1})=>{let r=Object.entries(e);return r.length===0?(0,K.jsx)(`span`,{style:{color:`var(--vscode-descriptionForeground, #888888)`,fontStyle:`italic`,fontSize:`11px`},children:`empty`}):(0,K.jsx)(`div`,{style:{display:`flex`,flexWrap:`wrap`,gap:`4px`},children:r.map(([e,r])=>{let i=typeof r==`object`?JSON.stringify(r):String(r);return(0,K.jsxs)(`span`,{style:{display:`inline-flex`,alignItems:`center`,backgroundColor:`rgba(255, 255, 255, 0.05)`,border:`1px solid ${t}40`,borderRadius:`4px`,padding:n?`1px 6px`:`2px 8px`,fontSize:n?`10px`:`11px`,fontFamily:y},children:[(0,K.jsxs)(`span`,{style:{color:t,fontWeight:600,marginRight:`4px`},children:[e,`:`]}),(0,K.jsx)(`span`,{style:{color:`#ffffff`},children:i})]},e)})})},Ce=({onRun:e,isRunning:t=!1,compact:n=!1})=>(0,K.jsxs)(`button`,{onClick:t=>{t.stopPropagation(),e()},disabled:t,style:{padding:n?`3px 10px`:`6px 14px`,backgroundColor:t?`#3c3c3c`:`#0e639c`,color:`#ffffff`,border:`none`,borderRadius:`4px`,fontSize:n?`11px`:`12px`,fontWeight:600,cursor:t?`wait`:`pointer`,display:`inline-flex`,alignItems:`center`,gap:`4px`,transition:`background-color 0.15s ease`},children:[(0,K.jsx)(`span`,{children:t?`⏳`:`▶`}),(0,K.jsx)(`span`,{children:t?`Running...`:`Run`})]}),we=({n:e,active:t})=>(0,K.jsxs)(`span`,{style:{fontSize:`10px`,fontWeight:700,padding:`1px 5px`,borderRadius:`3px`,backgroundColor:t?`#10b981`:`rgba(255, 255, 255, 0.1)`,color:t?`#ffffff`:`var(--vscode-descriptionForeground, #888888)`,minWidth:`18px`,textAlign:`center`},children:[`#`,e]}),Te=({testCases:e,activeIndex:t,onSelect:n,onRun:r,isRunning:i=!1})=>{let a=e[t]||e[0],o=a?z(a):null,s=a?B(a):null;return(0,K.jsxs)(`div`,{style:{display:`grid`,gridTemplateColumns:`minmax(140px, 30%) 1fr`,border:`1px solid rgba(255, 255, 255, 0.1)`,borderRadius:`5px`,overflow:`hidden`,minHeight:`140px`,backgroundColor:`rgba(0, 0, 0, 0.2)`},children:[(0,K.jsx)(`div`,{style:{borderRight:`1px solid rgba(255, 255, 255, 0.1)`,overflowY:`auto`,maxHeight:`220px`,backgroundColor:`rgba(0, 0, 0, 0.15)`},children:e.map((e,r)=>{let i=r===t,a=R(e,r);return(0,K.jsxs)(`div`,{onClick:()=>n(r),style:{display:`flex`,alignItems:`center`,gap:`6px`,padding:`7px 10px`,fontSize:`11px`,cursor:`pointer`,borderBottom:`1px solid rgba(255, 255, 255, 0.04)`,backgroundColor:i?`rgba(16, 185, 129, 0.15)`:`transparent`,borderLeft:i?`3px solid #10b981`:`3px solid transparent`,color:i?`#ffffff`:`var(--vscode-foreground, #cccccc)`},children:[(0,K.jsx)(we,{n:r+1,active:i}),(0,K.jsx)(`span`,{style:{flex:1,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`,fontWeight:i?600:400},children:a})]},r)})}),(0,K.jsxs)(`div`,{style:{padding:`12px`,display:`flex`,flexDirection:`column`,gap:`10px`},children:[(0,K.jsxs)(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[(0,K.jsx)(`div`,{style:{fontWeight:600,fontSize:`12px`,color:`#10b981`},children:R(a,t)}),(0,K.jsx)(Ce,{onRun:()=>r(a,t),isRunning:i,index:t,compact:!0})]}),(0,K.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:`4px`},children:[(0,K.jsx)(`div`,{style:{fontSize:`10px`,fontWeight:600,color:Y.blue,textTransform:`uppercase`},children:`↳ When (Inputs / Context)`}),o?(0,K.jsx)(X,{data:o,accent:Y.blue,compact:!0}):(0,K.jsx)(`span`,{style:{fontSize:`11px`,color:`var(--vscode-descriptionForeground, #888888)`,fontStyle:`italic`},children:`No parameters specified`})]}),(0,K.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:`4px`},children:[(0,K.jsx)(`div`,{style:{fontSize:`10px`,fontWeight:600,color:Y.green,textTransform:`uppercase`},children:`✓ Then (Expected Outcomes)`}),s?(0,K.jsx)(X,{data:s,accent:Y.green,compact:!0}):(0,K.jsx)(`span`,{style:{fontSize:`11px`,color:`var(--vscode-descriptionForeground, #888888)`,fontStyle:`italic`},children:`No expected outcomes specified`})]})]})]})},Z=40,Ee=120,Q=[{id:`split`,label:`Split`,description:`All test cases always visible — list on left, detail on right.`,component:Te},{id:`dial`,label:`Dial`,description:`Rotating drum — spatial scroll metaphor with 3D peripheral visibility.`,component:({testCases:e,activeIndex:t,onSelect:n,onRun:r,isRunning:i=!1})=>{let a=(0,D.useCallback)(r=>{r.preventDefault();let i=r.deltaY>0?1:-1,a=Math.max(0,Math.min(e.length-1,t+i));a!==t&&n(a)},[t,e.length,n]),o=(0,D.useCallback)(r=>{r.key===`ArrowDown`?(r.preventDefault(),n(Math.min(t+1,e.length-1))):r.key===`ArrowUp`&&(r.preventDefault(),n(Math.max(t-1,0)))},[t,e.length,n]),s=e[t]||e[0],c=s?z(s):null,l=s?B(s):null,u=-t*Z+Z;return(0,K.jsxs)(`div`,{tabIndex:0,onKeyDown:o,style:{display:`flex`,flexDirection:`column`,gap:`10px`,outline:`none`},children:[(0,K.jsxs)(`div`,{onWheel:a,style:{position:`relative`,height:`${Ee}px`,overflow:`hidden`,backgroundColor:`rgba(0, 0, 0, 0.25)`,borderRadius:`6px`,border:`1px solid rgba(255, 255, 255, 0.1)`,cursor:`ns-resize`,boxShadow:`inset 0 4px 12px rgba(0, 0, 0, 0.5)`},children:[(0,K.jsx)(`div`,{style:{position:`absolute`,top:`${Z}px`,left:0,right:0,height:`${Z}px`,borderTop:`1px solid rgba(16, 185, 129, 0.4)`,borderBottom:`1px solid rgba(16, 185, 129, 0.4)`,backgroundColor:`rgba(16, 185, 129, 0.1)`,pointerEvents:`none`,zIndex:1}}),(0,K.jsx)(`div`,{style:{transform:`translateY(${u}px)`,transition:`transform 0.2s cubic-bezier(0.25, 1, 0.5, 1)`},children:e.map((r,i)=>{let a=Math.abs(i-t),o=i===t;return(0,K.jsxs)(`div`,{onClick:()=>n(i),style:{height:`${Z}px`,display:`flex`,alignItems:`center`,justifyContent:`space-between`,padding:`0 16px`,fontSize:`12px`,opacity:a===0?1:a===1?.45:.15,transform:`scale(${a===0?1:.95})`,transition:`opacity 0.2s, transform 0.2s`,color:o?`#10b981`:`var(--vscode-foreground, #cccccc)`,fontWeight:o?600:400,cursor:`pointer`,userSelect:`none`},children:[(0,K.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`8px`},children:[(0,K.jsx)(we,{n:i+1,active:o}),(0,K.jsx)(`span`,{children:R(r,i)})]}),(0,K.jsxs)(`span`,{style:{fontSize:`10px`,color:`var(--vscode-descriptionForeground, #888888)`},children:[i+1,`/`,e.length]})]},i)})})]}),(0,K.jsxs)(`div`,{style:{padding:`10px 14px`,backgroundColor:`rgba(0, 0, 0, 0.15)`,borderRadius:`6px`,border:`1px solid rgba(255, 255, 255, 0.06)`,display:`flex`,flexDirection:`column`,gap:`8px`},children:[(0,K.jsxs)(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[(0,K.jsx)(`div`,{style:{fontWeight:600,fontSize:`12px`,color:`#10b981`},children:R(s,t)}),(0,K.jsx)(Ce,{onRun:()=>r(s,t),isRunning:i,index:t,compact:!0})]}),(0,K.jsxs)(`div`,{style:{display:`flex`,gap:`16px`,flexWrap:`wrap`},children:[c&&(0,K.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`6px`},children:[(0,K.jsx)(`span`,{style:{fontSize:`10px`,fontWeight:600,color:Y.blue},children:`↳ When:`}),(0,K.jsx)(X,{data:c,accent:Y.blue,compact:!0})]}),l&&(0,K.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`6px`},children:[(0,K.jsx)(`span`,{style:{fontSize:`10px`,fontWeight:600,color:Y.green},children:`✓ Then:`}),(0,K.jsx)(X,{data:l,accent:Y.green,compact:!0})]})]})]})]})}}],De=`split`,Oe=`mcard.testCaseSelectorLayout`;function ke(e){return Q.find(t=>t.id===e)??Q.find(e=>e.id===`split`)}function Ae(){try{if(typeof localStorage<`u`)return localStorage.getItem(`mcard.testCaseSelectorLayout`)||`split`}catch{}return De}function je(e){try{typeof localStorage<`u`&&localStorage.setItem(Oe,e)}catch{}}function Me(e){let t=e.trim();if(!t)return{isValid:!0,format:`json`,parsedValue:{},coeffectsSatisfied:!0};try{let e=JSON.parse(t);return typeof e!=`object`||!e||Array.isArray(e)?{isValid:!1,format:`json`,error:`Input context must be an object (e.g. {"a": 10, "b": 20})`}:{isValid:!0,format:`json`,parsedValue:e,coeffectsSatisfied:!0}}catch(t){let n=t.message||`Syntax Error`,r,i,a=n.match(/position\s+(\d+)/i);if(a){let t=parseInt(a[1],10),n=e.slice(0,t).split(`
|
|
3
|
-
`);r=n.length,i=n[n.length-1].length+1}return{isValid:!1,format:`json`,error:n,line:r,column:i,coeffectsSatisfied:!1}}}function Ne(e){let t=e.trim();if(!t)return{isValid:!0,format:`yaml`,parsedValue:{},coeffectsSatisfied:!0};try{let e=x.load(t);return typeof e!=`object`||!e||Array.isArray(e)?{isValid:!1,format:`yaml`,error:`YAML context must evaluate to a mapping (e.g. a: 10\\nb: 20)`}:{isValid:!0,format:`yaml`,parsedValue:e,coeffectsSatisfied:!0}}catch(e){return{isValid:!1,format:`yaml`,error:e.reason||e.message||`Invalid YAML Syntax`,line:e.mark?e.mark.line+1:void 0,column:e.mark?e.mark.column+1:void 0,coeffectsSatisfied:!1}}}function Pe(e,t=`json`,n=[]){let r=t===`json`?Me(e):Ne(e);if(r.isValid&&r.parsedValue&&n.length>0){let e=n.filter(e=>!(e in r.parsedValue));if(e.length>0)return{...r,coeffectsSatisfied:!1,missingCoeffects:e}}return r}var Fe=({isOpen:e,multiSelect:t=!1,selectedUris:n,onSelect:i,onClose:a})=>{let l=s(o),[u,f]=(0,D.useState)(``),[p,m]=(0,D.useState)(`all`),[h,g]=(0,D.useState)(n),[_,v]=(0,D.useState)(null),b=(0,D.useMemo)(()=>{let e=[];Object.values(l).forEach(t=>{let n=`other`,r=c.paths.assets_dirname;t.path.includes(`${r}/webapps`)||t.name.endsWith(`.url`)?n=`webapp`:t.path.includes(`${r}/media`)||t.path.includes(`${r}/image`)||[`image`,`audio`,`video`,`font`].includes(t.detectedType)||t.mimeType?.startsWith(`image/`)?n=`media`:t.path.includes(`Abstract`)||t.detectedType===`specification`?n=`spec`:(t.path.includes(`Concrete`)||t.name.endsWith(`.yaml`)||t.subclass===`PCard`)&&(n=`pcard`),e.push({uri:t.handle||t.path,handle:t.handle,name:t.name,path:t.path,category:n,hash:t.hash,node:t})});try{if(r&&typeof r.getAllCards==`function`){let t=r.getAllCards();Object.entries(t).forEach(([t,n])=>{if(t.startsWith(`mcard:eventlog`)){let r=n.getMetadata?.(`execution/status`)||`execution`;e.push({uri:t,handle:t,name:`Execution: ${n.getMetadata?.(`execution/test_case`)||t.slice(-12)}`,path:t,category:`execution`,hash:n.hash?.toString()||`blake3-witness`,badge:String(r).toUpperCase()})}})}}catch{}return e},[l]),x=(0,D.useMemo)(()=>b.filter(e=>{if(p!==`all`&&(p===`webapps`&&e.category!==`webapp`||p===`media`&&e.category!==`media`||p===`specs`&&e.category!==`spec`||p===`pcards`&&e.category!==`pcard`||p===`executions`&&e.category!==`execution`))return!1;if(!u.trim())return!0;let t=u.toLowerCase();return e.name.toLowerCase().includes(t)||e.path.toLowerCase().includes(t)||e.handle.toLowerCase().includes(t)||e.hash&&e.hash.toLowerCase().includes(t)}),[b,p,u]),S=e=>{g(t?t=>t.includes(e)?t.filter(t=>t!==e):[...t,e]:[e])};return e?(0,K.jsxs)(`div`,{style:{position:`fixed`,inset:0,backgroundColor:`rgba(0, 0, 0, 0.7)`,display:`flex`,alignItems:`center`,justifyContent:`center`,zIndex:9999,padding:`20px`},onClick:a,children:[(0,K.jsxs)(`div`,{style:{width:`640px`,maxWidth:`95vw`,maxHeight:`80vh`,backgroundColor:`var(--vscode-editor-background, #1e1e1e)`,border:`1px solid var(--vscode-widget-border, #454545)`,borderRadius:`8px`,display:`flex`,flexDirection:`column`,overflow:`hidden`,boxShadow:`0 8px 32px rgba(0, 0, 0, 0.5)`},onClick:e=>e.stopPropagation(),children:[(0,K.jsxs)(`div`,{style:{padding:`12px 16px`,borderBottom:`1px solid rgba(255, 255, 255, 0.08)`,display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[(0,K.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`8px`},children:[(0,K.jsx)(`span`,{style:{fontSize:`15px`},children:`📎`}),(0,K.jsxs)(`span`,{style:{fontWeight:600,fontSize:`13px`,color:`var(--vscode-foreground, #ffffff)`},children:[`Universal MCard Picker `,t?`(Multi-Select)`:`(Single Select)`]})]}),(0,K.jsx)(`button`,{onClick:a,style:{background:`transparent`,border:`none`,color:`var(--vscode-descriptionForeground, #888888)`,fontSize:`14px`,cursor:`pointer`},children:`✕`})]}),(0,K.jsxs)(`div`,{style:{padding:`10px 16px`,borderBottom:`1px solid rgba(255, 255, 255, 0.06)`},children:[(0,K.jsx)(`input`,{type:`text`,placeholder:`Search MCards by name, path, handle, or BLAKE3 hash...`,value:u,onChange:e=>f(e.target.value),autoFocus:!0,style:{width:`100%`,padding:`8px 12px`,backgroundColor:`rgba(0, 0, 0, 0.3)`,border:`1px solid rgba(255, 255, 255, 0.15)`,borderRadius:`4px`,color:`var(--vscode-foreground, #ffffff)`,fontSize:`12px`,fontFamily:y,outline:`none`,boxSizing:`border-box`}}),(0,K.jsx)(`div`,{style:{display:`flex`,gap:`6px`,marginTop:`8px`,flexWrap:`wrap`},children:[{id:`all`,label:`All`},{id:`webapps`,label:`🌐 WebApps`},{id:`media`,label:`🎨 Media`},{id:`specs`,label:`📐 Specs`},{id:`pcards`,label:`⚙️ PCards`},{id:`executions`,label:`⚡ Executions`}].map(e=>(0,K.jsx)(`button`,{onClick:()=>m(e.id),style:{padding:`3px 8px`,fontSize:`11px`,borderRadius:`12px`,border:p===e.id?`1px solid #3b82f6`:`1px solid rgba(255, 255, 255, 0.1)`,backgroundColor:p===e.id?`rgba(59, 130, 246, 0.2)`:`transparent`,color:p===e.id?`#60a5fa`:`var(--vscode-descriptionForeground, #888888)`,cursor:`pointer`},children:e.label},e.id))})]}),(0,K.jsx)(`div`,{style:{flex:1,overflowY:`auto`,padding:`8px 16px`,display:`flex`,flexDirection:`column`,gap:`4px`},children:x.length===0?(0,K.jsx)(`div`,{style:{padding:`24px`,textAlign:`center`,color:`var(--vscode-descriptionForeground, #888888)`,fontStyle:`italic`},children:`No matching MCards found.`}):x.map(e=>{let n=h.includes(e.uri),r=e.category===`webapp`?`🌐`:e.category===`media`?`🎨`:e.category===`spec`?`📐`:e.category===`pcard`?`⚙️`:e.category===`execution`?`⚡`:`📄`,i=e.category===`media`&&(e.node?.detectedType===`image`||e.node?.mimeType?.startsWith(`image/`)||/\.(png|jpe?g|webp|svg|gif)$/i.test(e.path));return(0,K.jsxs)(`div`,{"data-testid":`mcard-picker-item`,onClick:()=>S(e.uri),style:{padding:`8px 12px`,borderRadius:`5px`,backgroundColor:n?`rgba(59, 130, 246, 0.15)`:`rgba(255, 255, 255, 0.02)`,border:n?`1px solid #3b82f6`:`1px solid rgba(255, 255, 255, 0.05)`,display:`flex`,alignItems:`center`,justifyContent:`space-between`,cursor:`pointer`,userSelect:`none`},children:[(0,K.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`10px`,minWidth:0},children:[i?(0,K.jsx)(`div`,{style:{position:`relative`,width:`36px`,height:`36px`,flexShrink:0},onMouseEnter:t=>{let n=t.currentTarget.getBoundingClientRect();v({uri:e.uri,x:n.right+12,y:Math.max(10,n.top-70)})},onMouseLeave:()=>v(null),children:(0,K.jsx)(`img`,{src:d(e.path,e.hash),alt:e.name,style:{width:`36px`,height:`36px`,borderRadius:`4px`,objectFit:`cover`,border:`1px solid rgba(255, 255, 255, 0.2)`,backgroundColor:`#1e1e1e`}})}):(0,K.jsx)(`span`,{style:{fontSize:`14px`},children:r}),(0,K.jsxs)(`div`,{style:{minWidth:0},children:[(0,K.jsx)(`div`,{style:{fontWeight:600,fontSize:`12px`,color:n?`#60a5fa`:`var(--vscode-foreground, #ffffff)`,whiteSpace:`nowrap`,overflow:`hidden`,textOverflow:`ellipsis`},children:e.name}),(0,K.jsx)(`div`,{style:{fontSize:`10px`,color:`var(--vscode-descriptionForeground, #888888)`,fontFamily:y},children:e.path})]})]}),(0,K.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`6px`,flexShrink:0},children:[e.badge&&(0,K.jsx)(`span`,{style:{fontSize:`9px`,padding:`1px 5px`,borderRadius:`3px`,backgroundColor:`rgba(245, 158, 11, 0.2)`,color:`#f59e0b`},children:e.badge}),e.hash&&(0,K.jsxs)(`code`,{style:{fontSize:`10px`,color:`#9cdcfe`,backgroundColor:`rgba(0, 0, 0, 0.3)`,padding:`1px 5px`,borderRadius:`3px`,fontFamily:`var(--vscode-editor-font-family, 'Fira Code', Menlo, Monaco, 'Courier New', monospace)`},children:[`#`,e.hash.substring(0,8)]}),(0,K.jsx)(`input`,{type:t?`checkbox`:`radio`,checked:n,onChange:()=>{},style:{cursor:`pointer`}})]})]},e.uri)})}),(0,K.jsxs)(`div`,{style:{padding:`10px 16px`,borderTop:`1px solid rgba(255, 255, 255, 0.08)`,display:`flex`,justifyContent:`space-between`,alignItems:`center`,backgroundColor:`rgba(0, 0, 0, 0.2)`},children:[(0,K.jsxs)(`span`,{style:{fontSize:`11px`,color:`var(--vscode-descriptionForeground, #888888)`},children:[h.length,` MCard`,h.length===1?``:`s`,` selected`]}),(0,K.jsxs)(`div`,{style:{display:`flex`,gap:`8px`},children:[(0,K.jsx)(`button`,{onClick:a,style:{padding:`4px 12px`,fontSize:`11px`,backgroundColor:`transparent`,border:`1px solid rgba(255, 255, 255, 0.2)`,borderRadius:`4px`,color:`var(--vscode-foreground, #ffffff)`,cursor:`pointer`},children:`Cancel`}),(0,K.jsxs)(`button`,{onClick:()=>{i(h),a()},style:{padding:`4px 16px`,fontSize:`11px`,backgroundColor:`#0e639c`,border:`none`,borderRadius:`4px`,color:`#ffffff`,fontWeight:600,cursor:`pointer`},children:[`Attach `,h.length>0?`(${h.length})`:``]})]})]})]}),_&&(0,K.jsx)(`div`,{"data-testid":`thumbnail-peek`,style:{position:`fixed`,left:`${_.x}px`,top:`${_.y}px`,width:`180px`,height:`180px`,backgroundColor:`#1e1e1e`,border:`2px solid #007acc`,borderRadius:`8px`,boxShadow:`0 8px 24px rgba(0,0,0,0.8)`,zIndex:1e4,pointerEvents:`none`,overflow:`hidden`,display:`flex`,alignItems:`center`,justifyContent:`center`},children:(0,K.jsx)(`img`,{src:d(b.find(e=>e.uri===_.uri)?.path||``,b.find(e=>e.uri===_.uri)?.hash),alt:`Zoom peek`,style:{width:`100%`,height:`100%`,objectFit:`contain`}})})]}):null},Ie=({selectedUris:e,onChange:t,multiSelect:n=!0})=>{let[r,i]=(0,D.useState)(!1),a=n=>{t(e.filter(e=>e!==n))},o=e=>e.startsWith(`mcard:eventlog`)?`⚡`:e.includes(`.url`)||e.includes(`webapps`)?`🌐`:e.match(/\.(png|jpe?g|gif|mp3|wav|mp4|webm)$/i)?`🎨`:e.includes(`Abstract`)?`📐`:e.includes(`Concrete`)||e.endsWith(`.yaml`)?`⚙️`:`📄`,s=e=>{let t=e.split(`/`),n=t[t.length-1];return n.length>24?`${n.substring(0,22)}…`:n};return(0,K.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:`6px`,marginBottom:`8px`},children:[(0,K.jsxs)(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[(0,K.jsxs)(`span`,{style:{fontSize:`11px`,fontWeight:600,textTransform:`uppercase`,letterSpacing:`0.5px`,color:`var(--vscode-descriptionForeground, #888888)`},children:[`Attached MCard Inputs (`,e.length,`)`]}),(0,K.jsxs)(`button`,{type:`button`,onClick:()=>i(!0),style:{fontSize:`11px`,padding:`2px 8px`,backgroundColor:`rgba(59, 130, 246, 0.15)`,border:`1px solid rgba(59, 130, 246, 0.3)`,borderRadius:`4px`,color:`#60a5fa`,cursor:`pointer`,display:`inline-flex`,alignItems:`center`,gap:`4px`},children:[(0,K.jsx)(`span`,{children:`📎`}),` Attach MCard...`]})]}),(0,K.jsx)(`div`,{style:{display:`flex`,flexWrap:`wrap`,gap:`6px`,minHeight:`26px`,alignItems:`center`},children:e.length===0?(0,K.jsx)(`span`,{style:{fontSize:`11px`,color:`var(--vscode-descriptionForeground, #888888)`,fontStyle:`italic`},children:`No MCards attached. Click "Attach MCard" to select files or past execution witnesses.`}):e.map(e=>(0,K.jsxs)(`span`,{style:{fontSize:`11px`,fontFamily:y,backgroundColor:e.startsWith(`mcard:eventlog`)?`rgba(245, 158, 11, 0.15)`:`rgba(59, 130, 246, 0.12)`,border:e.startsWith(`mcard:eventlog`)?`1px solid rgba(245, 158, 11, 0.3)`:`1px solid rgba(59, 130, 246, 0.25)`,color:e.startsWith(`mcard:eventlog`)?`#fbbf24`:`#93c5fd`,padding:`2px 8px`,borderRadius:`12px`,display:`inline-flex`,alignItems:`center`,gap:`6px`},title:e,children:[(0,K.jsx)(`span`,{children:o(e)}),(0,K.jsx)(`span`,{children:s(e)}),(0,K.jsx)(`button`,{type:`button`,onClick:()=>a(e),style:{background:`transparent`,border:`none`,color:`inherit`,cursor:`pointer`,padding:0,fontSize:`11px`,lineHeight:1},title:`Remove MCard`,children:`✕`})]},e))}),(0,K.jsx)(Fe,{isOpen:r,multiSelect:n,selectedUris:e,onSelect:t,onClose:()=>i(!1)})]})},Le=({isOpen:e,initialCase:t,existingIds:n,onSave:r,onClose:i})=>{let[a,o]=(0,D.useState)(``),[s,c]=(0,D.useState)(``),[l,u]=(0,D.useState)(`json`),[d,f]=(0,D.useState)(``),[p,m]=(0,D.useState)(``),[h,g]=(0,D.useState)(``),[_,v]=(0,D.useState)([]),[b,S]=(0,D.useState)(!1),[C,w]=(0,D.useState)(null),T=!!t;(0,D.useEffect)(()=>{if(e){if(t){o(t.id||t.name||``),c(t.given||t.description||``);let e=t.when?.context||t.when?.arguments||t.input||t.when||{};f(JSON.stringify(e,null,2));let n=[];if(typeof e==`object`&&e){let t=e;typeof t.mcard==`string`&&n.push(t.mcard),Array.isArray(t.mcards)&&t.mcards.forEach(e=>typeof e==`string`&&n.push(e))}v(n),t.then?.result===void 0?t.expected_output:t.then.result;let r=t.then?.result_contains||t.result_contains;g(r===void 0?``:typeof r==`object`?JSON.stringify(r):String(r))}else{let e=`scenario-${Date.now().toString().slice(-4)}`;o(e),c(`New Test Scenario`),f(JSON.stringify({a:10,b:20},null,2)),m(`30`),g(`30`),v([])}w(null)}},[e,t]);let E=(0,D.useMemo)(()=>Pe(d,l),[d,l]),O=(0,D.useMemo)(()=>{let e=a.trim();return!e||T&&t&&(t.id===e||t.name===e)?!1:n.includes(e)},[a,n,T,t]);return e?(0,K.jsx)(`div`,{style:{position:`fixed`,inset:0,backgroundColor:`rgba(0, 0, 0, 0.75)`,display:`flex`,alignItems:`center`,justifyContent:`center`,zIndex:9990,padding:`20px`},onClick:i,children:(0,K.jsxs)(`div`,{style:{width:`680px`,maxWidth:`95vw`,maxHeight:`85vh`,backgroundColor:`var(--vscode-editor-background, #1e1e1e)`,border:`1px solid var(--vscode-widget-border, #454545)`,borderRadius:`8px`,display:`flex`,flexDirection:`column`,overflow:`hidden`,boxShadow:`0 8px 32px rgba(0, 0, 0, 0.5)`},onClick:e=>e.stopPropagation(),children:[(0,K.jsxs)(`div`,{style:{padding:`12px 18px`,borderBottom:`1px solid rgba(255, 255, 255, 0.08)`,display:`flex`,justifyContent:`space-between`,alignItems:`center`,backgroundColor:`rgba(16, 185, 129, 0.08)`},children:[(0,K.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`8px`},children:[(0,K.jsx)(`span`,{style:{fontSize:`15px`},children:`⚖️`}),(0,K.jsx)(`span`,{style:{fontWeight:600,fontSize:`13px`,color:`#10b981`},children:T?`Edit Test Scenario (${t?.id})`:`Create New Test Scenario`})]}),(0,K.jsx)(`button`,{onClick:i,style:{background:`transparent`,border:`none`,color:`var(--vscode-descriptionForeground, #888888)`,fontSize:`14px`,cursor:`pointer`},children:`✕`})]}),(0,K.jsxs)(`form`,{onSubmit:async e=>{if(e.preventDefault(),E.isValid&&!O&&a.trim()){S(!0),w(null);try{let e=E.parsedValue||{},t=p.trim();try{t=JSON.parse(p.trim())}catch{}await r({id:a.trim(),given:s.trim(),when:{context:e},then:{result:t,...h.trim()?{result_contains:h.trim()}:{}}}),i()}catch(e){w(e.message||`Failed to save test case`)}finally{S(!1)}}},style:{flex:1,overflowY:`auto`,padding:`16px 20px`,display:`flex`,flexDirection:`column`,gap:`14px`},children:[C&&(0,K.jsxs)(`div`,{style:{padding:`8px 12px`,backgroundColor:`rgba(239, 68, 68, 0.15)`,border:`1px solid rgba(239, 68, 68, 0.3)`,borderRadius:`4px`,color:`#f87171`,fontSize:`12px`},children:[`⚠️ `,C]}),(0,K.jsxs)(`div`,{style:{display:`grid`,gridTemplateColumns:`1fr 2fr`,gap:`12px`},children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`label`,{style:{display:`block`,fontSize:`11px`,fontWeight:600,color:`var(--vscode-descriptionForeground, #888888)`,marginBottom:`4px`},children:`Scenario ID (Slug) *`}),(0,K.jsx)(`input`,{type:`text`,value:a,onChange:e=>o(e.target.value.toLowerCase().replace(/[^a-z0-9_-]/g,`-`)),placeholder:`e.g. boundary-overflow`,required:!0,style:{width:`100%`,padding:`6px 10px`,backgroundColor:`rgba(0, 0, 0, 0.3)`,border:O?`1px solid #ef4444`:`1px solid rgba(255, 255, 255, 0.15)`,borderRadius:`4px`,color:`var(--vscode-foreground, #ffffff)`,fontSize:`12px`,fontFamily:y,outline:`none`,boxSizing:`border-box`}}),O&&(0,K.jsx)(`span`,{style:{fontSize:`10px`,color:`#ef4444`,marginTop:`2px`,display:`block`},children:`⚠️ ID already exists in this CLM`})]}),(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`label`,{style:{display:`block`,fontSize:`11px`,fontWeight:600,color:`var(--vscode-descriptionForeground, #888888)`,marginBottom:`4px`},children:`Given (Description) *`}),(0,K.jsx)(`input`,{type:`text`,value:s,onChange:e=>c(e.target.value),placeholder:`e.g. Verify behavior on maximum 32-bit integer addition`,required:!0,style:{width:`100%`,padding:`6px 10px`,backgroundColor:`rgba(0, 0, 0, 0.3)`,border:`1px solid rgba(255, 255, 255, 0.15)`,borderRadius:`4px`,color:`var(--vscode-foreground, #ffffff)`,fontSize:`12px`,outline:`none`,boxSizing:`border-box`}})]})]}),(0,K.jsx)(Ie,{selectedUris:_,onChange:e=>{v(e);try{let t={};t=l===`json`?JSON.parse(d||`{}`):x.load(d||`{}`)||{},e.length===0?(delete t.mcard,delete t.mcards):e.length===1?(t.mcard=e[0],delete t.mcards):(t.mcards=e,delete t.mcard);let n=l===`json`?JSON.stringify(t,null,2):x.dump(t,{indent:2});f(n)}catch{}},multiSelect:!0}),(0,K.jsxs)(`div`,{children:[(0,K.jsxs)(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`,marginBottom:`6px`},children:[(0,K.jsx)(`label`,{style:{fontSize:`11px`,fontWeight:600,color:`var(--vscode-descriptionForeground, #888888)`},children:`When: Context Input Data (JSON / YAML) *`}),(0,K.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`8px`},children:[(0,K.jsxs)(`div`,{style:{display:`inline-flex`,borderRadius:`4px`,overflow:`hidden`,border:`1px solid rgba(255, 255, 255, 0.15)`},children:[(0,K.jsx)(`button`,{type:`button`,onClick:()=>{l!==`json`&&E.isValid&&E.parsedValue&&f(JSON.stringify(E.parsedValue,null,2)),u(`json`)},style:{padding:`2px 8px`,fontSize:`10px`,backgroundColor:l===`json`?`#0e639c`:`transparent`,color:l===`json`?`#ffffff`:`var(--vscode-descriptionForeground, #888888)`,border:`none`,cursor:`pointer`},children:`JSON`}),(0,K.jsx)(`button`,{type:`button`,onClick:()=>{l!==`yaml`&&E.isValid&&E.parsedValue&&f(x.dump(E.parsedValue,{indent:2})),u(`yaml`)},style:{padding:`2px 8px`,fontSize:`10px`,backgroundColor:l===`yaml`?`#0e639c`:`transparent`,color:l===`yaml`?`#ffffff`:`var(--vscode-descriptionForeground, #888888)`,border:`none`,cursor:`pointer`},children:`YAML`})]}),E.isValid?(0,K.jsxs)(`span`,{style:{fontSize:`10px`,color:`#10b981`,backgroundColor:`rgba(16, 185, 129, 0.1)`,padding:`2px 6px`,borderRadius:`3px`},children:[`✓ Valid `,l.toUpperCase()]}):(0,K.jsxs)(`span`,{style:{fontSize:`10px`,color:`#f87171`,backgroundColor:`rgba(239, 68, 68, 0.1)`,padding:`2px 6px`,borderRadius:`3px`},children:[`⚠️ Syntax Error `,E.line?`(line ${E.line})`:``]})]})]}),(0,K.jsx)(`textarea`,{value:d,onChange:e=>f(e.target.value),rows:6,spellCheck:!1,style:{width:`100%`,padding:`8px 12px`,backgroundColor:`rgba(0, 0, 0, 0.35)`,border:E.isValid?`1px solid rgba(255, 255, 255, 0.15)`:`1px solid #ef4444`,borderRadius:`4px`,color:E.isValid?`#ce9178`:`#f87171`,fontSize:`11px`,fontFamily:y,outline:`none`,boxSizing:`border-box`,resize:`vertical`}}),!E.isValid&&E.error&&(0,K.jsx)(`div`,{style:{fontSize:`11px`,color:`#f87171`,marginTop:`4px`},children:E.error})]}),(0,K.jsxs)(`div`,{style:{display:`grid`,gridTemplateColumns:`1fr 1fr`,gap:`12px`},children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`label`,{style:{display:`block`,fontSize:`11px`,fontWeight:600,color:`var(--vscode-descriptionForeground, #888888)`,marginBottom:`4px`},children:`Then: Expected Result (Value)`}),(0,K.jsx)(`input`,{type:`text`,value:p,onChange:e=>m(e.target.value),placeholder:`e.g. 30 or {'sum': 30}`,style:{width:`100%`,padding:`6px 10px`,backgroundColor:`rgba(0, 0, 0, 0.3)`,border:`1px solid rgba(255, 255, 255, 0.15)`,borderRadius:`4px`,color:`var(--vscode-foreground, #ffffff)`,fontSize:`12px`,fontFamily:y,outline:`none`,boxSizing:`border-box`}})]}),(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`label`,{style:{display:`block`,fontSize:`11px`,fontWeight:600,color:`var(--vscode-descriptionForeground, #888888)`,marginBottom:`4px`},children:`Then: Result Contains (Substring Match)`}),(0,K.jsx)(`input`,{type:`text`,value:h,onChange:e=>g(e.target.value),placeholder:`e.g. 30`,style:{width:`100%`,padding:`6px 10px`,backgroundColor:`rgba(0, 0, 0, 0.3)`,border:`1px solid rgba(255, 255, 255, 0.15)`,borderRadius:`4px`,color:`var(--vscode-foreground, #ffffff)`,fontSize:`12px`,fontFamily:y,outline:`none`,boxSizing:`border-box`}})]})]}),(0,K.jsxs)(`div`,{style:{display:`flex`,justifyContent:`flex-end`,gap:`10px`,paddingTop:`12px`,borderTop:`1px solid rgba(255, 255, 255, 0.08)`,marginTop:`8px`},children:[(0,K.jsx)(`button`,{type:`button`,onClick:i,style:{padding:`5px 14px`,fontSize:`12px`,backgroundColor:`transparent`,border:`1px solid rgba(255, 255, 255, 0.2)`,borderRadius:`4px`,color:`var(--vscode-foreground, #ffffff)`,cursor:`pointer`},children:`Cancel`}),(0,K.jsx)(`button`,{type:`submit`,disabled:!E.isValid||O||!a.trim()||b,style:{padding:`5px 18px`,fontSize:`12px`,fontWeight:600,backgroundColor:!E.isValid||O||!a.trim()||b?`rgba(255, 255, 255, 0.08)`:`#10b981`,color:!E.isValid||O||!a.trim()||b?`rgba(255, 255, 255, 0.3)`:`#ffffff`,border:`none`,borderRadius:`4px`,cursor:!E.isValid||O||!a.trim()||b?`not-allowed`:`pointer`,display:`inline-flex`,alignItems:`center`,gap:`6px`},children:b?`Saving to YAML...`:T?`Update Scenario`:`Save Scenario`})]})]})]})}):null},Re=({testCases:e,onRun:t,isRunning:n=!1,onAddScenario:r,onEditScenario:i,onCloneScenario:a,onDeleteScenario:o})=>{let[s,c]=(0,D.useState)(0),[l,u]=(0,D.useState)(()=>Ae()),d=(0,D.useCallback)(e=>{c(e)},[]),f=(0,D.useCallback)(e=>{u(e),je(e)},[]);if(e.length===0)return null;let p=Math.min(s,e.length-1),m=e[p],h=ke(l).component;return(0,K.jsxs)(`div`,{style:{marginTop:`10px`},children:[(0,K.jsxs)(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`,marginBottom:`8px`,flexWrap:`wrap`,gap:`8px`},children:[(0,K.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`8px`},children:[(0,K.jsxs)(`span`,{style:{fontSize:`11px`,fontWeight:600,textTransform:`uppercase`,letterSpacing:`0.5px`,color:`var(--vscode-descriptionForeground, #888888)`},children:[`Test Scenarios (`,e.length,`)`]}),r&&(0,K.jsx)(`button`,{onClick:r,title:`Add a new test scenario`,style:{fontSize:`10px`,padding:`2px 8px`,backgroundColor:`rgba(16, 185, 129, 0.15)`,border:`1px solid rgba(16, 185, 129, 0.35)`,borderRadius:`3px`,color:`#10b981`,fontWeight:600,cursor:`pointer`},children:`+ New Scenario`}),i&&m&&(0,K.jsx)(`button`,{onClick:()=>i(m,p),title:`Edit selected scenario`,style:{fontSize:`10px`,padding:`2px 6px`,backgroundColor:`rgba(255, 255, 255, 0.05)`,border:`1px solid rgba(255, 255, 255, 0.15)`,borderRadius:`3px`,color:`var(--vscode-foreground, #cccccc)`,cursor:`pointer`},children:`✏️ Edit`}),a&&m&&(0,K.jsx)(`button`,{onClick:()=>a(m,p),title:`Clone selected scenario`,style:{fontSize:`10px`,padding:`2px 6px`,backgroundColor:`rgba(255, 255, 255, 0.05)`,border:`1px solid rgba(255, 255, 255, 0.15)`,borderRadius:`3px`,color:`var(--vscode-foreground, #cccccc)`,cursor:`pointer`},children:`📋 Clone`}),o&&m&&e.length>1&&(0,K.jsx)(`button`,{onClick:()=>o(m,p),title:`Delete selected scenario`,style:{fontSize:`10px`,padding:`2px 6px`,backgroundColor:`rgba(239, 68, 68, 0.1)`,border:`1px solid rgba(239, 68, 68, 0.3)`,borderRadius:`3px`,color:`#ef4444`,cursor:`pointer`},children:`🗑️`})]}),(0,K.jsx)(`div`,{style:{display:`flex`,gap:`3px`},children:Q.map(e=>{let t=e.id===l;return(0,K.jsx)(`button`,{title:e.description,onClick:()=>f(e.id),style:{padding:`2px 8px`,borderRadius:`4px`,fontSize:`10px`,fontWeight:t?600:400,border:`1px solid ${t?Y.green:`rgba(255, 255, 255, 0.1)`}`,backgroundColor:t?`rgba(16, 185, 129, 0.2)`:`transparent`,color:t?`#10b981`:`var(--vscode-foreground, #cccccc)`,cursor:`pointer`,transition:`all 0.15s ease`},children:e.label},e.id)})})]}),(0,K.jsx)(h,{testCases:e,activeIndex:p,onSelect:d,onRun:t,isRunning:n})]})},ze={accent:`#f59e0b`,bg:`rgba(245, 158, 11, 0.08)`,border:`rgba(245, 158, 11, 0.3)`,pill:`rgba(245, 158, 11, 0.2)`},Be=({execLog:e,onClear:t,onUseAsInput:n,color:r=ze})=>{let[i,a]=(0,D.useState)({}),[o,s]=(0,D.useState)(null),c=e=>{a(t=>({...t,[e]:!t[e]}))},l=(e,t,n)=>{n.stopPropagation(),typeof navigator<`u`&&navigator.clipboard&&(navigator.clipboard.writeText(e),s(t),setTimeout(()=>s(null),2e3))};return(0,K.jsx)(q,{title:`Fiber Execution History & Verification Log`,subtitle:e.length>0?`${e.length} recorded execution fiber${e.length===1?``:`s`}`:void 0,icon:`⚡`,color:r,badge:e.length>0?`${e.length}`:void 0,defaultOpen:!0,children:e.length===0?(0,K.jsxs)(`div`,{style:{color:`var(--vscode-descriptionForeground, #888888)`,fontStyle:`italic`,padding:`8px 0`},children:[`No executions recorded yet. Click `,(0,K.jsx)(`strong`,{children:`▶ Run`}),` on any test scenario above to trigger the Hughes Arrow Sandwich Fiber.`]}):(0,K.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:`8px`},children:[e.map(e=>{let t=e.status===`success`,r=e.status===`failure`,a=e.status===`exception`||e.status===`error`,s=e.status===`running`,u=!!i[e.id],d=t?`PASS`:r?`FAIL`:a?`EXCEPTION`:s?`RUNNING`:`PENDING`,f=t?`rgba(16, 185, 129, 0.12)`:r?`rgba(239, 68, 68, 0.12)`:a?`rgba(245, 158, 11, 0.15)`:`rgba(255, 255, 255, 0.04)`,p=t?`rgba(16, 185, 129, 0.35)`:r?`rgba(239, 68, 68, 0.35)`:a?`rgba(245, 158, 11, 0.4)`:`rgba(255, 255, 255, 0.08)`,m=t?`#34d399`:r?`#f87171`:a?`#fbbf24`:`#93c5fd`,h=e.mcardHash||e.vcardHash||e.id;return(0,K.jsxs)(`div`,{style:{padding:`10px 14px`,backgroundColor:f,border:`1px solid ${p}`,borderRadius:`6px`,display:`flex`,flexDirection:`column`,gap:`6px`,transition:`background-color 0.15s ease`},children:[(0,K.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,cursor:`pointer`,userSelect:`none`,flexWrap:`wrap`,gap:`8px`},onClick:()=>c(e.id),children:[(0,K.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`8px`},children:[(0,K.jsx)(`span`,{style:{fontSize:`10px`,fontWeight:700,padding:`2px 6px`,borderRadius:`3px`,backgroundColor:f,border:`1px solid ${p}`,color:m,letterSpacing:`0.5px`},children:d}),(0,K.jsx)(`strong`,{style:{fontSize:`12px`,color:`var(--vscode-foreground, #ffffff)`},children:e.testCase}),e.stageTimings?(0,K.jsxs)(`span`,{style:{fontSize:`10px`,color:`var(--vscode-descriptionForeground, #888888)`,fontFamily:y,backgroundColor:`rgba(0, 0, 0, 0.25)`,padding:`2px 6px`,borderRadius:`3px`},children:[`prep: `,e.stageTimings.prepMs,`ms | exec: `,e.stageTimings.execMs,`ms | post: `,e.stageTimings.postMs,`ms`]}):e.durationMs===void 0?null:(0,K.jsxs)(`span`,{style:{fontSize:`10px`,color:`var(--vscode-descriptionForeground, #888888)`,backgroundColor:`rgba(255, 255, 255, 0.05)`,padding:`1px 5px`,borderRadius:`3px`},children:[e.durationMs.toFixed(1),`ms`]})]}),(0,K.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`8px`},children:[h&&(0,K.jsxs)(`button`,{type:`button`,onClick:t=>l(e.mcardUri||h,e.id,t),title:`Click to copy sealed MCard URI: ${e.mcardUri||h}`,style:{fontSize:`10px`,fontFamily:`var(--vscode-editor-font-family, 'Fira Code', Menlo, Monaco, 'Courier New', monospace)`,color:`#ffd700`,backgroundColor:`rgba(255, 215, 0, 0.12)`,border:`1px solid rgba(255, 215, 0, 0.25)`,padding:`1px 7px`,borderRadius:`4px`,cursor:`pointer`,display:`inline-flex`,alignItems:`center`,gap:`4px`},children:[(0,K.jsx)(`span`,{children:`🛡️`}),(0,K.jsxs)(`span`,{children:[`#`,h.substring(0,10)]}),o===e.id&&(0,K.jsx)(`span`,{style:{color:`#34d399`,fontSize:`9px`},children:`✓ Copied`})]}),n&&e.mcardUri&&(0,K.jsx)(`button`,{type:`button`,onClick:t=>{t.stopPropagation(),n(e.mcardUri)},title:`Attach this execution MCard to a new test scenario`,style:{fontSize:`10px`,padding:`1px 6px`,backgroundColor:`rgba(59, 130, 246, 0.15)`,border:`1px solid rgba(59, 130, 246, 0.3)`,borderRadius:`3px`,color:`#60a5fa`,cursor:`pointer`},children:`Use as Input`}),(0,K.jsx)(`span`,{style:{fontSize:`10px`,color:`var(--vscode-descriptionForeground, #888888)`},children:e.timestamp}),(0,K.jsx)(`span`,{style:{fontSize:`10px`,color:`var(--vscode-descriptionForeground, #888888)`},children:u?`▲`:`▼`})]})]}),e.result&&!u&&(0,K.jsx)(`pre`,{style:{margin:0,marginTop:`2px`,padding:`4px 8px`,backgroundColor:`rgba(0, 0, 0, 0.25)`,borderRadius:`4px`,fontSize:`11px`,fontFamily:`var(--vscode-editor-font-family, 'Fira Code', Menlo, Monaco, 'Courier New', monospace)`,color:a||r?`#f87171`:`#a7f3d0`,whiteSpace:`pre-wrap`,wordBreak:`break-word`},children:e.result}),u&&(0,K.jsxs)(`div`,{style:{marginTop:`4px`,padding:`10px 12px`,backgroundColor:`rgba(0, 0, 0, 0.4)`,borderRadius:`4px`,border:`1px solid rgba(255, 255, 255, 0.08)`,display:`flex`,flexDirection:`column`,gap:`8px`},children:[(0,K.jsxs)(`div`,{style:{fontSize:`11px`,color:`var(--vscode-descriptionForeground, #888888)`},children:[(0,K.jsx)(`strong`,{children:`Hoare Triple Arrow Sandwich:`}),` `,(0,K.jsx)(`code`,{children:`arr(V_pre: CoeffectsSatisfied) >>> first(PCard) >>> arr(V_post: NoetherianMeetTop)`})]}),e.mcardUri&&(0,K.jsxs)(`div`,{style:{fontSize:`11px`,fontFamily:`var(--vscode-editor-font-family, 'Fira Code', Menlo, Monaco, 'Courier New', monospace)`,color:`#9cdcfe`},children:[(0,K.jsx)(`strong`,{children:`CAS URI:`}),` `,e.mcardUri]}),(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`span`,{style:{fontSize:`10px`,textTransform:`uppercase`,color:`var(--vscode-descriptionForeground, #888888)`,fontWeight:600},children:`Sealed MCard Payload:`}),(0,K.jsx)(`pre`,{style:{margin:0,marginTop:`4px`,padding:`8px 10px`,backgroundColor:`rgba(0, 0, 0, 0.5)`,borderRadius:`4px`,fontSize:`11px`,fontFamily:`var(--vscode-editor-font-family, 'Fira Code', Menlo, Monaco, 'Courier New', monospace)`,color:a?`#fca5a5`:`#a7f3d0`,overflowX:`auto`},children:JSON.stringify(e.payload||e.result,null,2)})]})]})]},e.id)}),(0,K.jsx)(`div`,{style:{display:`flex`,justifyContent:`flex-end`,marginTop:`6px`},children:(0,K.jsx)(`button`,{onClick:t,style:{padding:`3px 10px`,fontSize:`11px`,backgroundColor:`transparent`,color:`var(--vscode-descriptionForeground, #888888)`,border:`1px solid rgba(255, 255, 255, 0.1)`,borderRadius:`4px`,cursor:`pointer`},children:`Clear Log`})})]})})},Ve=({isOpen:e,facet:t,hostPath:n,onBind:r,onClose:i})=>{let a=s(o),[c,l]=(0,D.useState)(``),[u,d]=(0,D.useState)(`handle`),[f,p]=(0,D.useState)(null),m=(0,D.useMemo)(()=>Object.values(a).filter((e,t,n)=>n.findIndex(t=>t.path===e.path)===t).filter(e=>{let n=(e.path||``).toLowerCase(),r=typeof e.content==`string`?e.content:``,i=!1;if(t===`abstract`?i=n.includes(`/abstract/`)||n.endsWith(`.md`)||e.detectedType===`specification`||r.includes(`face: "A"`)||r.includes(`kind: AbstractSpecification`):t===`concrete`?i=n.includes(`/concrete/`)||[`.py`,`.sh`,`.ts`,`.js`].some(e=>n.endsWith(e))||e.subclass===`PCard`||r.includes(`face: "C"`)||r.includes(`kind: ConcreteImplementation`):t===`balanced`&&(i=n.includes(`/balanced/`)||r.includes(`face: "B"`)||r.includes(`kind: BalancedExpectation`)||r.includes(`test_cases:`)||r.includes(`pending_cases:`)),!i)return!1;if(!c.trim())return!0;let a=c.toLowerCase();return e.name.toLowerCase().includes(a)||n.includes(a)||e.handle&&e.handle.toLowerCase().includes(a)}),[a,t,c]);if(!e)return null;let h=t===`abstract`?`#60a5fa`:t===`concrete`?`#34d399`:`#fbbf24`,g=t===`abstract`?`Abstract Specification (Face A)`:t===`concrete`?`Concrete Implementation (Face C)`:`Balanced Expectations (Face B)`,_=e=>u===`cas-hash`?`mcard:blake3:${e.hash}`:u===`handle`?`handle:${e.handle||e.path.replace(/\//g,`:`)}`:e.path;return(0,K.jsx)(`div`,{style:{position:`fixed`,inset:0,backgroundColor:`rgba(0, 0, 0, 0.75)`,backdropFilter:`blur(4px)`,zIndex:9999,display:`flex`,alignItems:`center`,justifyContent:`center`,padding:`24px`},onClick:i,children:(0,K.jsxs)(`div`,{style:{width:`100%`,maxWidth:`720px`,maxHeight:`85vh`,backgroundColor:`#0f172a`,border:`1px solid ${h}44`,borderRadius:`12px`,display:`flex`,flexDirection:`column`,boxShadow:`0 20px 40px -15px ${h}22`,overflow:`hidden`},onClick:e=>e.stopPropagation(),children:[(0,K.jsxs)(`div`,{style:{padding:`16px 20px`,borderBottom:`1px solid #1e293b`,display:`flex`,alignItems:`center`,justifyContent:`space-between`,background:`linear-gradient(to right, #0f172a, #1e293b)`},children:[(0,K.jsxs)(`div`,{children:[(0,K.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`8px`},children:[(0,K.jsx)(`span`,{style:{width:`10px`,height:`10px`,borderRadius:`50%`,backgroundColor:h}}),(0,K.jsxs)(`h3`,{style:{margin:0,fontSize:`16px`,fontWeight:600,color:`#f8fafc`},children:[`Bind `,g]})]}),(0,K.jsx)(`p`,{style:{margin:`4px 0 0 18px`,fontSize:`12px`,color:`#94a3b8`},children:`Select a target MCard or script to associate with this facet slot.`})]}),(0,K.jsx)(`button`,{onClick:i,style:{background:`transparent`,border:`none`,color:`#94a3b8`,cursor:`pointer`,fontSize:`18px`,padding:`4px 8px`},children:`✕`})]}),(0,K.jsxs)(`div`,{style:{padding:`14px 20px`,display:`flex`,gap:`12px`,borderBottom:`1px solid #1e293b`,backgroundColor:`#090d16`},children:[(0,K.jsx)(`input`,{type:`text`,placeholder:`Search ${t} candidates...`,value:c,onChange:e=>l(e.target.value),style:{flex:1,backgroundColor:`#1e293b`,border:`1px solid #334155`,borderRadius:`6px`,padding:`8px 12px`,color:`#f8fafc`,fontSize:`13px`,outline:`none`},autoFocus:!0}),(0,K.jsx)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`4px`,backgroundColor:`#1e293b`,borderRadius:`6px`,padding:`3px`},children:[`handle`,`cas-hash`,`vfs-path`].map(e=>(0,K.jsx)(`button`,{onClick:()=>d(e),style:{background:u===e?h:`transparent`,color:u===e?`#0f172a`:`#94a3b8`,border:`none`,borderRadius:`4px`,padding:`4px 8px`,fontSize:`11px`,fontWeight:u===e?600:400,cursor:`pointer`,textTransform:`uppercase`},children:e===`cas-hash`?`CAS Hash`:e===`handle`?`Handle`:`Path`},e))})]}),(0,K.jsx)(`div`,{style:{flex:1,overflowY:`auto`,padding:`12px 20px`,display:`flex`,flexDirection:`column`,gap:`8px`},children:m.length===0?(0,K.jsxs)(`div`,{style:{textAlign:`center`,padding:`40px 20px`,color:`#64748b`,fontSize:`13px`},children:[`No matching `,t,` candidates found in VFS.`]}):m.map(e=>{let t=f?.path===e.path;return(0,K.jsxs)(`div`,{onClick:()=>p(e),style:{padding:`10px 14px`,borderRadius:`6px`,backgroundColor:t?`${h}15`:`#1e293b55`,border:`1px solid ${t?h:`#334155`}`,cursor:`pointer`,display:`flex`,flexDirection:`column`,gap:`4px`,transition:`all 0.15s ease`},children:[(0,K.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`},children:[(0,K.jsx)(`span`,{style:{fontWeight:600,fontSize:`13px`,color:t?h:`#f1f5f9`},children:e.name}),(0,K.jsx)(`span`,{style:{fontSize:`10px`,fontFamily:y,color:`#64748b`,backgroundColor:`#0f172a`,padding:`2px 6px`,borderRadius:`4px`},children:e.detectedType||e.mimeType})]}),(0,K.jsx)(`div`,{style:{fontSize:`11px`,fontFamily:y,color:`#94a3b8`,whiteSpace:`nowrap`,overflow:`hidden`,textOverflow:`ellipsis`},children:_(e)})]},e.path)})}),(0,K.jsxs)(`div`,{style:{padding:`14px 20px`,borderTop:`1px solid #1e293b`,display:`flex`,alignItems:`center`,justifyContent:`space-between`,backgroundColor:`#090d16`},children:[(0,K.jsx)(`div`,{style:{fontSize:`12px`,color:`#64748b`,fontFamily:y},children:f?`Selected: ${f.name}`:`Select a candidate`}),(0,K.jsxs)(`div`,{style:{display:`flex`,gap:`8px`},children:[(0,K.jsx)(`button`,{onClick:i,style:{backgroundColor:`transparent`,border:`1px solid #334155`,color:`#94a3b8`,borderRadius:`6px`,padding:`6px 14px`,fontSize:`12px`,cursor:`pointer`},children:`Cancel`}),(0,K.jsx)(`button`,{onClick:()=>{f&&(r(_(f)),i())},disabled:!f,style:{backgroundColor:f?h:`#334155`,color:f?`#0f172a`:`#64748b`,border:`none`,borderRadius:`6px`,padding:`6px 16px`,fontSize:`12px`,fontWeight:600,cursor:f?`pointer`:`not-allowed`},children:`Bind Aspect`})]})]})]})})},$={abstract:{accent:`#7c6bf0`,bg:`rgba(124, 107, 240, 0.08)`,border:`rgba(124, 107, 240, 0.3)`,pill:`rgba(124, 107, 240, 0.2)`},concrete:{accent:`#3b9eff`,bg:`rgba(59, 158, 255, 0.08)`,border:`rgba(59, 158, 255, 0.3)`,pill:`rgba(59, 158, 255, 0.2)`},balanced:{accent:`#10b981`,bg:`rgba(16, 185, 129, 0.08)`,border:`rgba(16, 185, 129, 0.3)`,pill:`rgba(16, 185, 129, 0.2)`}},He=({pcard:e,clm:t,activeClm:n,testCases:r,chapterTitle:i,aspectSources:a,selectedFace:o,setSelectedFace:s,executionMode:c=`client-wasm`,setExecutionMode:d,isExecuting:f,degree:p,kanResult:m,toggleBar:h,handleNavigateToSource:g,testCaseState:_,facetMutation:y})=>{let[x,S]=(0,D.useState)({abstract:!0,concrete:!0,balanced:!0}),{execLog:C,setExecLog:w,isVCardDrawerOpen:T,setIsVCardDrawerOpen:E,lastVCardHash:O,isEditorOpen:k,setIsEditorOpen:A,editingTestCase:j,setEditingTestCase:M,setEditingIndex:ee,handleOpenCreateModal:N,handleEditScenario:te,handleCloneScenario:P,handleDeleteScenario:F,handleSaveScenario:I,handleUseAsInput:L,handleRunTestCase:R}=_,{bindingFacet:z,setBindingFacet:B,handleFacetBind:V,handleMaterialize:H,handleExtract:U,handleBaldwinOperator:W}=y;return(0,K.jsxs)(`div`,{className:`clm-viewlet-root`,style:{display:`flex`,flexDirection:`column`,gap:`12px`,backgroundColor:`#1b222d`,padding:`16px`,borderRadius:`6px`,border:`1px solid #007acc`,color:`#e0e0e0`,fontFamily:`var(--vscode-font-family, sans-serif)`},children:[(0,K.jsxs)(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`,flexWrap:`wrap`,gap:`8px`},children:[(0,K.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`8px`},children:[(0,K.jsx)(u,{size:18,color:`#75beff`}),(0,K.jsx)(`span`,{style:{fontWeight:600,fontSize:`14px`,color:`#75beff`},children:i}),t?.version&&(0,K.jsxs)(`span`,{style:{fontSize:`10px`,padding:`2px 6px`,backgroundColor:`rgba(124, 107, 240, 0.2)`,color:`#7c6bf0`,borderRadius:`3px`,fontWeight:600},children:[`v`,t.version]}),(0,K.jsx)(`span`,{style:{fontSize:`10px`,padding:`2px 6px`,backgroundColor:`rgba(59, 158, 255, 0.2)`,color:`#3b9eff`,borderRadius:`3px`,fontWeight:600},children:t?.concrete?.runtime||c}),t?.chapter?.id!==void 0&&(0,K.jsxs)(`span`,{style:{fontSize:`10px`,padding:`2px 6px`,backgroundColor:`rgba(16, 185, 129, 0.2)`,color:`#10b981`,borderRadius:`3px`,fontWeight:600},children:[`Ch. `,t.chapter.id]})]}),(0,K.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`8px`},children:[(0,K.jsxs)(`span`,{style:{display:`flex`,alignItems:`center`,gap:`4px`,fontSize:`11px`,backgroundColor:m.valid?`rgba(30, 70, 32, 0.8)`:`rgba(77, 56, 0, 0.8)`,color:m.valid?`#89d185`:`#cca700`,padding:`2px 8px`,borderRadius:`3px`,border:`1px solid ${m.valid?`#89d185`:`#cca700`}`},children:[(0,K.jsx)(l,{size:12,color:m.valid?`#89d185`:`#cca700`}),(0,K.jsx)(`span`,{children:m.valid?`Kan Filler: Homotopy OK`:`Boundary Mismatch`})]}),(0,K.jsx)(`button`,{onClick:()=>E(!0),style:{padding:`3px 8px`,fontSize:`11px`,backgroundColor:`rgba(255, 215, 0, 0.15)`,color:`#ffd700`,border:`1px solid rgba(255, 215, 0, 0.4)`,borderRadius:`3px`,cursor:`pointer`,display:`inline-flex`,alignItems:`center`,gap:`4px`},children:(0,K.jsx)(`span`,{children:`🛡️ VCard Witness`})}),h]})]}),(0,K.jsx)(_e,{selectedFace:o,onSelectFace:s}),(0,K.jsx)(Se,{degree:p,onApplyOperator:W}),(0,K.jsxs)(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`,borderBottom:`1px solid #2d3f56`,paddingBottom:`6px`,flexWrap:`wrap`,gap:`8px`},children:[(0,K.jsx)(`div`,{style:{display:`flex`,gap:`4px`},children:[`all`,`A`,`C`,`B`].map(e=>{let t={all:`Triad Overview (A × C × B)`,A:`Face A: Abstract Spec`,C:`Face C: Concrete Process`,B:`Face B: Balanced Expectations`},n=o===e;return(0,K.jsx)(`button`,{onClick:()=>s(e),style:{padding:`4px 12px`,fontSize:`11px`,backgroundColor:n?`#0e639c`:`transparent`,color:n?`#ffffff`:`#9cdcfe`,border:`1px solid`,borderColor:n?`#0e639c`:`#2d3f56`,borderRadius:`3px`,cursor:`pointer`,transition:`all 0.15s ease`},children:t[e]},e)})}),(0,K.jsxs)(`div`,{style:{display:`flex`,gap:`6px`},children:[(0,K.jsx)(`button`,{onClick:()=>S({abstract:!0,concrete:!0,balanced:!0}),style:{padding:`3px 8px`,fontSize:`11px`,backgroundColor:`rgba(255, 255, 255, 0.05)`,color:`#cccccc`,border:`1px solid #2d3f56`,borderRadius:`3px`,cursor:`pointer`},title:`Expand all triad accordion sections`,children:`⊞ Expand All`}),(0,K.jsx)(`button`,{onClick:()=>S({abstract:!1,concrete:!1,balanced:!1}),style:{padding:`3px 8px`,fontSize:`11px`,backgroundColor:`rgba(255, 255, 255, 0.05)`,color:`#888888`,border:`1px solid #2d3f56`,borderRadius:`3px`,cursor:`pointer`},title:`Collapse all triad accordion sections`,children:`⊟ Collapse All`})]})]}),(0,K.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:`10px`,width:`100%`},children:[(o===`all`||o===`A`)&&(0,K.jsx)(q,{title:`Face A: Abstract Spec`,subtitle:n?.abstract?.concept||n?.abstract?.goal||`computable_knowledge/Abstract`,icon:`📐`,color:$.abstract,sourceMeta:a.abstract,onNavigateToSource:g,onBindAspect:()=>B(`abstract`),onMaterialize:()=>H(`abstract`),onExtract:()=>U(`abstract`),isOpen:x.abstract,onToggle:e=>S(t=>({...t,abstract:e})),children:n?.abstract?(0,K.jsxs)(J,{minColWidth:`260px`,children:[(0,K.jsx)(v,{label:`Concept`,value:n.abstract.concept}),(0,K.jsx)(v,{label:`Context`,value:n.abstract.context}),(0,K.jsx)(v,{label:`Goal`,value:n.abstract.goal}),(0,K.jsx)(v,{label:`Specification`,value:n.abstract.specification,mono:!0}),(0,K.jsx)(xe,{span:`full`,children:(0,K.jsx)(v,{label:`Success Criteria`,value:n.abstract.success_criteria})}),ne(n.abstract).map(([e,t])=>(0,K.jsx)(v,{label:e,value:t},e))]}):null}),(o===`all`||o===`C`)&&(0,K.jsxs)(q,{title:`Face C: Concrete Process`,subtitle:`Runtime: ${n?.concrete?.runtime||c}`,icon:`⚙️`,color:$.concrete,sourceMeta:a.concrete,onNavigateToSource:g,onBindAspect:()=>B(`concrete`),onMaterialize:()=>H(`concrete`),onExtract:()=>U(`concrete`),isOpen:x.concrete,onToggle:e=>S(t=>({...t,concrete:e})),children:[(0,K.jsxs)(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`,marginBottom:`8px`},children:[(0,K.jsx)(`span`,{style:{fontSize:`11px`,color:`var(--vscode-descriptionForeground, #888888)`},children:`Target Execution Engine:`}),(0,K.jsxs)(`select`,{value:c,onChange:e=>d(e.target.value),style:{fontSize:`11px`,backgroundColor:`#1e2837`,color:`#ffffff`,border:`1px solid #2d3f56`,borderRadius:`3px`,padding:`2px 6px`},children:[(0,K.jsx)(`option`,{value:`client-wasm`,children:`Client WASM`}),(0,K.jsx)(`option`,{value:`server-pty`,children:`Server PTY`}),(0,K.jsx)(`option`,{value:`native-polyglot`,children:`Native Polyglot`})]})]}),n?.concrete?(0,K.jsxs)(J,{minColWidth:`260px`,children:[(0,K.jsx)(v,{label:`Operation`,value:n.concrete.operation||n.concrete.process}),(0,K.jsx)(v,{label:`Manifestation`,value:n.concrete.description||n.concrete.manifestation}),(0,K.jsx)(v,{label:`Code File`,value:n.concrete.code_file,mono:!0}),(0,K.jsx)(v,{label:`Code`,value:n.concrete.code,mono:!0}),(0,K.jsx)(v,{label:`IO Effects`,value:n.concrete.io_effects}),(0,K.jsx)(v,{label:`Input Type`,value:n.concrete.input_type,mono:!0}),(0,K.jsx)(v,{label:`Output Type`,value:n.concrete.output_type,mono:!0}),re(n.concrete).map(([e,t])=>(0,K.jsx)(v,{label:e,value:t},e))]}):null]}),(o===`all`||o===`B`)&&(0,K.jsx)(q,{title:`Face B: Balanced Expectations`,subtitle:n?.balanced?.expectation||`Postcondition Verification (V_post)`,icon:`⚖️`,color:$.balanced,sourceMeta:a.balanced,onNavigateToSource:g,onBindAspect:()=>B(`balanced`),onMaterialize:()=>H(`balanced`),onExtract:()=>U(`balanced`),badge:r.length>0?`${r.length} tests`:void 0,isOpen:x.balanced,onToggle:e=>S(t=>({...t,balanced:e})),children:n?.balanced?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsxs)(J,{minColWidth:`260px`,children:[(0,K.jsx)(v,{label:`Expectation`,value:n.balanced.expectation}),(0,K.jsx)(v,{label:`Expected Output`,value:n.balanced.expected_output}),(0,K.jsx)(v,{label:`Expected Results`,value:n.balanced.expected_results})]}),(0,K.jsxs)(`div`,{style:{fontSize:`11px`,lineHeight:1.5,margin:`8px 0`},children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`strong`,{children:`Lattice Bound:`}),` `,(0,K.jsx)(`code`,{children:`NoetherianConservation (xᵀD = 0)`})]}),(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`strong`,{children:`Reversible Stack:`}),` Cordis DisposableList`]})]}),r.length>0&&(0,K.jsx)(Re,{testCases:r,onRun:R,isRunning:f,onAddScenario:N,onEditScenario:te,onCloneScenario:P,onDeleteScenario:F})]}):null})]}),(0,K.jsx)(Be,{execLog:C,onClear:()=>w([]),onUseAsInput:L,color:ze}),(0,K.jsx)(b,{isOpen:T,onClose:()=>E(!1),targetMCardHash:O||e.handle}),(0,K.jsx)(Le,{isOpen:k,initialCase:j,existingIds:r.map(e=>typeof e.id==`string`?e.id:typeof e.name==`string`?e.name:``).filter(e=>!!e),onSave:I,onClose:()=>{A(!1),M(void 0),ee(void 0)}}),(0,K.jsx)(Ve,{isOpen:z!==null,facet:z||`abstract`,hostPath:e.path,onBind:V,onClose:()=>B(null)})]})},Ue=({pcard:e,content:t,onExecutionComplete:n})=>{let[r,i]=(0,D.useState)(`clm`),[a,o]=(0,D.useState)(`all`),[s,c]=(0,D.useState)(e.executionMode||`client-wasm`),l=ce({pcard:e,content:t,executionMode:s}),{isExecuting:u,executeWith:d}=A(),f=e.polynomialDegree??1,p=ue({pcard:e,rawContent:l.rawContent,testCases:l.testCases,executeWith:d,onExecutionComplete:n}),m=he({pcard:e,rawContent:l.rawContent,setLocalContent:l.setLocalContent,degree:f,setExecLog:p.setExecLog}),h=(0,D.useMemo)(()=>j.validateMorphismComposition({name:e.handle,outputType:`MCard`,targetInvariant:`NoetherianConservation`},{name:`downstream_pcard`,inputType:`MCard`,requiredInvariant:`NoetherianConservation`}),[e.handle]),g=(0,K.jsxs)(`div`,{style:{display:`inline-flex`,borderRadius:`4px`,overflow:`hidden`,border:`1px solid rgba(255, 255, 255, 0.15)`,backgroundColor:`rgba(0, 0, 0, 0.3)`},children:[(0,K.jsx)(`button`,{onClick:()=>i(`clm`),style:{padding:`3px 10px`,fontSize:`11px`,border:`none`,backgroundColor:r===`clm`?`#007acc`:`transparent`,color:r===`clm`?`#ffffff`:`#888888`,cursor:`pointer`,fontFamily:y,fontWeight:r===`clm`?600:400},children:`🧊 CLM`}),(0,K.jsx)(`button`,{onClick:()=>i(`yaml`),style:{padding:`3px 10px`,fontSize:`11px`,border:`none`,backgroundColor:r===`yaml`?`#007acc`:`transparent`,color:r===`yaml`?`#ffffff`:`#888888`,cursor:`pointer`,fontFamily:y,fontWeight:r===`yaml`?600:400},children:`📄 YAML`})]});return r===`yaml`?(0,K.jsx)(ge,{chapterTitle:l.chapterTitle,rawContent:l.rawContent,toggleBar:g}):(0,K.jsx)(He,{pcard:e,clm:l.clm,activeClm:l.activeClm,testCases:l.testCases,chapterTitle:l.chapterTitle,aspectSources:l.aspectSources,selectedFace:a,setSelectedFace:o,executionMode:s,setExecutionMode:c,isExecuting:u,degree:f,kanResult:h,toggleBar:g,handleNavigateToSource:l.handleNavigateToSource,testCaseState:p,facetMutation:m})},We=({mcard:e,rawContent:t})=>{let n=e.coreCard??a(e),r;t?r=t:n.payload.kind===`scalar`?r=String(n.payload.value):n.payload.kind===`structured`?r=JSON.stringify(n.payload.value,null,2):typeof e.content==`string`&&(r=e.content);let i=new T({id:e.name||e.handle,codeHash:w.fromHex(`0`.repeat(64)),sourceUri:`pcard:${e.handle}`,signature:`${e.name||e.handle}: A -> B`,coeffects:{requiredServices:[]}}),o={...e,subclass:`PCard`,polynomialDegree:1,coeffects:[],handlerUri:e.handle,executionMode:`client-wasm`,prescribedTransitions:[],pcardDef:i};return(0,K.jsx)(`div`,{className:`card-panel-pcard-viewer`,style:{width:`100%`,height:`100%`,overflow:`auto`},children:(0,K.jsx)(Ue,{pcard:o,content:r})})};export{We as ClmPcardViewlet};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime.Dd_uD5pT.js";import{a as t,i as n}from"./vendor-react.DpDU3q_x.js";import{a as r,h as i,i as a,l as o,n as s,r as c,t as l,u}from"./themeStore.zUMFLo3Q.js";import{t as d}from"./rendererEventBus.CyFnSRLk.js";import{t as f}from"./useMCardHydration.Co47OH3D.js";import{t as p}from"./RendererLoader.D-ThYU1B.js";import{ContentHash as m}from"clm-kernel";var h=e(t(),1);function g(e={}){let t=e[`--mcard-theme-id`]===`high-contrast`||e[`--mcard-bg-canvas`]===`#000000`;return{backgroundColor:e[`--mcard-canvas-clear`]||e[`--mcard-bg-canvas`]||`#1e1e1e`,nodeFill:e[`--mcard-bg-surface`]||`#252526`,nodeStroke:e[`--mcard-border-default`]||`#3c3c3c`,nodeText:e[`--mcard-text-primary`]||`#cccccc`,linkStroke:e[`--mcard-chart-grid`]||e[`--mcard-border-subtle`]||`#333333`,linkStrokeWidth:1.5,axisColor:e[`--mcard-text-secondary`]||`#9d9d9d`,gridColor:e[`--mcard-border-subtle`]||`#2a2d2e`,tooltipBg:e[`--mcard-chart-tooltip-bg`]||e[`--mcard-bg-elevated`]||`#2d2d30`,tooltipText:e[`--mcard-chart-tooltip-text`]||e[`--mcard-text-primary`]||`#cccccc`,palette:t?[`#ffffff`,`#ffff00`,`#00ff66`,`#00ffff`,`#ff00ff`]:[e[`--mcard-accent-primary`]||`#007acc`,`#4ec9b0`,`#ce9178`,`#dcdcaa`,`#c586c0`,`#9cdcfe`]}}var _=class e{d3;simulation;svg;containerGroup;linkSelection;nodeSelection;params;data;options;constructor(e,t,n){this.d3=e,this.data={nodes:t.nodes.map(e=>({...e})),links:t.links.map(e=>({...e}))},this.options=n,this.params=g(n.tokens)}static async create(t,n,r){let i=await p(`d3`),a=new e(i,n,r);return a.mount(t),a}mount(e){let{width:t,height:n}=this.options;e.innerHTML=``;let r=this.d3,i=r.select(e).append(`svg`).attr(`width`,`100%`).attr(`height`,`100%`).attr(`viewBox`,[0,0,t,n]).style(`background`,this.params.backgroundColor);this.svg=i,i.append(`defs`).append(`marker`).attr(`id`,`d3-arrow`).attr(`viewBox`,`0 -5 10 10`).attr(`refX`,20).attr(`refY`,0).attr(`markerWidth`,6).attr(`markerHeight`,6).attr(`orient`,`auto`).append(`path`).attr(`fill`,this.params.linkStroke).attr(`d`,`M0,-5L10,0L0,5`);let a=i.append(`g`).attr(`class`,`d3-viewport-container`);this.containerGroup=a;let o=r.zoom().scaleExtent([.2,5]).on(`zoom`,e=>a.attr(`transform`,e.transform));i.call(o),this.simulation=r.forceSimulation(this.data.nodes).force(`link`,r.forceLink(this.data.links).id(e=>e.id).distance(70)).force(`charge`,r.forceManyBody().strength(-200)).force(`center`,r.forceCenter(t/2,n/2)).force(`collision`,r.forceCollide().radius(25)),this.renderElements(),this.simulation.on(`tick`,()=>{this.linkSelection.attr(`x1`,e=>e.source.x).attr(`y1`,e=>e.source.y).attr(`x2`,e=>e.target.x).attr(`y2`,e=>e.target.y),this.nodeSelection.attr(`transform`,e=>`translate(${e.x},${e.y})`)})}renderElements(){let e=this.d3,t=this.containerGroup;this.linkSelection=t.append(`g`).attr(`class`,`links`).selectAll(`line`).data(this.data.links).join(`line`).attr(`stroke`,this.params.linkStroke).attr(`stroke-width`,this.params.linkStrokeWidth).attr(`marker-end`,`url(#d3-arrow)`);let n=e.drag().on(`start`,(e,t)=>{e.active||this.simulation.alphaTarget(.3).restart(),t.fx=t.x,t.fy=t.y}).on(`drag`,(e,t)=>{t.fx=e.x,t.fy=e.y}).on(`end`,(e,t)=>{e.active||this.simulation.alphaTarget(0)});this.nodeSelection=t.append(`g`).attr(`class`,`nodes`).selectAll(`g`).data(this.data.nodes).join(`g`).style(`cursor`,`pointer`).call(n),this.nodeSelection.append(`circle`).attr(`r`,12).attr(`fill`,(e,t)=>this.params.palette[t%this.params.palette.length]).attr(`stroke`,this.params.nodeStroke).attr(`stroke-width`,2),this.nodeSelection.append(`text`).text(e=>e.label||e.id).attr(`x`,16).attr(`y`,4).attr(`font-size`,`11px`).attr(`font-family`,`sans-serif`).attr(`fill`,this.params.nodeText),this.nodeSelection.on(`click`,(e,t)=>{e.stopPropagation(),this.options.onNodeSelect?.(t),d({type:`render:d3:node_select`,targetHandle:this.options.targetHandle||`mcard:graph`,timestamp:Date.now(),payload:{nodeId:t.id,label:t.label,group:t.group}})})}updateTheme(e){this.params=g(e),this.svg&&(this.svg.style(`background`,this.params.backgroundColor),this.svg.select(`#d3-arrow path`).attr(`fill`,this.params.linkStroke),this.linkSelection?.attr(`stroke`,this.params.linkStroke),this.nodeSelection?.selectAll(`circle`).attr(`fill`,(e,t)=>this.params.palette[t%this.params.palette.length]).attr(`stroke`,this.params.nodeStroke),this.nodeSelection?.selectAll(`text`).attr(`fill`,this.params.nodeText))}reheat(){this.simulation?.alpha(.5).restart()}pinNode(e){let t=this.data.nodes.find(t=>t.id===e);t&&(t.fx=t.x,t.fy=t.y)}unpinNode(e){let t=this.data.nodes.find(t=>t.id===e);t&&(t.fx=null,t.fy=null,this.reheat())}getNodes(){return this.data.nodes}getLinks(){return this.data.links}dispose(){this.simulation?.stop(),this.svg?.remove()}},v=class{static get(e,t){return{nodes:e.map(e=>({id:e.id,x:Math.round((e.x??0)*100)/100,y:Math.round((e.y??0)*100)/100,pinned:e.fx!=null&&e.fy!=null,label:e.label,group:e.group})),links:t.map(e=>({source:typeof e.source==`object`?e.source.id:String(e.source),target:typeof e.target==`object`?e.target.id:String(e.target),value:e.value,label:e.label}))}}static put(e,t,n){let r=this.get(t,n),a=JSON.stringify(r,null,2),o=`blake3:${m.computeString(a).asHex()}`,s=Date.now(),c=`${e.replace(/\.graph\.json$|\.d3\.json$|\.json$/,``)}_layout_${s}.graph.json`;try{i.writeFile(c,a)}catch{}return d({type:`render:d3:layout_frozen`,targetHandle:c,timestamp:s,payload:{hash:o,nodeCount:t.length,linkCount:n.length}}),{handle:c,hash:o,json:a}}},y=n();function b(e){try{let t=JSON.parse(e);if(Array.isArray(t.nodes)&&Array.isArray(t.links))return t}catch{}let t=new Map,n=[],r=e.split(`
|
|
2
|
-
`).filter(e=>e.trim().length>0);for(let e of r){let r=e.split(/->|,|--/).map(e=>e.trim());if(r.length>=2){let e=r[0],i=r[1];t.has(e)||t.set(e,{id:e,label:e}),t.has(i)||t.set(i,{id:i,label:i}),n.push({source:e,target:i})}else if(r[0]){let e=r[0];t.has(e)||t.set(e,{id:e,label:e})}}return{nodes:Array.from(t.values()),links:n}}var x=({mcard:e})=>{let{content:t,isLoading:n}=f(e),i=t||(typeof e?.content==`string`?e.content:``),d=(0,h.useRef)(null),p=(0,h.useRef)(null),[m,g]=(0,h.useState)(null),[x,S]=(0,h.useState)(!1),[C,w]=(0,h.useState)(null),T=()=>u({theme:r.get(),density:s.get(),responsive:a.get(),context:l.get(),environment:c.get()},o);return(0,h.useEffect)(()=>{if(!d.current||!i)return;let t=b(i),n=d.current.getBoundingClientRect(),r=Math.max(n.width||600,300),a=Math.max(n.height||400,300),o=!0;return _.create(d.current,t,{width:r,height:a,tokens:T(),targetHandle:e?.handle||`mcard:graph`,onNodeSelect:e=>g(e)}).then(e=>{o?p.current=e:e.dispose()}),()=>{o=!1,p.current?.dispose(),p.current=null}},[i]),(0,h.useEffect)(()=>{let e=()=>{p.current?.updateTheme(T())},t=r.subscribe(e),n=s.subscribe(e);return()=>{t(),n()}},[]),(0,y.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,height:`100%`,width:`100%`,background:`var(--mcard-bg-canvas, #1e1e1e)`,color:`var(--mcard-text-primary, #ccc)`,overflow:`hidden`},children:[(0,y.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,padding:`6px 12px`,borderBottom:`1px solid var(--mcard-border-default, #333)`,background:`var(--mcard-bg-elevated, #252526)`,fontSize:`12px`},children:[(0,y.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`8px`},children:[(0,y.jsx)(`span`,{style:{fontWeight:600,color:`var(--mcard-accent-primary, #75beff)`},children:`🕸️ D3 Force Graph`}),C&&(0,y.jsx)(`span`,{style:{color:`var(--mcard-status-success, #89d185)`,fontSize:`11px`},children:C})]}),(0,y.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`6px`},children:[(0,y.jsx)(`button`,{onClick:()=>p.current?.reheat(),style:{padding:`2px 8px`,background:`var(--mcard-bg-surface, #2d2d30)`,border:`1px solid var(--mcard-border-default, #3c3c3c)`,color:`inherit`,borderRadius:`3px`,cursor:`pointer`},children:`Reheat`}),(0,y.jsx)(`button`,{onClick:()=>{m&&(p.current?.pinNode(m.id),g({...m,fx:m.x,fy:m.y}))},disabled:!m,style:{padding:`2px 8px`,background:`var(--mcard-bg-surface, #2d2d30)`,border:`1px solid var(--mcard-border-default, #3c3c3c)`,color:`inherit`,borderRadius:`3px`,cursor:m?`pointer`:`not-allowed`,opacity:m?1:.5},children:`Pin`}),(0,y.jsx)(`button`,{onClick:()=>{m&&(p.current?.unpinNode(m.id),g({...m,fx:null,fy:null}))},disabled:!m,style:{padding:`2px 8px`,background:`var(--mcard-bg-surface, #2d2d30)`,border:`1px solid var(--mcard-border-default, #3c3c3c)`,color:`inherit`,borderRadius:`3px`,cursor:m?`pointer`:`not-allowed`,opacity:m?1:.5},children:`Unpin`}),(0,y.jsx)(`button`,{onClick:()=>{if(!p.current)return;let t=p.current.getNodes(),n=p.current.getLinks(),r=v.put(e?.handle||`mcard:graph`,t,n);w(`Saved: ${r.handle.slice(-20)}`),setTimeout(()=>w(null),2500)},style:{padding:`2px 8px`,background:`var(--mcard-bg-surface, #2d2d30)`,border:`1px solid var(--mcard-border-default, #3c3c3c)`,color:`inherit`,borderRadius:`3px`,cursor:`pointer`},children:`Freeze to MCard`}),(0,y.jsx)(`button`,{onClick:()=>S(!x),style:{padding:`2px 8px`,background:x?`var(--mcard-accent-primary, #75beff)`:`var(--mcard-bg-surface, #2d2d30)`,color:x?`#000`:`inherit`,border:`1px solid var(--mcard-border-default, #3c3c3c)`,borderRadius:`3px`,cursor:`pointer`},children:x?`Graph`:`Source`})]})]}),(0,y.jsxs)(`div`,{style:{display:`flex`,flex:1,position:`relative`,overflow:`hidden`},children:[x?(0,y.jsx)(`pre`,{style:{margin:0,padding:`16px`,flex:1,overflow:`auto`,fontFamily:`monospace`,fontSize:`12px`,background:`var(--mcard-bg-surface, #181818)`},children:i}):(0,y.jsx)(`div`,{ref:d,style:{flex:1,width:`100%`,height:`100%`,overflow:`hidden`}}),m&&!x&&(0,y.jsxs)(`div`,{style:{position:`absolute`,bottom:12,right:12,background:`var(--mcard-bg-elevated, #252526)`,border:`1px solid var(--mcard-border-default, #3c3c3c)`,borderRadius:`6px`,padding:`10px 14px`,fontSize:`11px`,boxShadow:`0 4px 12px rgba(0,0,0,0.3)`,minWidth:`160px`},children:[(0,y.jsx)(`div`,{style:{fontWeight:600,color:`var(--mcard-accent-primary, #75beff)`,marginBottom:`4px`},children:`Node Inspector`}),(0,y.jsxs)(`div`,{children:[(0,y.jsx)(`strong`,{children:`ID:`}),` `,m.id]}),m.label&&(0,y.jsxs)(`div`,{children:[(0,y.jsx)(`strong`,{children:`Label:`}),` `,m.label]}),m.group&&(0,y.jsxs)(`div`,{children:[(0,y.jsx)(`strong`,{children:`Group:`}),` `,m.group]}),(0,y.jsxs)(`div`,{children:[(0,y.jsx)(`strong`,{children:`Pinned:`}),` `,m.fx==null?`No`:`Yes`]})]})]})]})};export{x as D3GraphViewlet,x as default};
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["_astro/Spatial3dViewlet.CCYBSSib.js","_astro/rolldown-runtime.Dd_uD5pT.js","_astro/vendor-react.DpDU3q_x.js","_astro/vfsHandles.B-nczBRy.js","_astro/themeStore.zUMFLo3Q.js","_astro/mcardStore.BiAvqM-D.js","_astro/workspaceStore.CXakha4Y.js","_astro/pathsConfig.D0hV34p7.js","_astro/cardTypeDetector.C9kGObMh.js","_astro/disposable.66apX1Q2.js","_astro/webappUrlResolver.BdblM2xU.js","_astro/vendor-three.C37ktz7x.js","_astro/VideoPlayerViewlet.DoSYmmoQ.js","_astro/mcardVfs.Bj-RA0p7.js","_astro/preload-helper.oCYlU9a4.js","_astro/vfsPersistence.D6zRzVML.js","_astro/FontSpecimenViewlet.CpONhJh0.js","_astro/TikzDiagramViewlet.CqY7VTeP.js","_astro/useMCardHydration.Co47OH3D.js","_astro/tikzCompiler.DFojjdxR.js","_astro/MarkdownViewlet.qoPlM-TZ.js","_astro/markdownService.D-tM2RYx.js","_astro/rendererEventBus.CyFnSRLk.js","_astro/RendererPCardRegistry.CLr4j1Ub.js","_astro/RendererLoader.D-ThYU1B.js","_astro/mediaEmbeds.CWeXA8QP.js","_astro/vendor-katex.OWop7R8Y.js","_astro/vendor-katex.BNLSuGWh.css","_astro/mermaidParams.CoRBi7AN.js","_astro/WebappZenViewlet.CQW50OhX.js","_astro/SvgViewlet.BxlWQ-JX.js","_astro/ImageViewlet.CHeNvX6L.js","_astro/DocumentViewlets.Dm_GL3AL.js","_astro/MermaidDiagramViewlet.RnwDfQl6.js","_astro/KatexFormulaViewlet.Cy_InWOK.js","_astro/D3GraphViewlet.DAjPz1DP.js","_astro/ChartAnalyticsViewlet.Cevj0EOs.js","_astro/ExcalidrawWhiteboardViewlet.DrlW7B6G.js","_astro/SchemaYamlViewlet.D6HVdmrq.js","_astro/js-yaml.D3snemtB.js","_astro/ClmPcardViewlet.DW5Yft0E.js","_astro/Codicons.6XKAVgP8.js","_astro/FaroVCardSpanInstrumenter.BIk2NhJY.js","_astro/VCardBottomSheet.Cc6xhQDU.js","_astro/WitnessVcardViewlet.CQxTL6ub.js","_astro/ThemeSettingsViewlet.Cb1r8fWw.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{i as e,n as t}from"./rolldown-runtime.Dd_uD5pT.js";import{a as n,i as r}from"./vendor-react.DpDU3q_x.js";import{h as i}from"./themeStore.zUMFLo3Q.js";import{A as a,F as o,M as s,P as c,a as l,b as u,f as d,j as f,k as p,v as m,y as h}from"./mcardStore.BiAvqM-D.js";import{r as g}from"./disposable.66apX1Q2.js";import{t as _}from"./pathsConfig.D0hV34p7.js";import{D as v,d as y,f as b,w as x,y as S}from"./Codicons.6XKAVgP8.js";import{t as C}from"./preload-helper.oCYlU9a4.js";import{n as w}from"./webappUrlResolver.BdblM2xU.js";import{r as T}from"./vfsPersistence.D6zRzVML.js";import{n as E}from"./vfsHandles.B-nczBRy.js";import{a as ee,b as D,d as te,f as ne,i as re,o as O,p as k,y as A}from"./mcardVfs.Bj-RA0p7.js";import{t as j}from"./secureWindowOrchestrator.CIQYcH4l.js";import{t as ie}from"./WelcomeViewport.LwKTA6h7.js";import{t as ae}from"./vendor-dockview.Y5pRm6XB.js";import{t as M}from"./useMCardHydration.Co47OH3D.js";import{AgentDid as oe,blake3Hash as se}from"clm-kernel";var N=e(n(),1),P=(e,t)=>N.lazy(()=>e().then(e=>({default:e[t]||e.default}))),ce=N.lazy(()=>C(()=>import(`./Spatial3dViewlet.CCYBSSib.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11]))),le=P(()=>C(()=>import(`./VideoPlayerViewlet.DoSYmmoQ.js`),__vite__mapDeps([12,1,2,3,4,5,6,7,8,9,10,13,14,15])),`VideoPlayerViewlet`),ue=P(()=>C(()=>import(`./FontSpecimenViewlet.CpONhJh0.js`),__vite__mapDeps([16,1,2,3,4,5,6,7,8,9,10,13,14,15])),`FontSpecimenViewlet`),de=P(()=>C(()=>import(`./TikzDiagramViewlet.CqY7VTeP.js`),__vite__mapDeps([17,1,2,18,9,13,4,5,6,7,14,8,10,15,3,19])),`TikzDiagramViewlet`),fe=N.lazy(()=>C(()=>import(`./MarkdownViewlet.qoPlM-TZ.js`),__vite__mapDeps([20,1,2,4,5,6,7,3,8,9,10,13,14,15,21,22,23,18,24,25,26,27,19,28])).catch(e=>(console.warn(`[CardViewletRegistry] Failed to load MarkdownViewlet, falling back to raw view:`,e),{default:({mcard:e})=>N.createElement(`pre`,{style:{padding:`16px`,overflow:`auto`,color:`#ccc`}},typeof e?.content==`string`?e.content:JSON.stringify(e?.content||e?.payloadCas,null,2))}))),F=P(()=>C(()=>import(`./WebappZenViewlet.CQW50OhX.js`),__vite__mapDeps([29,1,2,7,10])),`WebappZenViewlet`),I=P(()=>C(()=>import(`./SvgViewlet.BxlWQ-JX.js`),__vite__mapDeps([30,1,2,3,4,5,6,7,8,9,10,13,14,15])),`SvgViewlet`),L=P(()=>C(()=>import(`./ImageViewlet.CHeNvX6L.js`),__vite__mapDeps([31,1,2,4,3,5,6,7,8,9,10,13,14,15])),`ImageViewlet`),R=P(()=>C(()=>import(`./DocumentViewlets.Dm_GL3AL.js`),__vite__mapDeps([32,1,2,3,4,5,6,7,8,9,10,13,14,15,18,25])),`PdfViewlet`),z=P(()=>C(()=>import(`./DocumentViewlets.Dm_GL3AL.js`),__vite__mapDeps([32,1,2,3,4,5,6,7,8,9,10,13,14,15,18,25])),`HtmlViewlet`),B=P(()=>C(()=>import(`./DocumentViewlets.Dm_GL3AL.js`),__vite__mapDeps([32,1,2,3,4,5,6,7,8,9,10,13,14,15,18,25])),`TableGridCsvViewlet`),V=P(()=>C(()=>import(`./DocumentViewlets.Dm_GL3AL.js`),__vite__mapDeps([32,1,2,3,4,5,6,7,8,9,10,13,14,15,18,25])),`XmlViewlet`),pe=P(()=>C(()=>import(`./DocumentViewlets.Dm_GL3AL.js`),__vite__mapDeps([32,1,2,3,4,5,6,7,8,9,10,13,14,15,18,25])),`AudioPlayerViewlet`),me=P(()=>C(()=>import(`./MermaidDiagramViewlet.RnwDfQl6.js`),__vite__mapDeps([33,1,2,4,22,18,9,13,5,6,7,14,8,10,15,3,24,28])),`MermaidDiagramViewlet`),he=P(()=>C(()=>import(`./KatexFormulaViewlet.Cy_InWOK.js`),__vite__mapDeps([34,1,2,4,22,18,9,13,5,6,7,14,8,10,15,3,24])),`KatexFormulaViewlet`),ge=P(()=>C(()=>import(`./D3GraphViewlet.DAjPz1DP.js`),__vite__mapDeps([35,1,2,4,22,18,9,13,5,6,7,14,8,10,15,3,24])),`D3GraphViewlet`),_e=P(()=>C(()=>import(`./ChartAnalyticsViewlet.Cevj0EOs.js`),__vite__mapDeps([36,1,2,4,22,18,9,13,5,6,7,14,8,10,15,3,24])),`ChartAnalyticsViewlet`),ve=P(()=>C(()=>import(`./ExcalidrawWhiteboardViewlet.DrlW7B6G.js`),__vite__mapDeps([37,1,2,4,22,18,9,13,5,6,7,14,8,10,15,3,24])),`ExcalidrawWhiteboardViewlet`);function ye(e){e({id:`viewlet:spatial:3d`,name:`Interactive 3D WebGL Viewport`,description:`Three.js WebGL canvas for 3DS, OBJ, STL, GLTF, and GLB files`,supportedExtensions:[`.3ds`,`.obj`,`.stl`,`.gltf`,`.glb`,`.glt`],supportedMimes:[`model/x-3ds`,`model/obj`,`model/stl`,`model/gltf+json`,`model/gltf-binary`],supportedTabs:[`visual`],priority:100,isFullBleed:!0,isLazy:!0,component:ce}),e({id:`viewlet:media:video`,name:`Video Player & YouTube Stream`,description:`HTML5 video player for MP4/WebM and responsive YouTube URL embeds`,supportedExtensions:[`.mp4`,`.webm`,`.ogg`],supportedMimes:[`video/mp4`,`video/webm`,`video/ogg`],predicate:e=>{let t=typeof e.content==`string`?e.content:``,n=e.path||e.handle||``;return t.includes(`youtube.com/`)||t.includes(`youtu.be/`)||n.includes(`youtube`)},supportedTabs:[`visual`],priority:95,isFullBleed:!0,isLazy:!0,component:le}),e({id:`viewlet:spatial:whiteboard`,name:`Excalidraw Spatial Whiteboard Viewport`,description:`Interactive hand-drawn vector whiteboard and architecture sketching canvas`,supportedExtensions:[`.excalidraw`,`.excalidraw.json`],supportedMimes:[`application/vnd.excalidraw+json`,`application/x-excalidraw`],supportedTabs:[`visual`,`raw_data`],priority:92,isFullBleed:!0,isLazy:!0,component:ve}),e({id:`viewlet:typography:font`,name:`Typography Specimen Inspector`,description:`Interactive specimen viewer for TTF, WOFF2, WOFF, and OTF fonts`,supportedExtensions:[`.ttf`,`.woff2`,`.woff`,`.otf`],supportedMimes:[`font/ttf`,`font/woff2`,`font/woff`,`font/otf`],supportedTabs:[`visual`],priority:90,isFullBleed:!1,isLazy:!0,component:ue}),e({id:`viewlet:diagram:tikz`,name:`TikZ & TikZ-CD Category Vector Viewport`,description:`Interactive vector rendering and source inspector for TikZ and TikZ-CD diagrams`,supportedExtensions:[`.tikz`,`.tikzcd`,`.tikz-cd`,`.tex`],supportedMimes:[`text/x-tikz`,`text/x-tikzcd`,`application/x-tex`],predicate:e=>{let t=(e.path||e.name||e.handle||``).toLowerCase();if(t.endsWith(`.md`)||t.endsWith(`.markdown`))return!1;let n=(e.mimeType||``).toLowerCase();if(n===`text/markdown`||n===`text/x-markdown`)return!1;if(t.endsWith(`.tikz`)||t.endsWith(`.tikzcd`)||t.endsWith(`.tikz-cd`)||t.endsWith(`.tex`)||n===`text/x-tikz`||n===`text/x-tikzcd`||n===`application/x-tex`)return!0;let r=typeof e.content==`string`?e.content:``;return r.includes(`\\begin{tikzpicture}`)||r.includes(`\\begin{tikzcd}`)},supportedTabs:[`visual`,`raw_data`],priority:89,isFullBleed:!0,isLazy:!0,component:de}),e({id:`viewlet:webapp:zen`,name:`Universal WebApp Zen-Mode Viewlet`,description:`Interactive Zen-mode WebApp viewport with device frames, proxy shield, and sandbox isolation`,supportedExtensions:[`.url`],supportedMimes:[`text/uri-list`],predicate:e=>{let t=(e.path||e.name||e.handle||``).toLowerCase();if(t.endsWith(`.url`)||t.endsWith(`.url.txt`)||t.includes(`.url.`)||t.endsWith(`_url.txt`)||t.includes(`/webapps/`)||t.includes(`:webapps:`)||t.includes(`/apps/`)||t.includes(`:apps:`)||(e.mimeType||``).toLowerCase()===`text/uri-list`)return!0;if(t.includes(`spotify`)||t.includes(`youtube`)||t.includes(`/audio/`)||t.includes(`/videos/`))return!1;let n=typeof e.content==`string`?e.content.trim():``;return n.includes(`open.spotify.com/`)||n.includes(`spotify:`)||n.includes(`youtube.com/`)?!1:w(e.content,t,e.name)},supportedTabs:[`visual`],priority:88,isFullBleed:!0,isLazy:!0,component:F}),e({id:`viewlet:graph:d3`,name:`D3 Topological Graph Viewport`,description:`Interactive topological force networks and hierarchical trees for graph and adjacency cards`,supportedExtensions:[`.d3.json`,`.graph.json`,`.adjlist`],supportedMimes:[`application/vnd.d3+json`,`application/x-graph`],supportedTabs:[`visual`,`raw_data`],priority:87,isFullBleed:!0,isLazy:!0,component:ge}),e({id:`viewlet:analytics:chartjs`,name:`Chart.js Statistical Analytics Viewport`,description:`Interactive statistical charts, multi-series curves, bars, and radar distributions`,supportedExtensions:[`.chart.json`,`.timeseries.json`],supportedMimes:[`application/vnd.chartjs+json`,`application/x-timeseries`],supportedTabs:[`visual`,`raw_data`],priority:86,isFullBleed:!0,isLazy:!0,component:_e}),e({id:`viewlet:docs:markdown`,name:`Multi-Modal Markdown Substrate`,description:`Advanced Markdown with VFS images, Mermaid SVGs, KaTeX math, and TikZ`,supportedExtensions:[`.md`,`.markdown`],supportedMimes:[`text/markdown`,`text/x-markdown`],supportedTabs:[`visual`],priority:85,isFullBleed:!1,isLazy:!0,component:fe}),e({id:`viewlet:diagram:mermaid`,name:`Mermaid Diagram Viewport`,description:`Interactive reactive SVG diagram viewport for Mermaid flowcharts and sequence graphs`,supportedExtensions:[`.mermaid`,`.mmd`],supportedMimes:[`text/vnd.mermaid`,`text/x-mermaid`],supportedTabs:[`visual`,`raw_data`],priority:84,isFullBleed:!0,isLazy:!0,component:me}),e({id:`viewlet:math:katex`,name:`KaTeX Math Formula Viewport`,description:`Interactive mathematical typography and equation proofs for LaTeX math cards`,supportedExtensions:[`.math`,`.latex`,`.tex`],supportedMimes:[`text/x-tex`,`application/x-latex`,`text/x-math`],supportedTabs:[`visual`,`raw_data`],priority:83,isFullBleed:!0,isLazy:!0,component:he}),e({id:`viewlet:media:svg`,name:`Vector SVG Inspector`,description:`Interactive vector rendering and source preview for SVG files`,supportedExtensions:[`.svg`],supportedMimes:[`image/svg+xml`],supportedTabs:[`visual`],priority:80,isFullBleed:!0,isLazy:!0,component:I}),e({id:`viewlet:media:image`,name:`Raster Image Viewer`,description:`Responsive raster image viewer for PNG, JPEG, WebP, GIF, BMP, ICO, AVIF`,supportedExtensions:[`.png`,`.jpg`,`.jpeg`,`.webp`,`.gif`,`.bmp`,`.ico`,`.avif`],supportedMimes:[`image/png`,`image/jpeg`,`image/webp`,`image/gif`,`image/bmp`,`image/x-icon`,`image/vnd.microsoft.icon`,`image/avif`],predicate:e=>e?.detectedType===`image`||typeof e?.mimeType==`string`&&e.mimeType.startsWith(`image/`)&&e.mimeType!==`image/svg+xml`,supportedTabs:[`visual`],priority:75,isFullBleed:!0,isLazy:!0,component:L}),e({id:`viewlet:docs:pdf`,name:`PDF Document Viewer`,description:`Full-height PDF viewport with Zen Mode breakout`,supportedExtensions:[`.pdf`],supportedMimes:[`application/pdf`],supportedTabs:[`visual`],priority:70,isFullBleed:!0,isLazy:!0,component:R}),e({id:`viewlet:docs:html`,name:`Sandboxed HTML Viewport`,description:`Sandboxed HTML preview with CORS shield fallback`,supportedExtensions:[`.html`,`.htm`],supportedMimes:[`text/html`],supportedTabs:[`visual`],priority:65,isFullBleed:!0,isLazy:!0,component:z}),e({id:`viewlet:data:table`,name:`CSV/TSV Data Grid`,description:`High-performance tabular data grid for CSV and TSV files`,supportedExtensions:[`.csv`,`.tsv`],supportedMimes:[`text/csv`,`text/tab-separated-values`],supportedTabs:[`visual`],priority:60,isFullBleed:!1,isLazy:!0,component:B}),e({id:`viewlet:docs:xml`,name:`XML Structural Inspector`,description:`Structured XML document viewer`,supportedExtensions:[`.xml`],supportedMimes:[`application/xml`,`text/xml`],supportedTabs:[`visual`],priority:55,isFullBleed:!1,isLazy:!0,component:V}),e({id:`viewlet:media:audio`,name:`Audio Waveform Player & Spotify Stream`,description:`HTML5 audio player for WAV, MP3, and Spotify track/playlist embeds`,supportedExtensions:[`.wav`,`.mp3`,`.ogg`,`.flac`],supportedMimes:[`audio/wav`,`audio/mpeg`,`audio/ogg`],predicate:e=>{let t=typeof e.content==`string`?e.content:``,n=e.path||e.handle||``;return t.includes(`open.spotify.com/`)||t.includes(`spotify:`)||n.includes(`spotify`)},supportedTabs:[`visual`],priority:88,isFullBleed:!1,isLazy:!0,component:pe})}var H=r(),be=({mcard:e})=>{let{content:t,isLoading:n}=M(e),r=(0,N.useMemo)(()=>{try{return JSON.parse(t)}catch{return null}},[t]);return(0,H.jsxs)(`div`,{className:`card-panel-json-viewer`,style:{display:`flex`,flexDirection:`column`,width:`100%`,height:`100%`,backgroundColor:`var(--vscode-editor-background, #1e1e1e)`,color:`var(--vscode-foreground, #cccccc)`,fontFamily:`monospace`,fontSize:`12px`,overflow:`hidden`},children:[(0,H.jsx)(`div`,{style:{padding:`6px 14px`,backgroundColor:`var(--vscode-sideBar-background, #252526)`,borderBottom:`1px solid var(--vscode-editorGroup-border, #333)`,fontSize:`11px`,color:`#dcdcaa`},children:`JSON Structured Object`}),(0,H.jsx)(`pre`,{style:{flex:1,margin:0,padding:`16px`,overflow:`auto`,lineHeight:`1.5`},children:r?JSON.stringify(r,null,2):t})]})},xe=({mcard:e})=>{let[t,n]=(0,N.useState)(!0),[r,i]=(0,N.useState)(!1),[a,o]=(0,N.useState)(!1),[s,c]=(0,N.useState)(!1),{content:l,isLoading:u,setContent:d}=M(e),[f,p]=(0,N.useState)(l),m=(0,N.useRef)(null),h=(0,N.useRef)(null);(0,N.useEffect)(()=>{p(l)},[l]);let g=f!==l,_=f.split(`
|
|
3
|
-
`),v=_.length,y=f.length,b=(e.path||e.name||``).split(`.`).pop()?.toUpperCase()||`TXT`,x=(e.hash||``).slice(0,10),S=()=>{navigator.clipboard.writeText(f),i(!0),setTimeout(()=>i(!1),2e3)},C=async()=>{if(e.readOnly){await A(e);return}if(!a&&g){o(!0);try{let t=e.handle||e.path||e.hash;await D(t,f),d(f),c(!0),setTimeout(()=>c(!1),2500)}catch(e){console.error(`[TextViewlet] Failed to save MCard content:`,e)}finally{o(!1)}}};return(0,N.useEffect)(()=>{let t=()=>{if(!e.readOnly&&f!==l){let t=e.handle||e.path||e.hash;t&&(D(t,f),d(f))}};return window.addEventListener(`clm:flush-editor-state`,t),()=>{window.removeEventListener(`clm:flush-editor-state`,t)}},[f,l,e]),(0,H.jsxs)(`div`,{className:`card-panel-text-viewer`,style:{display:`flex`,flexDirection:`column`,width:`100%`,height:`100%`,backgroundColor:`var(--vscode-editor-background, #1e1e1e)`,color:`var(--vscode-foreground, #cccccc)`,fontFamily:`var(--vscode-editor-font-family, "SF Mono", Monaco, Menlo, Consolas, monospace)`,fontSize:`12px`,overflow:`hidden`,position:`relative`},children:[(0,H.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,padding:`6px 14px`,backgroundColor:`var(--vscode-sideBar-background, #252526)`,borderBottom:`1px solid var(--vscode-editorGroup-border, #333333)`,fontSize:`11px`,flexShrink:0,gap:`12px`},children:[(0,H.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`8px`,minWidth:0},children:[(0,H.jsx)(`span`,{style:{padding:`1px 6px`,backgroundColor:`var(--vscode-badge-background, #0e639c)`,color:`#ffffff`,borderRadius:`2px`,fontWeight:600,fontSize:`10px`},children:b}),(0,H.jsx)(`span`,{style:{fontWeight:500,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`,maxWidth:`160px`},title:e.name,children:e.name}),g&&(0,H.jsxs)(`span`,{style:{color:`#e5c07b`,fontWeight:`bold`,display:`flex`,alignItems:`center`,gap:`4px`,fontSize:`10px`},title:`Unsaved changes`,children:[`● `,(0,H.jsx)(`span`,{style:{opacity:.9},children:`Unsaved`})]}),(0,H.jsx)(`span`,{style:{opacity:.4},children:`•`}),(0,H.jsxs)(`span`,{style:{opacity:.6},children:[v.toLocaleString(),` lines`]}),(0,H.jsx)(`span`,{style:{opacity:.4},children:`•`}),(0,H.jsxs)(`span`,{style:{opacity:.6},children:[y.toLocaleString(),` chars`]})]}),(0,H.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`8px`,flexShrink:0},children:[x&&(0,H.jsxs)(`span`,{style:{fontSize:`10px`,padding:`2px 6px`,backgroundColor:`rgba(255, 255, 255, 0.06)`,color:`#abb2bf`,borderRadius:`2px`,border:`1px solid rgba(255, 255, 255, 0.1)`,fontFamily:`monospace`},title:`Current CAS Hash: ${e.hash}`,children:[`#`,x]}),(0,H.jsxs)(`button`,{onClick:()=>n(e=>!e),style:{fontSize:`10px`,padding:`2px 8px`,backgroundColor:t?`rgba(14, 99, 156, 0.4)`:`transparent`,color:t?`#75beff`:`var(--vscode-foreground, #cccccc)`,border:`1px solid var(--vscode-input-border, #3c3c3c)`,borderRadius:`2px`,cursor:`pointer`},children:[`Wrap: `,t?`ON`:`OFF`]}),(0,H.jsx)(`button`,{onClick:S,style:{fontSize:`10px`,padding:`2px 8px`,backgroundColor:r?`rgba(137, 209, 133, 0.2)`:`transparent`,color:r?`#89d185`:`var(--vscode-foreground, #cccccc)`,border:`1px solid`,borderColor:r?`#89d185`:`var(--vscode-input-border, #3c3c3c)`,borderRadius:`2px`,cursor:`pointer`},children:r?`✓ Copied`:`Copy`}),e.readOnly?(0,H.jsx)(`button`,{onClick:()=>void A(e),"data-testid":`fork-card-btn`,style:{fontSize:`10px`,fontWeight:600,padding:`2px 10px`,backgroundColor:`rgba(227, 121, 51, 0.2)`,color:`#e37933`,border:`1px solid #e37933`,borderRadius:`2px`,cursor:`pointer`},title:`Fork to Local Database for editing (Cmd+S / Ctrl+S)`,children:`🔒 Read-Only (Fork to Edit)`}):(0,H.jsx)(`button`,{onClick:C,disabled:!g||a,style:{fontSize:`10px`,fontWeight:600,padding:`2px 10px`,backgroundColor:s?`#2e7d32`:g?`var(--vscode-button-background, #0e639c)`:`rgba(255, 255, 255, 0.08)`,color:s||g?`#ffffff`:`rgba(255, 255, 255, 0.4)`,border:`1px solid`,borderColor:s?`#4caf50`:g?`var(--vscode-button-background, #0e639c)`:`transparent`,borderRadius:`2px`,cursor:g&&!a?`pointer`:`default`,display:`flex`,alignItems:`center`,gap:`4px`},title:g?`Save changes (Cmd+S / Ctrl+S)`:`No unsaved changes`,children:a?`Saving...`:s?`✓ Saved`:g?(0,H.jsx)(H.Fragment,{children:`● Save`}):`Saved`})]})]}),(0,H.jsxs)(`div`,{style:{flex:1,display:`flex`,overflow:`hidden`,position:`relative`},children:[(0,H.jsx)(`div`,{ref:h,style:{width:`48px`,flexShrink:0,padding:`12px 0`,textAlign:`right`,color:`var(--vscode-editorLineNumber-foreground, #858585)`,userSelect:`none`,borderRight:`1px solid var(--vscode-editorGroup-border, #2d2d2d)`,backgroundColor:`var(--vscode-editorGutter-background, #1e1e1e)`,overflowY:`hidden`,lineHeight:`20px`},children:_.map((e,t)=>(0,H.jsx)(`div`,{style:{paddingRight:`10px`},children:t+1},t))}),(0,H.jsx)(`textarea`,{ref:m,value:f,readOnly:e.readOnly??!1,"aria-readonly":e.readOnly??!1,"data-testid":`text-viewlet-editor`,onChange:t=>!e.readOnly&&p(t.target.value),onScroll:e=>{h.current&&(h.current.scrollTop=e.currentTarget.scrollTop)},onKeyDown:t=>{(t.metaKey||t.ctrlKey)&&(t.key===`s`||t.key===`S`)&&(t.preventDefault(),e.readOnly?A(e):C())},spellCheck:!1,autoCapitalize:`off`,autoComplete:`off`,autoCorrect:`off`,wrap:t?`soft`:`off`,style:{flex:1,height:`100%`,margin:0,padding:`12px 16px`,fontFamily:`inherit`,fontSize:`inherit`,lineHeight:`20px`,backgroundColor:`transparent`,color:`inherit`,border:`none`,outline:`none`,resize:`none`,whiteSpace:t?`pre-wrap`:`pre`,wordBreak:t?`break-word`:`normal`,overflowX:t?`hidden`:`auto`,overflowY:`auto`,boxSizing:`border-box`}})]})]})},Se=({mcard:e})=>{let[t,n]=(0,N.useState)(`hex`),[r,i]=(0,N.useState)(2048),[a,o]=(0,N.useState)(null),[s,c]=(0,N.useState)(!1),[l,u]=(0,N.useState)(!1),d=E(e.path,e.hash),{content:f}=M(e);(0,N.useEffect)(()=>{let e=!0;return(async()=>{c(!0);try{if(d){let t=await fetch(d);if(t.ok&&e){let e=await t.arrayBuffer();o(new Uint8Array(e)),c(!1);return}}if(f&&e){let e=new TextEncoder;o(e.encode(f))}}catch(e){console.error(`[RawDataViewlet] Failed to fetch raw bytes:`,e)}finally{e&&c(!1)}})(),()=>{e=!1}},[e,d,f]);let p=(0,N.useMemo)(()=>a?ne(a,0,r):[],[a,r]),m=(0,N.useMemo)(()=>{if(!a)return``;let e=Math.min(r*2,a.length);return k(a.subarray(0,e))},[a,r]),h=()=>{let e=p.map(e=>`${e.offset} ${e.hex1} ${e.hex2} |${e.ascii}|`).join(`
|
|
4
|
-
`);navigator.clipboard.writeText(e),u(!0),setTimeout(()=>u(!1),2e3)},g=a?.length||0;return(0,H.jsxs)(`div`,{className:`card-panel-raw-data-viewer`,style:{display:`flex`,flexDirection:`column`,width:`100%`,height:`100%`,backgroundColor:`var(--vscode-editor-background, #1e1e1e)`,color:`var(--vscode-foreground, #cccccc)`,fontFamily:`var(--vscode-editor-font-family, "SF Mono", Monaco, Menlo, Consolas, monospace)`,fontSize:`11px`,overflow:`hidden`},children:[(0,H.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,padding:`6px 14px`,backgroundColor:`var(--vscode-sideBar-background, #252526)`,borderBottom:`1px solid var(--vscode-editorGroup-border, #333333)`},children:[(0,H.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`8px`},children:[(0,H.jsx)(`button`,{onClick:()=>n(`hex`),style:{fontSize:`10px`,padding:`2px 8px`,backgroundColor:t===`hex`?`var(--vscode-button-background, #0e639c)`:`transparent`,color:t===`hex`?`#fff`:`#aaa`,border:`1px solid`,borderColor:t===`hex`?`var(--vscode-button-background, #0e639c)`:`var(--vscode-input-border, #3c3c3c)`,borderRadius:`2px`,cursor:`pointer`},children:`Hex Dump`}),(0,H.jsx)(`button`,{onClick:()=>n(`base64`),style:{fontSize:`10px`,padding:`2px 8px`,backgroundColor:t===`base64`?`var(--vscode-button-background, #0e639c)`:`transparent`,color:t===`base64`?`#fff`:`#aaa`,border:`1px solid`,borderColor:t===`base64`?`var(--vscode-button-background, #0e639c)`:`var(--vscode-input-border, #3c3c3c)`,borderRadius:`2px`,cursor:`pointer`},children:`Base64`}),(0,H.jsx)(`span`,{style:{opacity:.5},children:`•`}),(0,H.jsxs)(`span`,{style:{opacity:.7},children:[`Showing `,Math.min(r,g).toLocaleString(),` of `,g.toLocaleString(),` bytes`]})]}),(0,H.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`8px`},children:[g>r&&(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`button`,{onClick:()=>i(e=>e+4096),style:{fontSize:`10px`,padding:`2px 8px`,backgroundColor:`transparent`,color:`#75beff`,border:`1px solid rgba(117,190,255,0.4)`,borderRadius:`2px`,cursor:`pointer`},children:`+4 KB`}),(0,H.jsx)(`button`,{onClick:()=>i(g),style:{fontSize:`10px`,padding:`2px 8px`,backgroundColor:`transparent`,color:`#75beff`,border:`1px solid rgba(117,190,255,0.4)`,borderRadius:`2px`,cursor:`pointer`},children:`Load All`})]}),(0,H.jsx)(`button`,{onClick:h,style:{fontSize:`10px`,padding:`2px 8px`,backgroundColor:l?`rgba(137, 209, 133, 0.2)`:`transparent`,color:l?`#89d185`:`#ccc`,border:`1px solid`,borderColor:l?`#89d185`:`var(--vscode-input-border, #3c3c3c)`,borderRadius:`2px`,cursor:`pointer`},children:l?`✓ Copied!`:`Copy Hex`}),d&&(0,H.jsx)(`a`,{href:d,download:!0,style:{fontSize:`10px`,padding:`2px 8px`,backgroundColor:`rgba(255, 255, 255, 0.08)`,color:`#75beff`,borderRadius:`2px`,textDecoration:`none`},children:`Download ↓`})]})]}),(0,H.jsx)(`div`,{style:{flex:1,overflow:`auto`,padding:`12px 16px`},children:s&&!a?(0,H.jsx)(`div`,{style:{padding:`24px`,opacity:.6},children:`Streaming raw bytes...`}):t===`hex`?(0,H.jsxs)(`table`,{style:{borderCollapse:`collapse`,width:`100%`,lineHeight:`18px`},children:[(0,H.jsx)(`thead`,{children:(0,H.jsxs)(`tr`,{style:{color:`var(--vscode-editorLineNumber-foreground, #858585)`,textAlign:`left`},children:[(0,H.jsx)(`th`,{style:{width:`90px`,paddingBottom:`6px`},children:`Offset`}),(0,H.jsx)(`th`,{style:{width:`220px`,paddingBottom:`6px`},children:`00 01 02 03 04 05 06 07`}),(0,H.jsx)(`th`,{style:{width:`220px`,paddingBottom:`6px`},children:`08 09 0A 0B 0C 0D 0E 0F`}),(0,H.jsx)(`th`,{style:{paddingBottom:`6px`},children:`Decoded ASCII`})]})}),(0,H.jsx)(`tbody`,{children:p.map(e=>(0,H.jsxs)(`tr`,{children:[(0,H.jsx)(`td`,{style:{color:`#75beff`},children:e.offset}),(0,H.jsx)(`td`,{style:{color:`#dcdcaa`},children:e.hex1}),(0,H.jsx)(`td`,{style:{color:`#dcdcaa`},children:e.hex2}),(0,H.jsxs)(`td`,{style:{color:`#9cdcfe`,letterSpacing:`1px`},children:[`|`,e.ascii,`|`]})]},e.offset))})]}):(0,H.jsx)(`pre`,{style:{margin:0,fontFamily:`inherit`,whiteSpace:`pre-wrap`,wordBreak:`break-all`,lineHeight:`18px`,color:`#ce9178`},children:m})})]})},Ce=({mcard:e})=>{let t=typeof e.content==`string`?e.content:JSON.stringify(e,null,2);return(0,H.jsx)(`div`,{className:`card-panel-cas-viewer`,style:{width:`100%`,height:`100%`,overflow:`auto`,padding:`16px`,backgroundColor:`var(--vscode-editor-background, #1e1e1e)`},children:(0,H.jsx)(`pre`,{style:{margin:0,fontFamily:`var(--vscode-editor-font-family, monospace)`,fontSize:`12px`,backgroundColor:`#181818`,padding:`16px`,borderRadius:`4px`,border:`1px solid #282828`,overflowX:`auto`,color:`#d4d4d4`,lineHeight:1.5},children:(0,H.jsx)(`code`,{children:t})})})},we=({mcard:e})=>(0,H.jsxs)(`div`,{className:`card-panel-merkle-viewer`,style:{display:`flex`,flexDirection:`column`,gap:`12px`,fontSize:`12px`,backgroundColor:`var(--vscode-editor-background, #1e1e1e)`,padding:`24px`,height:`100%`,overflow:`auto`},children:[(0,H.jsx)(`div`,{style:{fontWeight:600,color:`#75beff`,fontSize:`14px`},children:`Cryptographic Merkle Proof & Provenance`}),(0,H.jsxs)(`div`,{style:{display:`grid`,gridTemplateColumns:`140px 1fr`,gap:`8px`,padding:`12px`,backgroundColor:`rgba(255,255,255,0.03)`,borderRadius:`4px`,border:`1px solid #333`},children:[(0,H.jsx)(`span`,{style:{color:`#858585`},children:`Handle:`}),(0,H.jsx)(`code`,{style:{color:`#ce9178`,wordBreak:`break-all`},children:e.handle}),(0,H.jsx)(`span`,{style:{color:`#858585`},children:`BLAKE3 Hash:`}),(0,H.jsx)(`code`,{style:{color:`#4ec9b0`,wordBreak:`break-all`},children:e.hash||`b3:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855`}),(0,H.jsx)(`span`,{style:{color:`#858585`},children:`Subclass:`}),(0,H.jsx)(`span`,{style:{color:`#dcdcaa`},children:e.subclass||`MCard`}),(0,H.jsx)(`span`,{style:{color:`#858585`},children:`Detected Type:`}),(0,H.jsx)(`span`,{style:{color:`#9cdcfe`},children:e.detectedType||`document`}),(0,H.jsx)(`span`,{style:{color:`#858585`},children:`MIME Type:`}),(0,H.jsx)(`span`,{children:e.mimeType||`text/plain`}),(0,H.jsx)(`span`,{style:{color:`#858585`},children:`Epistemic Status:`}),(0,H.jsx)(`span`,{style:{color:`#89d185`},children:`Self-Evident (computational witness)`})]}),(0,H.jsx)(`div`,{style:{fontSize:`11px`,color:`#858585`,marginTop:`8px`,lineHeight:`1.5`},children:`Verified against the Computable Knowledge substrate with zero-knowledge Merkle inclusion proof.`})]}),U=(e,t)=>N.lazy(()=>e().then(e=>({default:e[t]||e.default}))),Te=U(()=>C(()=>import(`./SchemaYamlViewlet.D6HVdmrq.js`),__vite__mapDeps([38,1,2,18,9,13,4,5,6,7,14,8,10,15,3,39])),`SchemaYamlViewlet`),Ee=U(()=>C(()=>import(`./ClmPcardViewlet.DW5Yft0E.js`),__vite__mapDeps([40,1,2,4,5,6,7,9,41,3,8,10,13,14,15,42,43,39])),`ClmPcardViewlet`),De=U(()=>C(()=>import(`./WitnessVcardViewlet.CQxTL6ub.js`),__vite__mapDeps([44,1,2,41,43])),`WitnessVcardViewlet`),Oe=N.lazy(()=>C(()=>import(`./ThemeSettingsViewlet.Cb1r8fWw.js`),__vite__mapDeps([45,1,2,4,9])));function ke(e){e({id:`viewlet:schemas:yaml`,name:`YAML Schema & Manifest Cards`,description:`Interactive properties and required-fields visualizer for YAML schemas`,supportedExtensions:[`.yaml`,`.yml`],supportedMimes:[`application/x-yaml`,`text/yaml`],supportedTabs:[`visual`],priority:45,isFullBleed:!1,component:Te,isLazy:!0}),e({id:`viewlet:data:json`,name:`JSON Object Tree`,description:`Structured JSON object viewer`,supportedExtensions:[`.json`],supportedMimes:[`application/json`],supportedTabs:[`visual`],priority:40,isFullBleed:!1,component:be}),e({id:`viewlet:clm:pcard`,name:`PCard Morphism Runner & Triadic Viewlet`,description:`CLM process executor with Triadic transclusion & Cordis effect tracking`,predicate:e=>{let t=(e.path||e.handle||e.name||``).toLowerCase();if(e.subclass===`PCard`||e.detectedType===`pcard`||t.includes(`pcard`))return!0;let n=t.endsWith(`.yaml`)||t.endsWith(`.yml`)||e.mimeType===`application/x-yaml`||e.mimeType===`text/yaml`,r=t.includes(`/${_.paths.knowledge_dirname}/`)||t.includes(`/abstract/`)||t.includes(`/concrete/`)||t.includes(`/balanced/`)||t.includes(`/manifests/`);if(typeof e.content==`string`){let t=e.content;if(t.includes(`PCard extends MCard`)||(n||r)&&(t.includes(`abstract_spec:`)||t.includes(`concrete_impl:`)||t.includes(`balanced_exp:`)||t.includes(`transclude:`)||/face:\s*["']?[ABC]["']?/i.test(t)))return!0}return!1},supportedTabs:[`visual`],priority:75,isFullBleed:!1,component:Ee,isLazy:!0}),e({id:`viewlet:clm:vcard`,name:`Witness VCard Verifier`,description:`VCard boolean correctness witness condition inspector`,predicate:e=>{let t=(e.path||e.handle||``).toLowerCase();return e.subclass===`VCard`||e.detectedType===`vcard`||t.includes(`vcard`)||t.includes(`witness`)},supportedTabs:[`visual`],priority:70,isFullBleed:!1,component:De,isLazy:!0}),e({id:`viewlet:ui:theme_settings`,name:`Theme & Style Settings Inspector`,description:`Interactive swatch preview, polynomial axis controls, and CAS style exchange`,predicate:e=>{let t=(e.path||e.handle||e.name||``).toLowerCase();return t.startsWith(`mcard:ui/`)||t.includes(`/styles/themes/`)||t.includes(`theme-`)||t.includes(`density-`)},supportedTabs:[`visual`],priority:80,isFullBleed:!1,component:Oe,isLazy:!0}),e({id:`viewlet:core:text`,name:`Source Text Inspector`,description:`VS Code style text editor with line numbers and wrap toggle`,predicate:e=>{let t=(e.path||e.name||e.handle||``).toLowerCase(),n=(e.mimeType||``).toLowerCase();return n.startsWith(`image/`)&&n!==`image/svg+xml`||n.startsWith(`audio/`)||n.startsWith(`video/`)||n.startsWith(`font/`)||n===`application/pdf`||t.endsWith(`.glb`)||t.endsWith(`.bin`)?!1:n.startsWith(`text/`)||n===`application/json`||n===`application/xml`||n===`application/x-yaml`||n===`image/svg+xml`||t.endsWith(`.yaml`)||t.endsWith(`.yml`)||t.endsWith(`.json`)||t.endsWith(`.txt`)||t.endsWith(`.md`)||t.endsWith(`.ts`)||t.endsWith(`.tsx`)||t.endsWith(`.js`)||typeof e.content==`string`&&!e.content.startsWith(`\0`)},supportedTabs:[`text`],priority:10,isFullBleed:!1,component:xe}),e({id:`viewlet:core:raw_data`,name:`Raw Data Hex Inspector`,description:`3-column hex dump with Base64 inspector and download`,predicate:()=>!0,supportedTabs:[`raw_data`],priority:10,isFullBleed:!1,component:Se}),e({id:`viewlet:core:payload_cas`,name:`Payload CAS Inspector`,description:`Raw content-addressed JSON payload viewer`,predicate:()=>!0,supportedTabs:[`raw`],priority:10,isFullBleed:!1,component:Ce}),e({id:`viewlet:core:merkle_proof`,name:`Merkle Proof & Provenance`,description:`Cryptographic BLAKE3 Merkle proof verification`,predicate:()=>!0,supportedTabs:[`merkle`],priority:10,isFullBleed:!1,component:we})}var W=new class{viewlets=new Map;constructor(){this.registerDefaults()}register(e){this.viewlets.set(e.id,e)}unregister(e){this.viewlets.delete(e)}getViewlet(e){return this.viewlets.get(e)}getAllViewlets(){return Array.from(this.viewlets.values()).sort((e,t)=>t.priority-e.priority)}findBestViewlet(e,t){if(e)return this.getAllViewlets().filter(n=>{if(!n.supportedTabs.includes(t))return!1;if(n.predicate&&n.predicate(e))return!0;let r=(e.path||e.name||e.handle||``).toLowerCase(),i=(e.mimeType||``).toLowerCase();return!!(n.supportedExtensions?.some(e=>r.endsWith(e.toLowerCase()))||n.supportedMimes?.some(e=>i===e.toLowerCase()||i.startsWith(e.toLowerCase())))})[0]}canFit(e,t){return t?e===`raw_data`||e===`raw`||e===`merkle`||this.findBestViewlet(t,e)!==void 0:!1}registerDefaults(){let e=e=>this.register(e);ye(e),ke(e)}},Ae=class extends N.Component{state={hasError:!1,error:null};static getDerivedStateFromError(e){return{hasError:!0,error:e}}componentDidCatch(e,t){console.error(`[ViewletErrorBoundary] Viewlet '${this.props.viewletId||`unknown`}' crashed:`,e,t)}componentDidUpdate(e){this.state.hasError&&e.viewletId!==this.props.viewletId&&this.setState({hasError:!1,error:null})}render(){return this.state.hasError?(0,H.jsxs)(`div`,{className:`card-panel-error-fallback`,style:{display:`flex`,flexDirection:`column`,alignItems:`center`,justifyContent:`center`,height:`100%`,padding:`24px`,backgroundColor:`var(--vscode-editor-background, #1e1e1e)`,color:`var(--vscode-errorForeground, #f48771)`,textAlign:`center`},children:[(0,H.jsx)(`div`,{style:{fontSize:`32px`,marginBottom:`12px`},children:`⚠️`}),(0,H.jsx)(`div`,{style:{fontSize:`14px`,fontWeight:600,marginBottom:`6px`},children:`Viewlet Rendering Error`}),(0,H.jsx)(`div`,{style:{fontSize:`12px`,color:`var(--vscode-foreground, #cccccc)`,opacity:.8,maxWidth:`500px`,marginBottom:`16px`,fontFamily:`var(--vscode-editor-font-family, monospace)`,backgroundColor:`rgba(255, 255, 255, 0.05)`,padding:`8px 12px`,borderRadius:`4px`,wordBreak:`break-word`},children:this.state.error?.message||`An unexpected rendering error occurred in this viewlet.`}),(0,H.jsxs)(`div`,{style:{display:`flex`,gap:`8px`},children:[this.props.onFallbackToText&&(0,H.jsx)(`button`,{onClick:this.props.onFallbackToText,style:{fontSize:`12px`,padding:`6px 12px`,backgroundColor:`var(--vscode-button-background, #0e639c)`,color:`#ffffff`,border:`none`,borderRadius:`2px`,cursor:`pointer`},children:`Inspect in Text View`}),this.props.onFallbackToRaw&&(0,H.jsx)(`button`,{onClick:this.props.onFallbackToRaw,style:{fontSize:`12px`,padding:`6px 12px`,backgroundColor:`transparent`,color:`var(--vscode-foreground, #cccccc)`,border:`1px solid var(--vscode-input-border, #3c3c3c)`,borderRadius:`2px`,cursor:`pointer`},children:`Inspect in Raw Data`})]})]}):this.props.children}},je=({isOpen:e=!0,title:t,src:n,srcDoc:r,onClose:i,sandbox:a=`allow-scripts allow-same-origin allow-popups allow-forms allow-downloads`})=>((0,N.useEffect)(()=>{if(!e)return;let t=e=>{e.key===`Escape`&&(e.preventDefault(),i())};return window.addEventListener(`keydown`,t,{capture:!0}),()=>window.removeEventListener(`keydown`,t,{capture:!0})},[e,i]),e?(0,H.jsxs)(`div`,{className:`card-panel-zen-modal`,style:{position:`fixed`,inset:0,width:`100vw`,height:`100vh`,zIndex:99999,backgroundColor:`#000000`,display:`flex`,flexDirection:`column`,overflow:`hidden`},children:[(0,H.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,padding:`8px 16px`,backgroundColor:`rgba(30, 30, 30, 0.95)`,backdropFilter:`blur(8px)`,borderBottom:`1px solid var(--vscode-editorGroup-border, #333333)`,color:`var(--vscode-foreground, #cccccc)`,fontSize:`12px`,zIndex:2},children:[(0,H.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`8px`},children:[(0,H.jsx)(`span`,{style:{fontSize:`14px`},children:`🪟`}),(0,H.jsx)(`span`,{style:{fontWeight:600},children:t}),(0,H.jsx)(`span`,{style:{fontSize:`10px`,padding:`2px 6px`,backgroundColor:`var(--vscode-badge-background, #4d4d4d)`,color:`var(--vscode-badge-foreground, #ffffff)`,borderRadius:`2px`},children:`IFrame Full-Page Zen Mode`})]}),(0,H.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`10px`},children:[(0,H.jsx)(`span`,{style:{fontSize:`11px`,opacity:.6},children:`Press [Esc] to exit`}),n&&(0,H.jsx)(`button`,{onClick:()=>window.open(n,`_blank`,`noopener,noreferrer`),title:`Open URL in New Browser Tab`,style:{fontSize:`11px`,padding:`4px 8px`,backgroundColor:`transparent`,color:`var(--vscode-foreground, #cccccc)`,border:`1px solid var(--vscode-input-border, #3c3c3c)`,borderRadius:`2px`,cursor:`pointer`},children:`Open in Tab ↗`}),(0,H.jsxs)(`button`,{onClick:i,title:`Exit Zen Mode and Return to VS Code Workbench`,style:{fontSize:`12px`,fontWeight:600,padding:`4px 12px`,backgroundColor:`var(--vscode-button-background, #0e639c)`,color:`#ffffff`,border:`none`,borderRadius:`2px`,cursor:`pointer`,display:`flex`,alignItems:`center`,gap:`6px`},children:[(0,H.jsx)(`span`,{children:`✕`}),(0,H.jsx)(`span`,{children:`Exit & Return to VS Code`})]})]})]}),(0,H.jsx)(`div`,{style:{flex:1,width:`100%`,height:`100%`,position:`relative`},children:(0,H.jsx)(`iframe`,{title:t,src:n,srcDoc:r,sandbox:a,referrerPolicy:`strict-origin-when-cross-origin`,allow:`accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share`,allowFullScreen:!0,style:{width:`100%`,height:`100%`,border:`none`,backgroundColor:`#ffffff`}})})]}):null),Me=({url:e,name:t,reason:n,status:r,xFrameOptions:i,onUseProxy:a,onForceEmbed:o})=>{let[s,c]=(0,N.useState)(!1),l=async()=>{try{await navigator.clipboard.writeText(e),c(!0),setTimeout(()=>c(!1),2e3)}catch{}},u=r===403||r===401,d=(i||``).toUpperCase().includes(`SAMEORIGIN`),f=(i||``).toUpperCase().includes(`DENY`),p=`EMBEDDING RESTRICTED`;return u?p=r===403?`HTTP 403 FORBIDDEN`:`HTTP 401 UNAUTHORIZED`:d?p=`X-FRAME-OPTIONS: SAMEORIGIN`:f&&(p=`X-FRAME-OPTIONS: DENY`),(0,H.jsx)(`div`,{className:`webapp-forbidden-view`,style:{display:`flex`,flexDirection:`column`,alignItems:`center`,justifyContent:`center`,width:`100%`,height:`100%`,padding:`32px 20px`,backgroundColor:`#141414`,color:`var(--vscode-foreground, #cccccc)`,fontFamily:`var(--vscode-font-family, -apple-system, BlinkMacSystemFont, sans-serif)`,boxSizing:`border-box`,overflowY:`auto`},children:(0,H.jsxs)(`div`,{style:{maxWidth:`580px`,width:`100%`,backgroundColor:`#1e1e1e`,border:`1px solid #333333`,borderRadius:`8px`,padding:`32px 28px`,boxShadow:`0 12px 36px rgba(0, 0, 0, 0.6)`,display:`flex`,flexDirection:`column`,alignItems:`center`,textAlign:`center`,position:`relative`},children:[(0,H.jsx)(`div`,{style:{marginBottom:`16px`},children:(0,H.jsxs)(`span`,{style:{fontSize:`10px`,fontWeight:700,letterSpacing:`0.6px`,textTransform:`uppercase`,padding:`3px 10px`,borderRadius:`12px`,backgroundColor:u?`rgba(239, 68, 68, 0.2)`:`rgba(245, 158, 11, 0.2)`,color:u?`#f87171`:`#fbbf24`,border:`1px solid ${u?`rgba(239, 68, 68, 0.4)`:`rgba(245, 158, 11, 0.4)`}`,display:`inline-flex`,alignItems:`center`,gap:`6px`},children:[(0,H.jsx)(`span`,{children:u?`🚫`:`🔒`}),(0,H.jsx)(`span`,{children:p})]})}),(0,H.jsx)(`h3`,{style:{fontSize:`18px`,fontWeight:600,margin:`0 0 10px 0`,color:`#f3f4f6`,lineHeight:1.3},children:`Inline Embedding Restricted by Origin Policy`}),(0,H.jsx)(`p`,{style:{fontSize:`13px`,lineHeight:`1.5`,color:`#9ca3af`,margin:`0 0 18px 0`,maxWidth:`480px`},children:`The remote server forbids direct inline framing inside external web applications to protect user privacy and prevent clickjacking.`}),(0,H.jsxs)(`div`,{style:{display:`inline-flex`,alignItems:`center`,gap:`8px`,backgroundColor:`#121212`,border:`1px solid #2d2d2d`,borderRadius:`6px`,padding:`6px 12px`,marginBottom:`22px`,maxWidth:`100%`},children:[(0,H.jsx)(`span`,{style:{fontSize:`13px`},children:`🔗`}),(0,H.jsxs)(`a`,{href:e,target:`_blank`,rel:`noopener noreferrer`,title:`Click to open this link in a new tab`,style:{color:`var(--vscode-textLink-foreground, #75beff)`,fontFamily:`monospace`,fontSize:`12px`,textDecoration:`underline`,textUnderlineOffset:`3px`,wordBreak:`break-all`,fontWeight:500},children:[e,` ↗`]}),(0,H.jsx)(`button`,{onClick:l,style:{backgroundColor:`transparent`,border:`none`,color:s?`#89d185`:`#6b7280`,cursor:`pointer`,fontSize:`11px`,padding:`0 4px`},title:`Copy URL`,children:s?`✓`:`📋`})]}),(0,H.jsxs)(`div`,{style:{width:`100%`,backgroundColor:`rgba(255, 255, 255, 0.03)`,border:`1px solid rgba(255, 255, 255, 0.08)`,borderRadius:`6px`,padding:`14px 16px`,marginBottom:`24px`,textAlign:`left`,boxSizing:`border-box`},children:[(0,H.jsxs)(`div`,{style:{fontSize:`11px`,fontWeight:700,textTransform:`uppercase`,color:`#d1d5db`,marginBottom:`8px`,display:`flex`,alignItems:`center`,gap:`6px`},children:[(0,H.jsx)(`span`,{children:`💡`}),(0,H.jsx)(`span`,{children:`Recommended Next Steps:`})]}),(0,H.jsxs)(`ul`,{style:{margin:0,paddingLeft:`18px`,fontSize:`12px`,lineHeight:`1.6`,color:`#d1d5db`},children:[(0,H.jsxs)(`li`,{children:[(0,H.jsx)(`strong`,{children:`Open in New Browser Tab:`}),` Runs the full application standalone with full browser capabilities (WebGL, cookies, and local scripts).`]}),(0,H.jsxs)(`li`,{children:[(0,H.jsx)(`strong`,{children:`Try CLM Proxy Shield:`}),` Bypasses origin frame restrictions by proxying HTML through the local VFS layer.`]}),(0,H.jsxs)(`li`,{children:[(0,H.jsx)(`strong`,{children:`Switch to Text / Raw Data:`}),` View or edit the raw destination URL in the editor tabs above.`]})]})]}),(0,H.jsxs)(`div`,{style:{display:`flex`,flexWrap:`wrap`,gap:`12px`,justifyContent:`center`,width:`100%`},children:[(0,H.jsxs)(`button`,{"data-action":`split-viewport`,"data-action-secondary":`snap-dual-windows`,"data-testid":`forbidden-split-viewport-btn`,onClick:()=>{a();let t=j(e,{ratio:.5});typeof window<`u`&&(window.dispatchEvent(new CustomEvent(`clm:viewport-tile-requested`,{detail:{url:e,result:t,geometry:t.geometry}})),window.dispatchEvent(new CustomEvent(`clm:fullscreen-split-requested`,{detail:{targetUrl:e,useProxy:!0}})),(t.popupBlocked||!t.success)&&window.dispatchEvent(new CustomEvent(`clm:popup-blocked`,{detail:{message:`Browser popup blocked. Switched to in-app split view.`}})))},style:{display:`inline-flex`,alignItems:`center`,gap:`8px`,backgroundColor:`var(--vscode-button-background, #0e639c)`,color:`#ffffff`,border:`none`,padding:`9px 18px`,borderRadius:`4px`,fontSize:`13px`,fontWeight:600,cursor:`pointer`,boxShadow:`0 4px 12px rgba(14, 99, 156, 0.35)`,transition:`background-color 0.15s ease`},onMouseEnter:e=>e.currentTarget.style.backgroundColor=`#1177bb`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`var(--vscode-button-background, #0e639c)`,title:`Open side-by-side with MCard Studio (50/50 desktop split)`,children:[(0,H.jsx)(`span`,{children:`◫`}),(0,H.jsx)(`span`,{children:`Open as Autonomous Tiled Viewport (Side-by-Side)`})]}),(0,H.jsxs)(`a`,{href:e,target:`_blank`,rel:`noopener noreferrer`,style:{display:`inline-flex`,alignItems:`center`,gap:`6px`,backgroundColor:`rgba(255, 255, 255, 0.08)`,color:`#ffffff`,border:`1px solid rgba(255, 255, 255, 0.15)`,padding:`9px 16px`,borderRadius:`4px`,textDecoration:`none`,fontSize:`13px`,fontWeight:600,cursor:`pointer`,transition:`background-color 0.15s ease`},onMouseEnter:e=>e.currentTarget.style.backgroundColor=`rgba(255, 255, 255, 0.15)`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`rgba(255, 255, 255, 0.08)`,title:`Open application in a standard detached browser tab`,children:[(0,H.jsx)(`span`,{children:`↗`}),(0,H.jsx)(`span`,{children:`Detached Tab Viewport`})]}),(0,H.jsxs)(`button`,{onClick:a,style:{display:`inline-flex`,alignItems:`center`,gap:`6px`,backgroundColor:`transparent`,color:`#f59e0b`,border:`1px solid #f59e0b`,padding:`9px 16px`,borderRadius:`4px`,fontSize:`13px`,fontWeight:600,cursor:`pointer`,transition:`all 0.15s ease`},onMouseEnter:e=>{e.currentTarget.style.backgroundColor=`rgba(245, 158, 11, 0.15)`},onMouseLeave:e=>{e.currentTarget.style.backgroundColor=`transparent`},title:`Attempt rendering via local VFS proxy`,children:[(0,H.jsx)(`span`,{children:`🛡️`}),(0,H.jsx)(`span`,{children:`Try with Local Proxy Viewport`})]}),o&&(0,H.jsx)(`button`,{onClick:o,style:{display:`inline-flex`,alignItems:`center`,backgroundColor:`transparent`,color:`#9ca3af`,border:`none`,padding:`9px 12px`,fontSize:`12px`,cursor:`pointer`,textDecoration:`underline`},title:`Force browser to attempt inline rendering`,children:`Attempt direct iframe anyway`})]})]})})};async function Ne(e,t,n,r){if(typeof window<`u`&&typeof window.showSaveFilePicker==`function`)try{let n=await window.showSaveFilePicker({suggestedName:t,types:r}),i=await n.createWritable();return await i.write(e),await i.close(),{success:!0,filename:t,bytesWritten:e.length,handle:n}}catch(e){if(e.name===`AbortError`)return{success:!1,cancelled:!0};console.warn(`[browserFilePicker] showSaveFilePicker failed, attempting fallback:`,e)}if(typeof document<`u`)try{let r=new Blob([e],{type:n}),i=URL.createObjectURL(r),a=document.createElement(`a`);return a.href=i,a.download=t,a.style.display=`none`,document.body.appendChild(a),a.click(),document.body.removeChild(a),setTimeout(()=>{URL.revokeObjectURL(i)},2e3),{success:!0,filename:t,bytesWritten:e.length}}catch(e){return console.error(`[browserFilePicker] Blob download fallback failed:`,e),{success:!1,error:e.message||`Download fallback failed`}}return{success:!1,error:`Environment does not support file saving`}}async function Pe(e,t){if(typeof window<`u`&&typeof window.showOpenFilePicker==`function`)try{let[e]=await window.showOpenFilePicker({multiple:!1,types:t});if(!e)return{success:!1,cancelled:!0};let n=await e.getFile(),r=await n.arrayBuffer(),i=new Uint8Array(r);return{success:!0,file:n,bytes:i,content:n.type.startsWith(`text/`)||/\.(md|json|yaml|yml|txt|ts|tsx|js|jsx)$/i.test(n.name)?new TextDecoder().decode(i):void 0,filename:n.name,mimeType:n.type||`application/octet-stream`}}catch(e){if(e.name===`AbortError`)return{success:!1,cancelled:!0};console.warn(`[browserFilePicker] showOpenFilePicker failed, attempting fallback:`,e)}return typeof document<`u`?new Promise(t=>{let n=document.createElement(`input`);n.type=`file`,e&&(n.accept=e),n.style.display=`none`,n.onchange=async()=>{let e=n.files?.[0];if(document.body.removeChild(n),!e){t({success:!1,cancelled:!0});return}let r=await e.arrayBuffer(),i=new Uint8Array(r);t({success:!0,file:e,bytes:i,content:e.type.startsWith(`text/`)||/\.(md|json|yaml|yml|txt|ts|tsx|js|jsx)$/i.test(e.name)?new TextDecoder().decode(i):void 0,filename:e.name,mimeType:e.type||`application/octet-stream`})},document.body.appendChild(n),n.click()}):{success:!1,error:`Environment does not support file selection`}}var Fe={png:{mime:`image/png`,extensions:[`.png`],description:`PNG Image (*.png)`},jpg:{mime:`image/jpeg`,extensions:[`.jpg`,`.jpeg`],description:`JPEG Image (*.jpg, *.jpeg)`},jpeg:{mime:`image/jpeg`,extensions:[`.jpg`,`.jpeg`],description:`JPEG Image (*.jpg, *.jpeg)`},webp:{mime:`image/webp`,extensions:[`.webp`],description:`WebP Image (*.webp)`},gif:{mime:`image/gif`,extensions:[`.gif`],description:`GIF Image (*.gif)`},svg:{mime:`image/svg+xml`,extensions:[`.svg`],description:`SVG Vector Graphic (*.svg)`},bmp:{mime:`image/bmp`,extensions:[`.bmp`],description:`Bitmap Image (*.bmp)`},ico:{mime:`image/x-icon`,extensions:[`.ico`],description:`Icon (*.ico)`},avif:{mime:`image/avif`,extensions:[`.avif`],description:`AVIF Image (*.avif)`},mp4:{mime:`video/mp4`,extensions:[`.mp4`],description:`MP4 Video (*.mp4)`},webm:{mime:`video/webm`,extensions:[`.webm`],description:`WebM Video (*.webm)`},ogg:{mime:`video/ogg`,extensions:[`.ogg`,`.ogv`],description:`Ogg Video (*.ogg, *.ogv)`},mov:{mime:`video/quicktime`,extensions:[`.mov`],description:`QuickTime Video (*.mov)`},mkv:{mime:`video/x-matroska`,extensions:[`.mkv`],description:`Matroska Video (*.mkv)`},ts:{mime:`text/typescript`,extensions:[`.ts`],description:`TypeScript (*.ts)`},tsx:{mime:`text/tsx`,extensions:[`.tsx`],description:`TypeScript React (*.tsx)`},js:{mime:`text/javascript`,extensions:[`.js`],description:`JavaScript (*.js)`},jsx:{mime:`text/jsx`,extensions:[`.jsx`],description:`JavaScript React (*.jsx)`},json:{mime:`application/json`,extensions:[`.json`],description:`JSON Document (*.json)`},yaml:{mime:`text/yaml`,extensions:[`.yaml`,`.yml`],description:`YAML Document (*.yaml, *.yml)`},yml:{mime:`text/yaml`,extensions:[`.yaml`,`.yml`],description:`YAML Document (*.yaml, *.yml)`},md:{mime:`text/markdown`,extensions:[`.md`,`.markdown`],description:`Markdown Document (*.md)`},txt:{mime:`text/plain`,extensions:[`.txt`],description:`Plain Text (*.txt)`},py:{mime:`text/x-python`,extensions:[`.py`],description:`Python Script (*.py)`},wasm:{mime:`application/wasm`,extensions:[`.wasm`],description:`WebAssembly Binary (*.wasm)`},db:{mime:`application/x-sqlite3`,extensions:[`.db`,`.sqlite`,`.sqlite3`],description:`SQLite Database (*.db)`},sqlite:{mime:`application/x-sqlite3`,extensions:[`.db`,`.sqlite`,`.sqlite3`],description:`SQLite Database (*.sqlite)`}};function Ie(e,t){let n=e.replace(/:/g,`/`).split(`/`).pop()||`unnamed`,r=n.split(`.`),i=r.length>1?r.pop().toLowerCase():``,a=Fe[i];if(a)return{filename:n,ext:`.${i}`,mime:t||a.mime,description:a.description,pickerTypes:[{description:a.description,accept:{[t||a.mime]:a.extensions}}]};let o=t||`application/octet-stream`;return{filename:n,ext:i?`.${i}`:`.bin`,mime:o,description:`File (*${i?`.${i}`:``})`,pickerTypes:[{description:`All Supported Files`,accept:{[o]:i?[`.${i}`]:[]}}]}}function G(e){if(!e)return null;let t=e.payload;if(!t)return null;if(t.kind===`binary`)return t.data&&t.data.length>0?t.data:null;if(t.kind===`text`)return t.value&&t.value.startsWith(`Content-addressed MCard:`)?null:t.value&&t.value.length>0?new TextEncoder().encode(t.value):null;if(t.kind===`satori`)return t.value?.content&&t.value.content.length>0?new TextEncoder().encode(t.value.content):null;if(t.kind===`scalar`){let e=String(t.value??``);return e.startsWith(`Content-addressed MCard:`)?null:e.length>0?new TextEncoder().encode(e):null}let n=e.content;return typeof n==`string`&&n.length>0&&!n.startsWith(`Content-addressed MCard:`)?new TextEncoder().encode(n):null}async function K(e){if(!e)return new Uint8Array;if(e.content instanceof Uint8Array&&e.content.length>0)return e.content;if(e.content instanceof ArrayBuffer&&e.content.byteLength>0)return new Uint8Array(e.content);if(typeof e.content==`string`&&e.content.startsWith(`data:`))try{return te(e.content)}catch(e){console.warn(`[mcardByteExtractor] Base64 decoding failed:`,e)}if(typeof e.content==`string`&&e.content.length>0&&!e.content.startsWith(`Content-addressed MCard:`)){let t=e.detectedType===`image`||e.detectedType===`media`||e.mimeType&&(e.mimeType.startsWith(`image/`)||e.mimeType.startsWith(`video/`)),n=e.name.endsWith(`.txt`)||e.name.endsWith(`.url`)||e.name.endsWith(`.md`)||e.path?.endsWith(`.txt`);if(!t||n)return new TextEncoder().encode(e.content)}if(e.coreCard){let t=G(e.coreCard);if(t&&t.length>0)return t}let t=(e.path||e.handle||``).replace(/:/g,`/`);if(t&&i!==void 0&&i.exists&&i.exists(t))try{let e=G(i.readFile(t));if(e&&e.length>0)return e}catch{}if(typeof window<`u`&&window.location?.origin&&typeof fetch<`u`)try{let t=E(e.path||e.handle,e.hash);if(t){let e=t.startsWith(`http`)?t:`${window.location.origin}${t}`,n=e.includes(`?`)?`${e}&download=1`:`${e}?download=1`,r=await fetch(n);if(r.ok){let e=await r.arrayBuffer(),t=new Uint8Array(e);if(t.length>0)return t}}}catch(e){console.warn(`[mcardByteExtractor] Server raw fetch failed:`,e)}if(typeof process<`u`&&process.versions?.node)try{let t=await C(()=>import(`./empty.DOwCrGXH.js`),[]),n=await C(()=>import(`./path.CR60mj9W.js`),[]),r={}.MCARD_WORKSPACE_ROOT||n.resolve(process.cwd(),_.paths.workspace_dirname),i=process.cwd(),a=(e.path||e.handle||``).replace(/:/g,`/`).replace(/^[/\\]+/,``),o=[n.resolve(r,a),n.resolve(i,a),n.resolve(i,_.paths.assets_dirname,a)];for(let e of o)if(t.existsSync(e)&&t.statSync(e).isFile())return new Uint8Array(t.readFileSync(e))}catch{}return typeof e.content==`string`?new TextEncoder().encode(e.content):new Uint8Array}async function Le(e){if(!e)return!1;if((e.detectedType===`image`||e.mimeType&&e.mimeType.startsWith(`image/`)||/\.(png|jpe?g|webp|gif|bmp|ico|avif)$/i.test(e.name||e.path||``))&&typeof window<`u`&&typeof document<`u`)try{let t=await K(e);if(t.length>0){let n=e.mimeType||`image/png`,r=new Blob([t],{type:n}),i=URL.createObjectURL(r),a=new Image;a.crossOrigin=`anonymous`,await new Promise((e,t)=>{a.onload=()=>e(),a.onerror=()=>t(Error(`Image decode error`)),a.src=i});let o=document.createElement(`canvas`);o.width=a.naturalWidth||100,o.height=a.naturalHeight||100;let s=o.getContext(`2d`);if(s){s.drawImage(a,0,0);let e=await new Promise(e=>o.toBlob(e,`image/png`));if(URL.revokeObjectURL(i),e&&navigator.clipboard&&window.ClipboardItem){let t=window.ClipboardItem;return await navigator.clipboard.write([new t({"image/png":e})]),!0}}}}catch(e){console.warn(`[copyMCardToClipboard] Image binary copy failed, falling back to text:`,e)}try{let t=``;if(typeof e.content==`string`&&e.content.length>0&&!e.content.startsWith(`Content-addressed MCard:`))t=e.content;else if(e.detectedType===`media`||e.mimeType&&e.mimeType.startsWith(`video/`)||/\.(mp4|webm|ogg|mov|mkv)$/i.test(e.name||e.path||``))t=E(e.path||e.handle,e.hash)||e.handle||e.path||``;else{let n=await K(e);t=n.length>0?new TextDecoder(`utf-8`).decode(n):e.handle||e.path||``}if(typeof navigator<`u`&&navigator.clipboard)try{return await navigator.clipboard.writeText(t),!0}catch(e){console.warn(`[copyMCardToClipboard] navigator.clipboard.writeText rejected, attempting execCommand fallback:`,e)}if(typeof document<`u`){let e=document.createElement(`textarea`);e.value=t,e.style.position=`fixed`,e.style.opacity=`0`,document.body.appendChild(e),e.focus(),e.select();let n=document.execCommand(`copy`);if(document.body.removeChild(e),n)return!0}}catch(e){console.error(`[copyMCardToClipboard] Copy failed:`,e)}return!1}async function Re(e,t,n){if(!e)return{success:!1,error:`No MCard specified for resealing`};try{let n;try{n=se(t)}catch{n=`blake3-${Date.now().toString(16)}-${Math.random().toString(16).slice(2,10)}`}let r=oe.create(`did:clm:agent:studio`),a=e.path||e.handle.replace(/:/g,`/`),o=i.writeFile(a,t,r),s=t;if(e.detectedType===`image`||e.mimeType&&e.mimeType.startsWith(`image/`))s=`data:${e.mimeType||`image/png`};base64,${k(t)}`;else try{s=new TextDecoder(`utf-8`).decode(t)}catch{s=t}let c={...e,hash:n,content:s,sizeBytes:t.length,coreCard:o};h.setKey(e.handle,c),e.path&&h.setKey(e.path,c);let l=m.get();return l&&(l.handle===e.handle||l.path===e.path)&&m.set(c),T(),{success:!0,updatedMCard:c,newHash:n}}catch(e){return console.error(`[mcardResealer] Resealing failed:`,e),{success:!1,error:e.message||`Resealing failed`}}}async function ze(e,t){if(typeof window>`u`||typeof window.showDirectoryPicker!=`function`)return{success:!1,error:`Recursive directory export requires a browser supporting window.showDirectoryPicker`};try{let n=await window.showDirectoryPicker({mode:`readwrite`}),r=0,i=e.endsWith(`:`)?e:`${e}:`,a=Object.values(t).filter(t=>t&&t.handle&&(t.handle===e||t.handle.startsWith(i)));for(let e of a){let t=e.handle.slice(i.length).replace(/:/g,`/`).split(`/`),a=t.pop()||e.name||`card.txt`,o=n;for(let e of t)e&&(o=await o.getDirectoryHandle(e,{create:!0}));let s=await(await o.getFileHandle(a,{create:!0})).createWritable(),c=await K(e);await s.write(c),await s.close(),r++}return{success:!0,filesProcessed:r,dirName:n.name}}catch(e){return e.name===`AbortError`?{success:!1,cancelled:!0}:{success:!1,error:e.message||`Directory export failed`}}}async function Be(e,t){if(!e)return{success:!1,error:`No active MCard provided for save`};let n=await K(e),r=Ie(t||e.name||e.path||e.handle,e.mimeType),i=t||e.name||r.filename;i=i.replace(/:/g,`_`),r.ext&&!i.toLowerCase().endsWith(r.ext.toLowerCase())&&(i+=r.ext);let a=await Ne(n,i,r.mime,r.pickerTypes);return a.success&&l({lastSavedIso:new Date().toISOString(),isPersistent:!0}),a}async function Ve(e){let t=e?.acceptedTypes?.join(`,`);return Pe(t,e?.acceptedTypes?[{description:e.mimeDescription||`Supported Files`,accept:{"*/*":e.acceptedTypes}}]:void 0)}function He({mcard:e,onContentReplaced:t}){let[n,r]=(0,N.useState)(!1),[i,a]=(0,N.useState)(!1),[o,s]=(0,N.useState)(!1),[c,l]=(0,N.useState)(!1),[u,d]=(0,N.useState)(null),[f,p]=(0,N.useState)(`idle`),m=(0,N.useCallback)((e,t=`success`,n=2500)=>{d(e),p(t),setTimeout(()=>{d(null),p(`idle`)},n)},[]),g=(0,N.useCallback)(async()=>{if(e)try{await Le(e)?(l(!0),m(`Copied to clipboard!`,`success`),setTimeout(()=>l(!1),2e3)):m(`Failed to copy to clipboard`,`error`,2500)}catch(e){m(`Copy error: ${e.message}`,`error`,2500)}},[e,m]),_=(0,N.useCallback)(async()=>{if(e&&!n){r(!0);try{let t=await Be(e);t.success?m(`Saved: ${t.filename||e.name} (${t.bytesWritten??0} B)`,`success`):!t.cancelled&&t.error&&m(`Save error: ${t.error}`,`error`,3500)}catch(e){e.name!==`AbortError`&&m(`Save failed: ${e.message}`,`error`,3500)}finally{r(!1)}}},[e,n,m]),v=(0,N.useCallback)(async()=>{if(e&&!i){a(!0);try{let n=await Ve();if(n.success&&n.bytes){let r=await Re(e,n.bytes,n.filename);r.success&&r.updatedMCard?(m(`Replaced: ${n.filename||e.name} (Resealed)`,`success`),t&&t(r.updatedMCard.content||``,r.newHash||``)):r.error&&m(`Reseal error: ${r.error}`,`error`,3500)}else!n.cancelled&&n.error&&m(`Open error: ${n.error}`,`error`,3500)}catch(e){e.name!==`AbortError`&&m(`Replace failed: ${e.message}`,`error`,3500)}finally{a(!1)}}},[e,i,m,t]),y=(0,N.useCallback)(async()=>{if(e&&!o){s(!0);try{let t=h.get(),n=await ze(e.handle,t);n.success?m(`Exported ${n.filesProcessed} files to ${n.dirName}`,`success`,3e3):!n.cancelled&&n.error&&m(`Export error: ${n.error}`,`error`,3500)}catch(e){e.name!==`AbortError`&&m(`Export failed: ${e.message}`,`error`,3500)}finally{s(!1)}}},[e,o,m]);return(0,N.useEffect)(()=>{let e=e=>{let t=e.metaKey||e.ctrlKey;t&&(e.key===`s`||e.key===`S`)?(e.preventDefault(),e.stopPropagation(),_()):t&&e.shiftKey&&(e.key===`r`||e.key===`R`)&&(e.preventDefault(),e.stopPropagation(),v())};return window.addEventListener(`keydown`,e,{capture:!0}),()=>{window.removeEventListener(`keydown`,e,{capture:!0})}},[_,v]),{isSaving:n,isReplacing:i,isExportingDir:o,isCopied:c,statusMessage:u,statusType:f,handleSave:_,handleReplace:v,handleCopy:g,handleExportDir:y}}var Ue=({mcard:e,detectedType:t,extraActions:n,onContentReplaced:r,className:i})=>{let{isSaving:a,isReplacing:o,isExportingDir:s,isCopied:c,statusMessage:l,statusType:u,handleSave:d,handleReplace:f,handleCopy:p,handleExportDir:m}=He({mcard:e,onContentReplaced:r});if(!e)return null;let h=e.handle?.endsWith(`:`)||e.detectedType===`schema`,g=e.hash?e.hash.startsWith(`blake3:`)?e.hash.slice(7,15):e.hash.slice(0,8):``;return(0,H.jsxs)(`div`,{className:`card-panel-actions-toolbar ${i||``}`,style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,height:`28px`,padding:`0 10px`,backgroundColor:`#181818`,borderBottom:`1px solid #2d2d2d`,fontSize:`11px`,color:`#cccccc`,flexShrink:0,userSelect:`none`,gap:`8px`},children:[(0,H.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`8px`,overflow:`hidden`},children:[(0,H.jsx)(`span`,{style:{fontWeight:600,color:`#e0e0e0`,whiteSpace:`nowrap`,textOverflow:`ellipsis`,overflow:`hidden`,maxWidth:`180px`},title:e.path||e.handle,children:e.name||e.path?.split(`/`).pop()||`Card`}),e.mimeType&&(0,H.jsx)(`span`,{style:{padding:`1px 5px`,backgroundColor:`#252526`,border:`1px solid #3c3c3c`,borderRadius:`3px`,color:`#9cdcfe`,fontSize:`10px`,whiteSpace:`nowrap`},children:e.mimeType}),g&&(0,H.jsxs)(`span`,{style:{padding:`1px 5px`,backgroundColor:`#1e1e1e`,border:`1px solid #333333`,borderRadius:`3px`,color:`#858585`,fontSize:`10px`,fontFamily:`monospace`,whiteSpace:`nowrap`},title:`Full BLAKE3 Hash: ${e.hash}`,children:[`#`,g]}),l&&(0,H.jsx)(`span`,{style:{padding:`1px 6px`,borderRadius:`3px`,fontSize:`10px`,fontWeight:500,backgroundColor:u===`error`?`rgba(244, 135, 113, 0.2)`:`rgba(115, 201, 145, 0.2)`,color:u===`error`?`#f48771`:`#73c991`,border:`1px solid ${u===`error`?`#f48771`:`#73c991`}`,animation:`fadeIn 0.15s ease-in`},children:l})]}),(0,H.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`6px`,flexShrink:0},children:[n&&(0,H.jsx)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`4px`,marginRight:`6px`},children:n}),h&&(0,H.jsxs)(`button`,{type:`button`,"data-testid":`card-action-export-dir`,disabled:s,onClick:m,title:`Export Directory Subtree to OS Folder`,"aria-label":`Export Directory`,style:{display:`flex`,alignItems:`center`,gap:`4px`,padding:`2px 7px`,backgroundColor:`#2d2d2d`,color:`#e0e0e0`,border:`1px solid #3c3c3c`,borderRadius:`3px`,cursor:s?`wait`:`pointer`,fontSize:`10px`},children:[(0,H.jsx)(`span`,{children:`📁`}),(0,H.jsx)(`span`,{children:s?`Exporting...`:`Export Folder`})]}),(0,H.jsxs)(`button`,{type:`button`,"data-testid":`card-action-copy`,onClick:p,title:`Copy MCard content or binary to OS Clipboard`,"aria-label":`Copy to Clipboard`,style:{display:`flex`,alignItems:`center`,gap:`4px`,padding:`2px 8px`,backgroundColor:c?`#2e7d32`:`#2a2d2e`,color:c?`#ffffff`:`#cccccc`,border:`1px solid #3c3c3c`,borderRadius:`3px`,cursor:`pointer`,fontSize:`10px`,fontWeight:500,transition:`all 0.1s ease`},children:[(0,H.jsx)(`span`,{children:c?`✓`:`📋`}),(0,H.jsx)(`span`,{children:c?`Copied`:`Copy`})]}),(0,H.jsxs)(`button`,{type:`button`,"data-testid":`card-action-save`,disabled:a,onClick:d,title:`Save / Export MCard to OS File System (Cmd+S / Ctrl+S)`,"aria-label":`Save to Disk`,style:{display:`flex`,alignItems:`center`,gap:`4px`,padding:`2px 8px`,backgroundColor:`#0e639c`,color:`#ffffff`,border:`none`,borderRadius:`3px`,cursor:a?`wait`:`pointer`,fontSize:`10px`,fontWeight:500,transition:`background 0.1s ease`},children:[(0,H.jsx)(`span`,{children:`📥`}),(0,H.jsx)(`span`,{children:a?`Saving...`:`Save As`})]}),(0,H.jsxs)(`button`,{type:`button`,"data-testid":`card-action-replace`,disabled:o,onClick:f,title:`Upload / Replace MCard from OS File System (Cmd+Shift+R)`,"aria-label":`Replace File`,style:{display:`flex`,alignItems:`center`,gap:`4px`,padding:`2px 8px`,backgroundColor:`#2a2d2e`,color:`#cccccc`,border:`1px solid #3c3c3c`,borderRadius:`3px`,cursor:o?`wait`:`pointer`,fontSize:`10px`,transition:`all 0.1s ease`},children:[(0,H.jsx)(`span`,{children:`📤`}),(0,H.jsx)(`span`,{children:o?`Replacing...`:`Replace`})]})]})]})},We=({versionList:e,showHistoryDropdown:t,setShowHistoryDropdown:n,isViewingHistorical:r,currentVersionItem:i,activeMCard:a,panelId:o,historyError:s})=>{let[c,l]=(0,N.useState)(null),[u,d]=(0,N.useState)(null),f=(0,N.useRef)(null),p=(0,N.useRef)(null);(0,N.useLayoutEffect)(()=>{if(!t||!p.current)return;let e=p.current.getBoundingClientRect(),n=Math.max(8,Math.min(e.left,window.innerWidth-328));d({top:e.bottom+4,left:n})},[t]),(0,N.useEffect)(()=>{if(!t)return;let e=e=>{e.key===`Escape`&&n(!1)},r=e=>{f.current&&!f.current.contains(e.target)&&n(!1)};return document.addEventListener(`keydown`,e),document.addEventListener(`mousedown`,r),()=>{document.removeEventListener(`keydown`,e),document.removeEventListener(`mousedown`,r)}},[t,n]);let m=r&&!i,h=r&&!!i,g=s??e.reason,_=!!s||!!e.degraded,v=!_&&e.length===0,y=m?`Snapshot (untracked)`:h&&i?`v${i.version} (Snapshot)`:_?`History (unavailable)`:v?`History (0)`:`History (v${e.length})`,b=_?`History unavailable: ${g||`version lookup failed`}`:m?`Viewing an untracked snapshot (${a.hash?`${a.hash.slice(0,12)}...`:`unknown hash`}) — not present in recorded history`:h&&i?`Viewing historical snapshot v${i.version}. Click to inspect and navigate.`:v?`No version history recorded for this MCard`:e.length===1?`1 version recorded (HEAD). Only the current version exists.`:`${e.length} versions available in CAS history. Click to inspect and navigate.`;return(0,H.jsxs)(`div`,{style:{position:`relative`},ref:f,children:[(0,H.jsxs)(`button`,{type:`button`,ref:p,"data-testid":`mcard-history-trigger`,onClick:()=>n(e=>!e),style:{display:`inline-flex`,alignItems:`center`,gap:`5px`,fontSize:`11px`,padding:`2px 8px`,backgroundColor:t?`rgba(14, 99, 156, 0.5)`:_||m?`rgba(229, 192, 123, 0.15)`:e.length>1?`rgba(14, 99, 156, 0.25)`:`rgba(255, 255, 255, 0.05)`,color:_||m?`#e5c07b`:v?`#666666`:e.length>1?`#75beff`:`var(--vscode-foreground, #cccccc)`,border:`1px solid`,borderColor:_||m?`rgba(229, 192, 123, 0.55)`:e.length>1?`rgba(14, 99, 156, 0.5)`:`var(--vscode-input-border, #3c3c3c)`,borderRadius:`3px`,cursor:`pointer`,opacity:v?.7:1,fontWeight:e.length>1||_?600:400,transition:`all 0.15s ease`},title:b,children:[(0,H.jsx)(`span`,{children:_?`⚠️`:`⏱`}),(0,H.jsx)(`span`,{children:y}),(e.length>1||m)&&(0,H.jsx)(`span`,{style:{width:`6px`,height:`6px`,borderRadius:`50%`,backgroundColor:r?`#e5c07b`:`#89d185`,display:`inline-block`},title:r?`Viewing historical snapshot`:`Active HEAD version`})]}),t&&(0,H.jsxs)(`div`,{style:{position:`fixed`,top:u?`${u.top}px`:`0px`,left:u?`${u.left}px`:`0px`,visibility:u?`visible`:`hidden`,width:`320px`,maxHeight:`340px`,backgroundColor:`var(--vscode-sideBar-background, #252526)`,border:`1px solid var(--vscode-editorGroup-border, #454545)`,boxShadow:`0 6px 18px rgba(0, 0, 0, 0.6)`,borderRadius:`4px`,zIndex:1e3,overflowY:`auto`,padding:`8px`,display:`flex`,flexDirection:`column`,gap:`6px`,userSelect:`none`},children:[(0,H.jsxs)(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`,borderBottom:`1px solid rgba(255, 255, 255, 0.1)`,paddingBottom:`5px`,fontSize:`11px`,fontWeight:600},children:[(0,H.jsxs)(`span`,{style:{display:`flex`,alignItems:`center`,gap:`6px`},children:[(0,H.jsx)(`span`,{children:`⏱`}),(0,H.jsx)(`span`,{children:`MCard Version Provenance`}),(0,H.jsxs)(`span`,{style:{opacity:.6,fontWeight:400},children:[`(`,e.length,` total)`]})]}),(0,H.jsx)(`button`,{type:`button`,onClick:()=>n(!1),style:{background:`transparent`,border:`none`,color:`#858585`,cursor:`pointer`,fontSize:`12px`},children:`✕`})]}),_&&(0,H.jsxs)(`div`,{className:`card-version-empty-state`,"data-testid":`history-degraded-state`,style:{padding:`10px 8px`,backgroundColor:`rgba(235, 168, 52, 0.12)`,border:`1px solid rgba(235, 168, 52, 0.3)`,borderRadius:`3px`,color:`#f0ad4e`,fontSize:`11px`,lineHeight:1.5},children:[`⚠️ History unavailable: `,g||`version lookup failed`]}),v&&(0,H.jsx)(`div`,{className:`card-version-empty-state`,"data-testid":`history-empty-state`,style:{padding:`16px 8px`,textAlign:`center`,fontSize:`11px`,color:`#858585`},children:`No version history recorded`}),m&&(0,H.jsxs)(`div`,{"data-testid":`history-untracked-note`,style:{padding:`6px 8px`,fontSize:`10px`,color:`#e5c07b`,border:`1px solid rgba(229, 192, 123, 0.35)`,borderRadius:`3px`,backgroundColor:`rgba(229, 192, 123, 0.08)`},children:[`Viewing untracked snapshot (`,a.hash?`${a.hash.slice(0,12)}...`:`unknown hash`,`) — not present in recorded history.`]}),e.length===1&&!m&&(0,H.jsx)(`div`,{style:{fontSize:`10px`,color:`#858585`,padding:`2px 4px`,fontStyle:`italic`},children:`Only the current version exists.`}),e.map(e=>{let t=e.isCurrentView;return(0,H.jsxs)(`div`,{className:`card-version-item`,onClick:async()=>{await O(a.handle||a.path,e.hash,o),n(!1)},style:{padding:`6px 8px`,backgroundColor:t?`rgba(14, 99, 156, 0.3)`:`rgba(255, 255, 255, 0.02)`,border:`1px solid`,borderColor:t?`rgba(14, 99, 156, 0.6)`:`rgba(255, 255, 255, 0.05)`,borderRadius:`3px`,cursor:`pointer`,display:`flex`,flexDirection:`column`,gap:`3px`,transition:`background 0.1s ease`},children:[(0,H.jsxs)(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[(0,H.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`6px`},children:[(0,H.jsxs)(`span`,{style:{fontWeight:600,color:e.isHead?`#75beff`:`#cccccc`},children:[`v`,e.version]}),e.isHead&&(0,H.jsx)(`span`,{style:{fontSize:`9px`,padding:`1px 4px`,backgroundColor:`#0e639c`,color:`#ffffff`,borderRadius:`2px`,fontWeight:600},children:`HEAD`}),t&&(0,H.jsx)(`span`,{style:{fontSize:`9px`,padding:`1px 4px`,backgroundColor:`rgba(115, 201, 145, 0.25)`,color:`#73c991`,borderRadius:`2px`,fontWeight:600},children:`CURRENT`})]}),(0,H.jsx)(`span`,{style:{fontSize:`10px`,opacity:.6},children:e.changedAt&&e.changedAt!==`—`?new Date(e.changedAt).toLocaleString():`—`})]}),(0,H.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,gap:`6px`},children:[(0,H.jsx)(`div`,{style:{fontFamily:`monospace`,fontSize:`10px`,color:`#858585`,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`,flex:1},title:e.hash,children:e.hash}),(0,H.jsx)(`button`,{type:`button`,onClick:t=>{t.stopPropagation(),navigator.clipboard.writeText(e.hash),l(e.hash),setTimeout(()=>l(null),1500)},style:{background:`transparent`,border:`none`,color:c===e.hash?`#73c991`:`#858585`,cursor:`pointer`,fontSize:`10px`,padding:`1px 4px`,borderRadius:`2px`,flexShrink:0},title:`Copy full hash to clipboard`,children:c===e.hash?`✓`:`📋`})]})]},e.hash)})]})]})},Ge=({message:e=`Loading viewlet...`})=>(0,H.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`center`,height:`100%`,width:`100%`,color:`var(--vscode-descriptionForeground, #888888)`,fontSize:`12px`,gap:`8px`},"data-testid":`viewlet-loading-spinner`,children:[(0,H.jsx)(`span`,{className:`codicon codicon-loading codicon-modifier-spin`}),(0,H.jsx)(`span`,{children:e})]}),Ke=[{id:`visual`,label:`Visual View`},{id:`text`,label:`Text View`},{id:`raw_data`,label:`Raw Data`},{id:`raw`,label:`Payload CAS`},{id:`merkle`,label:`Merkle Proof`}];function q(e,t){return W.canFit(e,t)}function qe({panelId:e}={}){let t=g(m),n=g(h),r=g(u),i=e&&e!==`workspace-primary`&&n[e]?n[e]:t,[a,o]=(0,N.useState)(`visual`),[s,c]=(0,N.useState)(!1),[l,d]=(0,N.useState)([]),[f,p]=(0,N.useState)(null),[_,y]=(0,N.useState)(!1),b=(0,N.useRef)(null);(0,N.useEffect)(()=>{if(i){let e=i.handle||i.path;if(e!==b.current&&(b.current=e,q(`visual`,i)?o(`visual`):q(`text`,i)?o(`text`):o(`raw_data`)),e){let t=re(e,i.hash);d(t.versions),p(t.degraded?t.reason||`version lookup failed`:null)}}else b.current=null,d([]),p(null)},[i?.handle,i?.hash,i?.path,i?.content,r]);let x=l.find(e=>e.isCurrentView),S=l.find(e=>e.isHead),C=!!(S&&i?.hash&&i.hash!==S.hash);if(!i)return(0,H.jsx)(ie,{});let w=W.findBestViewlet(i,a),T=w?.component;return(0,H.jsxs)(`div`,{className:`card-panel-container`,style:{display:`flex`,flexDirection:`column`,width:`100%`,height:`100%`,backgroundColor:`var(--vscode-editor-background, #1e1e1e)`,color:`var(--vscode-editor-foreground, #cccccc)`,overflow:`hidden`,position:`relative`},children:[(0,H.jsxs)(`div`,{className:`card-panel-header`,style:{padding:`0 16px`,height:`35px`,display:`flex`,justifyContent:`space-between`,alignItems:`center`,borderBottom:`1px solid var(--vscode-sideBar-border, #333333)`,backgroundColor:`var(--vscode-sideBarSectionHeader-background, #1e1e1e)`,userSelect:`none`,flexShrink:0,gap:`10px`,overflowX:`auto`,overflowY:`hidden`,whiteSpace:`nowrap`},children:[(0,H.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`8px`,minWidth:0,flexShrink:0},children:[(0,H.jsx)(`span`,{style:{fontWeight:600,fontSize:`12px`,color:`#e0e0e0`,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`,maxWidth:`180px`},title:i.name,children:i.name}),(0,H.jsxs)(`span`,{className:`correctness-badge-success`,title:`Computationally verified by VCard witness`,children:[(0,H.jsx)(v,{size:12,color:`#89d185`}),(0,H.jsx)(`span`,{children:`VCard Witness: PASS`})]}),(0,H.jsx)(`span`,{className:`misu-badge`,children:`MISU READ-ONLY`}),(0,H.jsx)(We,{versionList:l,showHistoryDropdown:s,setShowHistoryDropdown:c,isViewingHistorical:C,currentVersionItem:x,activeMCard:i,panelId:e,historyError:f})]}),(0,H.jsx)(`div`,{style:{display:`flex`,gap:`3px`,fontSize:`11px`,flexShrink:0},children:Ke.map(e=>{let t=q(e.id,i),n=a===e.id;return(0,H.jsx)(`button`,{"data-tab-id":e.id,"data-active":n?`true`:`false`,disabled:!t,onClick:()=>{t&&o(e.id)},title:t?e.label:`${e.label} (Not available for ${i.mimeType||`this MCard`})`,style:{padding:`2px 8px`,cursor:t?`pointer`:`not-allowed`,backgroundColor:n?`var(--vscode-button-background, #0e639c)`:`transparent`,color:n?`#ffffff`:t?`var(--vscode-foreground, #cccccc)`:`#666666`,border:`1px solid`,borderColor:n?`var(--vscode-button-background, #0e639c)`:t?`var(--vscode-input-border, #3c3c3c)`:`#282828`,borderRadius:`2px`,fontSize:`11px`,opacity:t?1:.35,transition:`all 0.1s ease`,userSelect:`none`},children:e.label},e.id)})})]}),(0,H.jsx)(Ue,{mcard:i,detectedType:i.detectedType}),C&&(0,H.jsxs)(`div`,{"data-testid":`historical-snapshot-banner`,className:`card-panel-historical-banner`,style:{padding:`4px 16px`,backgroundColor:`rgba(229, 192, 123, 0.15)`,borderBottom:`1px solid rgba(229, 192, 123, 0.35)`,display:`flex`,alignItems:`center`,justifyContent:`space-between`,fontSize:`11px`,color:`#e5c07b`,flexShrink:0,gap:`8px`},children:[(0,H.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`8px`},children:[(0,H.jsx)(`span`,{children:`⏳`}),(0,H.jsx)(`span`,{children:x?(0,H.jsxs)(H.Fragment,{children:[`Viewing historical snapshot `,(0,H.jsxs)(`strong`,{children:[`v`,x.version]}),` (`,x.hash.slice(0,10),`...)`]}):(0,H.jsxs)(H.Fragment,{children:[`Viewing untracked snapshot `,(0,H.jsxs)(`strong`,{children:[`(`,i.hash?`${i.hash.slice(0,10)}...`:`unknown hash`,`)`]}),` — not in recorded history`]})}),x&&(0,H.jsxs)(`span`,{style:{opacity:.7,fontSize:`10px`},children:[`• `,x.changedAt&&x.changedAt!==`—`?new Date(x.changedAt).toLocaleString():`—`]})]}),(0,H.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`8px`,flexShrink:0},children:[(0,H.jsx)(`button`,{type:`button`,disabled:_,onClick:async()=>{let e=x?.hash??i.hash;if(!e)return;let t=x?`v${x.version}`:`this untracked snapshot`;if(typeof window>`u`||window.confirm(`Restore ${t} as the active HEAD? This will commit snapshot ${e.slice(0,8)} as the latest revision.`)){y(!0);try{await ee(i.handle||i.path,e)}finally{y(!1)}}},style:{padding:`2px 8px`,backgroundColor:`#0e639c`,color:`#ffffff`,border:`none`,borderRadius:`2px`,fontSize:`10px`,cursor:_?`wait`:`pointer`,fontWeight:600},title:`Rebind the MCard handle to this historical version, committing it as a new HEAD`,children:_?`Restoring...`:`↶ Restore as HEAD`}),(0,H.jsxs)(`button`,{type:`button`,onClick:async()=>{S&&await O(i.handle||i.path,S.hash,e)},style:{padding:`2px 8px`,backgroundColor:`transparent`,color:`var(--vscode-foreground, #cccccc)`,border:`1px solid rgba(255, 255, 255, 0.2)`,borderRadius:`2px`,fontSize:`10px`,cursor:`pointer`},title:`Return to the active HEAD version`,children:[`Back to HEAD (v`,S?.version,`) ✕`]})]})]}),(0,H.jsx)(`div`,{className:`card-panel-content`,style:{flex:1,width:`100%`,height:`100%`,overflow:w?.isFullBleed?`hidden`:`auto`,position:`relative`},children:(0,H.jsx)(Ae,{viewletId:w?.id,onFallbackToText:()=>o(`text`),onFallbackToRaw:()=>o(`raw_data`),children:T?(0,H.jsx)(N.Suspense,{fallback:(0,H.jsx)(Ge,{}),children:(0,H.jsx)(T,{mcard:i,activeTab:a,isFullBleed:w?.isFullBleed})}):(0,H.jsx)(`div`,{style:{padding:`24px`,opacity:.6},children:`No compatible viewlet found for this MCard.`})},`${i.handle||i.path}:${i.hash||`no-hash`}:${a}:${w?.id||`none`}`)})]})}function Je(e){if(!e||e.trim()===``)return(0,H.jsx)(`span`,{children:`\xA0`});if(e.trim().startsWith(`//`)||e.trim().startsWith(`#`)||e.trim().startsWith(`/*`))return(0,H.jsx)(`span`,{style:{color:`#6a9955`},children:e});let t=e.match(/^(\s*)(["']?[\w\-.:/]+["']?\s*:\s*)(.*)$/);if(t){let[,e,n,r]=t,i=`#d4d4d4`;return r.startsWith(`"`)||r.startsWith(`'`)?i=`#ce9178`:/^\s*(true|false|null)\b/i.test(r)?i=`#569cd6`:/^\s*\d+(\.\d+)?\b/.test(r)&&(i=`#b5cea8`),(0,H.jsxs)(`span`,{children:[e,(0,H.jsx)(`span`,{style:{color:`#9cdcfe`},children:n}),(0,H.jsx)(`span`,{style:{color:i},children:r})]})}let n=e.replace(/\b(import|export|from|const|let|var|function|return|interface|type|class|extends|implements|true|false|null|async|await)\b/g,`<span style="color: #569cd6">$1</span>`);return(0,H.jsx)(`span`,{dangerouslySetInnerHTML:{__html:n}})}var Ye=({panelId:e})=>{let t=g(m),n=g(h),r=e&&e!==`workspace-primary`&&n[e]?n[e]:t,[i,a]=(0,N.useState)(null);if(!r)return(0,H.jsx)(`div`,{style:{display:`flex`,flexDirection:`column`,alignItems:`center`,justifyContent:`center`,height:`100%`,color:`#888888`,padding:`24px`,textAlign:`center`},children:(0,H.jsx)(`div`,{style:{fontSize:`13px`},children:`No file open in editor.`})});let o=(typeof r.content==`string`?r.content:JSON.stringify(r,null,2)).split(`
|
|
5
|
-
`);return(0,H.jsx)(`div`,{className:`editor-panel-container`,style:{display:`flex`,flexDirection:`column`,height:`100%`,backgroundColor:`var(--vscode-editor-background, #1e1e1e)`,fontFamily:`var(--vscode-editor-font-family)`,fontSize:`13px`,overflow:`hidden`},children:(0,H.jsxs)(`div`,{style:{flex:1,overflow:`auto`,display:`flex`,position:`relative`,backgroundColor:`#1e1e1e`},children:[(0,H.jsx)(`div`,{style:{padding:`8px 0`,textAlign:`right`,color:`#6e7681`,borderRight:`1px solid #282828`,userSelect:`none`,minWidth:`46px`,backgroundColor:`#1e1e1e`,flexShrink:0,lineHeight:`19px`,fontSize:`12px`},children:o.map((e,t)=>(0,H.jsx)(`div`,{style:{paddingRight:`12px`,color:i===t?`#c6c6c6`:`#6e7681`,backgroundColor:i===t?`rgba(255, 255, 255, 0.04)`:`transparent`},children:t+1},t))}),(0,H.jsx)(`div`,{style:{padding:`8px 12px`,flex:1,whiteSpace:`pre`,overflowX:`auto`,color:`#d4d4d4`,lineHeight:`19px`},children:o.map((e,t)=>(0,H.jsx)(`div`,{onMouseEnter:()=>a(t),onMouseLeave:()=>a(null),style:{backgroundColor:i===t?`rgba(255, 255, 255, 0.03)`:`transparent`,borderRadius:`2px`},children:Je(e)},t))})]})})};function Xe({activeTabKey:e,openTabs:t={},editorMode:n=`card`,onTabSelect:r,onTabClose:i,debounceMs:a=250}){let o=(0,N.useRef)(null),s=g(d),c=(0,N.useRef)(e);c.current=e;let l=(0,N.useRef)(t);l.current=t;let u=(0,N.useRef)(r);u.current=r;let f=(0,N.useRef)(i);f.current=i;let p=(0,N.useRef)(!1),_=(0,N.useCallback)(e=>{let t=e.api;o.current=t;let r=!1;if(s&&typeof s==`object`&&Object.keys(s).length>0)try{t.fromJSON(s),t.panels.length>0?r=!0:console.warn(`[useDockviewSync] Serialized layout had 0 panels, falling back to open tabs`)}catch(e){console.warn(`[useDockviewSync] Failed to restore serialized layout, fallback to open tabs:`,e)}if(!r){let e=l.current,r=Object.keys(e);r.length>0?r.forEach(r=>{let i=e[r],a=n===`code`?`code`:`card`;t.addPanel({id:r,component:a,title:i.title||r.split(`/`).pop()||r,params:{handle:i.handle||r,path:i.path||r}})}):t.addPanel({id:`workspace-primary`,component:n===`code`?`code`:`card`,title:`Spatial Workbench`})}let i,g=t.onDidLayoutChange(()=>{clearTimeout(i),i=setTimeout(()=>{try{if(t.panels.length>0){let e=t.toJSON();d.set(e)}else d.set(null)}catch{}},a)}),_=t.onDidActivePanelChange(e=>{if(!p.current&&e?.panel&&e.panel.id!==`workspace-primary`){let t=e.panel.id;c.current!==t&&u.current?.(t);let n=h.get()[t];if(n)m.set(n);else{let e=l.current[t];e&&m.set({handle:e.handle||t,path:e.path||t,name:e.title||t,hash:e.hash||``,detectedType:e.detectedType||`code`,epistemicStatus:`empirical`,readOnly:!1})}}}),v=t.onDidRemovePanel(e=>{p.current||e?.id&&e.id!==`workspace-primary`&&f.current?.(e.id)});return()=>{clearTimeout(i),g.dispose(),_.dispose(),v.dispose()}},[s,n,a]);return(0,N.useEffect)(()=>{let r=o.current;if(r){p.current=!0;try{let i=Object.keys(t),a=r.panels,o=new Set(a.map(e=>e.id));if(i.forEach(e=>{if(!o.has(e)){let i=t[e],a=n===`code`?`code`:`card`;try{r.addPanel({id:e,component:a,title:i?.title||e.split(`/`).pop()||e,params:{handle:i?.handle||e,path:i?.path||e}})}catch(t){console.warn(`[useDockviewSync] Failed to dynamically add panel:`,e,t)}}}),[...a].forEach(e=>{e.id===`workspace-primary`?i.length>0&&e.api.close():e.id!==`workspace-secondary`&&!t[e.id]&&e.api.close()}),e&&i.length>0&&t[e]){let i=r.getPanel(e);if(!i){let a=t[e],o=n===`code`?`code`:`card`;try{i=r.addPanel({id:e,component:o,title:a?.title||e.split(`/`).pop()||e,params:{handle:a?.handle||e,path:a?.path||e}})}catch(t){console.warn(`[useDockviewSync] Failed to add active panel:`,e,t)}}i&&!i.api.isActive&&i.api.setActive()}else if(r.panels.length===0&&i.length===0)try{r.addPanel({id:`workspace-primary`,component:n===`code`?`code`:`card`,title:`Spatial Workbench`})}catch{}}finally{setTimeout(()=>{p.current=!1},50)}}},[t,e,n]),(0,N.useEffect)(()=>{let e=e=>{let t=e.detail,n=o.current;n&&J(n,t?.targetUrl)},t=()=>{let e=o.current;e&&J(e)},n=()=>{let e=o.current;e&&Ze(e)},r=()=>{let e=o.current;e&&Qe(e)};return window.addEventListener(`clm:fullscreen-split-requested`,e),window.addEventListener(`clm:fullscreen-denied`,t),window.addEventListener(`clm:close-split`,n),window.addEventListener(`clm:swap-panes`,r),()=>{window.removeEventListener(`clm:fullscreen-split-requested`,e),window.removeEventListener(`clm:fullscreen-denied`,t),window.removeEventListener(`clm:close-split`,n),window.removeEventListener(`clm:swap-panes`,r)}},[]),{apiRef:o,onReady:_}}function J(e,t){if(!e)return;if(e.groups.length>=2){let t=e.width||(typeof window<`u`?window.innerWidth:1200),n=Math.floor(t/2);e.groups[0].api.setSize({width:n}),e.groups[1].api.setSize({width:n});return}if(e.panels.length>=2){let t=e.panels[0],n=e.panels[1];try{n.api.moveTo({group:t.group,position:`right`});let r=e.width||(typeof window<`u`?window.innerWidth:1200),i=Math.floor(r/2);t.group.api.setSize({width:i}),n.group.api.setSize({width:i});return}catch{}}let n=e.panels[0],r=`workspace-secondary`,i=e.getPanel(r);if(!i)try{if(n)i=e.addPanel({id:r,component:`card`,title:`Split Viewport (50%)`,params:t?{url:t}:void 0,position:{referencePanel:n.id,direction:`right`}});else{let n=e.addPanel({id:`workspace-primary`,component:`card`,title:`Primary Viewport`});i=e.addPanel({id:r,component:`card`,title:`Split Viewport (50%)`,params:t?{url:t}:void 0,position:{referencePanel:n.id,direction:`right`}})}}catch(e){console.warn(`[useDockviewSync] Failed to add secondary split panel:`,e)}setTimeout(()=>{try{let t=e.width||(typeof window<`u`?window.innerWidth:1200),n=Math.floor(t/2);e.groups.length>=2&&(e.groups[0].api.setSize({width:n}),e.groups[1].api.setSize({width:n}))}catch{}},50)}function Ze(e){if(!e)return;let t=e.getPanel(`workspace-secondary`);if(t)t.api.close();else if(e.groups.length>=2){let t=e.groups[0];[...e.groups[1].panels].forEach(e=>{try{e.api.moveTo({group:t})}catch{}})}if(typeof document<`u`&&document.fullscreenElement)try{document.exitFullscreen()}catch{}}function Qe(e){if(!(!e||e.groups.length<2))try{let t=e.groups[0],n=[...e.groups[1].panels];n.length>0&&n[0].api.moveTo({group:t,position:`left`})}catch(e){console.warn(`[useDockviewSync] Failed to swap panes:`,e)}}var Y=({editorMode:e,setEditorMode:t,isFullscreen:n,onFullscreenSplit:r})=>(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(`button`,{type:`button`,onClick:()=>t(`card`),title:`Card Panel View (Visual Inspector)`,style:{fontSize:`11px`,padding:`3px 8px`,backgroundColor:e===`card`?`var(--vscode-button-background, #0e639c)`:`transparent`,color:e===`card`?`#ffffff`:`var(--vscode-foreground, #cccccc)`,border:`1px solid`,borderColor:e===`card`?`var(--vscode-button-background, #0e639c)`:`var(--vscode-input-border, #3c3c3c)`,borderRadius:`2px`,cursor:`pointer`,display:`inline-flex`,alignItems:`center`,gap:`4px`,flexShrink:0,whiteSpace:`nowrap`},children:[(0,H.jsx)(b,{size:12,color:e===`card`?`#fff`:`#858585`}),(0,H.jsx)(`span`,{children:`Card`})]}),(0,H.jsxs)(`button`,{type:`button`,onClick:()=>t(`code`),title:`Source Code Editor (MISU Inspector)`,style:{fontSize:`11px`,padding:`3px 8px`,backgroundColor:e===`code`?`var(--vscode-button-background, #0e639c)`:`transparent`,color:e===`code`?`#ffffff`:`var(--vscode-foreground, #cccccc)`,border:`1px solid`,borderColor:e===`code`?`var(--vscode-button-background, #0e639c)`:`var(--vscode-input-border, #3c3c3c)`,borderRadius:`2px`,cursor:`pointer`,display:`inline-flex`,alignItems:`center`,gap:`4px`,flexShrink:0,whiteSpace:`nowrap`},children:[(0,H.jsx)(y,{size:12,color:e===`code`?`#fff`:`#858585`}),(0,H.jsx)(`span`,{children:`Code`})]}),(0,H.jsxs)(`button`,{type:`button`,onClick:()=>t(`split`),title:`Split View (Card + Code Side by Side)`,style:{fontSize:`11px`,padding:`3px 8px`,backgroundColor:e===`split`?`var(--vscode-button-background, #0e639c)`:`transparent`,color:e===`split`?`#ffffff`:`var(--vscode-foreground, #cccccc)`,border:`1px solid`,borderColor:e===`split`?`var(--vscode-button-background, #0e639c)`:`var(--vscode-input-border, #3c3c3c)`,borderRadius:`2px`,cursor:`pointer`,display:`inline-flex`,alignItems:`center`,gap:`4px`,flexShrink:0,whiteSpace:`nowrap`},children:[(0,H.jsx)(x,{size:12,color:e===`split`?`#fff`:`#858585`}),(0,H.jsx)(`span`,{children:`Split`})]}),(0,H.jsxs)(`button`,{type:`button`,"data-action":`fullscreen-split`,"data-testid":`tabs-fullscreen-split-btn`,onClick:r,title:n?`Exit Fullscreen Split`:`Open in Fullscreen Split (50/50 Dual Viewport)`,style:{fontSize:`11px`,padding:`3px 8px`,backgroundColor:n?`var(--vscode-button-background, #0e639c)`:`transparent`,color:n?`#ffffff`:`var(--vscode-foreground, #cccccc)`,border:`1px solid`,borderColor:n?`var(--vscode-button-background, #0e639c)`:`var(--vscode-input-border, #3c3c3c)`,borderRadius:`2px`,cursor:`pointer`,display:`inline-flex`,alignItems:`center`,gap:`4px`,flexShrink:0,whiteSpace:`nowrap`},children:[(0,H.jsx)(x,{size:12,color:n?`#fff`:`#858585`}),(0,H.jsx)(`span`,{children:n?`Exit Fullscreen Split`:`Split (50/50)`})]})]});function $e(e=``){let t=e||(typeof navigator<`u`?navigator.userAgent:``),n=/Macintosh|Mac OS X/i.test(t),r=t.match(/Edg\/(\d+)/i);if(r)return{family:`edge`,engine:`blink`,version:parseInt(r[1],10)||0,isMac:n};let i=t.match(/Firefox\/(\d+)/i);if(i)return{family:`firefox`,engine:`gecko`,version:parseInt(i[1],10)||0,isMac:n};let a=t.match(/(?:Chrome|CriOS)\/(\d+)/i);if(a&&!t.includes(`Edg/`))return{family:`chrome`,engine:`blink`,version:parseInt(a[1],10)||0,isMac:n};let o=t.match(/Version\/(\d+).*Safari/i);return o&&!a&&!r?{family:`safari`,engine:`webkit`,version:parseInt(o[1],10)||0,isMac:n}:{family:`other`,engine:`other`,version:0,isMac:n}}function et(e){let t=$e(e),n=t.family===`chrome`&&t.version>=145,r=t.family===`firefox`&&t.version>=149,i=t.family===`edge`&&t.version>=111,a=t.isMac,o=n||i||r,s=null;n&&(s=t.isMac?`⌘⌥N`:`Shift+Alt+N`);let c=null;n?c=t.isMac?`Press ⌘⌥N or drag a tab to the edge`:`Press Shift+Alt+N or drag a tab to the edge`:r?c=`Right-click a tab → Add Split View`:i?c=`Click the Split Screen icon in the toolbar`:t.family===`safari`&&(c=`Hover green ● → Tile Window to Left/Right`);let l=!1,u=!1,d=!1,f=!1,p=!1,m=!0;typeof window<`u`&&(l=`getScreenDetails`in window||`windowManagement`in navigator,u=`documentPictureInPicture`in window,d=typeof document<`u`&&!!document.fullscreenEnabled,p=!!window.isSecureContext,f=!!(window.opener!==null||window.name&&window.name.startsWith(`CLM_`)||typeof location<`u`&&location.search.includes(`mode=satellite`)),typeof navigator<`u`&&/iPhone|iPad|iPod|Android/i.test(navigator.userAgent)&&(m=!1));let h=`dual-window`;return n||r||i?h=`native-tab-split`:d?h=`fullscreen-dockview`:t.family===`safari`&&t.isMac&&(h=`manual-tile`),{browserFamily:t.family,browserEngine:t.engine,browserVersion:t.version,hasNativeSplitView:o,hasFullscreenSupport:d,hasWindowManagementApi:l,hasDocumentPip:u,hasDocumentPipSupport:u,hasNativeChromeSplitSupport:n,hasNativeFirefoxSplitSupport:r,hasNativeEdgeSplitSupport:i,hasNativeSafariSplitSupport:!1,hasMacOSSystemSplitView:a,nativeSplitTier:h,nativeSplitShortcut:s,nativeSplitInstruction:c,canProgrammaticallySplit:!1,isScriptSpawned:f,isSecureContext:p,supportsMultiWindowSnapping:m,isMac:t.isMac}}async function X(e){if(typeof window>`u`||!(`documentPictureInPicture`in window))return!1;try{let t=await window.documentPictureInPicture.requestWindow({width:Math.floor(window.screen.availWidth*.5),height:window.screen.availHeight}),n=t.document.createElement(`iframe`);return n.src=e,n.style.cssText=`width:100%;height:100%;border:none;`,t.document.body.style.margin=`0`,t.document.body.style.overflow=`hidden`,t.document.body.appendChild(n),!0}catch(e){return console.debug(`[SV-08] Document PiP request failed:`,e),!1}}var tt=({appName:e,forceDirectEmbed:t,targetUrl:n,activeSrc:r,useProxy:i,setUseProxy:a,viewportMode:o,setViewportMode:s,isLoading:c,setIsLoading:l,copied:u,handleReload:d,handleCopyUrl:f,setIsZenOpen:p,probeData:m,hasShieldError:h})=>{let[g,_]=N.useState(!1);return N.useEffect(()=>{typeof window<`u`&&`documentPictureInPicture`in window&&_(!0)},[]),(0,H.jsxs)(`div`,{className:`webapp-address-toolbar`,style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,padding:`6px 12px`,backgroundColor:`var(--vscode-sideBar-background, #252526)`,borderBottom:`1px solid var(--vscode-editorGroup-border, #333333)`,color:`var(--vscode-foreground, #cccccc)`,fontSize:`11px`,gap:`8px`,flexShrink:0,zIndex:10},children:[(0,H.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`8px`,minWidth:0},children:[(0,H.jsx)(`span`,{style:{fontSize:`14px`},children:`🌐`}),(0,H.jsx)(`span`,{style:{fontWeight:600,whiteSpace:`nowrap`,overflow:`hidden`,textOverflow:`ellipsis`},children:e||`WebApp MCard`}),(0,H.jsx)(`span`,{style:{fontSize:`9px`,padding:`1px 5px`,backgroundColor:i?`#d97706`:m?.shouldBlockEmbed&&!t?`#dc2626`:`#0e639c`,color:`#ffffff`,borderRadius:`2px`,fontWeight:700,textTransform:`uppercase`,letterSpacing:`0.3px`,whiteSpace:`nowrap`,cursor:i||m?.shouldBlockEmbed&&!t?`help`:`default`},title:i?`Proxy Shield Active: Content proxied via VFS. External styles, fonts, or scripts may be restricted; use Tab for complete website.`:m?.shouldBlockEmbed&&!t?`Origin Policy Restriction: ${m?.reason||`Inline framing forbidden by remote host`}`:`Live iframe directly loading destination URL`,children:i?`🛡️ Proxied Viewport`:m?.shouldBlockEmbed&&!t?m?.status===403?`Forbidden 🚫`:`Origin Restricted 🔒`:`Live Iframe`})]}),(0,H.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,backgroundColor:`var(--vscode-input-background, #1e1e1e)`,border:`1px solid var(--vscode-input-border, #3c3c3c)`,borderRadius:`3px`,padding:`2px 8px`,maxWidth:`460px`,flex:`1 1 auto`,minWidth:`160px`,gap:`6px`,justifyContent:`space-between`},children:[(0,H.jsx)(`span`,{style:{color:`var(--vscode-textLink-foreground, #75beff)`,fontFamily:`monospace`,fontSize:`10px`,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},title:n,children:n}),(0,H.jsx)(`button`,{onClick:f,title:`Copy URL to clipboard`,style:{backgroundColor:`transparent`,border:`none`,color:u?`#89d185`:`#858585`,cursor:`pointer`,fontSize:`10px`,padding:`0 2px`},children:u?`✓ Copied`:`📋`})]}),(0,H.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`6px`,flexShrink:0},children:[(0,H.jsx)(`button`,{onClick:d,title:`Reload WebApp frame`,style:{fontSize:`10px`,padding:`3px 6px`,backgroundColor:`transparent`,color:`var(--vscode-foreground, #cccccc)`,border:`1px solid var(--vscode-input-border, #3c3c3c)`,borderRadius:`2px`,cursor:`pointer`},children:`🔄`}),(0,H.jsxs)(`div`,{style:{display:`flex`,border:`1px solid var(--vscode-input-border, #3c3c3c)`,borderRadius:`2px`,overflow:`hidden`},children:[(0,H.jsx)(`button`,{onClick:()=>s(`desktop`),title:`Desktop View (100% Fluid Width)`,style:{fontSize:`10px`,padding:`3px 6px`,backgroundColor:o===`desktop`?`var(--vscode-button-background, #0e639c)`:`transparent`,color:`#ffffff`,border:`none`,cursor:`pointer`},children:`🖥️ Full`}),(0,H.jsx)(`button`,{onClick:()=>s(`tablet`),title:`Tablet View (768px Width)`,style:{fontSize:`10px`,padding:`3px 6px`,backgroundColor:o===`tablet`?`var(--vscode-button-background, #0e639c)`:`transparent`,color:`#ffffff`,border:`none`,borderLeft:`1px solid #3c3c3c`,cursor:`pointer`},children:`📱 768`}),(0,H.jsx)(`button`,{onClick:()=>s(`mobile`),title:`Mobile View (375px Width)`,style:{fontSize:`10px`,padding:`3px 6px`,backgroundColor:o===`mobile`?`var(--vscode-button-background, #0e639c)`:`transparent`,color:`#ffffff`,border:`none`,borderLeft:`1px solid #3c3c3c`,cursor:`pointer`},children:`📲 375`})]}),(0,H.jsx)(`button`,{onClick:()=>{a(!i),l?.(!0)},title:i?`Bypassing frame restrictions via VFS Proxy`:`Enable VFS Proxy if frame is blocked by origin policy`,style:{fontSize:`10px`,padding:`3px 8px`,backgroundColor:i?`rgba(217, 119, 6, 0.2)`:`transparent`,color:i?`#f59e0b`:`var(--vscode-foreground, #cccccc)`,border:`1px solid ${i?`#f59e0b`:`var(--vscode-input-border, #3c3c3c)`}`,borderRadius:`2px`,cursor:`pointer`},children:`🛡️ Proxy`}),(0,H.jsxs)(`button`,{"data-action":`split-viewport`,"data-testid":`webapp-split-viewport-btn`,onClick:()=>{let e=j(n,{ratio:.5});typeof window<`u`&&(window.dispatchEvent(new CustomEvent(`clm:viewport-tile-requested`,{detail:{url:n,result:e,geometry:e.geometry}})),window.dispatchEvent(new CustomEvent(`clm:fullscreen-split-requested`,{detail:{targetUrl:n,useProxy:!0}})),m?.shouldBlockEmbed&&!i&&a(!0),(e.popupBlocked||!e.success)&&window.dispatchEvent(new CustomEvent(`clm:popup-blocked`,{detail:{message:`Browser popup blocked. Switched to in-app split view.`}})))},title:`Open as Coordinated Dual Windows (Side-by-Side 50/50 Split)`,style:{fontSize:`10px`,padding:`3px 8px`,backgroundColor:`transparent`,color:`var(--vscode-textLink-foreground, #75beff)`,border:`1px solid rgba(117,190,255,0.4)`,borderRadius:`2px`,cursor:`pointer`,display:`flex`,alignItems:`center`,gap:`4px`,transition:`all 0.15s ease`},onMouseEnter:e=>e.currentTarget.style.backgroundColor=`rgba(117,190,255,0.15)`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`transparent`,children:[(0,H.jsx)(`span`,{children:`◫`}),(0,H.jsx)(`span`,{children:`Split Viewport`})]}),g&&(0,H.jsxs)(`button`,{"data-action":`document-pip`,"data-testid":`webapp-document-pip-btn`,onClick:()=>X(r),title:`Open in Document Picture-in-Picture Floating Viewport`,style:{fontSize:`10px`,padding:`3px 8px`,backgroundColor:`transparent`,color:`var(--vscode-textLink-foreground, #75beff)`,border:`1px solid rgba(117,190,255,0.4)`,borderRadius:`2px`,cursor:`pointer`,display:`flex`,alignItems:`center`,gap:`4px`,transition:`all 0.15s ease`},onMouseEnter:e=>e.currentTarget.style.backgroundColor=`rgba(117,190,255,0.15)`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`transparent`,children:[(0,H.jsx)(`span`,{children:`🗖`}),(0,H.jsx)(`span`,{children:`PiP`})]}),(0,H.jsxs)(`button`,{onClick:()=>window.open(n,`_blank`,`noopener,noreferrer`),title:m?.shouldBlockEmbed&&!i&&!t?`Origin restricts inline embedding: Open full site in external browser tab`:i?`Recommended: Open complete website in external browser tab without proxy or iframe sandbox restrictions`:`Open URL in New Browser Tab`,style:{fontSize:`10px`,padding:m?.shouldBlockEmbed&&!i&&!t||i?`3px 10px`:`3px 8px`,backgroundColor:m?.shouldBlockEmbed&&!i&&!t?`rgba(239, 68, 68, 0.25)`:i?`rgba(217, 119, 6, 0.25)`:`transparent`,color:m?.shouldBlockEmbed&&!i&&!t?`#f87171`:i?`#fbbf24`:`var(--vscode-textLink-foreground, #75beff)`,border:m?.shouldBlockEmbed&&!i&&!t?`1px solid #ef4444`:i?`1px solid #f59e0b`:`1px solid rgba(117,190,255,0.4)`,borderRadius:`2px`,cursor:`pointer`,display:`flex`,alignItems:`center`,gap:`4px`,fontWeight:m?.shouldBlockEmbed&&!i&&!t||i?600:400,boxShadow:m?.shouldBlockEmbed&&!i&&!t?`0 0 8px rgba(239, 68, 68, 0.35)`:i?`0 0 8px rgba(245, 158, 11, 0.3)`:`none`,transition:`all 0.15s ease`},children:[(0,H.jsx)(`span`,{children:`↗`}),(0,H.jsx)(`span`,{children:m?.shouldBlockEmbed&&!i&&!t?`Tab (Open External)`:i?`Tab (Full Site)`:`Tab`})]}),(0,H.jsxs)(`button`,{onClick:()=>p(!0),title:`Expand to Fullscreen Zen Mode (Press Esc to return)`,style:{fontSize:`10px`,padding:`3px 9px`,backgroundColor:`var(--vscode-button-background, #0e639c)`,color:`#ffffff`,border:`none`,borderRadius:`2px`,cursor:`pointer`,fontWeight:600,display:`flex`,alignItems:`center`,gap:`4px`},children:[(0,H.jsx)(`span`,{children:`🪟`}),(0,H.jsx)(`span`,{children:`Zen Mode`})]})]})]})},nt=({caps:e,activeTabKey:t,openTabs:n})=>(0,H.jsxs)(H.Fragment,{children:[e.hasNativeChromeSplitSupport&&(0,H.jsxs)(`div`,{className:`native-split-affordance chrome-split`,"data-shortcut":`native-split`,style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,padding:`6px 14px`,borderTop:`1px solid var(--vscode-menu-separatorBackground, #454545)`},children:[(0,H.jsx)(`a`,{href:t?n[t]?.path||t:`#`,target:`_blank`,rel:`noopener noreferrer`,draggable:!0,className:`chrome-split-drag-handle`,title:`Drag to browser window edge to open in Chrome Native Split View`,style:{color:`#75beff`,textDecoration:`none`,display:`flex`,alignItems:`center`,gap:`6px`,fontSize:`11px`},children:(0,H.jsx)(`span`,{children:`◫ Open in Chrome Split View`})}),(0,H.jsx)(`kbd`,{className:`split-shortcut-badge`,style:{fontSize:`10px`,padding:`2px 4px`,backgroundColor:`#333333`,border:`1px solid #555555`,borderRadius:`3px`,color:`#ffffff`},children:e.nativeSplitShortcut})]}),e.hasNativeFirefoxSplitSupport&&(0,H.jsx)(`div`,{className:`native-split-affordance firefox-split`,style:{padding:`6px 14px`,fontSize:`11px`,color:`#fbbf24`,borderTop:`1px solid var(--vscode-menu-separatorBackground, #454545)`},children:(0,H.jsxs)(`span`,{className:`split-instruction`,children:[`💡 `,e.nativeSplitInstruction||`Right-click a tab → Add Split View`]})}),e.hasNativeEdgeSplitSupport&&(0,H.jsx)(`div`,{className:`native-split-affordance edge-split`,style:{padding:`6px 14px`,fontSize:`11px`,color:`#60a5fa`,borderTop:`1px solid var(--vscode-menu-separatorBackground, #454545)`},children:(0,H.jsxs)(`span`,{className:`split-instruction`,children:[`💡 `,e.nativeSplitInstruction||`Click the Split Screen icon in the toolbar`]})}),e.browserFamily===`safari`&&e.hasMacOSSystemSplitView&&(0,H.jsx)(`div`,{className:`native-split-affordance safari-split`,style:{padding:`6px 14px`,fontSize:`11px`,color:`#9ca3af`,borderTop:`1px solid var(--vscode-menu-separatorBackground, #454545)`},children:(0,H.jsxs)(`span`,{className:`split-instruction`,children:[`💡 `,e.nativeSplitInstruction||`Hover green ● → Tile Window to Left/Right`]})})]}),Z=({label:e,shortcut:t,testId:n,action:r,disabled:i=!1,onClick:a})=>(0,H.jsxs)(`div`,{onClick:i?void 0:a,className:`vscode-menu-item`,"data-testid":n,"data-action":r,style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,padding:`6px 14px`,cursor:i?`default`:`pointer`,opacity:i?.4:1},onMouseEnter:e=>{i||(e.currentTarget.style.backgroundColor=`var(--vscode-menu-selectionBackground, #04395e)`)},onMouseLeave:e=>{e.currentTarget.style.backgroundColor=`transparent`},children:[(0,H.jsx)(`span`,{children:e}),t&&(0,H.jsx)(`span`,{style:{fontSize:`10px`,opacity:.6,marginLeft:`16px`},children:t})]}),rt=({effectiveMenuRef:e,effectiveShowTabMenu:t,effectiveSetShowTabMenu:n,activeTabKey:r,openTabs:i,closeAllTabs:a,closeOtherTabs:o,closeTabsToTheRight:s,setActiveTabKey:c,setEditorMode:l})=>{let u=et();return(0,H.jsxs)(`div`,{ref:e,style:{position:`relative`},children:[(0,H.jsx)(`button`,{type:`button`,onClick:()=>n(e=>!e),title:`More Actions... (Close All, Close Others)`,"aria-label":`More Actions`,"data-action":`more-actions`,className:`vscode-action-button`,"data-testid":`editor-tabs-more-actions-btn`,style:{fontSize:`11px`,padding:`3px 6px`,backgroundColor:t?`var(--vscode-toolbar-activeBackground, rgba(255, 255, 255, 0.1))`:`transparent`,color:`var(--vscode-foreground, #cccccc)`,border:`1px solid transparent`,borderRadius:`3px`,cursor:`pointer`,display:`inline-flex`,alignItems:`center`,justifyContent:`center`,flexShrink:0,height:`22px`},children:(0,H.jsx)(S,{size:14,color:`#cccccc`})}),t&&(0,H.jsxs)(`div`,{className:`vscode-menu-dropdown`,"data-testid":`tabs-more-actions-dropdown`,style:{position:`absolute`,top:`100%`,right:0,marginTop:`4px`,backgroundColor:`var(--vscode-menu-background, #252526)`,color:`var(--vscode-menu-foreground, #cccccc)`,border:`1px solid var(--vscode-menu-border, #454545)`,borderRadius:`4px`,boxShadow:`0 4px 12px rgba(0, 0, 0, 0.5)`,padding:`4px 0`,zIndex:99999,minWidth:`190px`,fontSize:`12px`,userSelect:`none`},children:[(0,H.jsx)(Z,{label:`Close All`,shortcut:`⌘K ⌘W`,testId:`tabs-close-all-btn`,onClick:()=>{a(),c(null),n(!1)}}),(0,H.jsx)(Z,{label:`Close Others`,testId:`tabs-close-others-btn`,disabled:!r,onClick:()=>{r&&o(r),n(!1)}}),(0,H.jsx)(Z,{label:`Close to the Right`,testId:`tabs-close-right-btn`,disabled:!r,onClick:()=>{r&&s(r),n(!1)}}),(0,H.jsx)(`div`,{style:{height:`1px`,backgroundColor:`var(--vscode-menu-separatorBackground, #454545)`,margin:`4px 0`}}),(0,H.jsx)(Z,{label:`Split Editor Right`,shortcut:`⌘\\`,testId:`tabs-split-editor-btn`,onClick:()=>{l(e=>e===`split`?`card`:`split`),n(!1)}}),(0,H.jsx)(Z,{label:`Swap Panes`,shortcut:`⇄`,testId:`tabs-swap-panes-btn`,action:`swap-panes`,onClick:()=>{typeof window<`u`&&window.dispatchEvent(new CustomEvent(`clm:swap-panes`)),n(!1)}}),(0,H.jsx)(Z,{label:`Close Split`,shortcut:`✕`,testId:`tabs-close-split-btn`,action:`close-split`,onClick:()=>{typeof window<`u`&&window.dispatchEvent(new CustomEvent(`clm:close-split`)),n(!1)}}),typeof window<`u`&&`documentPictureInPicture`in window&&(0,H.jsx)(Z,{label:`Picture-in-Picture`,shortcut:`🗖`,testId:`tabs-document-pip-btn`,action:`document-pip`,onClick:()=>{X(r&&i[r]?.path?i[r].path:typeof window<`u`?window.location.href:``),n(!1)}}),(0,H.jsx)(Z,{label:`Snap Dual Windows (50/50)`,shortcut:u.hasNativeChromeSplitSupport&&u.nativeSplitShortcut||`50/50`,testId:`tabs-snap-dual-windows-btn`,action:`snap-dual-windows`,onClick:()=>{let e=typeof window<`u`?`${window.location.origin}/?mode=satellite&view=presentation`:`http://localhost:3000/`,t=j(e);(t.popupBlocked||!t.success)&&(typeof window<`u`&&window.dispatchEvent(new CustomEvent(`clm:popup-blocked`,{detail:{message:`Browser popup blocked. Switched to in-app split view.`}})),l(`split`)),n(!1)}}),(0,H.jsx)(nt,{caps:u,activeTabKey:r,openTabs:i})]})]})},it=({containerApi:e,panels:t,activePanel:n})=>{let r=g(p),i=g(a),l=g(m),[u,d]=(0,N.useState)(!1),[h,_]=(0,N.useState)(!1),v=(0,N.useRef)(null);(0,N.useEffect)(()=>{let e=e=>{v.current&&!v.current.contains(e.target)&&d(!1)};return u&&document.addEventListener(`mousedown`,e),()=>{document.removeEventListener(`mousedown`,e)}},[u]);let y=n?.id||l?.handle||null,b=(0,N.useCallback)(()=>{f(),e.panels.forEach(e=>{e.id!==`workspace-secondary`&&e.api.close()})},[e]),x=(0,N.useCallback)(e=>{s(e),t.forEach(t=>{t.id!==e&&t.id!==`workspace-secondary`&&t.api.close()})},[t]),S=(0,N.useCallback)(e=>{c(e);let n=t.findIndex(t=>t.id===e);n>=0&&t.slice(n+1).forEach(e=>{e.id!==`workspace-secondary`&&e.api.close()})},[t]),C=(0,N.useCallback)(()=>{_(e=>!e),typeof window<`u`&&window.dispatchEvent(new CustomEvent(`clm:launch-preset`,{detail:{preset:`dual-viewport`}}))},[]),w=(0,N.useCallback)(t=>{t&&e.getPanel(t)?.api.setActive()},[e]);return(0,H.jsxs)(`div`,{className:`dockview-group-header-actions`,"data-testid":`dockview-group-header-actions`,children:[(0,H.jsx)(Y,{editorMode:r,setEditorMode:o,isFullscreen:h,onFullscreenSplit:C}),(0,H.jsx)(rt,{effectiveMenuRef:v,effectiveShowTabMenu:u,effectiveSetShowTabMenu:d,activeTabKey:y,openTabs:i,closeAllTabs:b,closeOtherTabs:x,closeTabsToTheRight:S,setActiveTabKey:w,setEditorMode:o})]})},at=t({DockviewSpatialWorkbench:()=>$,default:()=>$}),Q=e=>(0,H.jsx)(`div`,{style:{width:`100%`,height:`100%`,overflow:`hidden`},children:(0,H.jsx)(qe,{panelId:e.api.id})}),ot=e=>(0,H.jsx)(`div`,{style:{width:`100%`,height:`100%`,overflow:`hidden`},children:(0,H.jsx)(Ye,{panelId:e.api.id})}),$=({activeTabKey:e,openTabs:t={},editorMode:n=`card`,onTabSelect:r,onTabClose:i,className:a=``})=>{let o=N.useRef(null),{onReady:s,apiRef:c}=Xe({activeTabKey:e,openTabs:t,editorMode:n,onTabSelect:r,onTabClose:i}),l=(0,N.useMemo)(()=>({card:Q,code:ot,split:Q}),[]);N.useEffect(()=>{let e=o.current;if(!e)return;let t=t=>{let n=t.target;if(n&&(n.classList.contains(`sash`)||n.closest(`.sash`)||n.closest(`.dv-sash`))){let t=c.current;if(t&&t.groups.length>=2){let n=t.width||e.clientWidth||(typeof window<`u`?window.innerWidth:1200),r=Math.floor(n/2);t.groups.forEach(e=>{try{e.api.setSize({width:r})}catch{}})}}};return e.addEventListener(`dblclick`,t),()=>e.removeEventListener(`dblclick`,t)},[c]);let u=N.useCallback(e=>[`close`,`closeOthers`,`closeRight`,`separator`,{label:`Close All`,action:()=>{f(),[...e.api.panels].forEach(e=>{e.id!==`workspace-secondary`&&e.api.close()})}}],[]);return(0,H.jsxs)(`div`,{ref:o,className:`dockview-spatial-host dockview-theme-dark ${a}`.trim(),style:{width:`100%`,height:`100%`,overflow:`hidden`,position:`relative`,display:`flex`,flexDirection:`column`,backgroundColor:`var(--vscode-editor-background, #1e1e1e)`},"data-testid":`dockview-spatial-workbench`,children:[(0,H.jsx)(`style`,{children:`
|
|
6
|
-
.dockview-spatial-host .sash.vertical,
|
|
7
|
-
.dockview-spatial-host .dv-sash-vertical {
|
|
8
|
-
width: 6px !important;
|
|
9
|
-
cursor: col-resize !important;
|
|
10
|
-
z-index: 20 !important;
|
|
11
|
-
}
|
|
12
|
-
`}),(0,H.jsx)(ae,{components:l,onReady:s,className:`dockview-theme-dark`,rightHeaderActionsComponent:it,getTabContextMenuItems:u})]})};export{$ as DockviewSpatialWorkbench,$ as default,je as i,tt as n,Me as r,at as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime.Dd_uD5pT.js";import{a as t,i as n}from"./vendor-react.DpDU3q_x.js";import{a as r,h as i,i as a,l as o,n as s,r as c,t as l,u}from"./themeStore.zUMFLo3Q.js";import{t as d}from"./rendererEventBus.CyFnSRLk.js";import{t as f}from"./useMCardHydration.Co47OH3D.js";import{t as p}from"./RendererLoader.D-ThYU1B.js";import{ContentHash as m}from"clm-kernel";var h=e(t(),1);function g(e={}){let t=e[`--mcard-theme-id`]||`dark-default`,n=t===`light-clean`||t===`monochrome-eink`;return{theme:n?`light`:`dark`,viewBackgroundColor:e[`--mcard-canvas-clear`]||e[`--mcard-bg-canvas`]||(n?`#ffffff`:`#1e1e1e`),currentItemStrokeColor:e[`--mcard-text-primary`]||(n?`#000000`:`#ffffff`),currentItemBackgroundColor:e[`--mcard-bg-surface`]||(n?`#f1f5f9`:`#252526`)}}var _=class{static sanitizeAppState(e){if(!e)return{};let{collaborators:t,activeTool:n,draggingElement:r,resizingElement:i,editingElement:a,selectionElement:o,isLoading:s,errorMessage:c,...l}=e;return l}static get(e,t,n){return{type:`excalidraw`,version:2,source:`https://mcard.studio`,elements:e.map(e=>({...e})),appState:this.sanitizeAppState(t),files:n?{...n}:{}}}static put(e,t,n,r){let a=this.get(t,n,r),o=JSON.stringify(a,null,2),s=`blake3:${m.computeString(o).asHex()}`,c=Date.now(),l=`${(e||`whiteboard`).replace(/\.excalidraw\.json$|\.excalidraw$|\.json$/,``)}_frozen_${c}.excalidraw.json`;try{i.writeFile(l,o)}catch{}return d({type:`render:excalidraw:sketch_frozen`,targetHandle:l,timestamp:c,payload:{hash:s,elementCount:t.length}}),{handle:l,hash:s,json:o}}static parse(e){if(!e)return{type:`excalidraw`,version:2,source:`https://mcard.studio`,elements:[],appState:{},files:{}};if(typeof e==`string`)try{let t=JSON.parse(e);return this.parse(t)}catch{return{type:`excalidraw`,version:2,source:`https://mcard.studio`,elements:[],appState:{},files:{}}}if(typeof e==`object`){let t=e;return Array.isArray(t)?{type:`excalidraw`,version:2,source:`https://mcard.studio`,elements:t,appState:{},files:{}}:{type:`excalidraw`,version:2,source:t.source||`https://mcard.studio`,elements:Array.isArray(t.elements)?t.elements:[],appState:this.sanitizeAppState(t.appState),files:t.files||{}}}return{type:`excalidraw`,version:2,source:`https://mcard.studio`,elements:[],appState:{},files:{}}}},v=n(),y=({mcard:e})=>{let{content:t,isLoading:n}=f(e),i=t||(typeof e?.content==`string`?e.content:``),[m,y]=(0,h.useState)(null),[b,x]=(0,h.useState)(null),[S,C]=(0,h.useState)(null),[w,T]=(0,h.useState)(!1),[E,D]=(0,h.useState)(!1),O=(0,h.useRef)(null),k=(0,h.useRef)([]),A=(0,h.useRef)({}),j=(0,h.useRef)({}),M=(0,h.useMemo)(()=>_.parse(i),[i]),N=()=>g(u({theme:r.get(),density:s.get(),responsive:a.get(),context:l.get(),environment:c.get()},o)),P=(0,h.useMemo)(N,[]);(0,h.useEffect)(()=>{let e=!0;return p(`excalidraw`).then(t=>e&&y(t)).catch(t=>e&&x(t?.message||`Failed to load Excalidraw`)),()=>{e=!1}},[]),(0,h.useEffect)(()=>r.subscribe(()=>{if(O.current?.updateScene){let e=N();O.current.updateScene({appState:{theme:e.theme,viewBackgroundColor:e.viewBackgroundColor}})}}),[]);let F=()=>{let t=e?.handle||e?.path||`whiteboard`,n=_.put(t,k.current,A.current,j.current);C(`${n.hash.slice(0,16)}…`),setTimeout(()=>C(null),4e3)},I=async()=>{if(m)try{let t=m.exportToSvg||m.default?.exportToSvg;if(typeof t==`function`){let n=await t({elements:k.current,appState:{...A.current,exportBackground:!0,viewBackgroundColor:P.viewBackgroundColor},files:j.current}),r=new Blob([new XMLSerializer().serializeToString(n)],{type:`image/svg+xml`}),i=URL.createObjectURL(r),a=document.createElement(`a`);a.href=i,a.download=`${(e?.handle||`whiteboard`).replace(/\.[^/.]+$/,``)}.svg`,a.click(),URL.revokeObjectURL(i)}}catch(e){console.error(`[ExcalidrawViewlet] Export error:`,e)}},L=m?.Excalidraw||m?.default?.Excalidraw||m?.default,R=(e=!1)=>({padding:`2px 8px`,fontSize:`11px`,background:e?`var(--mcard-accent, #6366f1)`:`var(--mcard-bg-card, #2a2a2a)`,color:`var(--mcard-text-primary, #fff)`,border:`1px solid var(--mcard-border-default, #444)`,borderRadius:`4px`,cursor:`pointer`});return(0,v.jsxs)(`div`,{className:`mcard-pcard-container mcard-pcard-excalidraw`,"data-modality":`excalidraw`,"data-day-convolution":`canvas`,style:{display:`flex`,flexDirection:`column`,width:`100%`,height:`100%`,position:`relative`,background:P.viewBackgroundColor},children:[(0,v.jsxs)(`div`,{className:`mcard-pcard-hud`,style:{display:`flex`,alignItems:`center`,gap:`8px`,padding:`6px 12px`,borderBottom:`1px solid var(--mcard-border-default, #333)`,background:`var(--mcard-bg-surface, #1e1e1e)`,fontSize:`12px`,zIndex:10},children:[(0,v.jsx)(`span`,{style:{fontWeight:600,color:`var(--mcard-text-primary, #fff)`},children:`🎨 Excalidraw Whiteboard`}),(0,v.jsx)(`button`,{type:`button`,onClick:F,style:{...R(!0),background:`var(--mcard-accent, #6366f1)`},children:`❄️ Freeze`}),S&&(0,v.jsxs)(`span`,{style:{color:`var(--mcard-accent, #10b981)`,fontSize:`11px`},children:[`✓ `,S]}),(0,v.jsx)(`button`,{type:`button`,onClick:I,style:R(),children:`⬇ SVG`}),(0,v.jsx)(`button`,{type:`button`,onClick:()=>{let e=!E;D(e),O.current?.updateScene?.({appState:{zenModeEnabled:e}})},style:R(E),children:`🧘 Zen`}),(0,v.jsx)(`button`,{type:`button`,onClick:()=>T(!w),style:{...R(),marginLeft:`auto`},children:w?`Canvas`:`JSON`})]}),(0,v.jsx)(`div`,{style:{flex:1,position:`relative`,overflow:`hidden`},children:w?(0,v.jsx)(`pre`,{style:{margin:0,padding:`12px`,height:`100%`,overflow:`auto`,fontSize:`12px`,color:`var(--mcard-text-primary, #eee)`,background:`var(--mcard-bg-canvas, #121212)`},children:JSON.stringify(M,null,2)}):b?(0,v.jsxs)(`div`,{style:{padding:`24px`,color:`var(--mcard-error, #ef4444)`},children:[`⚠️ `,b]}):!L||n?(0,v.jsx)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`center`,height:`100%`,color:`var(--mcard-text-secondary, #888)`},children:`Loading whiteboard substrate…`}):(0,v.jsx)(L,{excalidrawAPI:e=>{O.current=e},initialData:{elements:M.elements,appState:{...M.appState,theme:P.theme,viewBackgroundColor:P.viewBackgroundColor,zenModeEnabled:E},files:M.files},theme:P.theme,onChange:(t,n,r)=>{k.current=t,A.current=n,j.current=r,d({modality:`excalidraw`,type:`render:excalidraw:change`,handle:e?.handle||`whiteboard`,payload:{elementCount:t.length}})},UIOptions:{canvasActions:{loadScene:!1,saveToActiveFile:!1}}})})]})};export{y as ExcalidrawWhiteboardViewlet,y as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./polyfills.DcBkS56X.js";
|