archik 0.12.34 → 0.12.36
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/.claude/commands/archik/actor.md +89 -0
- package/.claude/commands/archik/alpha.md +71 -0
- package/.claude/commands/archik/trace.md +55 -0
- package/.claude/commands/archik/usecase.md +134 -0
- package/README.md +60 -3
- package/dist/cli/archik.mjs +1 -1
- package/dist/ui/assets/index-CVU04BKZ.css +1 -0
- package/dist/ui/assets/{index-DTIN4vQr.js → index-Cpn7arl2.js} +144 -144
- package/dist/ui/index.html +2 -2
- package/package.json +1 -1
- package/dist/ui/assets/index-Okbzz010.css +0 -1
package/dist/cli/archik.mjs
CHANGED
|
@@ -504,7 +504,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
504
504
|
${Ag(d.errors)}`);return d.value}function kee(o){return Xht.default.stringify(o,{indent:2,lineWidth:0})}var p$n=6;function Kht(o,c){return Mee.relative(o,c).split(Mee.sep).join("/")||Mee.basename(c)}function g$n(o){return o.endsWith(".archik.yaml")&&!o.endsWith(".archik.suggested.yaml")}async function z0(o,c){let d=[],g=[],f=new Set,b=async k=>{if(f.has(k))return;f.add(k);let T;try{T=await d$n(k,"utf-8")}catch(P){g.push({abs:k,relPath:Kht(c,k),message:P instanceof Error?P.message:String(P)});return}try{let P=P2(T);d.push({abs:k,relPath:Kht(c,k),doc:P})}catch(P){g.push({abs:k,relPath:Kht(c,k),message:P instanceof Error?P.message:String(P)})}};await b(o);let v=async(k,T)=>{if(T>p$n)return;let P;try{P=await f$n(k,{withFileTypes:!0})}catch{return}for(let j of P){let B=Mee.join(k,j.name);if(j.isDirectory()){await v(B,T+1);continue}j.isFile()&&g$n(j.name)&&await b(B)}};return await v(Mee.join(c,".archik"),0),{docs:d,errors:g}}var prn=Ai(Gx(),1);import{readFile as _$n,readdir as C$n}from"node:fs/promises";import See from"node:path";var y$n=jt.enum(["sync","async","return","create","destroy"]),b$n=jt.enum(["over","left_of","right_of"]),w$n=jt.enum(["alt","opt","loop","par","break","ref"]),m$n=jt.strictObject({id:$l,nodeId:$l,label:jt.string().min(1).optional(),status:g3.optional()}),v$n=jt.strictObject({type:jt.literal("message"),id:$l,from:$l,to:$l,label:jt.string().min(1),arrow:y$n,activate:jt.boolean().optional(),status:g3.optional()}),k$n=jt.strictObject({type:jt.literal("note"),id:$l,position:b$n,participants:jt.array($l).min(1),text:jt.string().min(1),status:g3.optional()}),M$n=jt.lazy(()=>jt.strictObject({label:jt.string().optional(),steps:jt.array(drn)})),x$n=jt.lazy(()=>jt.strictObject({type:jt.literal("group"),id:$l,kind:w$n,condition:jt.string().optional(),label:jt.string().optional(),branches:jt.array(M$n).optional(),seqFile:vee.optional(),participants:jt.array($l).optional(),status:g3.optional()})),drn=jt.lazy(()=>jt.union([v$n,k$n,x$n]));function frn(o,c){let d=[];for(let g of o)if(c.has(g.id)?d.push(g.id):c.add(g.id),g.type==="group"&&g.branches)for(let f of g.branches)d.push(...frn(f.steps,c));return d}var S$n=jt.strictObject({useCase:$l,slice:$l}),xee=jt.strictObject({version:jt.literal("1.0"),name:jt.string().min(1),description:jt.string().optional(),realizes:S$n.optional(),participants:jt.array(m$n).min(1),steps:jt.array(drn)}).superRefine((o,c)=>{let d=new Set;for(let b=0;b<o.participants.length;b++){let v=o.participants[b];d.has(v.id)&&c.addIssue({code:jt.ZodIssueCode.custom,path:["participants",b,"id"],message:`duplicate participant id "${v.id}"`}),d.add(v.id)}let g=new Set,f=frn(o.steps,g);for(let b of f)c.addIssue({code:jt.ZodIssueCode.custom,path:["steps"],message:`duplicate step id "${b}"`})});var I$n=6;function L$n(o,c){return See.relative(o,c).split(See.sep).join("/")||See.basename(c)}async function J5(o){let c=[],d=[],g=async b=>{let v=L$n(o,b),k;try{k=await _$n(b,"utf-8")}catch(T){d.push({abs:b,relPath:v,message:T instanceof Error?T.message:String(T)});return}try{let T=prn.default.parse(k),P=xee.safeParse(T);if(!P.success){d.push({abs:b,relPath:v,message:P.error.issues.map(j=>j.message).join("; ")});return}c.push({abs:b,relPath:v,doc:P.data})}catch(T){d.push({abs:b,relPath:v,message:T instanceof Error?T.message:String(T)})}},f=async(b,v)=>{if(v>I$n)return;let k;try{k=await C$n(b,{withFileTypes:!0})}catch{return}for(let T of k){let P=See.join(b,T.name);if(T.isDirectory()){await f(P,v+1);continue}T.isFile()&&T.name.endsWith(".archik.seq.yaml")&&await g(P)}};return await f(See.join(o,".archik"),0),{docs:c,errors:d}}var yrn=Ai(Gx(),1);import{readFile as F$n,readdir as z$n}from"node:fs/promises";import _ee from"node:path";var E$n=jt.string().min(1).refine(o=>!o.startsWith("/")&&!/^[a-zA-Z]:[\\/]/.test(o),{message:"test path must be relative (no leading / or drive letter)"}).refine(o=>!o.includes("\\"),{message:"test path must use forward slashes"}).refine(o=>!o.split("/").some(c=>c===".."),{message:"test path must not contain `..` segments"}),T$n=/^[a-z][a-z0-9-]*\.\d+$/,A$n=jt.string().regex(T$n,"branchFrom must be `<flowId>.<stepNumber>` (e.g. basic.3)"),P$n=jt.strictObject({steps:jt.array(jt.string().min(1)).min(1)}),N$n=jt.strictObject({id:$l,branchFrom:A$n,steps:jt.array(jt.string().min(1)).min(1)}),R$n=jt.strictObject({basic:P$n,alternates:jt.array(N$n).optional()}),D$n=jt.strictObject({seqFile:vee}),O$n=jt.strictObject({id:$l,description:jt.string().min(1),flows:jt.array($l).min(1),tests:jt.array(E$n).optional(),realization:D$n.optional(),status:g3.optional()}),grn=jt.strictObject({version:jt.literal("1.0"),id:$l,name:jt.string().min(1),description:jt.string().optional(),status:g3.optional(),primaryActor:$l,secondaryActors:jt.array($l).optional(),goal:jt.string().min(1),preconditions:jt.array(jt.string().min(1)).optional(),postconditions:jt.array(jt.string().min(1)).optional(),flows:R$n,slices:jt.array(O$n).min(1)}).superRefine((o,c)=>{let d=new Map;d.set("basic",o.flows.basic.steps.length);let g=new Set;o.flows.alternates&&(o.flows.alternates.forEach((b,v)=>{b.id==="basic"&&c.addIssue({code:jt.ZodIssueCode.custom,path:["flows","alternates",v,"id"],message:'alternate id "basic" collides with the basic flow'}),g.has(b.id)&&c.addIssue({code:jt.ZodIssueCode.custom,path:["flows","alternates",v,"id"],message:`duplicate alternate flow id "${b.id}"`}),g.add(b.id),d.set(b.id,b.steps.length)}),o.flows.alternates.forEach((b,v)=>{let[k,T]=b.branchFrom.split("."),P=Number(T),j=d.get(k);if(j===void 0){c.addIssue({code:jt.ZodIssueCode.custom,path:["flows","alternates",v,"branchFrom"],message:`branchFrom "${b.branchFrom}" references unknown flow "${k}"`});return}(P<1||P>j)&&c.addIssue({code:jt.ZodIssueCode.custom,path:["flows","alternates",v,"branchFrom"],message:`branchFrom "${b.branchFrom}" step ${P} is out of range (flow "${k}" has ${j} step(s))`})}));let f=new Set;o.slices.forEach((b,v)=>{f.has(b.id)&&c.addIssue({code:jt.ZodIssueCode.custom,path:["slices",v,"id"],message:`duplicate slice id "${b.id}"`}),f.add(b.id),b.flows.forEach((T,P)=>{d.has(T)||c.addIssue({code:jt.ZodIssueCode.custom,path:["slices",v,"flows",P],message:`slice "${b.id}" references unknown flow "${T}". Available: ${Array.from(d.keys()).join(", ")}.`})}),b.flows.includes("basic")||c.addIssue({code:jt.ZodIssueCode.custom,path:["slices",v,"flows"],message:`slice "${b.id}" does not include the basic flow. Slices must include "basic" plus zero or more alternates that branch off it; otherwise the alternate has no prefix to branch from.`}),!(b.status==="proposed"||b.status==="deprecated")&&(b.tests===void 0||b.tests.length===0)&&c.addIssue({code:jt.ZodIssueCode.custom,path:["slices",v,"tests"],message:`slice "${b.id}" has no tests. Active slices must declare at least one test path (each must exist on disk). Mark the slice \`status: proposed\` if the test isn't written yet.`})})});var j$n=6;function B$n(o,c){return _ee.relative(o,c).split(_ee.sep).join("/")||_ee.basename(c)}function H$n(o){return o.endsWith(".archik.uc.yaml")}async function Zy(o){let c=[],d=[],g=async b=>{let v=B$n(o,b),k;try{k=await F$n(b,"utf-8")}catch(j){d.push({abs:b,relPath:v,message:j instanceof Error?j.message:String(j)});return}let T;try{T=yrn.default.parse(k)}catch(j){d.push({abs:b,relPath:v,message:j instanceof Error?j.message:String(j)});return}let P=grn.safeParse(T);if(!P.success){d.push({abs:b,relPath:v,message:P.error.issues.map(j=>j.message).join("; ")});return}c.push({abs:b,relPath:v,doc:P.data})},f=async(b,v)=>{if(v>j$n)return;let k;try{k=await z$n(b,{withFileTypes:!0})}catch{return}for(let T of k){let P=_ee.join(b,T.name);if(T.isDirectory()){await f(P,v+1);continue}T.isFile()&&H$n(T.name)&&await g(P)}};return await f(_ee.join(o,".archik","usecases"),0),{docs:c,errors:d}}var wrn=Ai(Gx(),1);import{readFile as q$n,readdir as G$n}from"node:fs/promises";import Cee from"node:path";var $$n=jt.enum(["human","external-system","time","device"]),U$n=jt.strictObject({id:$l,kind:$$n,description:jt.string().min(1),goals:jt.array(jt.string().min(1)).optional(),status:g3.optional()}),brn=jt.strictObject({version:jt.literal("1.0"),description:jt.string().optional(),actors:jt.array(U$n).min(1)}).superRefine((o,c)=>{let d=new Set;o.actors.forEach((g,f)=>{d.has(g.id)&&c.addIssue({code:jt.ZodIssueCode.custom,path:["actors",f,"id"],message:`duplicate actor id "${g.id}"`}),d.add(g.id)})});var V$n=6;function W$n(o,c){return Cee.relative(o,c).split(Cee.sep).join("/")||Cee.basename(c)}function J$n(o){return o.endsWith(".archik.actors.yaml")}async function Zx(o){let c=[],d=[],g=async b=>{let v=W$n(o,b),k;try{k=await q$n(b,"utf-8")}catch(j){d.push({abs:b,relPath:v,message:j instanceof Error?j.message:String(j)});return}let T;try{T=wrn.default.parse(k)}catch(j){d.push({abs:b,relPath:v,message:j instanceof Error?j.message:String(j)});return}let P=brn.safeParse(T);if(!P.success){d.push({abs:b,relPath:v,message:P.error.issues.map(j=>j.message).join("; ")});return}c.push({abs:b,relPath:v,doc:P.data})},f=async(b,v)=>{if(v>V$n)return;let k;try{k=await G$n(b,{withFileTypes:!0})}catch{return}for(let T of k){let P=Cee.join(b,T.name);if(T.isDirectory()){await f(P,v+1);continue}T.isFile()&&J$n(T.name)&&await g(P)}};return await f(Cee.join(o,".archik"),0),{docs:c,errors:d}}function mrn(o,c,d,g){o.forEach((f,b)=>{let v=`${g}.${b}`;f.type==="message"?(c.has(f.from)||d.push({path:`${v}.from`,message:`participant "${f.from}" is not declared in participants`}),c.has(f.to)||d.push({path:`${v}.to`,message:`participant "${f.to}" is not declared in participants`})):f.type==="note"?f.participants.forEach((k,T)=>{c.has(k)||d.push({path:`${v}.participants.${T}`,message:`participant "${k}" is not declared in participants`})}):f.type==="group"&&f.branches&&f.branches.forEach((k,T)=>{mrn(k.steps,c,d,`${v}.branches.${T}.steps`)})})}function vrn(o,c){let d=[],g=new Set;return o.participants.forEach((f,b)=>{g.add(f.id),c.has(f.nodeId)||d.push({path:`participants.${b}.nodeId`,message:`nodeId "${f.nodeId}" does not match any architecture node. Run \`npx archik q list\` to see available node ids.`})}),mrn(o.steps,g,d,"steps"),d}var Z$n={boundary:new Set(["control"]),control:new Set(["boundary","control","entity"]),entity:new Set(["control","entity"])};function krn(o,c,d,g,f,b){o.forEach((v,k)=>{let T=`${f}.${k}`;if(v.type==="message"){let P=c.get(v.from),j=c.get(v.to);if(P===void 0||j===void 0)return;let B=Z$n[P];B&&!B.has(j)&&b.push({path:`${d}:${T}`,message:`ECB violation in seq "${g}" message "${v.id}": ${P} \u2192 ${j} is forbidden by the robustness rules (boundaries don't talk to boundaries or entities; entities don't talk to boundaries). Insert a control between them, or revisit the stereotype assignment.`})}else v.type==="group"&&v.branches&&v.branches.forEach((P,j)=>{krn(P.steps,c,d,g,`${T}.branches.${j}.steps`,b)})})}function Mrn(o,c){let d=[],g=new Map;for(let{doc:f}of c)for(let b of f.nodes)b.stereotype!==void 0&&g.set(b.id,b.stereotype);for(let f of o){if(f.doc.realizes===void 0)continue;let b=new Map;for(let v of f.doc.participants){let k=g.get(v.nodeId);k!==void 0&&b.set(v.id,k)}krn(f.doc.steps,b,f.relPath,f.doc.name,"steps",d)}return d}function xrn(o,c){let d=[],g=new Map;for(let{doc:f}of c)for(let b of f.nodes){let v=g.get(b.id)??new Set;for(let k of b.seqFiles??[])v.add(k);g.set(b.id,v)}for(let f of o){if(f.doc.realizes===void 0)continue;let b=new Set;for(let v of f.doc.participants){if(b.has(v.nodeId))continue;let k=g.get(v.nodeId);k!==void 0&&(k.has(f.relPath)||(b.add(v.nodeId),d.push({path:`${f.relPath}:participants.${v.id}`,message:`seq "${f.doc.name}" lists node "${v.nodeId}" as a participant, but that node's \`seqFiles\` array does not reference this diagram. Add "${f.relPath}" to node "${v.nodeId}"'s \`seqFiles\` array via \`npx archik suggest set\` so the canvas can surface the flow on that node.`})))}}return d}function Srn(o,c){let d=[],g=new Map(c.map(f=>[f.doc.id,f]));for(let f of o){if(f.doc.realizes===void 0)continue;let{useCase:b,slice:v}=f.doc.realizes,k=g.get(b);if(k===void 0){d.push({path:`${f.relPath}:realizes.useCase`,message:`seq diagram "${f.doc.name}" claims to realize use case "${b}" but no such use case file was found.`});continue}let T=k.doc.slices.find(P=>P.id===v);if(T===void 0){d.push({path:`${f.relPath}:realizes.slice`,message:`seq diagram "${f.doc.name}" claims to realize slice "${v}" of use case "${b}", but that use case has no slice with that id. Available slices: ${k.doc.slices.map(P=>P.id).join(", ")}.`});continue}if(T.realization===void 0){d.push({path:`${f.relPath}:realizes.slice`,message:`seq diagram "${f.doc.name}" realizes slice "${v}" of "${b}", but the slice does not declare \`realization.seqFile\`. Add \`realization: { seqFile: "${f.relPath}" }\` to slice "${v}" in ${k.relPath}.`});continue}T.realization.seqFile!==f.relPath&&d.push({path:`${f.relPath}:realizes.slice`,message:`seq diagram "${f.doc.name}" realizes slice "${v}" of "${b}", but that slice's realization.seqFile points at "${T.realization.seqFile}", not at this file ("${f.relPath}"). Pick one canonical seq file and update both sides.`})}return d}function _rn(o){let c=new Map,d=[];for(let{relPath:g,doc:f}of o)for(let b of f.actors){let v=c.get(b.id);if(v!==void 0){d.push({path:g,message:`actor id "${b.id}" is duplicated across actor files (also defined in ${v.relPath})`});continue}c.set(b.id,{relPath:g})}return{index:c,errors:d}}function Crn(o){let c=new Map,d=[];for(let{relPath:g,doc:f}of o){let b=c.get(f.id);if(b!==void 0){d.push({path:g,message:`use case id "${f.id}" is duplicated across files (also defined in ${b.relPath})`});continue}c.set(f.id,{relPath:g})}return{index:c,errors:d}}function Irn(o,c){let d=[];for(let{relPath:g,doc:f}of o)c.has(f.primaryActor)||d.push({path:`${g}:primaryActor`,message:`use case "${f.id}" references unknown primaryActor "${f.primaryActor}". Define it in a *.archik.actors.yaml file.`}),f.secondaryActors&&f.secondaryActors.forEach((b,v)=>{c.has(b)||d.push({path:`${g}:secondaryActors.${v}`,message:`use case "${f.id}" references unknown secondary actor "${b}". Define it in a *.archik.actors.yaml file.`})});return d}function Lrn(o,c){let d=[];for(let{relPath:g,doc:f}of o)f.slices.forEach((b,v)=>{b.status==="proposed"||b.status==="deprecated"||b.tests!==void 0&&b.tests.forEach((T,P)=>{c(T)||d.push({path:`${g}:slices.${v}.tests.${P}`,message:`slice "${b.id}" test "${T}" does not exist on disk (resolved relative to project root). Either fix the path or mark the slice \`status: proposed\`.`})})});return d}function Ern(o,c){let d=[],g=new Map(c.map(f=>[f.relPath,f]));for(let{relPath:f,doc:b}of o)b.slices.forEach((v,k)=>{if(v.realization===void 0)return;let T=g.get(v.realization.seqFile);if(T===void 0){d.push({path:`${f}:slices.${k}.realization.seqFile`,message:`slice "${v.id}" realization seqFile "${v.realization.seqFile}" does not exist or did not parse. Run \`npx archik q sequences\` to see available seq files.`});return}if(T.doc.realizes===void 0){d.push({path:`${f}:slices.${k}.realization.seqFile`,message:`slice "${v.id}" claims realization "${v.realization.seqFile}", but that seq diagram has no \`realizes\` block. Add \`realizes: { useCase: "${b.id}", slice: "${v.id}" }\` to ${T.relPath}, or remove the realization claim.`});return}(T.doc.realizes.useCase!==b.id||T.doc.realizes.slice!==v.id)&&d.push({path:`${f}:slices.${k}.realization.seqFile`,message:`slice "${v.id}" claims realization "${v.realization.seqFile}", but that seq diagram's \`realizes\` points at "${T.doc.realizes.useCase}/${T.doc.realizes.slice}", not at "${b.id}/${v.id}". Pick one canonical link.`})});return d}import Iee from"node:path";function Xx(o){let c=Iee.dirname(o),d=Iee.basename(o),g=Iee.extname(d),f=g.length>0?d.slice(0,-g.length):d;return Iee.join(c,`${f}.suggested${g}`)}function Lq(o){return Iee.basename(o).endsWith(".archik.suggested.yaml")?"suggested":"normal"}function Trn(o){return o.metadata?.suggestion!==void 0}function ape(o){if(o.metadata?.suggestion===void 0)return o;let{suggestion:c,...d}=o.metadata,g={...o};return Object.keys(d).length===0?delete g.metadata:g.metadata=d,g}var Y$n=o=>{let c=Zr(o,"json");return c!==void 0&&c!=="false"&&c!=="0"};function Z5(o){console.log(JSON.stringify(o,null,2))}async function Nrn(o){let c=Y$n(o),d;try{d=await Lu(o._[0])}catch(Te){let Wt=Te instanceof Error?Te.message:String(Te);return c?Z5({ok:!1,errors:[{path:"<root>",message:Wt}]}):console.error(`\u2717 ${Wt}`),1}let g=Arn.relative(process.cwd(),d)||d,f;try{f=await K$n(d,"utf-8")}catch(Te){let Wt=Te instanceof Error?Te.message:String(Te);return c?Z5({ok:!1,file:g,errors:[{path:"<root>",message:Wt}]}):(console.error(`\u2717 Cannot read ${g}`),console.error(Wt)),1}let b;try{b=Prn.default.parse(f)}catch(Te){let tn=[{path:"<root>",message:`Invalid YAML: ${Te instanceof Error?Te.message:String(Te)}`}];return c?Z5({ok:!1,file:g,errors:tn}):(console.error(`\u2717 ${g}`),console.error(Ag(tn))),1}let v=dL(b);if(!v.ok)return c?Z5({ok:!1,file:g,errors:v.errors}):(console.error(`\u2717 ${g}`),console.error(Ag(v.errors))),1;let k=W1(d),T=Te=>X$n(Arn.resolve(k,Te)),P=Iq(v.value,T);if(P.length>0)return c?Z5({ok:!1,file:g,errors:P}):(console.error(`\u2717 ${g}`),console.error(Ag(P))),1;let j=Lq(d),B=Cq(v.value,j,T);if(B.length>0)return c?Z5({ok:!1,file:g,errors:B}):(console.error(`\u2717 ${g}`),console.error(Ag(B))),1;let G=await z0(d,k);if(G.errors.length>0){if(c)Z5({ok:!1,file:g,errors:G.errors.map(Te=>({path:Te.relPath,message:Te.message}))});else for(let Te of G.errors)console.error(`\u2717 ${Te.relPath}: ${Te.message}`);return 1}let K=new Set(G.docs.flatMap(Te=>Te.doc.nodes.map(Wt=>Wt.id))),de=[];for(let{doc:Te}of G.docs)de.push(...hrn(Te,T));if(de.length>0){if(c)Z5({ok:!1,file:g,errors:de});else{console.error("\u2717 seqFiles path errors:");for(let Te of de)console.error(` \u2717 ${Te.path}: ${Te.message}`)}return 1}let ce=await J5(k),we=0;for(let Te of ce.errors)c||console.error(`\u2717 ${Te.relPath}: ${Te.message}`),we++;for(let{relPath:Te,doc:Wt}of ce.docs){let tn=vrn(Wt,K);if(tn.length>0){if(!c){console.error(`\u2717 ${Te}`);for(let jn of tn)console.error(` \u2717 ${jn.path}: ${jn.message}`)}we+=tn.length}}if(we>0)return c&&Z5({ok:!1,file:g,errors:[{path:"<seq>",message:`${we} sequence diagram error(s)`}]}),1;let De=await Zy(k),at=await Zx(k),kt=[];for(let Te of De.errors)kt.push({path:Te.relPath,message:Te.message});for(let Te of at.errors)kt.push({path:Te.relPath,message:Te.message});if(kt.length===0){let Te=_rn(at.docs);kt.push(...Te.errors);let Wt=Crn(De.docs);kt.push(...Wt.errors),kt.length===0&&(kt.push(...Irn(De.docs,Te.index)),kt.push(...Lrn(De.docs,T)),kt.push(...Ern(De.docs,ce.docs)),kt.push(...Srn(ce.docs,De.docs)),kt.push(...Mrn(ce.docs,G.docs)),kt.push(...xrn(ce.docs,G.docs)))}if(kt.length>0)return c?Z5({ok:!1,file:g,errors:kt}):(console.error(`\u2717 ${g}`),console.error(Ag(kt))),1;let _e=at.docs.reduce((Te,Wt)=>Te+Wt.doc.actors.length,0),ht=De.docs.length;if(c)Z5({ok:!0,file:g,nodes:v.value.nodes.length,edges:v.value.edges.length,useCases:ht,actors:_e});else{let Te=G.docs.reduce((fn,ii)=>fn+ii.doc.nodes.length,0),Wt=G.docs.reduce((fn,ii)=>fn+ii.doc.edges.length,0),tn=G.docs.length,jn=tn>1?` (${tn} files)`:"",rr=ht>0?`, ${ht} use case${ht===1?"":"s"}`:"",_r=_e>0?`, ${_e} actor${_e===1?"":"s"}`:"";console.log(`\u2713 ${g}${jn} \u2014 ${Te} nodes, ${Wt} edges${rr}${_r}`)}return 0}var Gft=Ai(y3(),1),Vft=Ai(Mge(),1),Jan=Ai(Gx(),1);import{mkdir as Gan,readFile as Van,writeFile as Wan}from"node:fs/promises";import eG from"node:path";var Ucn=Ai(jcn(),1);function gte(o,c){return o.length*c}function Gf(o,c,d){if(c<=0)return"";let g=Math.floor(c/d);return o.length<=g?o:g<=1?"\u2026":o.slice(0,g-1)+"\u2026"}var yte={nodeSpacing:60,layerSpacing:100,padding:40,viewMode:"detailed"};function eWn(o){let c=o.nodeSpacing??yte.nodeSpacing,d=o.layerSpacing??yte.layerSpacing,g=o.padding??yte.padding;return{"elk.algorithm":"layered","elk.direction":"RIGHT","elk.edgeRouting":"ORTHOGONAL","elk.layered.spacing.nodeNodeBetweenLayers":String(d),"elk.spacing.nodeNode":String(c),"elk.padding":`[top=${g}, left=${g}, bottom=${g}, right=${g}]`,"elk.hierarchyHandling":"INCLUDE_CHILDREN","elk.edgeLabels.placement":"CENTER","elk.spacing.edgeLabel":"8","elk.spacing.labelLabel":"6","elk.spacing.edgeNode":"20","elk.spacing.edgeEdge":"12","elk.layered.spacing.edgeEdgeBetweenLayers":"12"}}var Th={width:172,height:82},Bcn={width:172,height:90},tWn={service:Th,function:Th,worker:Th,agent:Th,database:{width:184,height:100},cache:Bcn,vectordb:Th,storage:Th,queue:{width:188,height:80},topic:Th,stream:Th,gateway:Th,cdn:Th,route:Th,interface:Th,adapter:Th,port:Th,llm:Th,prompt:Th,tool:Th,auth:Th,observability:Th,cloud:{width:200,height:120},frontend:Bcn,page:Th,component:Th,store:Th,hook:Th,external:{width:184,height:100},human:{width:184,height:100},module:{width:240,height:130},custom:{width:240,height:130}},yl={width:152,height:36},Hcn={width:200,height:80},nWn={service:yl,function:yl,worker:yl,agent:yl,database:yl,cache:yl,vectordb:yl,storage:yl,queue:{width:168,height:36},topic:yl,stream:yl,gateway:yl,cdn:yl,route:yl,interface:yl,adapter:yl,port:yl,llm:yl,prompt:yl,tool:yl,auth:yl,observability:yl,cloud:yl,frontend:yl,page:yl,component:yl,store:yl,hook:yl,external:{width:168,height:40},human:{width:168,height:40},module:Hcn,custom:Hcn},rWn=24,$cn=320;function iWn(o,c,d){if(o.kind==="module"||o.kind==="custom")return c;if(d==="compact"){let k=36+gte(o.name,5.9)+12;return Math.max(c,Math.min($cn,Math.ceil(k)))}let g=gte(o.name,7.4),f=o.stack!==void 0?gte(o.stack,5.9):0,b=Math.max(g,f)+rWn;return Math.max(c,Math.min($cn,Math.ceil(b)))}var oWn={top:48,left:18,bottom:18,right:18};function cWn(o,c,d,g){let f=d[o.kind],b={id:o.id,width:iWn(o,f.width,g),height:f.height};if(c.length>0){b.children=c;let v=g==="compact"?{top:30,left:12,bottom:12,right:12}:oWn;b.layoutOptions={"elk.padding":`[top=${v.top}, left=${v.left}, bottom=${v.bottom}, right=${v.right}]`}}return b}function aWn(o,c,d){let g=new Map;for(let k of o.nodes)g.set(k.id,k);let f=new Map;for(let k of o.nodes){let T=f.get(k.parentId)??[];T.push(k),f.set(k.parentId,T)}function b(k){let T=(f.get(k.id)??[]).map(b);return cWn(k,T,c,d)}return{roots:(f.get(void 0)??[]).map(b),byId:g}}function sWn(o){return o.fromFile===void 0&&o.toFile===void 0}function uWn(o){return o.edges.filter(sWn).map(c=>{let d={id:c.id,sources:[c.from],targets:[c.to]};return c.label!==void 0&&c.label.length>0&&(d.labels=[{text:c.label,width:Math.ceil(gte(c.label,5.9)),height:14}]),d})}function zw(o){return o??0}function qcn(o,c){let d=c.get(o.id);if(!d)throw new Error(`ELK returned unknown node id "${o.id}"`);let g=(o.children??[]).map(f=>qcn(f,c));return{...d,x:zw(o.x),y:zw(o.y),width:zw(o.width),height:zw(o.height),children:g}}function lWn(o,c){let d=new Map,g=new Map,f=(P,j,B,G)=>{let K=j+zw(P.x),de=B+zw(P.y);d.set(P.id,{x:K,y:de}),g.set(P.id,G);let ce=[...G,P.id];for(let we of P.children??[])f(we,K,de,ce)};f(o,0,0,[]);let b=(P,j)=>{let B=g.get(P)??[],G=g.get(j)??[],K=0;for(;K<B.length&&K<G.length&&B[K]===G[K];)K++;let de=K===0?o.id:B[K-1];return d.get(de)??{x:0,y:0}},v=new Map,k=new Map,T=P=>{for(let j of P.edges??[]){let B=j.sources?.[0]??"",G=j.targets?.[0]??"",K=b(B,G),de=De=>({x:zw(De.x)+K.x,y:zw(De.y)+K.y}),ce=(j.sections??[]).map(De=>({startPoint:de(De.startPoint),endPoint:de(De.endPoint),bendPoints:(De.bendPoints??[]).map(de)}));v.set(j.id,ce);let we=(j.labels??[]).map(De=>({text:typeof De.text=="string"?De.text:"",x:zw(De.x)+K.x,y:zw(De.y)+K.y,width:zw(De.width),height:zw(De.height)}));k.set(j.id,we)}for(let j of P.children??[])T(j)};return T(o),c.edges.map(P=>({...P,sections:v.get(P.id)??[],labels:k.get(P.id)??[]}))}var hWn=new Ucn.default;async function dWn(o,c={}){if(o.nodes.length===0)return{document:o,width:0,height:0,roots:[],edges:[]};let d=c.viewMode==="compact"?"compact":"detailed",g=d==="compact"?nWn:tWn,{roots:f,byId:b}=aWn(o,g,d),v={id:"__root__",layoutOptions:eWn(c),children:f,edges:uWn(o)},k=await hWn.layout(v),T=(k.children??[]).map(P=>qcn(P,b));return{document:o,width:zw(k.width),height:zw(k.height),roots:T,edges:lWn(k,o)}}var xge={name:"elk",layout:dWn};var nri={[xge.name]:xge},fWn=xge;function Xq(o,c){return fWn.layout(o,c)}var Sge="seq-arrow-filled",_ge="seq-arrow-open";function pWn(o){return Math.max(160,o.length*8+80)}function Gcn(o,c,d,g,f){let b=d,v=[],k=Number.POSITIVE_INFINITY,T=Number.NEGATIVE_INFINITY;for(let P of o)if(P.type==="message"){let j=c.get(P.from),B=c.get(P.to),G=j?.cx??g,K=B?.cx??g;v.push({type:"message",id:P.id,fromCx:G,toCx:K,y:b,label:P.label,arrow:P.arrow,activate:P.activate??!1,isSelf:P.from===P.to,...P.status!==void 0?{status:P.status}:{}}),b+=P.from===P.to?56*1.5:56}else if(P.type==="note"){let j=P.participants.map(ce=>c.get(ce)?.cx).filter(ce=>ce!==void 0).sort((ce,we)=>ce-we),B=j[0]??g,G=j[j.length-1]??f,K=Math.min(Math.max(P.text.length*7.5+24,G-B+16,80),400),de;P.position==="left_of"?de=B-K-8:P.position==="right_of"?de=G+8:de=(B+G)/2-K/2,k=Math.min(k,de),T=Math.max(T,de+K),v.push({type:"note",id:P.id,x:de,y:b,width:K,height:64,text:P.text,...P.status!==void 0?{status:P.status}:{}}),b+=72}else if(P.type==="group"){b+=8;let j=g-12,B=f-g+24,G=b;b+=24;let K=[];if(P.branches)for(let de=0;de<P.branches.length;de++){let ce=P.branches[de],we=b,{items:De,endY:at,contentMinX:kt,contentMaxX:_e}=Gcn(ce.steps,c,b,g,f);b=at,k=Math.min(k,kt),T=Math.max(T,_e),K.push({...ce.label!==void 0?{label:ce.label}:{},startY:we,...de<P.branches.length-1?{dividerY:b}:{},steps:De}),de<P.branches.length-1&&(b+=4)}b+=12,v.push({type:"group",id:P.id,kind:P.kind,...P.condition!==void 0?{condition:P.condition}:{},...P.label!==void 0?{label:P.label}:{},...P.seqFile!==void 0?{seqFile:P.seqFile}:{},x:j,y:G,width:B,height:b-G,branches:K,...P.status!==void 0?{status:P.status}:{}}),k=Math.min(k,j),T=Math.max(T,j+B)}return{items:v,endY:b,contentMinX:k,contentMaxX:T}}function Vcn(o){let c=new Map;for(let d of o)if(d.type==="message"&&d.arrow==="destroy"&&c.set(d.toCx,d.y+56+20),d.type==="group")for(let g of d.branches)for(let[f,b]of Vcn(g.steps))c.set(f,b);return c}function gWn(o){let c=[],d=new Map;function g(f){for(let b of f)if(b.type==="message"){if(b.activate&&b.arrow==="sync"&&!b.isSelf){let v=d.get(b.toCx)??[];v.push(b.y),d.set(b.toCx,v)}if(b.arrow==="return"&&!b.isSelf){let v=d.get(b.fromCx);if(v&&v.length>0){let k=v.pop();c.push({cx:b.fromCx,startY:k,endY:b.y}),v.length===0&&d.delete(b.fromCx)}}}else if(b.type==="group")for(let v of b.branches)g(v.steps)}g(o);for(let[f,b]of d)for(let v of b)c.push({cx:f,startY:v,endY:v+56/2});return c}function Wcn(o,c){let d=o.participants.map(Wt=>pWn(Wt.label??Wt.nodeId)),g=32,f=o.participants.map((Wt,tn)=>{let jn=d[tn],rr=g+jn/2;g+=jn;let _r=c?.get(Wt.nodeId);return{id:Wt.id,nodeId:Wt.nodeId,label:Wt.label??Wt.nodeId,cx:rr,colWidth:jn,..._r!==void 0?{kind:_r}:{},...Wt.status!==void 0?{status:Wt.status}:{},lifelineEndY:0}}),b=g+32,v=new Map(f.map(Wt=>[Wt.id,Wt])),k=f[0]?.cx??32,T=f[f.length-1]?.cx??b-32,P=24,{items:j,endY:B,contentMinX:G,contentMaxX:K}=Gcn(o.steps,v,P,k,T),de=G<32&&Number.isFinite(G)?32-G:0,ce=Number.isFinite(K)?K+de+32:0,we=Math.max(b+de,ce),De=de>0?j.map(Wt=>Jcn(Wt,de)):j,at=de>0?f.map(Wt=>({...Wt,cx:Wt.cx+de})):f,kt=Vcn(De),_e=at.map(Wt=>({...Wt,lifelineEndY:kt.get(Wt.cx)??56+B+24})),ht=56+B+24,Te=gWn(De);return{participants:_e,steps:De,activations:Te,totalWidth:we,totalHeight:ht}}function Jcn(o,c){return o.type==="message"?{...o,fromCx:o.fromCx+c,toCx:o.toCx+c}:o.type==="note"?{...o,x:o.x+c}:{...o,x:o.x+c,branches:o.branches.map(d=>({...d,steps:d.steps.map(g=>Jcn(g,c))}))}}var Ci=Ai(Rft(),1);var M3=Ai(sc(),1),ran=(o,c,d)=>({width:o,height:o,viewBox:"0 0 24 24",fill:"none",stroke:c,strokeWidth:d,strokeLinecap:"round",strokeLinejoin:"round"});function ian({size:o=16,color:c="currentColor",strokeWidth:d=1.8}){return(0,M3.jsxs)("svg",{...ran(o,c,d),"aria-hidden":"true",children:[(0,M3.jsx)("rect",{x:"3",y:"3",width:"18",height:"18",rx:"3.5",ry:"3.5"}),(0,M3.jsx)("line",{x1:"9",y1:"9",x2:"9",y2:"13"}),(0,M3.jsx)("line",{x1:"15",y1:"9",x2:"15",y2:"13"}),(0,M3.jsx)("circle",{cx:"12",cy:"16.5",r:"1",fill:c,stroke:"none"})]})}function oan({size:o=16,color:c="currentColor",strokeWidth:d=1.8}){return(0,M3.jsxs)("svg",{...ran(o,c,d),"aria-hidden":"true",children:[(0,M3.jsx)("path",{d:"M 7.5 6 L 3.5 12 L 7.5 18"}),(0,M3.jsx)("path",{d:"M 16.5 6 L 20.5 12 L 16.5 18"}),(0,M3.jsx)("circle",{cx:"13",cy:"8.6",r:"0.9",fill:c,stroke:"none"}),(0,M3.jsx)("line",{x1:"13",y1:"11",x2:"11",y2:"16.5"})]})}var jw={service:{color:"#38bdf8",icon:Ci.Server,description:"Long-running compute that owns business logic."},function:{color:"#22d3ee",icon:Ci.FunctionSquare,description:"Stateless function-as-a-service / lambda."},worker:{color:"#06b6d4",icon:Ci.Cog,description:"Background job processor or consumer loop."},agent:{color:"#14b8a6",icon:Ci.Bot,description:"Autonomous AI agent driving tools and actions."},database:{color:"#34d399",icon:Ci.Database,description:"Persistent state \u2014 relational, document, key-value."},cache:{color:"#a78bfa",icon:Ci.Layers,description:"In-memory store for fast reads."},vectordb:{color:"#c084fc",icon:Ci.Sparkles,description:"Vector store for embeddings / similarity search."},storage:{color:"#84cc16",icon:Ci.HardDrive,description:"Object / blob storage (S3, GCS, etc.)."},queue:{color:"#fbbf24",icon:Ci.SendHorizontal,description:"Asynchronous work queue with at-least-once delivery."},topic:{color:"#f97316",icon:Ci.Radio,description:"Pub/sub topic with multiple consumers."},stream:{color:"#fb923c",icon:Ci.Waves,description:"Append-only event log (Kafka, Kinesis)."},gateway:{color:"#6366f1",icon:Ci.DoorOpen,description:"API gateway, ingress, edge router."},cdn:{color:"#0ea5e9",icon:Ci.Globe,description:"Content delivery network / static edge."},route:{color:"#f59e0b",icon:Ci.Route,description:"HTTP / URL route \u2014 path + method mapped to a handler."},interface:{color:"#d946ef",icon:oan,description:"Abstract contract \u2014 the <i> a system commits to."},adapter:{color:"#c026d3",icon:Ci.Cable,description:"Concrete implementation of an interface."},port:{color:"#a21caf",icon:ian,description:"Hexagonal-architecture port \u2014 the socket an adapter plugs into."},llm:{color:"#a855f7",icon:Ci.Brain,description:"Large language model service."},prompt:{color:"#c4b5fd",icon:Ci.MessageSquare,description:"Prompt template / instruction set."},tool:{color:"#fde047",icon:Ci.Wrench,description:"Tool callable by an agent or LLM."},auth:{color:"#ef4444",icon:Ci.Lock,description:"Identity provider, auth service."},observability:{color:"#10b981",icon:Ci.Eye,description:"Metrics, logs, traces \u2014 operational telemetry."},cloud:{color:"#0284c7",icon:Ci.Cloud,description:"Managed cloud service (compute, hosted, etc.)."},frontend:{color:"#f472b6",icon:Ci.Monitor,description:"User-facing surface \u2014 browser, mobile, CLI."},page:{color:"#fb7185",icon:Ci.LayoutTemplate,description:"Route-level UI screen mapped to a URL."},component:{color:"#8b5cf6",icon:Ci.Component,description:"Reusable UI component / view fragment."},store:{color:"#facc15",icon:Ci.Boxes,description:"Client-side state container \u2014 Redux, Zustand, Pinia."},hook:{color:"#0d9488",icon:Ci.Anchor,description:"Reusable client logic \u2014 React hook, Vue composable."},external:{color:"#94a3b8",icon:Ci.ExternalLink,description:"Third-party system you don't own."},human:{color:"#60a5fa",icon:Ci.UserRound,description:"Human actor \u2014 end user, operator, or customer."},module:{color:"#7dd3fc",icon:Ci.Package,description:"Module / component grouping (logical container)."},custom:{color:"#64748b",icon:Ci.Box,description:"Container or anything not in the taxonomy."}};var Tz=Ai(sc(),1),ODe=36,Xkr=128,Kkr=7,can=20,aan=24;function san({participant:o,nodeKind:c}){let d=c?jw[c]:void 0,g=d?.color??"var(--archik-fg-muted)",f=(56-ODe)/2,b=d?.icon,v=Math.max(Xkr,o.label.length*Kkr+aan+(b?can:0)),k=v/2,T=b?k+can/2:k,P=o.status,j=P==="proposed"?.55:P==="deprecated"?.35:1,B=P==="proposed"||P==="deprecated"?"4 3":void 0;return(0,Tz.jsxs)("g",{transform:`translate(${o.cx-k}, ${f})`,opacity:j,children:[(0,Tz.jsx)("rect",{width:v,height:ODe,rx:8,fill:"var(--archik-node-fill)",stroke:g,strokeWidth:1.4,...B!==void 0?{strokeDasharray:B}:{}}),b&&(0,Tz.jsx)("g",{transform:`translate(${aan/2}, ${(ODe-14)/2})`,children:(0,Tz.jsx)(b,{size:14,color:g,strokeWidth:1.5})}),(0,Tz.jsx)("text",{x:T,y:ODe/2+4,textAnchor:"middle",fontSize:12,fontWeight:500,fill:"var(--archik-fg)",fontFamily:"inherit",children:o.label})]})}var lan=Ai(sc(),1);function uan({participant:o}){let c=o.status,d=c==="proposed"?.3:c==="deprecated"?.2:.5;return(0,lan.jsx)("line",{x1:o.cx,y1:56,x2:o.cx,y2:o.lifelineEndY,stroke:"var(--archik-node-stroke)",strokeWidth:1,strokeDasharray:"4 4",opacity:d})}var Q5=Ai(sc(),1),Oft=32,Fft=20,Ykr=-6;function han({msg:o}){let c=o.arrow==="return",d=o.arrow==="async",g=o.arrow==="create",f=c||g,b=o.arrow==="destroy",v=c||d?_ge:Sge,k=o.status==="proposed"?.5:o.status==="deprecated"?.35:1;if(o.isSelf){let B=o.fromCx,G=o.y,K=`M ${B} ${G} L ${B+Oft} ${G} L ${B+Oft} ${G+Fft} L ${B} ${G+Fft}`;return(0,Q5.jsxs)("g",{opacity:k,children:[(0,Q5.jsx)("path",{d:K,fill:"none",stroke:"var(--archik-edge-filled)",strokeWidth:1.4,markerEnd:`url(#${v})`}),(0,Q5.jsx)("text",{x:B+Oft+6,y:G+Fft/2+4,fontSize:11,fill:"var(--archik-fg)",fontFamily:"inherit",children:o.label})]})}let P=o.fromCx<o.toCx?o.toCx-6:o.toCx+6,j=(o.fromCx+o.toCx)/2;return(0,Q5.jsxs)("g",{opacity:k,children:[(0,Q5.jsx)("line",{x1:o.fromCx,y1:o.y,x2:P,y2:o.y,stroke:"var(--archik-edge-filled)",strokeWidth:1.4,strokeDasharray:f?"4 4":void 0,markerEnd:b?void 0:`url(#${v})`}),(0,Q5.jsxs)("text",{x:j,y:o.y+Ykr,textAnchor:"middle",fontSize:11,fill:"var(--archik-fg)",fontFamily:"inherit",children:[g&&"\xABcreate\xBB ",o.label]}),o.arrow==="destroy"&&(0,Q5.jsxs)("g",{transform:`translate(${o.toCx-6}, ${o.y-6})`,children:[(0,Q5.jsx)("line",{x1:0,y1:0,x2:12,y2:12,stroke:"var(--archik-fg-muted)",strokeWidth:1.5}),(0,Q5.jsx)("line",{x1:12,y1:0,x2:0,y2:12,stroke:"var(--archik-fg-muted)",strokeWidth:1.5})]})]})}var j9=Ai(sc(),1),Qkr={alt:"#6366f1",opt:"#0ea5e9",loop:"#10b981",par:"#f59e0b",break:"#ef4444",ref:"#8b5cf6"},dan=36,zft=18;function fan({group:o,renderStep:c,onRefClick:d}){let g=Qkr[o.kind]??"var(--archik-fg-muted)",f=o.status==="proposed"?.55:o.status==="deprecated"?.35:1,b=o.kind==="ref"&&o.seqFile!==void 0&&d!==void 0;return(0,j9.jsxs)("g",{opacity:f,onClick:b?()=>d(o.seqFile):void 0,style:b?{cursor:"pointer"}:void 0,children:[(0,j9.jsx)("rect",{x:o.x,y:o.y,width:o.width,height:o.height,rx:4,fill:"none",stroke:g,strokeWidth:1.2,opacity:.6}),(0,j9.jsx)("rect",{x:o.x,y:o.y,width:dan,height:zft,rx:4,fill:g,opacity:.8}),(0,j9.jsx)("text",{x:o.x+6,y:o.y+zft-5,fontSize:10,fontWeight:600,fill:"#fff",fontFamily:"inherit",children:o.kind}),(o.condition??o.label)&&(0,j9.jsx)("text",{x:o.x+dan+6,y:o.y+zft-5,fontSize:10,fill:g,fontFamily:"inherit",children:o.condition??o.label}),o.branches.map((v,k)=>(0,j9.jsxs)("g",{children:[v.label&&(0,j9.jsx)("text",{x:o.x+6,y:v.startY+12,fontSize:10,fill:g,fontFamily:"inherit",children:v.label}),v.steps.map(T=>c(T)),v.dividerY!==void 0&&(0,j9.jsx)("line",{x1:o.x,y1:v.dividerY,x2:o.x+o.width,y2:v.dividerY,stroke:g,strokeWidth:1,strokeDasharray:"4 2",opacity:.5})]},k))]})}var Kq=Ai(sc(),1);function e3r(o,c){let d=Math.max(10,Math.floor(c/6.5));if(o.length<=d)return[o];let g=o.split(" "),f=[],b="";for(let v of g)(b+(b?" ":"")+v).length>d&&b?(f.push(b),b=v):b=b?b+" "+v:v;return b&&f.push(b),f.slice(0,3)}function pan({note:o}){let{x:c,y:d,width:g,height:f,text:b}=o,v=o.status==="proposed"?.55:o.status==="deprecated"?.35:1;return(0,Kq.jsxs)("g",{opacity:v,children:[(0,Kq.jsx)("path",{d:`M ${c} ${d} L ${c+g-10} ${d} L ${c+g} ${d+10} L ${c+g} ${d+f} L ${c} ${d+f} Z`,fill:"var(--archik-node-fill)",stroke:"var(--archik-node-stroke)",strokeWidth:1.2}),(0,Kq.jsx)("path",{d:`M ${c+g-10} ${d} L ${c+g-10} ${d+10} L ${c+g} ${d+10}`,fill:"none",stroke:"var(--archik-node-stroke)",strokeWidth:1.2}),e3r(b,g-16).map((k,T)=>(0,Kq.jsx)("text",{x:c+8,y:d+8+11+T*13,fontSize:11,fill:"var(--archik-fg)",fontFamily:"inherit",children:k},T))]})}var $0=Ai(sc(),1);function t3r({id:o}){return(0,$0.jsx)("marker",{id:o,viewBox:"0 0 10 10",refX:"10",refY:"5",markerWidth:"6",markerHeight:"6",orient:"auto-start-reverse",children:(0,$0.jsx)("path",{d:"M 0 0 L 10 5 L 0 10 z",fill:"context-stroke"})})}function n3r({id:o}){return(0,$0.jsx)("marker",{id:o,viewBox:"0 0 12 12",refX:"11",refY:"6",markerWidth:"7",markerHeight:"7",orient:"auto-start-reverse",children:(0,$0.jsx)("path",{d:"M 1 1 L 11 6 L 1 11",fill:"none",stroke:"context-stroke",strokeWidth:"1.5",strokeLinejoin:"round"})})}function yan({step:o,onRefClick:c}){return o.type==="message"?(0,$0.jsx)(han,{msg:o}):o.type==="note"?(0,$0.jsx)(pan,{note:o}):o.type==="group"?(0,$0.jsx)(fan,{group:o,...c!==void 0?{onRefClick:c}:{},renderStep:d=>(0,$0.jsx)(yan,{step:d,...c!==void 0?{onRefClick:c}:{}},d.id)}):null}function ban({laid:o,svgRef:c,onRefClick:d}){let{participants:g,steps:f,activations:b,totalWidth:v,totalHeight:k}=o;return(0,$0.jsxs)("svg",{ref:c,width:v,height:k,viewBox:`0 0 ${v} ${k}`,xmlns:"http://www.w3.org/2000/svg",style:{fontFamily:"var(--archik-font, system-ui)"},children:[(0,$0.jsxs)("defs",{children:[(0,$0.jsx)(t3r,{id:Sge}),(0,$0.jsx)(n3r,{id:_ge})]}),g.map(T=>(0,$0.jsx)(uan,{participant:T},T.id)),g.map(T=>(0,$0.jsx)(san,{participant:T,...T.kind!==void 0?{nodeKind:T.kind}:{}},T.id)),(0,$0.jsxs)("g",{transform:`translate(0, ${56})`,children:[b.map(T=>(0,$0.jsx)("rect",{x:T.cx-8/2,y:T.startY,width:8,height:T.endY-T.startY,fill:"var(--archik-node-fill)",stroke:"var(--archik-node-stroke)",strokeWidth:1,rx:2},`${T.cx}-${T.startY}`)),f.map(T=>(0,$0.jsx)(yan,{step:T,...d!==void 0?{onRefClick:d}:{}},T.id))]})]})}var LL=Ai(sc(),1),Vf=28;function Yq({kind:o,iconAt:c,labelAt:d}){let g=jw[o],f=g.icon,b=14;return(0,LL.jsxs)(LL.Fragment,{children:[(0,LL.jsx)("g",{transform:`translate(${c.cx-b/2}, ${c.cy-b/2})`,pointerEvents:"none","aria-hidden":"true",children:(0,LL.jsx)(f,{size:b,color:g.color,strokeWidth:1.8})}),(0,LL.jsx)("text",{x:d.cx,y:d.cy,textAnchor:"middle",fontSize:9.5,fontWeight:600,letterSpacing:"0.12em",fill:"var(--archik-node-caption)",children:o.toUpperCase()})]})}var EL=Ai(sc(),1),r3r=24;function wan({node:o,selected:c}){let d=o.width,g=o.height,f=o.stack!==void 0,b=Vf+(g-Vf)/2,v=f?b-4:b+4,k=b+14,T=Math.max(0,d-r3r),P=Gf(o.name,T,7.4),j=f?Gf(o.stack,T,5.9):"";return(0,EL.jsxs)("g",{className:`archik-node archik-node--${o.kind}`,children:[(0,EL.jsx)("rect",{className:c?"archik-selected-glow":void 0,width:d,height:g,rx:10,ry:10,fill:"var(--archik-node-fill)",stroke:c?"var(--archik-selected)":"var(--archik-node-stroke)",strokeWidth:c?1.8:1.4}),(0,EL.jsx)("line",{x1:0,y1:Vf,x2:d,y2:Vf,stroke:"var(--archik-node-stroke)",strokeOpacity:.25,strokeWidth:1}),(0,EL.jsx)(Yq,{kind:o.kind,iconAt:{cx:18,cy:Vf/2},labelAt:{cx:d/2,cy:Vf/2+3}}),(0,EL.jsx)("text",{x:d/2,y:v,textAnchor:"middle",fontSize:13,fontWeight:600,fill:"var(--archik-node-text)",children:P}),f&&(0,EL.jsx)("text",{x:d/2,y:k,textAnchor:"middle",fontSize:11,fill:"var(--archik-node-text-dim)",children:j})]})}var TL=Ai(sc(),1);function man({node:o,selected:c}){let d=o.width,g=o.height,f=Math.min(g/2,28),b=o.stack!==void 0,v=Vf+(g-Vf)/2,k=b?v-4:v+4,T=v+14,P=Math.max(0,d-2*f-8),j=Gf(o.name,P,7.4),B=b?Gf(o.stack,P,5.9):"",G=c?"var(--archik-selected)":"var(--archik-node-stroke)";return(0,TL.jsxs)("g",{className:"archik-node archik-node--queue",children:[(0,TL.jsx)("rect",{className:c?"archik-selected-glow":void 0,width:d,height:g,rx:f,ry:f,fill:"var(--archik-node-fill)",stroke:G,strokeWidth:c?1.8:1.4}),(0,TL.jsx)("line",{x1:f,y1:Vf,x2:d-f,y2:Vf,stroke:G,strokeOpacity:.25,strokeWidth:1}),(0,TL.jsx)(Yq,{kind:"queue",iconAt:{cx:f+8,cy:Vf/2},labelAt:{cx:d/2,cy:Vf/2+3}}),(0,TL.jsx)("text",{x:d/2,y:k,textAnchor:"middle",fontSize:13,fontWeight:600,fill:"var(--archik-node-text)",children:j}),b&&(0,TL.jsx)("text",{x:d/2,y:T,textAnchor:"middle",fontSize:11,fill:"var(--archik-node-text-dim)",children:B})]})}var AL=Ai(sc(),1),i3r=24;function van({node:o,selected:c}){let d=o.width,g=o.height,f=o.description!==void 0,b=Vf,v=b+(g-b)/2,k=f?v-2:v+4,T=g-12,P=Math.max(0,d-i3r),j=Gf(o.name,P,7.4),B=f?Gf(o.description,P,5.9):"",G=c?"var(--archik-selected)":"var(--archik-node-stroke-soft)";return(0,AL.jsxs)("g",{className:`archik-node archik-node--${o.kind}`,children:[(0,AL.jsx)("rect",{className:c?"archik-selected-glow":void 0,width:d,height:g,rx:8,ry:8,fill:"var(--archik-node-fill-tinted)",stroke:G,strokeWidth:c?1.8:1.2,strokeDasharray:c?void 0:"6 4"}),(0,AL.jsx)("line",{x1:6,y1:Vf,x2:d-6,y2:Vf,stroke:G,strokeOpacity:.25,strokeWidth:1}),(0,AL.jsx)(Yq,{kind:o.kind,iconAt:{cx:18,cy:Vf/2},labelAt:{cx:d/2,cy:Vf/2+3}}),(0,AL.jsx)("text",{x:d/2,y:k,textAnchor:"middle",fontSize:13,fontWeight:600,fill:"var(--archik-node-text)",children:j}),f&&(0,AL.jsx)("text",{x:d/2,y:T,textAnchor:"middle",fontSize:10,fill:"var(--archik-node-text-dim)",children:B})]})}var e6=Ai(sc(),1),o3r=28,c3r=10,a3r=22;function kan({node:o,selected:c}){let d=o.width,g=o.height,f=d/2,b=c3r,v=jw[o.kind],k=v.icon,T=c?"var(--archik-selected)":"var(--archik-node-stroke)",P=c?1.8:1.4,j=o.stack!==void 0,B=Math.max(0,d-o3r),G=Gf(o.name,B,7.4),K=j?Gf(o.stack,B,5.9):"",de=g,ce=de-a3r,we=(ce+de)/2,kt=(b+8+ce)/2,_e=j?kt-4:kt+4,ht=kt+14;return(0,e6.jsxs)("g",{className:"archik-node archik-node--database",children:[(0,e6.jsx)("path",{className:c?"archik-selected-glow":void 0,d:u3r(d,g,b),fill:"var(--archik-node-fill)",stroke:T,strokeWidth:P,strokeLinejoin:"round"}),(0,e6.jsx)("ellipse",{cx:f,cy:b,rx:d/2,ry:b,fill:"var(--archik-node-fill)",stroke:T,strokeWidth:P}),(0,e6.jsx)("text",{x:f,y:_e,textAnchor:"middle",fontSize:14,fontWeight:600,fill:"var(--archik-node-text)",children:G}),j&&(0,e6.jsx)("text",{x:f,y:ht,textAnchor:"middle",fontSize:11,fill:"var(--archik-node-text-dim)",children:K}),(0,e6.jsx)("line",{x1:4,y1:ce,x2:d-4,y2:ce,stroke:T,strokeOpacity:.45,strokeWidth:1}),(0,e6.jsx)("g",{transform:`translate(14, ${we-7})`,pointerEvents:"none","aria-hidden":"true",children:(0,e6.jsx)(k,{size:14,color:v.color,strokeWidth:1.9})}),(0,e6.jsx)("text",{x:f,y:we+4,textAnchor:"middle",fontSize:9.5,fontWeight:600,letterSpacing:"0.12em",fill:"var(--archik-node-caption)",children:o.kind.toUpperCase()})]})}var s3r=10;function u3r(o,c,d){let g=s3r;return[`M 0 ${d}`,`L 0 ${c-g}`,`A ${g} ${g} 0 0 0 ${g} ${c}`,`L ${o-g} ${c}`,`A ${g} ${g} 0 0 0 ${o} ${c-g}`,`L ${o} ${d}`,`A ${o/2} ${d} 0 0 0 0 ${d}`,"Z"].join(" ")}var cS=Ai(sc(),1),l3r=36,Man=18;function xan({node:o,selected:c}){let d=o.width,g=o.height,f=jw[o.kind],b=f.icon,v=c?"var(--archik-selected)":"var(--archik-node-stroke)",k=c?1.8:1.4,T=o.stack!==void 0,P=Math.max(0,d-l3r),j=Gf(o.name,P,7.4),B=T?Gf(o.stack,P,5.9):"",G=d/2,K=g*.55,de=T?K-4:K+4,ce=K+14;return(0,cS.jsxs)("g",{className:"archik-node archik-node--cloud",children:[(0,cS.jsx)("path",{className:c?"archik-selected-glow":void 0,d:h3r(d,g),fill:"var(--archik-node-fill)",stroke:v,strokeWidth:k,strokeLinejoin:"round"}),(0,cS.jsx)("g",{transform:`translate(18, ${Man-6})`,pointerEvents:"none","aria-hidden":"true",children:(0,cS.jsx)(b,{size:14,color:f.color,strokeWidth:1.9})}),(0,cS.jsx)("text",{x:G,y:Man+4,textAnchor:"middle",fontSize:9.5,fontWeight:600,letterSpacing:"0.12em",fill:"var(--archik-node-caption)",children:o.kind.toUpperCase()}),(0,cS.jsx)("text",{x:G,y:de,textAnchor:"middle",fontSize:13,fontWeight:600,fill:"var(--archik-node-text)",children:j}),T&&(0,cS.jsx)("text",{x:G,y:ce,textAnchor:"middle",fontSize:11,fill:"var(--archik-node-text-dim)",children:B})]})}function h3r(o,c){let g=c-2,f=c*.62,b=Math.min(c*.18,14),v=o-4,k=c*.5,T=Math.min(v*.15,k*.85),P=Math.min(v*.18,k),j=Math.min(v*.15,k*.85),B=2*(T+P+j),G=Math.max(0,v-B)/4,K=2,de=o-2,ce=K+G,we=ce+2*T,De=we+G,at=De+2*P,kt=at+G,_e=kt+2*j;return[`M ${K} ${g-b}`,`Q ${K} ${g} ${K+b} ${g}`,`L ${de-b} ${g}`,`Q ${de} ${g} ${de} ${g-b}`,`L ${de} ${f}`,`L ${_e} ${f}`,`A ${j} ${j} 0 0 0 ${kt} ${f}`,`L ${at} ${f}`,`A ${P} ${P} 0 0 0 ${De} ${f}`,`L ${we} ${f}`,`A ${T} ${T} 0 0 0 ${ce} ${f}`,`L ${K} ${f}`,"Z"].join(" ")}var rb=Ai(sc(),1),Qq=32,FDe=14,jft=14;function San({node:o,selected:c,depth:d=0}){let g=o.width,f=o.height;if(!(o.children.length>0))return(0,rb.jsx)(f3r,{node:o,selected:!!c});let v=jw[o.kind],k=v.icon,T=Math.min(.04+d*.06,.22),P=Math.min(.55+d*.12,.95),j=c?"var(--archik-selected)":"var(--archik-container-border)",B=c?1.8:1.2,G=Math.max(0,g-FDe*2-60),K=Gf(o.name,G,7.4);return(0,rb.jsxs)("g",{className:`archik-node archik-node--${o.kind} archik-node--container`,children:[(0,rb.jsx)("rect",{className:c?"archik-selected-glow":void 0,width:g,height:f,rx:8,ry:8,fill:v.color,fillOpacity:T,stroke:j,strokeWidth:B,pointerEvents:"none"}),d>=1&&g>8&&f>8&&(0,rb.jsx)("rect",{x:3,y:3,width:g-6,height:f-6,rx:6,ry:6,fill:"none",stroke:v.color,strokeOpacity:Math.min(.18+(d-1)*.06,.32),strokeWidth:1,pointerEvents:"none"}),(0,rb.jsx)("path",{d:d3r(g,Qq,8),fill:v.color,fillOpacity:P*.18}),(0,rb.jsx)("line",{x1:0,y1:Qq,x2:g,y2:Qq,stroke:j,strokeOpacity:.45,strokeWidth:1}),(0,rb.jsx)("g",{transform:`translate(${FDe}, ${Qq/2-jft/2})`,pointerEvents:"none","aria-hidden":"true",children:(0,rb.jsx)(k,{size:jft,color:v.color,strokeWidth:1.9})}),(0,rb.jsx)("text",{x:FDe+jft+8,y:Qq/2+4,fontSize:13,fontWeight:600,fill:"var(--archik-node-text)",children:K}),(0,rb.jsx)("text",{x:g-FDe,y:Qq/2+3,textAnchor:"end",fontSize:9.5,fontWeight:600,letterSpacing:"0.12em",fill:"var(--archik-node-caption)",children:o.kind.toUpperCase()})]})}function d3r(o,c,d){return`M ${d} 0 H ${o-d} A ${d} ${d} 0 0 1 ${o} ${d} V ${c} H 0 V ${d} A ${d} ${d} 0 0 1 ${d} 0 Z`}function f3r({node:o,selected:c}){let d=o.width,g=o.height,f=jw[o.kind],b=c?"var(--archik-selected)":"var(--archik-node-stroke-soft)";return(0,rb.jsxs)("g",{className:`archik-node archik-node--${o.kind}`,children:[(0,rb.jsx)("rect",{className:c?"archik-selected-glow":void 0,width:d,height:g,rx:8,ry:8,fill:"var(--archik-node-fill-tinted)",stroke:b,strokeWidth:c?1.8:1.2,strokeDasharray:c?void 0:"5 4"}),(0,rb.jsx)("text",{x:d/2,y:g/2+4,textAnchor:"middle",fontSize:12,fontWeight:600,fill:f.color,children:o.name})]})}var ib=Ai(sc(),1),wte=24,_an=10,Bft=28;function Can({node:o,selected:c,depth:d=0}){let g=o.width,f=o.height,b=jw[o.kind],v=b.icon,k=o.kind==="external";if(o.children.length>0)return(0,ib.jsx)(p3r,{node:o,selected:!!c,depth:d});let T=c?"var(--archik-selected)":k?"var(--archik-node-stroke-soft)":"var(--archik-node-stroke)",P=k?"var(--archik-node-fill-tinted)":"var(--archik-node-fill)",j=o.kind==="queue"?Math.min(f/2,18):8;return(0,ib.jsxs)("g",{className:`archik-node archik-node--${o.kind} archik-node--compact`,children:[(0,ib.jsx)("rect",{className:c?"archik-selected-glow":void 0,width:g,height:f,rx:j,ry:j,fill:P,stroke:T,strokeWidth:c?1.8:1.4,strokeDasharray:k&&!c?"5 4":void 0}),(0,ib.jsx)("g",{transform:`translate(${_an}, ${f/2-7})`,pointerEvents:"none","aria-hidden":"true",children:(0,ib.jsx)(v,{size:13,color:b.color,strokeWidth:1.9})}),(0,ib.jsx)("text",{x:Bft,y:f/2+4,fontSize:12,fontWeight:600,fill:"var(--archik-node-text)",children:Gf(o.name,Math.max(0,g-Bft-8),5.9)})]})}function p3r({node:o,selected:c,depth:d}){let g=o.width,f=o.height,b=jw[o.kind],v=b.icon,k=Math.min(.04+d*.035,.14),T=Math.min(.55+d*.08,.85),P=c?"var(--archik-selected)":"var(--archik-container-border)",j=Math.max(0,g-12-22),B=Gf(o.name,j,5.9);return(0,ib.jsxs)("g",{className:`archik-node archik-node--${o.kind} archik-node--compact archik-node--container`,children:[(0,ib.jsx)("rect",{className:c?"archik-selected-glow":void 0,width:g,height:f,rx:6,ry:6,fill:b.color,fillOpacity:k,stroke:P,strokeWidth:c?1.8:1.2}),(0,ib.jsx)("path",{d:g3r(g,wte,6),fill:b.color,fillOpacity:T*.18}),(0,ib.jsx)("line",{x1:0,y1:wte,x2:g,y2:wte,stroke:P,strokeOpacity:.45,strokeWidth:1}),(0,ib.jsx)("g",{transform:`translate(${_an}, ${wte/2-6})`,pointerEvents:"none","aria-hidden":"true",children:(0,ib.jsx)(v,{size:12,color:b.color,strokeWidth:1.9})}),(0,ib.jsx)("text",{x:Bft,y:wte/2+4,fontSize:12,fontWeight:600,fill:"var(--archik-node-text)",children:B})]})}function g3r(o,c,d){return`M ${d} 0 H ${o-d} A ${d} ${d} 0 0 1 ${o} ${d} V ${c} H 0 V ${d} A ${d} ${d} 0 0 1 ${d} 0 Z`}var B9=Ai(Rft(),1),g1=Ai(sc(),1),y3r=12,b3r=18;function Ian({Icon:o,cx:c,cy:d,size:g=y3r,color:f,strokeWidth:b=1.8}){return(0,g1.jsx)("g",{transform:`translate(${c-g/2}, ${d-g/2})`,pointerEvents:"none","aria-hidden":"true",children:(0,g1.jsx)(o,{size:g,color:f??"var(--archik-fg-dim)",strokeWidth:b})})}function Lan(o){return(0,g1.jsx)(Ian,{Icon:B9.Info,...o})}function Ean(o){return(0,g1.jsx)(Ian,{Icon:B9.StickyNote,...o})}function Tan({cx:o,cy:c,filePath:d,fileLabel:g,onClick:f,size:b=13}){return(0,g1.jsxs)("g",{transform:`translate(${o-b/2}, ${c-b/2})`,style:{cursor:f?"pointer":"default"},onClick:f,children:[(0,g1.jsx)("title",{children:`Cross-file edge \u2192 ${g} (${d})`}),(0,g1.jsx)("circle",{cx:b/2,cy:b/2,r:b/2+.5,fill:"var(--archik-fg-dim)",fillOpacity:.12,stroke:"var(--archik-fg-dim)",strokeOpacity:.4,strokeWidth:1}),(0,g1.jsx)("g",{transform:"translate(1, 1)",pointerEvents:"none",children:(0,g1.jsx)(B9.ArrowUpRight,{size:b-2,color:"var(--archik-fg-muted)",strokeWidth:2.2})})]})}function Aan({cx:o,cy:c,onClick:d,size:g=14}){return(0,g1.jsxs)("g",{transform:`translate(${o-g/2}, ${c-g/2})`,style:{cursor:d?"pointer":"default"},onClick:d,children:[(0,g1.jsx)("title",{children:"Open sub-architecture"}),(0,g1.jsx)("circle",{cx:g/2,cy:g/2,r:g/2+.5,fill:"var(--archik-accent)",fillOpacity:.16,stroke:"var(--archik-accent)",strokeOpacity:.45,strokeWidth:1}),(0,g1.jsx)("g",{transform:"translate(1, 1)",pointerEvents:"none",children:(0,g1.jsx)(B9.ChevronDown,{size:g-2,color:"var(--archik-accent)",strokeWidth:2.2})})]})}function Pan({cx:o,cy:c,files:d,count:g,size:f=14}){let b=d.length===1?`Open sequence diagram \u2192 ${d[0].label} (${d[0].path})`:`${d.length} sequence diagrams on this node:
|
|
505
505
|
`+d.map(v=>` \u2022 ${v.label}`).join(`
|
|
506
506
|
`)+`
|
|
507
|
-
Click to open the first; the rest live in the inspector.`;return(0,g1.jsxs)("g",{transform:`translate(${o-f/2}, ${c-f/2})`,style:{cursor:"pointer"},children:[(0,g1.jsx)("title",{children:b}),(0,g1.jsx)("circle",{cx:f/2,cy:f/2,r:f/2+.5,fill:"var(--archik-status-proposed)",fillOpacity:.16,stroke:"var(--archik-status-proposed)",strokeOpacity:.5,strokeWidth:1}),(0,g1.jsx)("g",{transform:"translate(1, 1)",pointerEvents:"none",children:(0,g1.jsx)(B9.GitBranch,{size:f-2,color:"var(--archik-status-proposed)",strokeWidth:2.2})}),g!==void 0&&g>1&&(0,g1.jsxs)("g",{pointerEvents:"none",children:[(0,g1.jsx)("circle",{cx:f
|
|
507
|
+
Click to open the first; the rest live in the inspector.`;return(0,g1.jsxs)("g",{transform:`translate(${o-f/2}, ${c-f/2})`,style:{cursor:"pointer"},children:[(0,g1.jsx)("title",{children:b}),(0,g1.jsx)("circle",{cx:f/2,cy:f/2,r:f/2+.5,fill:"var(--archik-status-proposed)",fillOpacity:.16,stroke:"var(--archik-status-proposed)",strokeOpacity:.5,strokeWidth:1}),(0,g1.jsx)("g",{transform:"translate(1, 1)",pointerEvents:"none",children:(0,g1.jsx)(B9.GitBranch,{size:f-2,color:"var(--archik-status-proposed)",strokeWidth:2.2})}),g!==void 0&&g>1&&(0,g1.jsxs)("g",{pointerEvents:"none",children:[(0,g1.jsx)("circle",{cx:f/2,cy:-3,r:5.5,fill:"var(--archik-canvas)"}),(0,g1.jsx)("circle",{cx:f/2,cy:-3,r:4.5,fill:"var(--archik-status-proposed)"}),(0,g1.jsx)("text",{x:f/2,y:-.5,fontSize:7.5,fontWeight:700,fill:"#ffffff",textAnchor:"middle",children:g})]})]})}function Nan(o,c,d){switch(o){case"queue":{let f=Math.min(d/2,28);return{right:{x:c-f-4,y:14}}}case"database":return{right:{x:c-14,y:d-11}};case"module":case"custom":return{right:{x:c-14,y:42}};default:return{right:{x:c-14,y:14}}}}function Ran(o,c){return Array.from({length:c},(d,g)=>({x:o.x-g*b3r,y:o.y}))}var Au=Ai(sc(),1);function w3r({node:o,selected:c,viewMode:d,depth:g}){if(d==="compact")return(0,Au.jsx)(Can,{node:o,selected:c,depth:g});if(o.children.length>0)return(0,Au.jsx)(San,{node:o,selected:c,depth:g});switch(o.kind){case"queue":return(0,Au.jsx)(man,{node:o,selected:c});case"external":case"human":return(0,Au.jsx)(van,{node:o,selected:c});case"database":return(0,Au.jsx)(kan,{node:o,selected:c});case"cloud":return(0,Au.jsx)(xan,{node:o,selected:c});case"module":case"custom":case"service":case"function":case"worker":case"agent":case"cache":case"vectordb":case"storage":case"topic":case"stream":case"gateway":case"cdn":case"route":case"interface":case"adapter":case"port":case"llm":case"prompt":case"tool":case"auth":case"observability":case"frontend":case"page":case"component":case"store":case"hook":return(0,Au.jsx)(wan,{node:o,selected:c});default:{let f=o.kind;throw new Error("unreachable node kind")}}}function Hft({node:o,selectedNodeIds:c,glowNodeIds:d,onSelectNode:g,onOpenSubFile:f,onCrossFileNavigate:b,crossFileByNode:v,viewMode:k="detailed",depth:T=0}){let P=c?.has(o.id)??!1,j=d?.has(o.id)??!1,G=o.children.length>0?T+1:T,K=g?ce=>{ce.stopPropagation(),g(o.id,ce)}:void 0,de=o.description!==void 0&&o.description.length>0;return(0,Au.jsxs)("g",{"data-archik-node-id":o.id,...P?{"data-archik-selected":"true"}:{},...o.status!==void 0&&o.status!=="active"?{"data-archik-status":o.status}:{},...o.stereotype!==void 0?{"data-archik-stereotype":o.stereotype}:{},transform:`translate(${o.x}, ${o.y})`,...K!==void 0?{onClick:K}:{},style:g?{cursor:"pointer"}:void 0,children:[j&&(0,Au.jsx)("rect",{x:-4,y:-4,width:o.width+8,height:o.height+8,rx:10,fill:"none",stroke:"var(--archik-status-proposed)",strokeWidth:2,opacity:.85,style:{pointerEvents:"none"}}),(0,Au.jsx)(w3r,{node:o,selected:P,viewMode:k,depth:T}),o.stereotype!==void 0&&(0,Au.jsxs)(Au.Fragment,{children:[(0,Au.jsx)("clipPath",{id:`archik-nclip-${o.id}`,children:(0,Au.jsx)("rect",{width:o.width,height:o.height,rx:8,ry:8})}),(0,Au.jsx)("rect",{className:"archik-stereotype-band",x:0,y:0,width:o.width,height:4,clipPath:`url(#archik-nclip-${o.id})`,style:{pointerEvents:"none"}})]}),k==="detailed"&&(()=>{let ce=o.notes!==void 0&&o.notes.length>0,we=o.archikFile!==void 0&&o.archikFile.length>0,De=v?.get(o.id),at=De?Array.from(De).sort():[],kt=o.seqFiles??[],_e=[];we&&_e.push("subarch"),kt.length>0&&_e.push({type:"seq",paths:kt});for(let Wt of at)_e.push({type:"crossfile",path:Wt});if(de&&_e.push("info"),ce&&_e.push("notes"),_e.length===0)return null;let ht=Nan(o.kind,o.width,o.height),Te=Ran(ht.right,_e.length);return(0,Au.jsx)(Au.Fragment,{children:_e.map((Wt,tn)=>{let jn=Te[tn];if(typeof Wt=="object"&&Wt.type==="seq"){let rr=Wt.paths.map(fn=>({path:fn,label:fn.split("/").pop().replace(/\.archik\.seq\.yaml$/,"")})),_r=`/__archik/seq?path=${encodeURIComponent(rr[0].path)}`;return(0,Au.jsx)("a",{href:_r,onClick:fn=>fn.stopPropagation(),children:(0,Au.jsx)(Pan,{cx:jn.x,cy:jn.y,files:rr,count:rr.length})},"seq")}if(typeof Wt=="object"&&Wt.type==="crossfile"){let rr=Wt.path,_r=rr.split("/").pop().replace(/\.archik\.yaml$/,""),fn=b??f,ii=fn?Si=>{Si.stopPropagation(),fn(rr,_r)}:void 0;return(0,Au.jsx)(Tan,{cx:jn.x,cy:jn.y,filePath:rr,fileLabel:_r,...ii?{onClick:ii}:{}},`xf-${rr}`)}if(Wt==="subarch"){let rr=o.archikFile,_r=f?fn=>{fn.stopPropagation(),f(rr,o.name)}:void 0;return(0,Au.jsx)(Aan,{cx:jn.x,cy:jn.y,..._r?{onClick:_r}:{}},"subarch")}return Wt==="info"?(0,Au.jsx)(Lan,{cx:jn.x,cy:jn.y,color:"var(--archik-node-caption)"},"info"):(0,Au.jsxs)("g",{children:[(0,Au.jsx)(Ean,{cx:jn.x,cy:jn.y,color:"var(--archik-node-caption)"}),o.notes&&o.notes.length>1&&(0,Au.jsx)("text",{x:jn.x+7,y:jn.y-5,fontSize:8,fontWeight:700,fill:"var(--archik-accent)",textAnchor:"middle",pointerEvents:"none",children:o.notes.length})]},"notes")})})})(),o.children.map(ce=>(0,Au.jsx)(Hft,{node:ce,viewMode:k,depth:G,...c!==void 0?{selectedNodeIds:c}:{},...d!==void 0?{glowNodeIds:d}:{},...g!==void 0?{onSelectNode:g}:{},...f!==void 0?{onOpenSubFile:f}:{},...b!==void 0?{onCrossFileNavigate:b}:{},...v!==void 0?{crossFileByNode:v}:{}},ce.id))]})}var Pz=Ai(sc(),1),Bw="archik-arrow-filled",Az="archik-arrow-open",$ft="archik-arrow-selected",t6="var(--archik-edge-filled)",mte="var(--archik-edge-dim)",m3r={http_call:{stroke:t6,strokeWidth:1.4,strokeDasharray:"2 6",animated:!0,markerId:Bw},grpc:{stroke:t6,strokeWidth:1.4,strokeDasharray:"2 6",animated:!0,markerId:Bw},invokes:{stroke:t6,strokeWidth:1.4,strokeDasharray:"2 6",animated:!0,markerId:Bw},routes_to:{stroke:t6,strokeWidth:1.4,markerId:Bw},websocket:{stroke:t6,strokeWidth:1.4,strokeDasharray:"2 6",animated:!0,markerId:Bw,markerStartId:Bw},webhook:{stroke:t6,strokeWidth:1.4,strokeDasharray:"2 6",animated:!0,markerId:Bw},reads:{stroke:t6,strokeWidth:1.4,markerId:Az},writes:{stroke:t6,strokeWidth:1.4,markerId:Bw},publishes:{stroke:t6,strokeWidth:1.4,markerId:Bw},subscribes:{stroke:t6,strokeWidth:1.4,markerId:Bw},streams_to:{stroke:t6,strokeWidth:1.4,markerId:Bw},implements:{stroke:mte,strokeWidth:1.2,markerId:Az},extends:{stroke:mte,strokeWidth:1.2,markerId:Az},depends_on:{stroke:mte,strokeWidth:1.2,markerId:Az},has_a:{stroke:mte,strokeWidth:1.2,markerId:Bw},uses:{stroke:mte,strokeWidth:1.2,markerId:Az}};function Dan(o){return o.map(c=>`${c.x},${c.y}`).join(" ")}function v3r(o){if(o.length===0)return;let c=Math.floor(o.length/2);if(o.length%2===1)return o[c];let d=o[c-1],g=o[c];return{x:(d.x+g.x)/2,y:(d.y+g.y)/2}}function Oan({edge:o,selectedEdgeIds:c,onSelectEdge:d}){let g=o.sections[0];if(!g)return null;let f=[g.startPoint,...g.bendPoints,g.endPoint],b=m3r[o.relationship],v=o.labels[0],k=v?{x:v.x+v.width/2,y:v.y+v.height/2}:v3r(f),T=c?.has(o.id)??!1,P=o.status==="proposed"?"var(--archik-status-proposed)":o.status==="deprecated"?"var(--archik-status-deprecated)":void 0,j=T?"var(--archik-selected)":P??o.color??b.stroke,B=T?b.strokeWidth+.5:b.strokeWidth,G=T?$ft:b.markerId,K=!T&&b.markerStartId!==void 0?b.markerStartId:void 0,de=!T&&b.animated?"archik-edge-flowing":void 0,ce=b.strokeDasharray!==void 0?b.strokeDasharray.trim().split(/\s+/).reduce((at,kt)=>at+Number(kt),0):0,we=de!==void 0&&ce>0?{"--archik-dash-period":String(ce)}:void 0,De=d?at=>{at.stopPropagation(),d(o.id,at)}:void 0;return(0,Pz.jsxs)("g",{"data-archik-edge-id":o.id,"data-archik-edge-relationship":o.relationship,...T?{"data-archik-selected":"true"}:{},...o.status!==void 0&&o.status!=="active"?{"data-archik-status":o.status}:{},className:`archik-edge archik-edge--${o.relationship}`,...De!==void 0?{onClick:De}:{},style:d?{cursor:"pointer"}:void 0,children:[d&&(0,Pz.jsx)("polyline",{"data-archik-edge-hitarea":"",points:Dan(f),fill:"none",stroke:"transparent",strokeWidth:14,strokeLinecap:"round",strokeLinejoin:"round"}),(0,Pz.jsx)("polyline",{className:de,points:Dan(f),fill:"none",stroke:j,strokeWidth:B,strokeLinecap:"round",strokeLinejoin:"round",markerEnd:`url(#${G})`,...K!==void 0?{markerStart:`url(#${K})`}:{},...b.strokeDasharray!==void 0?{strokeDasharray:b.strokeDasharray}:{},...we!==void 0?{style:we}:{}}),o.label!==void 0&&k!==void 0&&(0,Pz.jsx)("g",{transform:`translate(${k.x}, ${v?k.y+4:k.y-6})`,children:(0,Pz.jsx)("text",{textAnchor:"middle",fontSize:11,fontWeight:T?700:500,fill:T?"var(--archik-selected)":"var(--archik-fg-dim)",stroke:"var(--archik-panel)",strokeWidth:T?4:3,paintOrder:"stroke",children:o.label})})]})}var ob=Ai(sc(),1);var Uft={added:"var(--archik-success)",removed:"var(--archik-danger)",changed:"var(--archik-warning)"};function k3r(o){let c=[],d=(g,f,b)=>{for(let v of g){let k=f+v.x,T=b+v.y;c.push({...v,absX:k,absY:T}),v.children.length>0&&d(v.children,k,T)}};return d(o,0,0),c}function M3r(o){return o.replace(/[^a-z0-9-]/g,c=>`\\${c}`)}function jan({statuses:o,scopeClass:c}){let d=[];for(let[f,b]of o.nodes)b==="removed"&&d.push(f);if(d.length===0)return null;let g=d.map(f=>`.${c} [data-archik-node-id="${M3r(f)}"] { opacity: 0.35; }`).join(`
|
|
508
508
|
`);return(0,ob.jsx)("style",{children:g})}function Ban({positioned:o,statuses:c}){return(0,ob.jsx)("g",{className:"archik-diff-nodes",pointerEvents:"none",children:k3r(o.roots).map(d=>{let g=c.nodes.get(d.id);return g===void 0||g==="unchanged"?null:(0,ob.jsx)(x3r,{node:d,status:g},d.id)})})}function x3r({node:o,status:c}){let d=Uft[c],g=o.absX+-3,f=o.absY+-3,b=o.width- -6,v=o.height- -6,k=c==="removed"?"5 4":void 0,T=Fan(o.kind,g-1,f-1,b+2,v+2),P=Fan(o.kind,g,f,b,v);return(0,ob.jsxs)("g",{children:[(0,ob.jsx)("path",{d:T,fill:"none",stroke:d,strokeOpacity:.25,strokeWidth:6,strokeLinejoin:"round"}),(0,ob.jsx)("path",{d:P,fill:"none",stroke:d,strokeWidth:2.2,strokeLinejoin:"round",...k!==void 0?{strokeDasharray:k}:{},opacity:.95}),(0,ob.jsx)(C3r,{x:g+b-6,y:f-6,status:c})]})}function Fan(o,c,d,g,f){switch(o){case"queue":{let b=Math.min(f/2,28);return zan(c,d,g,f,b)}case"database":return S3r(c,d,g,f,12);case"cloud":return _3r(c,d,g,f);default:return zan(c,d,g,f,10)}}function zan(o,c,d,g,f){let b=Math.min(f,d/2),v=Math.min(f,g/2);return[`M ${o+b} ${c}`,`H ${o+d-b}`,`A ${b} ${v} 0 0 1 ${o+d} ${c+v}`,`V ${c+g-v}`,`A ${b} ${v} 0 0 1 ${o+d-b} ${c+g}`,`H ${o+b}`,`A ${b} ${v} 0 0 1 ${o} ${c+g-v}`,`V ${c+v}`,`A ${b} ${v} 0 0 1 ${o+b} ${c}`,"Z"].join(" ")}function S3r(o,c,d,g,f){return[`M ${o} ${c+f}`,`L ${o} ${c+g-10}`,`A 10 10 0 0 0 ${o+10} ${c+g}`,`L ${o+d-10} ${c+g}`,`A 10 10 0 0 0 ${o+d} ${c+g-10}`,`L ${o+d} ${c+f}`,`A ${d/2} ${f} 0 0 0 ${o} ${c+f}`,"Z"].join(" ")}function _3r(o,c,d,g){let b=g-2,v=g*.62,k=Math.min(g*.18,14),T=d-4,P=g*.5,j=Math.min(T*.15,P*.85),B=Math.min(T*.18,P),G=Math.min(T*.15,P*.85),K=2*(j+B+G),de=Math.max(0,T-K)/4,ce=2,we=d-2,De=ce+de,at=De+2*j,kt=at+de,_e=kt+2*B,ht=_e+de,Te=ht+2*G;return[`M ${o+ce} ${c+b-k}`,`Q ${o+ce} ${c+b} ${o+ce+k} ${c+b}`,`L ${o+we-k} ${c+b}`,`Q ${o+we} ${c+b} ${o+we} ${c+b-k}`,`L ${o+we} ${c+v}`,`L ${o+Te} ${c+v}`,`A ${G} ${G} 0 0 0 ${o+ht} ${c+v}`,`L ${o+_e} ${c+v}`,`A ${B} ${B} 0 0 0 ${o+kt} ${c+v}`,`L ${o+at} ${c+v}`,`A ${j} ${j} 0 0 0 ${o+De} ${c+v}`,`L ${o+ce} ${c+v}`,"Z"].join(" ")}function C3r({x:o,y:c,status:d}){let g=d==="added"?"+":d==="removed"?"\u2212":"~";return(0,ob.jsxs)("g",{transform:`translate(${o}, ${c})`,children:[(0,ob.jsx)("circle",{r:9,fill:Uft[d],stroke:"var(--archik-canvas)",strokeWidth:1.5}),(0,ob.jsx)("text",{textAnchor:"middle",y:4,fontSize:12,fontWeight:700,fill:"white",children:g})]})}function Han({positioned:o,statuses:c}){return(0,ob.jsx)("g",{className:"archik-diff-edges",pointerEvents:"none",children:o.edges.map(d=>{let g=c.edges.get(d.id);return g===void 0||g==="unchanged"?null:(0,ob.jsx)(I3r,{edge:d,status:g},d.id)})})}function I3r({edge:o,status:c}){let d=o.sections[0];if(!d)return null;let g=[d.startPoint,...d.bendPoints,d.endPoint];return(0,ob.jsx)("polyline",{points:g.map(f=>`${f.x},${f.y}`).join(" "),fill:"none",stroke:Uft[c],strokeWidth:3,strokeOpacity:.55,strokeLinecap:"round",strokeLinejoin:"round",strokeDasharray:c==="removed"?"8 4":void 0})}var ru=Ai(sc(),1),zDe=24;function L3r({id:o}){return(0,ru.jsx)("marker",{id:o,viewBox:"0 0 10 10",refX:"10",refY:"5",markerWidth:"6",markerHeight:"6",orient:"auto-start-reverse",children:(0,ru.jsx)("path",{d:"M 0 0 L 10 5 L 0 10 z",fill:"context-stroke"})})}function E3r({id:o}){return(0,ru.jsx)("marker",{id:o,viewBox:"0 0 12 12",refX:"11",refY:"6",markerWidth:"7",markerHeight:"7",orient:"auto-start-reverse",children:(0,ru.jsx)("path",{d:"M 1 1 L 11 6 L 1 11",fill:"none",stroke:"context-stroke",strokeWidth:"1.5",strokeLinejoin:"round",strokeLinecap:"round"})})}function T3r({id:o}){return(0,ru.jsx)("marker",{id:o,viewBox:"0 0 10 10",refX:"10",refY:"5",markerWidth:"6",markerHeight:"6",orient:"auto-start-reverse",children:(0,ru.jsx)("path",{d:"M 0 0 L 10 5 L 0 10 z",fill:"var(--archik-selected)"})})}function qft({positioned:o,viewMode:c="detailed",selectedNodeIds:d,selectedEdgeIds:g,glowNodeIds:f,onSelectNode:b,onSelectEdge:v,onOpenSubFile:k,onCrossFileNavigate:T}){let P=new Map;for(let j of o.edges){if(j.toFile!==void 0){let B=P.get(j.from)??new Set;B.add(j.toFile),P.set(j.from,B)}if(j.fromFile!==void 0){let B=P.get(j.to)??new Set;B.add(j.fromFile),P.set(j.to,B)}}return(0,ru.jsxs)(ru.Fragment,{children:[(0,ru.jsxs)("defs",{children:[(0,ru.jsx)(L3r,{id:Bw}),(0,ru.jsx)(E3r,{id:Az}),(0,ru.jsx)(T3r,{id:$ft})]}),(0,ru.jsx)("g",{className:"archik-edges",children:o.edges.map(j=>(0,ru.jsx)(Oan,{edge:j,...g!==void 0?{selectedEdgeIds:g}:{},...v!==void 0?{onSelectEdge:v}:{}},j.id))}),(0,ru.jsx)("g",{className:"archik-nodes",children:o.roots.map(j=>(0,ru.jsx)(Hft,{node:j,viewMode:c,crossFileByNode:P,...d!==void 0?{selectedNodeIds:d}:{},...f!==void 0?{glowNodeIds:f}:{},...b!==void 0?{onSelectNode:b}:{},...k!==void 0?{onOpenSubFile:k}:{},...T!==void 0?{onCrossFileNavigate:T}:{}},j.id))})]})}function A3r(o,c){let d=(g,f,b)=>{for(let v of g){if(v.id===c)return{x:f+v.x+v.width/2,y:b+v.y+v.height/2};let k=d(v.children,f+v.x,b+v.y);if(k)return k}return null};return d(o.roots,0,0)}function $an({positioned:o,className:c,zoom:d=1,viewMode:g="detailed",svgRef:f,dragGhost:b,selectedNodeIds:v,selectedEdgeIds:k,glowNodeIds:T,onSelectNode:P,onSelectEdge:j,onSelectNothing:B,onOpenSubFile:G,onCrossFileNavigate:K,diffStatuses:de}){let ce=Math.max(o.width,1),we=Math.max(o.height,1),De=-zDe,at=-zDe,kt=ce+zDe*2,_e=we+zDe*2,ht=b?A3r(o,b.fromId):null;return(0,ru.jsxs)("svg",{ref:f,className:c,xmlns:"http://www.w3.org/2000/svg",width:kt*d,height:_e*d,viewBox:`${De} ${at} ${kt} ${_e}`,preserveAspectRatio:"xMidYMid meet",style:{display:"block",flexShrink:0},onClick:B,children:[de&&(0,ru.jsx)(jan,{statuses:de,scopeClass:"archik-diff-base"}),(0,ru.jsx)("g",{className:de?"archik-diff-base":void 0,children:(0,ru.jsx)(qft,{positioned:o,viewMode:g,...v!==void 0?{selectedNodeIds:v}:{},...k!==void 0?{selectedEdgeIds:k}:{},...T!==void 0?{glowNodeIds:T}:{},...P!==void 0?{onSelectNode:P}:{},...j!==void 0?{onSelectEdge:j}:{},...G!==void 0?{onOpenSubFile:G}:{},...K!==void 0?{onCrossFileNavigate:K}:{}})}),de&&(0,ru.jsxs)(ru.Fragment,{children:[(0,ru.jsx)(Han,{positioned:o,statuses:de}),(0,ru.jsx)(Ban,{positioned:o,statuses:de})]}),b&&ht&&(0,ru.jsxs)("g",{className:"archik-drag-ghost",pointerEvents:"none",children:[(0,ru.jsx)("line",{x1:ht.x,y1:ht.y,x2:b.pointerX,y2:b.pointerY,stroke:"var(--archik-selected)",strokeWidth:1.6,strokeDasharray:"6 4",strokeLinecap:"round",opacity:.85}),(0,ru.jsx)("circle",{cx:b.pointerX,cy:b.pointerY,r:4,fill:"var(--archik-selected)",opacity:.9})]})]})}var Uan={"--archik-canvas":"#050912","--archik-panel":"#0c1426","--archik-surface":"#14203a","--archik-surface-hover":"#1c2c4d","--archik-fg":"#e6edf7","--archik-fg-dim":"#8b9bb8","--archik-fg-muted":"#5b6a87","--archik-border":"#1d2b48","--archik-border-strong":"#2c3e63","--archik-accent":"#22d3ee","--archik-accent-bright":"#67e8f9","--archik-magenta":"#f472b6","--archik-success":"#34d399","--archik-warning":"#fbbf24","--archik-danger":"#fb7185","--archik-node-fill":"#0c1426","--archik-node-fill-tinted":"#142037","--archik-node-fill-frame":"#14203a","--archik-node-stroke":"#2c3e63","--archik-node-stroke-soft":"#1d2b48","--archik-node-text":"#e6edf7","--archik-node-text-dim":"#b6c2d8","--archik-node-caption":"#67e8f9","--archik-node-chrome-dot":"#475878","--archik-edge-filled":"#cbd5e1","--archik-edge-open":"#94a3b8","--archik-edge-dim":"#64748b","--archik-edge-async":"#67e8f9","--archik-grid-minor":"#0d1830","--archik-grid-major":"#182748","--archik-selected":"#22d3ee","--archik-selected-glow":"rgba(34, 211, 238, 0.28)"},qan={"--archik-canvas":"#f8fafc","--archik-panel":"#ffffff","--archik-surface":"#f1f5f9","--archik-surface-hover":"#e2e8f0","--archik-fg":"#0f172a","--archik-fg-dim":"#475569","--archik-fg-muted":"#94a3b8","--archik-border":"#e2e8f0","--archik-border-strong":"#cbd5e1","--archik-accent":"#2563eb","--archik-accent-bright":"#3b82f6","--archik-magenta":"#db2777","--archik-success":"#10b981","--archik-warning":"#d97706","--archik-danger":"#e11d48","--archik-node-fill":"#ffffff","--archik-node-fill-tinted":"#f1f5f9","--archik-node-fill-frame":"#ffffff","--archik-node-stroke":"#0f172a","--archik-node-stroke-soft":"#475569","--archik-node-text":"#0f172a","--archik-node-text-dim":"#475569","--archik-node-caption":"#64748b","--archik-node-chrome-dot":"#cbd5f5","--archik-edge-filled":"#0f172a","--archik-edge-open":"#334155","--archik-edge-dim":"#64748b","--archik-edge-async":"#2563eb","--archik-grid-minor":"#e2e8f0","--archik-grid-major":"#cbd5e1","--archik-selected":"#2563eb","--archik-selected-glow":"rgba(37, 99, 235, 0.18)"};function vte(o,c="dark"){let d=c==="light"?qan:Uan;return o.replace(/var\(--archik-([a-z0-9-]+)\)/g,(g,f)=>d[`--archik-${f}`]??g)}function kte(o,c="dark"){let g=(c==="light"?qan:Uan)["--archik-canvas"]??"#050912",f=o.match(/<svg\b[^>]*viewBox="([^"]+)"/),[b,v,k,T]=(f?.[1]??"0 0 0 0").split(/\s+/),P=`<rect x="${b}" y="${v}" width="${k}" height="${T}" fill="${g}"/>`;return o.replace(/(<svg\b[^>]*>)/,`$1${P}`)}async function P3r(o,c){let d=Zr(c,"out")??"sequence.svg",g=Zr(c,"theme")??"dark";if(g!=="dark"&&g!=="light")return console.error(`\u2717 --theme must be "dark" or "light" (got "${g}")`),1;let f=g,b;try{b=await Van(o,"utf-8")}catch{return console.error(`\u2717 Cannot read ${o}`),1}let v=Jan.default.parse(b),k=xee.safeParse(v);if(!k.success)return console.error(`\u2717 ${o}: ${k.error.issues.map(we=>we.message).join("; ")}`),1;let T=eG.resolve(o),P=W1(T),j;try{let we=await Lu(void 0,P),De=await z0(we,P),at=new Map;for(let{doc:kt}of De.docs)for(let _e of kt.nodes)at.set(_e.id,_e.kind);j=at}catch{}let B=Wcn(k.data,j),G=(0,Vft.renderToStaticMarkup)((0,Gft.createElement)(ban,{laid:B})),de=`<?xml version="1.0" encoding="UTF-8"?>
|
|
509
509
|
${kte(vte(G,f),f)}
|
|
510
510
|
`,ce=eG.resolve(d);return await Gan(eG.dirname(ce),{recursive:!0}),await Wan(ce,de,"utf-8"),console.log(`\u2713 Rendered sequence "${k.data.name}" \u2192 ${d}`),0}async function Mte(o){let c=Zr(o,"seq");if(c!==void 0)return P3r(c,o);let d;try{d=await Lu(o._[0])}catch(we){return console.error(`\u2717 ${we instanceof Error?we.message:String(we)}`),1}let g=eG.relative(process.cwd(),d)||d,f=Zr(o,"out")??"diagram.svg",b=Zr(o,"theme")??"dark";if(b!=="dark"&&b!=="light")return console.error(`\u2717 --theme must be "dark" or "light" (got "${b}")`),1;let v=b,k;try{k=await Van(d,"utf-8")}catch(we){return console.error(`\u2717 Cannot read ${g}`),console.error(we instanceof Error?we.message:String(we)),1}try{P2(k)}catch(we){return console.error(`\u2717 ${g}`),console.error(we instanceof Error?we.message:String(we)),1}let T=W1(d),P=await z0(d,T);for(let we of P.errors)console.error(`warn: ${we.relPath}: ${we.message}`);let j={version:"1.0",name:"merged",nodes:P.docs.flatMap(we=>we.doc.nodes),edges:P.docs.flatMap(we=>we.doc.edges)},B=await Xq(j),G=(0,Vft.renderToStaticMarkup)((0,Gft.createElement)($an,{positioned:B})),de=`<?xml version="1.0" encoding="UTF-8"?>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-rose-700:oklch(51.4% .222 16.935);--spacing:.25rem;--container-3xl:48rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--font-weight-semibold:600;--tracking-tight:-.025em;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-auto{margin-top:auto}.ml-auto{margin-left:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-full{height:100%}.h-screen{height:100vh}.min-h-0{min-height:calc(var(--spacing) * 0)}.w-full{width:100%}.max-w-3xl{max-width:var(--container-3xl)}.flex-1{flex:1}.grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.gap-1{gap:calc(var(--spacing) * 1)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.px-4{padding-inline:calc(var(--spacing) * 4)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.pt-4{padding-top:calc(var(--spacing) * 4)}.text-center{text-align:center}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.whitespace-pre-wrap{white-space:pre-wrap}.text-rose-700{color:var(--color-rose-700)}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.underline{text-decoration-line:underline}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}@media(hover:hover){.hover\:no-underline:hover{text-decoration-line:none}}}:root,[data-theme=light]{--archik-canvas:#f8fafc;--archik-panel:#fff;--archik-surface:#f1f5f9;--archik-surface-hover:#e2e8f0;--archik-fg:#0f172a;--archik-fg-dim:#475569;--archik-fg-muted:#94a3b8;--archik-border:#e2e8f0;--archik-border-strong:#cbd5e1;--archik-accent:#2563eb;--archik-accent-bright:#3b82f6;--archik-magenta:#db2777;--archik-success:#10b981;--archik-warning:#d97706;--archik-danger:#e11d48;--archik-node-fill:#fff;--archik-node-fill-tinted:#f1f5f9;--archik-node-fill-frame:#fff;--archik-node-stroke:#0f172a;--archik-node-stroke-soft:#475569;--archik-container-border:#94a3b8;--archik-node-text:#0f172a;--archik-node-text-dim:#475569;--archik-node-caption:#64748b;--archik-node-chrome-dot:#cbd5f5;--archik-edge-filled:#0f172a;--archik-edge-open:#334155;--archik-edge-dim:#64748b;--archik-edge-async:#2563eb;--archik-grid-minor:#e2e8f0;--archik-grid-major:#cbd5e1;--archik-selected:#2563eb;--archik-selected-glow:#2563eb2e;--archik-status-proposed:#6366f1;--archik-status-deprecated:#d97706;--archik-stereotype-boundary:#0d9488;--archik-stereotype-control:#c2410c;--archik-stereotype-entity:#7c3aed;color-scheme:light}[data-theme=dark]{--archik-canvas:#050912;--archik-panel:#0c1426;--archik-surface:#14203a;--archik-surface-hover:#1c2c4d;--archik-fg:#e6edf7;--archik-fg-dim:#8b9bb8;--archik-fg-muted:#5b6a87;--archik-border:#1d2b48;--archik-border-strong:#2c3e63;--archik-accent:#22d3ee;--archik-accent-bright:#67e8f9;--archik-magenta:#f472b6;--archik-success:#34d399;--archik-warning:#fbbf24;--archik-danger:#fb7185;--archik-node-fill:#0c1426;--archik-node-fill-tinted:#142037;--archik-node-fill-frame:#14203a;--archik-node-stroke:#2c3e63;--archik-node-stroke-soft:#1d2b48;--archik-container-border:#3a4f7a;--archik-node-text:#e6edf7;--archik-node-text-dim:#b6c2d8;--archik-node-caption:#67e8f9;--archik-node-chrome-dot:#475878;--archik-edge-filled:#cbd5e1;--archik-edge-open:#94a3b8;--archik-edge-dim:#64748b;--archik-edge-async:#67e8f9;--archik-grid-minor:#0d1830;--archik-grid-major:#182748;--archik-selected:#22d3ee;--archik-selected-glow:#22d3ee47;--archik-status-proposed:#818cf8;--archik-status-deprecated:#fbbf24;--archik-stereotype-boundary:#2dd4bf;--archik-stereotype-control:#fb923c;--archik-stereotype-entity:#a78bfa;color-scheme:dark}html,body,#root{background:var(--archik-canvas);height:100%;color:var(--archik-fg);-webkit-font-smoothing:antialiased;margin:0;font-family:Inter,system-ui,sans-serif}.archik-panel{background:var(--archik-panel);border:1px solid var(--archik-border);border-radius:8px}.archik-input{background:var(--archik-surface);color:var(--archik-fg);border:1px solid var(--archik-border);font:inherit;border-radius:4px;outline:none;padding:4px 8px;font-size:12px;transition:border-color .12s,box-shadow .12s}.archik-input:focus{border-color:var(--archik-accent);box-shadow:0 0 0 3px var(--archik-selected-glow)}.archik-btn{background:var(--archik-surface);color:var(--archik-fg);border:1px solid var(--archik-border);cursor:pointer;border-radius:4px;align-items:center;gap:4px;padding:5px 10px;font-size:12px;font-weight:500;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.archik-btn:hover{background:var(--archik-surface-hover);border-color:var(--archik-border-strong)}.archik-btn:disabled{opacity:.5;cursor:not-allowed}.archik-btn-primary{background:var(--archik-accent);border-color:var(--archik-accent);color:#050912}.archik-btn-primary:hover{background:var(--archik-accent-bright);border-color:var(--archik-accent-bright)}[data-theme=light] .archik-btn-primary{color:#fff}.archik-btn-danger{color:var(--archik-danger);border-color:var(--archik-danger);background:0 0;border-style:dashed}.archik-btn-danger:hover{background:var(--archik-danger);color:#050912;border-style:solid}.archik-pill{letter-spacing:.02em;border:1px solid #0000;border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:11px;display:inline-flex}.archik-pill--info{color:var(--archik-accent);border-color:var(--archik-border-strong);background:var(--archik-accent)}@supports (color:color-mix(in lab,red,red)){.archik-pill--info{background:color-mix(in oklab,var(--archik-accent) 8%,transparent)}}.archik-pill--success{color:var(--archik-success);background:var(--archik-success)}@supports (color:color-mix(in lab,red,red)){.archik-pill--success{background:color-mix(in oklab,var(--archik-success) 12%,transparent)}}.archik-pill--warning{color:var(--archik-warning);background:var(--archik-warning)}@supports (color:color-mix(in lab,red,red)){.archik-pill--warning{background:color-mix(in oklab,var(--archik-warning) 14%,transparent)}}.archik-pill--danger{color:var(--archik-danger);background:var(--archik-danger)}@supports (color:color-mix(in lab,red,red)){.archik-pill--danger{background:color-mix(in oklab,var(--archik-danger) 14%,transparent)}}.archik-label{letter-spacing:.12em;text-transform:uppercase;color:var(--archik-fg-muted);margin-bottom:4px;font-size:10px;display:block}.archik-mono{color:var(--archik-fg);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.archik-divider{border-top:1px solid var(--archik-border)}.archik-grid{background-color:var(--archik-canvas);background-image:radial-gradient(var(--archik-grid-minor) 1px,transparent 1px),radial-gradient(var(--archik-grid-major) 1px,transparent 1px);background-position:0 0,0 0;background-size:20px 20px,100px 100px}.archik-selected-glow{filter:drop-shadow(0 0 6px var(--archik-selected-glow)) drop-shadow(0 0 2px var(--archik-selected-glow));animation:1.8s ease-in-out infinite archikPulse}[data-archik-node-id][data-archik-status=proposed]{opacity:.82}[data-archik-node-id][data-archik-status=proposed] rect,[data-archik-node-id][data-archik-status=proposed] path,[data-archik-node-id][data-archik-status=proposed] ellipse,[data-archik-node-id][data-archik-status=proposed] line{stroke:var(--archik-status-proposed);stroke-dasharray:5 3}[data-archik-node-id][data-archik-status=deprecated]{opacity:.7}[data-archik-node-id][data-archik-status=deprecated] rect,[data-archik-node-id][data-archik-status=deprecated] path,[data-archik-node-id][data-archik-status=deprecated] ellipse,[data-archik-node-id][data-archik-status=deprecated] line{stroke:var(--archik-status-deprecated);stroke-dasharray:2 4}[data-archik-node-id][data-archik-status=deprecated] text{text-decoration:line-through;text-decoration-thickness:1px;-webkit-text-decoration-color:var(--archik-status-deprecated);text-decoration-color:var(--archik-status-deprecated)}.archik-stereotype-band{pointer-events:none}[data-archik-stereotype=boundary] .archik-stereotype-band{fill:var(--archik-stereotype-boundary)}[data-archik-stereotype=control] .archik-stereotype-band{fill:var(--archik-stereotype-control)}[data-archik-stereotype=entity] .archik-stereotype-band{fill:var(--archik-stereotype-entity)}.archik-stereotype-pill{letter-spacing:.08em;border:1px solid #0000;border-radius:10px;align-self:flex-start;align-items:center;padding:3px 10px;font-size:10px;font-weight:700;display:inline-flex}.archik-stereotype-pill[data-stereotype=boundary]{background:var(--archik-stereotype-boundary)}@supports (color:color-mix(in lab,red,red)){.archik-stereotype-pill[data-stereotype=boundary]{background:color-mix(in srgb,var(--archik-stereotype-boundary) 15%,transparent)}}.archik-stereotype-pill[data-stereotype=boundary]{border-color:var(--archik-stereotype-boundary);color:var(--archik-stereotype-boundary)}.archik-stereotype-pill[data-stereotype=control]{background:var(--archik-stereotype-control)}@supports (color:color-mix(in lab,red,red)){.archik-stereotype-pill[data-stereotype=control]{background:color-mix(in srgb,var(--archik-stereotype-control) 15%,transparent)}}.archik-stereotype-pill[data-stereotype=control]{border-color:var(--archik-stereotype-control);color:var(--archik-stereotype-control)}.archik-stereotype-pill[data-stereotype=entity]{background:var(--archik-stereotype-entity)}@supports (color:color-mix(in lab,red,red)){.archik-stereotype-pill[data-stereotype=entity]{background:color-mix(in srgb,var(--archik-stereotype-entity) 15%,transparent)}}.archik-stereotype-pill[data-stereotype=entity]{border-color:var(--archik-stereotype-entity);color:var(--archik-stereotype-entity)}@keyframes archikPulse{0%,to{filter:drop-shadow(0 0 4px var(--archik-selected-glow)) drop-shadow(0 0 1px var(--archik-selected-glow))}50%{filter:drop-shadow(0 0 12px var(--archik-selected-glow)) drop-shadow(0 0 3px var(--archik-selected-glow))}}.archik-modal-overlay{z-index:50;background:var(--archik-canvas);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}@supports (color:color-mix(in lab,red,red)){.archik-modal-overlay{background:color-mix(in oklab,var(--archik-canvas) 70%,transparent)}}.archik-modal-overlay{-webkit-backdrop-filter:blur(4px);animation:.14s ease-out archikFadeIn}.archik-modal{background:var(--archik-panel);border:1px solid var(--archik-border);width:360px;max-width:calc(100vw - 32px);box-shadow:0 12px 40px #00000059,0 0 0 1px var(--archik-border-strong);border-radius:8px;padding:16px;animation:.2s cubic-bezier(.2,.8,.2,1) archikModalIn}.archik-selected-outline{fill:none;stroke:var(--archik-selected);stroke-width:2px;pointer-events:none}@keyframes archikEdgeFlow{0%{stroke-dashoffset:0}to{stroke-dashoffset:calc(-1 * var(--archik-dash-period,8) * 1px)}}.archik-edge-flowing{animation:1.4s linear infinite archikEdgeFlow}@media(prefers-reduced-motion:reduce){.archik-edge-flowing{animation:none}}.archik-popover{background:var(--archik-panel);border:1px solid var(--archik-border-strong);border-radius:6px;flex-direction:column;max-height:min(80vh,600px);padding:4px;animation:.16s cubic-bezier(.2,.8,.2,1) archikModalIn;display:flex;overflow:hidden;box-shadow:0 12px 32px #00000059}.archik-menu-item{width:100%;color:var(--archik-fg);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:4px;align-items:center;gap:8px;padding:6px 10px;font-size:12px;display:flex}.archik-menu-item:hover{background:var(--archik-surface-hover)}.archik-menu-item--danger{color:var(--archik-danger)}@keyframes archikFadeIn{0%{opacity:0}to{opacity:1}}@keyframes archikModalIn{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:none}}.archik-drawer-shell{flex-direction:column;min-width:0;transition:width .22s cubic-bezier(.2,.8,.2,1),opacity .2s,margin-left .22s cubic-bezier(.2,.8,.2,1);display:flex;overflow:hidden}.archik-drawer-shell--open{opacity:1;width:320px;margin-left:16px}.archik-drawer-shell--closed{opacity:0;pointer-events:none;width:0;margin-left:0}.archik-drawer-content{flex-shrink:0;width:320px;height:100%}.archik-drawer-fade{animation:.22s ease-out archikFadeIn}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
|