@diagrammo/dgmo 0.11.2 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/auto.cjs CHANGED
@@ -45451,7 +45451,7 @@ pre.dgmo, code.language-dgmo, pre > code.language-dgmo,
45451
45451
 
45452
45452
  // src/auto/index.ts
45453
45453
  init_safe_href();
45454
- var VERSION = "0.11.2";
45454
+ var VERSION = "0.12.0";
45455
45455
  var DEFAULTS = {
45456
45456
  theme: "auto",
45457
45457
  palette: "nord",
package/dist/auto.js CHANGED
@@ -638,7 +638,7 @@ pre.dgmo, code.language-dgmo, pre > code.language-dgmo,
638
638
  .dgmo-rendered.dgmo-theme-dark .dgmo-source-pre .dgmo-tok-comment,
639
639
  .dgmo-rendered.dgmo-theme-dark .dgmo-source-pre .dgmo-tok-noteContent,
640
640
  .dgmo-rendered.dgmo-theme-dark .dgmo-source-pre .dgmo-tok-punctuation { color: #616e88; }
641
- `;xz();var AXe="0.11.2",tci={theme:"auto",palette:"nord",showSource:!0,showEditorLink:!0},hge={...tci},oO=new Set,rci="https://online.diagrammo.app",nci=8192,uAr=256*1024,ici=200,sci=1200,oci="[dgmo:auto]",aci=/[\x00-\x1F‪-‮⁦-⁩]/g,mXe="dgmoAutoStyles";function om(...e){typeof console<"u"&&console.warn&&console.warn(oci,...e)}function dAr(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function lci(e){e.querySelectorAll("script, foreignObject").forEach(i=>i.remove());let n=[e,...Array.from(e.querySelectorAll("*"))];for(let i of n){for(let o of Array.from(i.attributes))o.name.toLowerCase().startsWith("on")&&i.removeAttribute(o.name);if(i.hasAttribute("href")&&tC(i.getAttribute("href"))===null&&i.removeAttribute("href"),i.hasAttributeNS("http://www.w3.org/1999/xlink","href")){let o=i.getAttributeNS("http://www.w3.org/1999/xlink","href");tC(o)===null&&i.removeAttributeNS("http://www.w3.org/1999/xlink","href")}}}function pAr(e){try{return nj().some(t=>t.id===e)}catch{return!1}}function hAr(){if(typeof document>"u")return null;let e=document.currentScript;if(e&&e instanceof HTMLScriptElement)return e;let t=document.querySelectorAll('script[src*="auto.js"], script[src*="auto.min.js"]');return t.length===0?null:t[t.length-1]}var uci=["theme","palette","showSource","showEditorLink"],fAr=["__proto__","constructor","prototype"],cci=["auto","light","dark","transparent"];function mAr(e){return typeof e=="string"&&cci.includes(e)}function yAr(e){if(!e)return{};let t;try{t=JSON.parse(e)}catch(i){return om("data-config: invalid JSON",i),{}}if(!dAr(t))return om("data-config: not an object"),{};for(let i of fAr)if(Object.prototype.hasOwnProperty.call(t,i))return om("data-config: rejected (prototype-pollution key:",i,")"),{};let n={};for(let[i,o]of Object.entries(t)){if(!uci.includes(i)){om("data-config: dropping unknown key",i);continue}if(i==="theme"){if(!mAr(o)){om("data-config: rejected theme",o);continue}n.theme=o}else if(i==="palette"){if(typeof o!="string"||!pAr(o)){om("data-config: rejected palette",o);continue}n.palette=o}else if(i==="showSource"){if(typeof o!="boolean"){om("data-config: rejected showSource",o);continue}n.showSource=o}else if(i==="showEditorLink"){if(typeof o!="boolean"){om("data-config: rejected showEditorLink",o);continue}n.showEditorLink=o}}return n}function AAr(e=document){let t=e.querySelectorAll(".dgmo:not([data-dgmo-processed]), .language-dgmo:not([data-dgmo-processed])");return Array.from(t).filter(n=>!n.closest(".dgmo-rendered"))}function gAr(e){if(e==="light"||e==="dark"||e==="transparent")return e;if(typeof document>"u")return"light";let t=document.documentElement,n=t.getAttribute("data-theme");return n==="dark"?"dark":n==="light"?"light":t.classList.contains("dark")?"dark":t.classList.contains("light")?"light":typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function SAr(){if(typeof document>"u")return;let e=document.documentElement;if(e&&e.dataset&&e.dataset[mXe]==="1")return;if(document.querySelector('link[rel="stylesheet"][href*="auto.css"]')){e&&e.dataset&&(e.dataset[mXe]="1");return}let n=document.createElement("style");n.setAttribute("data-dgmo-auto",""),n.textContent=lAr,document.head.appendChild(n),e&&e.dataset&&(e.dataset[mXe]="1")}function dci(e){let t=document.createDocumentFragment(),n;try{n=aAr(e)}catch{return t.appendChild(document.createTextNode(e)),t}for(let i of n){if(!i.text)continue;let o=document.createElement("span");o.className=`dgmo-tok-${i.role}`,o.textContent=i.text,t.appendChild(o)}return t}var vAr='<svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="5.5" y="5.5" width="8" height="8" rx="1.5"/><path d="M10.5 5.5V3a1.5 1.5 0 0 0-1.5-1.5H3A1.5 1.5 0 0 0 1.5 3v6A1.5 1.5 0 0 0 3 10.5h2.5"/></svg>',pci='<svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="3 8.5 6.5 12 13 4.5"/></svg>',hci='<svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M9 2h5v5"/><path d="M14 2L7 9"/><path d="M13 9v4a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h4"/></svg>';function fge(e,t){e.innerHTML=t}function fci(e,t,n){let i=document.createElement("div");i.className="dgmo-source-panel";let o=document.createElement("button");o.type="button",o.className="dgmo-source-toggle",o.setAttribute("aria-expanded","false");let r=document.createElement("span");r.className="dgmo-chevron",r.setAttribute("aria-hidden","true"),r.textContent="\u25B8",o.appendChild(r);let s=document.createElement("span");s.textContent="DGMO source",o.appendChild(s);let a=document.createElement("div");a.className="dgmo-source-body";let l=document.createElement("pre");l.className="dgmo-source-pre",l.appendChild(dci(e)),a.appendChild(l);let u=document.createElement("div");u.className="dgmo-source-actions";let c=document.createElement("button");if(c.type="button",c.className="dgmo-btn dgmo-btn-copy",c.setAttribute("aria-label","Copy DGMO source"),c.title="Copy source",fge(c,vAr),c.addEventListener("click",()=>{mci(e,c)}),u.appendChild(c),n){let d=document.createElement("a");d.className="dgmo-btn dgmo-btn-editor",d.target="_blank",d.rel="noopener noreferrer",d.setAttribute("aria-label","Open in editor"),fge(d,hci),t?(d.href=t,d.title="Open in editor"):(d.setAttribute("aria-disabled","true"),d.title="Diagram too large for share link; copy source and paste into editor",d.addEventListener("click",p=>p.preventDefault())),u.appendChild(d)}return a.appendChild(u),i.appendChild(o),i.appendChild(a),o.addEventListener("click",()=>{let d=a.classList.toggle("dgmo-open");o.setAttribute("aria-expanded",d?"true":"false")}),i}async function mci(e,t){let n=!1;try{navigator?.clipboard?.writeText&&(await navigator.clipboard.writeText(e),n=!0)}catch{}if(!n&&typeof document<"u")try{let i=document.createElement("textarea");i.value=e,i.setAttribute("readonly",""),i.style.position="absolute",i.style.left="-9999px",document.body.appendChild(i),i.select(),n=document.execCommand("copy"),document.body.removeChild(i)}catch{n=!1}n?(fge(t,pci),t.classList.add("dgmo-btn-copied"),setTimeout(()=>{fge(t,vAr),t.classList.remove("dgmo-btn-copied")},sci)):om("clipboard write failed")}function sO(e){let t=document.createElement("div");t.className="dgmo-error-banner",t.setAttribute("role","alert");let n=document.createElement("div");if(n.className="dgmo-error-banner-title",n.textContent=`${e.severity??"error"}: ${e.message}`,t.appendChild(n),e.line!==void 0&&e.line>0){let i=document.createElement("div");i.className="dgmo-error-banner-loc",i.textContent=e.column!==void 0?`at ${e.line}:${e.column}`:`at line ${e.line}`,t.appendChild(i)}return t}function yci(e){let t=e.split(`
641
+ `;xz();var AXe="0.12.0",tci={theme:"auto",palette:"nord",showSource:!0,showEditorLink:!0},hge={...tci},oO=new Set,rci="https://online.diagrammo.app",nci=8192,uAr=256*1024,ici=200,sci=1200,oci="[dgmo:auto]",aci=/[\x00-\x1F‪-‮⁦-⁩]/g,mXe="dgmoAutoStyles";function om(...e){typeof console<"u"&&console.warn&&console.warn(oci,...e)}function dAr(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function lci(e){e.querySelectorAll("script, foreignObject").forEach(i=>i.remove());let n=[e,...Array.from(e.querySelectorAll("*"))];for(let i of n){for(let o of Array.from(i.attributes))o.name.toLowerCase().startsWith("on")&&i.removeAttribute(o.name);if(i.hasAttribute("href")&&tC(i.getAttribute("href"))===null&&i.removeAttribute("href"),i.hasAttributeNS("http://www.w3.org/1999/xlink","href")){let o=i.getAttributeNS("http://www.w3.org/1999/xlink","href");tC(o)===null&&i.removeAttributeNS("http://www.w3.org/1999/xlink","href")}}}function pAr(e){try{return nj().some(t=>t.id===e)}catch{return!1}}function hAr(){if(typeof document>"u")return null;let e=document.currentScript;if(e&&e instanceof HTMLScriptElement)return e;let t=document.querySelectorAll('script[src*="auto.js"], script[src*="auto.min.js"]');return t.length===0?null:t[t.length-1]}var uci=["theme","palette","showSource","showEditorLink"],fAr=["__proto__","constructor","prototype"],cci=["auto","light","dark","transparent"];function mAr(e){return typeof e=="string"&&cci.includes(e)}function yAr(e){if(!e)return{};let t;try{t=JSON.parse(e)}catch(i){return om("data-config: invalid JSON",i),{}}if(!dAr(t))return om("data-config: not an object"),{};for(let i of fAr)if(Object.prototype.hasOwnProperty.call(t,i))return om("data-config: rejected (prototype-pollution key:",i,")"),{};let n={};for(let[i,o]of Object.entries(t)){if(!uci.includes(i)){om("data-config: dropping unknown key",i);continue}if(i==="theme"){if(!mAr(o)){om("data-config: rejected theme",o);continue}n.theme=o}else if(i==="palette"){if(typeof o!="string"||!pAr(o)){om("data-config: rejected palette",o);continue}n.palette=o}else if(i==="showSource"){if(typeof o!="boolean"){om("data-config: rejected showSource",o);continue}n.showSource=o}else if(i==="showEditorLink"){if(typeof o!="boolean"){om("data-config: rejected showEditorLink",o);continue}n.showEditorLink=o}}return n}function AAr(e=document){let t=e.querySelectorAll(".dgmo:not([data-dgmo-processed]), .language-dgmo:not([data-dgmo-processed])");return Array.from(t).filter(n=>!n.closest(".dgmo-rendered"))}function gAr(e){if(e==="light"||e==="dark"||e==="transparent")return e;if(typeof document>"u")return"light";let t=document.documentElement,n=t.getAttribute("data-theme");return n==="dark"?"dark":n==="light"?"light":t.classList.contains("dark")?"dark":t.classList.contains("light")?"light":typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function SAr(){if(typeof document>"u")return;let e=document.documentElement;if(e&&e.dataset&&e.dataset[mXe]==="1")return;if(document.querySelector('link[rel="stylesheet"][href*="auto.css"]')){e&&e.dataset&&(e.dataset[mXe]="1");return}let n=document.createElement("style");n.setAttribute("data-dgmo-auto",""),n.textContent=lAr,document.head.appendChild(n),e&&e.dataset&&(e.dataset[mXe]="1")}function dci(e){let t=document.createDocumentFragment(),n;try{n=aAr(e)}catch{return t.appendChild(document.createTextNode(e)),t}for(let i of n){if(!i.text)continue;let o=document.createElement("span");o.className=`dgmo-tok-${i.role}`,o.textContent=i.text,t.appendChild(o)}return t}var vAr='<svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="5.5" y="5.5" width="8" height="8" rx="1.5"/><path d="M10.5 5.5V3a1.5 1.5 0 0 0-1.5-1.5H3A1.5 1.5 0 0 0 1.5 3v6A1.5 1.5 0 0 0 3 10.5h2.5"/></svg>',pci='<svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="3 8.5 6.5 12 13 4.5"/></svg>',hci='<svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M9 2h5v5"/><path d="M14 2L7 9"/><path d="M13 9v4a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h4"/></svg>';function fge(e,t){e.innerHTML=t}function fci(e,t,n){let i=document.createElement("div");i.className="dgmo-source-panel";let o=document.createElement("button");o.type="button",o.className="dgmo-source-toggle",o.setAttribute("aria-expanded","false");let r=document.createElement("span");r.className="dgmo-chevron",r.setAttribute("aria-hidden","true"),r.textContent="\u25B8",o.appendChild(r);let s=document.createElement("span");s.textContent="DGMO source",o.appendChild(s);let a=document.createElement("div");a.className="dgmo-source-body";let l=document.createElement("pre");l.className="dgmo-source-pre",l.appendChild(dci(e)),a.appendChild(l);let u=document.createElement("div");u.className="dgmo-source-actions";let c=document.createElement("button");if(c.type="button",c.className="dgmo-btn dgmo-btn-copy",c.setAttribute("aria-label","Copy DGMO source"),c.title="Copy source",fge(c,vAr),c.addEventListener("click",()=>{mci(e,c)}),u.appendChild(c),n){let d=document.createElement("a");d.className="dgmo-btn dgmo-btn-editor",d.target="_blank",d.rel="noopener noreferrer",d.setAttribute("aria-label","Open in editor"),fge(d,hci),t?(d.href=t,d.title="Open in editor"):(d.setAttribute("aria-disabled","true"),d.title="Diagram too large for share link; copy source and paste into editor",d.addEventListener("click",p=>p.preventDefault())),u.appendChild(d)}return a.appendChild(u),i.appendChild(o),i.appendChild(a),o.addEventListener("click",()=>{let d=a.classList.toggle("dgmo-open");o.setAttribute("aria-expanded",d?"true":"false")}),i}async function mci(e,t){let n=!1;try{navigator?.clipboard?.writeText&&(await navigator.clipboard.writeText(e),n=!0)}catch{}if(!n&&typeof document<"u")try{let i=document.createElement("textarea");i.value=e,i.setAttribute("readonly",""),i.style.position="absolute",i.style.left="-9999px",document.body.appendChild(i),i.select(),n=document.execCommand("copy"),document.body.removeChild(i)}catch{n=!1}n?(fge(t,pci),t.classList.add("dgmo-btn-copied"),setTimeout(()=>{fge(t,vAr),t.classList.remove("dgmo-btn-copied")},sci)):om("clipboard write failed")}function sO(e){let t=document.createElement("div");t.className="dgmo-error-banner",t.setAttribute("role","alert");let n=document.createElement("div");if(n.className="dgmo-error-banner-title",n.textContent=`${e.severity??"error"}: ${e.message}`,t.appendChild(n),e.line!==void 0&&e.line>0){let i=document.createElement("div");i.className="dgmo-error-banner-loc",i.textContent=e.column!==void 0?`at ${e.line}:${e.column}`:`at line ${e.line}`,t.appendChild(i)}return t}function yci(e){let t=e.split(`
642
642
  `).map(n=>n.trim()).find(n=>n.length>0);return t?t.replace(aci,"").slice(0,ici):"DGMO diagram"}function Aci(e){if(e.tagName==="CODE"){let t=e.parentElement;if(t&&t.tagName==="PRE"){let n=Array.from(t.childNodes).filter(i=>i.nodeType===1||i.nodeType===3&&(i.textContent||"").trim().length>0);if(n.length===1&&n[0]===e)return t}}return e}async function wAr(e){if(!(e instanceof HTMLElement))return{};if(e.dataset.dgmoProcessed==="true")return{};e.dataset.dgmoProcessed="true";let t=e.textContent||"";if(new TextEncoder().encode(t).byteLength>uAr){e.style.visibility="";let w=sO({message:`DGMO source too large to render \u2014 ${uAr/1024} KB max`,severity:"error"});return e.parentElement?.insertBefore(w,e),om("source exceeds 256 KB cap"),{}}let i=hge,o=i.theme==="transparent"?"transparent":gAr(i.theme),r=o==="transparent"?"transparent":o,s=yci(t),a=e.dataset.showSource,l=i.showSource;a==="true"?l=!0:a==="false"?l=!1:a!==void 0&&om("data-show-source: invalid value",a,'\u2014 expected "true" or "false"');let u;try{u=await Hyr(t,{theme:r,palette:i.palette})}catch(w){e.style.visibility="";let E=w instanceof Error?w.message:"Render failed unexpectedly",x=sO({message:E,severity:"error"});return e.parentElement?.insertBefore(x,e),om("render() rejected:",w),{}}if(u.diagnostics&&u.diagnostics.length>0){e.style.visibility="";let w=u.diagnostics[0],E=sO({message:w.message,severity:w.severity,line:w.line,column:w.column});return e.parentElement?.insertBefore(E,e),om("diagnostic:",w.message,w.line,w.column),{}}if(!u.svg){e.style.visibility="";let w=sO({message:"Empty SVG returned from renderer",severity:"error"});return e.parentElement?.insertBefore(w,e),{}}let c=document.createElement("div"),d=o==="dark"?"dgmo-theme-dark":o==="transparent"?"dgmo-theme-transparent":"dgmo-theme-light";c.className=`dgmo-rendered ${d}`,c.dataset.dgmoProcessed="true";let p=document.createElement("div");p.innerHTML=u.svg;let h=p.querySelector("svg");if(!h){e.style.visibility="";let w=sO({message:"Empty SVG returned from renderer",severity:"error"});return e.parentElement?.insertBefore(w,e),{}}if(lci(h),h.setAttribute("role","img"),h.setAttribute("aria-label",s),c.appendChild(h),l){let w=null;if(i.showEditorLink){let x=o==="dark"?"dark":"light",T=Gyr(t,{baseUrl:rci,palette:i.palette,theme:x});if(T.url){let _=`utm_source=auto-embed&utm_medium=html&utm_campaign=${encodeURIComponent(AXe)}`,C=T.url.indexOf("#"),D;if(C===-1){let B=T.url.includes("?")?"&":"?";D=T.url+B+_}else{let B=T.url.slice(0,C),M=T.url.slice(C+1),L=B.includes("?")?"&":"?",P=M.length>0?"&":"";D=B+L+_+"#"+M+P+_}w=D,tC(w)||(w=null)}else T.error==="too-large"&&T.compressedSize>nci&&(w=null)}let E=fci(t,w,i.showEditorLink);c.appendChild(E)}let v={wrapper:c,source:t,perElementShowSource:a==="true"?!0:a==="false"?!1:null};return oO.add(v),Aci(e).replaceWith(c),{wrapper:c}}function gXe(e={}){if(!dAr(e))return;for(let n of fAr)if(Object.prototype.hasOwnProperty.call(e,n)){om("initialize: rejected (prototype-pollution key:",n,")");return}let t={...hge};mAr(e.theme)&&(t.theme=e.theme),typeof e.palette=="string"&&pAr(e.palette)&&(t.palette=e.palette),typeof e.showSource=="boolean"&&(t.showSource=e.showSource),typeof e.showEditorLink=="boolean"&&(t.showEditorLink=e.showEditorLink),hge=t}async function SXe(e={}){SAr();for(let n of Array.from(oO))document.contains(n.wrapper)||oO.delete(n);let t;if(e.nodes){t=("length"in e.nodes&&typeof e.nodes!="string"?Array.from(e.nodes):[]).filter(o=>o instanceof Element&&(o.matches(".dgmo, .language-dgmo")||o.querySelector(".dgmo, .language-dgmo")!==null));let i=[];for(let o of t)o.matches(".dgmo, .language-dgmo")&&i.push(o),o.querySelectorAll(".dgmo:not([data-dgmo-processed]), .language-dgmo:not([data-dgmo-processed])").forEach(s=>i.push(s));t=Array.from(new Set(i)).filter(o=>!o.closest(".dgmo-rendered"))}else t=AAr();await Promise.all(t.map(n=>wAr(n).catch(()=>({}))))}function gci(){if(hge.theme==="auto")for(let e of Array.from(oO)){let t=document.createElement("pre");t.className="dgmo",t.textContent=e.source,e.perElementShowSource!==null&&(t.dataset.showSource=String(e.perElementShowSource)),e.wrapper.replaceWith(t),oO.delete(e),wAr(t)}}function Sci(){if(typeof window>"u"||!window.matchMedia)return;let e=window.matchMedia("(prefers-color-scheme: dark)"),t=()=>gci();e.addEventListener?e.addEventListener("change",t):"addListener"in e&&typeof e.addListener=="function"&&e.addListener(t)}function yXe(){if(typeof document>"u")return;document.querySelectorAll(".dgmo:not(.dgmo-rendered), .language-dgmo").forEach(t=>{t.closest(".dgmo-rendered")||(t.style.visibility="visible")}),document.documentElement&&document.documentElement.dataset&&(document.documentElement.dataset.dgmoAutoFailed="1")}function vci(){try{SAr();let e=hAr(),t=e?.getAttribute("data-auto"),n=e?.getAttribute("data-config");if(n){let o=yAr(n);gXe(o)}if(Sci(),typeof window<"u"&&window.setTimeout(()=>{document.querySelectorAll(".dgmo:not(.dgmo-rendered):not([data-dgmo-processed])").length>0&&(om("safety timeout: un-hiding unrendered sources"),yXe())},3e4),t==="false")return;let i=()=>{SXe().catch(o=>{om("run() crashed:",o),yXe()})};typeof document<"u"&&document.readyState!=="loading"?i():typeof document<"u"&&document.addEventListener("DOMContentLoaded",i,{once:!0})}catch(e){om("bootstrap failed:",e),yXe()}}var EAr=Object.freeze({initialize:gXe,run:SXe,version:AXe});function cAr(e,t){try{Object.defineProperty(e,t,{value:EAr,writable:!1,configurable:!1,enumerable:!0})}catch{}}typeof window<"u"&&(cAr(window,"dgmo"),cAr(window,"diagrammo"),vci());var wci=EAr;return fc(Eci);})();
643
643
  /*! Bundled license information:
644
644
 
package/dist/auto.mjs CHANGED
@@ -45453,7 +45453,7 @@ pre.dgmo, code.language-dgmo, pre > code.language-dgmo,
45453
45453
 
45454
45454
  // src/auto/index.ts
45455
45455
  init_safe_href();
45456
- var VERSION = "0.11.2";
45456
+ var VERSION = "0.12.0";
45457
45457
  var DEFAULTS = {
45458
45458
  theme: "auto",
45459
45459
  palette: "nord",
package/dist/index.cjs CHANGED
@@ -46466,6 +46466,15 @@ var COMPLETION_REGISTRY = /* @__PURE__ */ new Map([
46466
46466
  "no-value": { description: "Hide value labels at each point" }
46467
46467
  })
46468
46468
  ],
46469
+ [
46470
+ "multi-line",
46471
+ withGlobals({
46472
+ series: { description: "Series name(s)" },
46473
+ "x-label": { description: "X-axis label" },
46474
+ "y-label": { description: "Y-axis label" },
46475
+ "no-value": { description: "Hide value labels at each point" }
46476
+ })
46477
+ ],
46469
46478
  [
46470
46479
  "polar-area",
46471
46480
  withGlobals({
@@ -46569,8 +46578,15 @@ var COMPLETION_REGISTRY = /* @__PURE__ */ new Map([
46569
46578
  ],
46570
46579
  [
46571
46580
  "flowchart",
46581
+ // Spec §5 §4.6: direction-lr, orientation-vertical, no-color, solid-fill
46572
46582
  withGlobals({
46573
- "direction-lr": { description: "Switch to left-to-right layout" }
46583
+ "direction-lr": { description: "Switch to left-to-right layout" },
46584
+ "orientation-vertical": {
46585
+ description: "Use vertical orientation for ranks"
46586
+ },
46587
+ "no-color": {
46588
+ description: "Resolve all nodes to muted neutral fill"
46589
+ }
46574
46590
  })
46575
46591
  ],
46576
46592
  [
@@ -46583,85 +46599,73 @@ var COMPLETION_REGISTRY = /* @__PURE__ */ new Map([
46583
46599
  ],
46584
46600
  [
46585
46601
  "er",
46602
+ // Spec §9 §8.5: notation (chen/crow), active-tag.
46586
46603
  withGlobals({
46604
+ notation: {
46605
+ description: "ER notation style",
46606
+ values: ["chen", "crow"]
46607
+ },
46587
46608
  "active-tag": { description: "Active tag group name" }
46588
46609
  })
46589
46610
  ],
46590
46611
  [
46591
46612
  "org",
46613
+ // Spec §7 §6.5: direction-tb, sub-node-label, show-sub-node-count,
46614
+ // hide, active-tag. solid-fill via SOLID_FILL_CAPABLE.
46592
46615
  withGlobals({
46616
+ "direction-tb": { description: "Switch to top-to-bottom layout" },
46593
46617
  "sub-node-label": { description: "Label for sub-nodes" },
46594
46618
  "show-sub-node-count": { description: "Show sub-node counts" },
46619
+ hide: { description: "Hide tag:value pairs" },
46595
46620
  "active-tag": { description: "Active tag group name" }
46596
46621
  })
46597
46622
  ],
46598
46623
  [
46599
46624
  "kanban",
46625
+ // Spec §11 §10.4: no-auto-color, hide, active-tag.
46600
46626
  withGlobals({
46601
46627
  "no-auto-color": { description: "Disable automatic card coloring" },
46628
+ hide: { description: "Hide tag:value pairs" },
46602
46629
  "active-tag": { description: "Active tag group name" }
46603
46630
  })
46604
46631
  ],
46605
- // RACI / RASCI / DACI — three chart-type ids, one parser, same directives.
46632
+ // RACI / RASCI / DACI — one chart type (`raci`), variant inferred from
46633
+ // markers or locked via `variant-*` bare directive. `rasci`/`daci` are
46634
+ // not first-line keywords so they get no separate registry entry.
46606
46635
  [
46607
46636
  "raci",
46608
46637
  withGlobals({
46609
- variant: {
46610
- description: "Variant rule set",
46611
- values: ["raci", "rasci", "daci"]
46612
- },
46613
- roles: {
46614
- description: "Comma-separated role list (declares column order; enables unknown-role linting)"
46615
- },
46616
- draft: {
46617
- description: "Suppress missing-A / missing-R warnings during authoring"
46618
- },
46619
- "active-tag": { description: "Active tag group name" }
46620
- })
46621
- ],
46622
- [
46623
- "rasci",
46624
- withGlobals({
46625
- variant: {
46626
- description: "Variant rule set",
46627
- values: ["raci", "rasci", "daci"]
46638
+ "variant-raci": {
46639
+ description: "Lock chart to RACI variant (R / A / C / I markers)"
46628
46640
  },
46629
- roles: {
46630
- description: "Comma-separated role list (declares column order; enables unknown-role linting)"
46641
+ "variant-rasci": {
46642
+ description: "Lock chart to RASCI variant (adds Support \u2014 R / A / S / C / I)"
46631
46643
  },
46632
- draft: {
46633
- description: "Suppress missing-A / missing-R warnings during authoring"
46634
- },
46635
- "active-tag": { description: "Active tag group name" }
46636
- })
46637
- ],
46638
- [
46639
- "daci",
46640
- withGlobals({
46641
- variant: {
46642
- description: "Variant rule set",
46643
- values: ["raci", "rasci", "daci"]
46644
+ "variant-daci": {
46645
+ description: "Lock chart to DACI variant (Driver / Approver / Contributor / Informed)"
46644
46646
  },
46645
46647
  roles: {
46646
- description: "Comma-separated role list (declares column order; enables unknown-role linting)"
46647
- },
46648
- draft: {
46649
- description: "Suppress missing-A / missing-R warnings during authoring"
46648
+ description: "Declare role column order (inline `roles A, B, C` or indented block with per-role pipe metadata)"
46650
46649
  },
46651
46650
  "active-tag": { description: "Active tag group name" }
46652
46651
  })
46653
46652
  ],
46654
46653
  [
46655
46654
  "c4",
46655
+ // Spec §8 §7.7: direction-tb, active-tag.
46656
46656
  withGlobals({
46657
+ "direction-tb": { description: "Switch to top-to-bottom layout" },
46657
46658
  "active-tag": { description: "Active tag group name" }
46658
46659
  })
46659
46660
  ],
46660
46661
  [
46661
46662
  "state",
46663
+ // Spec §6 §5.5: direction-tb, no-color, solid-fill.
46662
46664
  withGlobals({
46663
46665
  "direction-tb": { description: "Switch to top-to-bottom layout" },
46664
- color: { description: "Color mode", values: ["off"] }
46666
+ "no-color": {
46667
+ description: "Resolve all states to muted neutral fill"
46668
+ }
46665
46669
  })
46666
46670
  ],
46667
46671
  [
@@ -46688,6 +46692,7 @@ var COMPLETION_REGISTRY = /* @__PURE__ */ new Map([
46688
46692
  ],
46689
46693
  [
46690
46694
  "gantt",
46695
+ // Spec §13 §12.2 Options.
46691
46696
  withGlobals({
46692
46697
  start: { description: "Project start date (YYYY-MM-DD)" },
46693
46698
  "today-marker": {
@@ -46695,8 +46700,14 @@ var COMPLETION_REGISTRY = /* @__PURE__ */ new Map([
46695
46700
  },
46696
46701
  sort: { description: "Sort order", values: ["time", "group", "tag"] },
46697
46702
  "critical-path": { description: "Show critical path" },
46698
- dependencies: { description: "Show dependencies" },
46699
- "active-tag": { description: "Active tag group name" }
46703
+ "no-dependencies": { description: "Hide dependency arrows" },
46704
+ "sprint-length": { description: "Sprint duration (e.g. 2w)" },
46705
+ "sprint-number": { description: "Starting sprint number" },
46706
+ "sprint-start": { description: "Sprint start date (YYYY-MM-DD)" },
46707
+ "active-tag": { description: "Active tag group name" },
46708
+ // Legacy positive form `dependencies` — kept for back-compat. Use
46709
+ // `no-dependencies` to suppress dependency arrows in new code.
46710
+ dependencies: { description: "Show dependencies (legacy form)" }
46700
46711
  })
46701
46712
  ],
46702
46713
  [
@@ -46723,14 +46734,13 @@ var COMPLETION_REGISTRY = /* @__PURE__ */ new Map([
46723
46734
  ],
46724
46735
  [
46725
46736
  "tech-radar",
46737
+ // Spec §20 documents one directive: `show-blip-legend`. `rings` is a
46738
+ // structural block keyword; quadrant/ring/trend/color are pipe metadata
46739
+ // that live in PIPE_METADATA.
46726
46740
  withGlobals({
46727
- rings: { description: "Ring names block (innermost to outermost)" },
46728
- quadrant: {
46729
- description: "Quadrant position (top-left, top-right, bottom-left, bottom-right)"
46730
- },
46731
- ring: { description: "Ring assignment for a blip" },
46732
- trend: { description: "Blip trend (new, up, down, stable)" },
46733
- color: { description: "Override quadrant color" }
46741
+ "show-blip-legend": {
46742
+ description: "Render the four-column blip listing alongside the radar"
46743
+ }
46734
46744
  })
46735
46745
  ],
46736
46746
  [
@@ -46747,29 +46757,29 @@ var COMPLETION_REGISTRY = /* @__PURE__ */ new Map([
46747
46757
  ],
46748
46758
  [
46749
46759
  "journey-map",
46760
+ // Spec §22 directives: `no-legend`, `active-tag`. `persona` is a
46761
+ // structural keyword (like `tag` / `roles`), not a directive.
46762
+ // `solid-fill` is added via SOLID_FILL_CAPABLE below.
46750
46763
  withGlobals({
46751
46764
  "no-legend": { description: "Hide the score legend" },
46752
- persona: { description: "Define the journey persona" }
46765
+ "active-tag": { description: "Active tag group name" }
46753
46766
  })
46754
46767
  ],
46755
46768
  [
46756
46769
  "pyramid",
46770
+ // Spec §23.5 documents `inverted`; `solid-fill` is added via
46771
+ // SOLID_FILL_CAPABLE below (working but not yet in spec §23.5).
46772
+ // `color`/`description` are layer pipe-metadata, not directives.
46757
46773
  withGlobals({
46758
- inverted: { description: "Flip apex to the bottom (funnel orientation)" },
46759
- color: { description: "Override layer color (pipe metadata)" },
46760
- description: { description: "Layer description (pipe or indented body)" }
46774
+ inverted: { description: "Flip apex to the bottom (funnel orientation)" }
46761
46775
  })
46762
46776
  ],
46763
46777
  [
46764
46778
  "ring",
46765
- withGlobals({
46766
- color: {
46767
- description: "Override ring color (pipe metadata; closed set of 11 named colors)"
46768
- },
46769
- description: {
46770
- description: "Ring description (pipe shorthand or indented body)"
46771
- }
46772
- })
46779
+ // Per spec §24.5 the only chart-specific directive is `solid-fill`,
46780
+ // applied via SOLID_FILL_CAPABLE below. `color`/`description` are
46781
+ // layer pipe-metadata, not directives they live in PIPE_METADATA.
46782
+ withGlobals({})
46773
46783
  ]
46774
46784
  ]);
46775
46785
  var SOLID_FILL_CAPABLE = /* @__PURE__ */ new Set([
@@ -46909,21 +46919,25 @@ var PIPE_METADATA = /* @__PURE__ */ new Map([
46909
46919
  }
46910
46920
  ],
46911
46921
  [
46922
+ // Tech-radar pipe metadata (spec §20). Two contexts:
46923
+ // - quadrant: top-level quadrant headers (`Tools | quadrant: top-left, color: blue`)
46924
+ // - blip: indented blip lines (` Vite | ring: Adopt, trend: up`)
46912
46925
  "tech-radar",
46913
46926
  {
46914
- node: {
46927
+ quadrant: {
46915
46928
  quadrant: {
46916
46929
  description: "Quadrant position",
46917
46930
  values: ["top-left", "top-right", "bottom-left", "bottom-right"]
46918
46931
  },
46919
- ring: { description: "Ring assignment for blip" },
46932
+ color: { description: "Override quadrant color" }
46933
+ },
46934
+ blip: {
46935
+ ring: { description: "Ring assignment (must match a declared ring)" },
46920
46936
  trend: {
46921
46937
  description: "Blip trend indicator",
46922
46938
  values: ["new", "up", "down", "stable"]
46923
- },
46924
- color: { description: "Override quadrant color" }
46925
- },
46926
- edge: {}
46939
+ }
46940
+ }
46927
46941
  }
46928
46942
  ],
46929
46943
  [
@@ -46939,6 +46953,51 @@ var PIPE_METADATA = /* @__PURE__ */ new Map([
46939
46953
  width: { description: "Edge stroke width in pixels" }
46940
46954
  }
46941
46955
  }
46956
+ ],
46957
+ [
46958
+ // RACI pipe metadata (spec §24A). Two contexts:
46959
+ // - role: declarations inside the `roles` block (`Cap | color: red`)
46960
+ // - phase: bracketed phase headers (`[Departure] | color: teal`)
46961
+ "raci",
46962
+ {
46963
+ role: {
46964
+ color: { description: "Role column tint (palette name)" }
46965
+ },
46966
+ phase: {
46967
+ color: { description: "Phase bar tint (palette name)" }
46968
+ }
46969
+ }
46970
+ ],
46971
+ [
46972
+ // Ring layer pipe metadata (spec §24.4). One context: `layer`.
46973
+ "ring",
46974
+ {
46975
+ layer: {
46976
+ color: { description: "Ring color (palette name)" },
46977
+ description: { description: "Layer description (one-liner shorthand)" }
46978
+ }
46979
+ }
46980
+ ],
46981
+ [
46982
+ // Pyramid layer pipe metadata (spec §23.4). Identical surface to ring.
46983
+ "pyramid",
46984
+ {
46985
+ layer: {
46986
+ color: { description: "Layer color (palette name)" },
46987
+ description: { description: "Layer description (one-liner shorthand)" }
46988
+ }
46989
+ }
46990
+ ],
46991
+ [
46992
+ // Journey-map step pipe metadata (spec §22). One static key: `score`.
46993
+ // Tag aliases (e.g. `ch: Web`) are user-defined via the `tag` block
46994
+ // and resolved dynamically — not part of the static map.
46995
+ "journey-map",
46996
+ {
46997
+ step: {
46998
+ score: { description: "Step score (1\u20135 integer; high = good)" }
46999
+ }
47000
+ }
46942
47001
  ]
46943
47002
  ]);
46944
47003
  var METADATA_KEY_SET = /* @__PURE__ */ new Set([