@kanonak-protocol/sdk 5.26.0 → 5.28.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.
Files changed (37) hide show
  1. package/dist/browser.js +1 -1
  2. package/dist/chunk-BA4HAURJ.js +1 -0
  3. package/dist/{chunk-Q3TDDWKS.js → chunk-GJAYU443.js} +1 -1
  4. package/dist/{chunk-WVXOHCW2.js → chunk-KDMBMX3J.js} +1 -1
  5. package/dist/chunk-N3XODYH5.js +1 -0
  6. package/dist/{chunk-HND3PKKR.js → chunk-RJK6Y4HS.js} +1 -1
  7. package/dist/{chunk-ZUWSZQAJ.js → chunk-S2VGNHHF.js} +1 -1
  8. package/dist/chunk-SR6I5ZSI.js +68 -0
  9. package/dist/chunk-SUXSCSHO.js +1 -0
  10. package/dist/chunk-TW7NJDMW.js +152 -0
  11. package/dist/index.d.ts +1 -1
  12. package/dist/index.js +1 -1
  13. package/dist/kanonaks/walkDefinedKanonaks.d.ts +10 -1
  14. package/dist/look/LookRenderer.d.ts +36 -0
  15. package/dist/look/displayValue.d.ts +3 -5
  16. package/dist/parsing/index.js +1 -1
  17. package/dist/reasoning/index.js +1 -1
  18. package/dist/resolution/index.js +1 -1
  19. package/dist/search/index.js +1 -1
  20. package/dist/server/index.js +18 -10
  21. package/dist/server/renderDiagnostics.d.ts +10 -0
  22. package/dist/transformations/index.js +2 -2
  23. package/dist/transformations/v3/CompiledTransformationV3.d.ts +17 -1
  24. package/dist/transformations/v3/TransformationUriConstantsV3.d.ts +5 -0
  25. package/dist/uri-helpers/UriHelpers.d.ts +19 -0
  26. package/dist/uri-helpers/index.d.ts +1 -1
  27. package/dist/uri-helpers/index.js +1 -1
  28. package/dist/validation/index.d.ts +1 -1
  29. package/dist/validation/index.js +1 -1
  30. package/dist/validation/rules/repository/TxExpressionCompilesRule.d.ts +62 -0
  31. package/dist/validation/rules/repository/index.d.ts +1 -0
  32. package/package.json +2 -2
  33. package/dist/chunk-AUXSXDZB.js +0 -152
  34. package/dist/chunk-CYXNYNE7.js +0 -63
  35. package/dist/chunk-EKSYQ6CU.js +0 -1
  36. package/dist/chunk-H6UAD2LP.js +0 -1
  37. package/dist/chunk-ITI65NHP.js +0 -1
@@ -0,0 +1,152 @@
1
+ import{a as Tn}from"./chunk-6VIUXP4N.js";import{a as V,c as Ve,h as u,m as Hn}from"./chunk-SUXSCSHO.js";import{a as Vn}from"./chunk-KOWDHKBN.js";import{a as zn}from"./chunk-PEJALHXK.js";import{ga as Nn,ha as Dn,ia as Bn}from"./chunk-BA4HAURJ.js";import{B as Mn,b as je,c as Y,d as j,g as H,h as re,i as te,j as I,k as z,l as C,m as en,n as ce,o as An,q as kn,r as S,t as hn,u as le,y as nn}from"./chunk-N3XODYH5.js";import{a as Pn}from"./chunk-FUUTGGJS.js";import{c as Ze,e as Qe,g as xn}from"./chunk-QILEJIFU.js";var G=class extends Error{constructor(n,t){super(`${n} (at ${t})`);this.path=t}path};function qs(r,e){let n=r.name,t=qt(e),a={catalog:e,depth:0};if(S(r,u.InstanceTransformation))return Tt(r,n,a,t);if(S(r,u.SetTransformation))return Vt(r,n,a,t);throw new G("Subject is not a recognized v3 transformation type \u2014 expected InstanceTransformation or SetTransformation",n)}function Tt(r,e,n,t){return{kind:"instance",name:r.name,inputPattern:Zn(r,e),rule:tn(r,u.rule,`${e}.rule`,n),artifactName:tn(r,u.artifactName,`${e}.artifactName`,n),outputs:Qn(r,`${e}.outputs`),overrides:et(r,`${e}.formatOverrides`,n),fragments:t}}function Vt(r,e,n,t){let a=Ue(r,u.partitionBy);return{kind:"set",name:r.name,inputPattern:Zn(r,e),rule:tn(r,u.rule,`${e}.rule`,n),artifactName:tn(r,u.artifactName,`${e}.artifactName`,n),outputs:Qn(r,`${e}.outputs`),overrides:et(r,`${e}.formatOverrides`,n),partitionBy:a,fragments:t}}function Zn(r,e){let n=Ge(r,u.inputPattern);if(!n)throw new G("inputPattern is required",e);return Pt(n,`${e}.inputPattern`)}function Pt(r,e){let n=Ue(r,u.matchesClass);if(!n)throw new G("matchesClass is required",e);let t=[];for(let o of ve(r,u.requires))if(o instanceof I)t.push($n(o.object.subject));else if(o instanceof C)for(let i of o.object)i instanceof j&&t.push($n(i.subject));let a=[],s=0;for(let o of ve(r,u.sortBy))if(o instanceof C)for(let i of o.object)i instanceof V&&a.push(Gn(i,`${e}.sortBy[${s++}]`));else o instanceof z&&a.push(Gn(o.object,`${e}.sortBy[${s++}]`));return{matchesClass:n,requires:t,sortBy:a}}function Gn(r,e){let n=Ue(r,u.byProperty);if(!n)throw new G("SortKey.byProperty is required",e);let t=Ue(r,u.order);if(!t)throw new G("SortKey.order is required",e);if(ce(t,u.ascending))return{byProperty:n,order:"ascending"};if(ce(t,u.descending))return{byProperty:n,order:"descending"};throw new G(`SortKey.order must reference tx.ascending or tx.descending; got ${t.publisher}/${t.package_}/${t.name}`,e)}function tn(r,e,n,t){let a=Ge(r,e);if(!a)throw new G("expression is required",n);return Oe(a,n,t)}function Oe(r,e,n){if(S(r,u.StringLiteral))return{kind:"string-literal",value:be(r,u.stringLiteral,e)};if(S(r,u.IntegerLiteral))return{kind:"integer-literal",value:Jn(r,u.integerLiteral,e)};if(S(r,u.DecimalLiteral))return{kind:"decimal-literal",value:Jn(r,u.decimalLiteral,e)};if(S(r,u.BooleanLiteral))return{kind:"boolean-literal",value:Xt(r,u.booleanLiteral,e)};if(S(r,u.VarRef))return{kind:"var-ref",varName:be(r,u.varName,e)};if(S(r,u.PropertyRead))return{kind:"property-read",source:y(r,u.readSource,`${e}.readSource`,n),readProp:Ie(r,u.readProp,e,"readProp")};if(S(r,u.Traverse))return{kind:"traverse",source:y(r,u.traverseSource,`${e}.traverseSource`,n),through:Ie(r,u.through,e,"through"),step:y(r,u.step,`${e}.step`,n)};if(S(r,u.BuildAstNode))return{kind:"build-ast-node",astClass:Ie(r,u.astClass,e,"astClass"),set:Mt(r,`${e}.set`,n)};if(S(r,u.When))return{kind:"when",condition:y(r,u.condition,`${e}.condition`,n),thenBuild:y(r,u.thenBuild,`${e}.thenBuild`,n),elseBuild:At(r,u.elseBuild,`${e}.elseBuild`,n)};if(S(r,u.Concat))return{kind:"concat",parts:bn(r,u.parts,`${e}.parts`,n)};if(S(r,u.Fallback))return{kind:"fallback",primary:y(r,u.primary,`${e}.primary`,n),alternate:y(r,u.alternate,`${e}.alternate`,n)};if(S(r,u.UriName))return{kind:"uri-name",source:y(r,u.uriNameOf,`${e}.uriNameOf`,n)};if(S(r,u.UriPublisher))return{kind:"uri-publisher",source:y(r,u.uriPublisherOf,`${e}.uriPublisherOf`,n)};if(S(r,u.UriPackage))return{kind:"uri-package",source:y(r,u.uriPackageOf,`${e}.uriPackageOf`,n)};if(S(r,u.UriVersion))return{kind:"uri-version",source:y(r,u.uriVersionOf,`${e}.uriVersionOf`,n)};if(S(r,u.SubjectUri))return{kind:"subject-uri",source:y(r,u.subjectOf,`${e}.subjectOf`,n)};if(S(r,u.UriLiteral))return{kind:"uri-literal",refTo:Ie(r,u.refTo,e,"refTo")};if(S(r,u.DisplayLabel))return{kind:"display-label",labelTarget:Ie(r,u.labelTarget,e,"labelTarget"),labelSource:Ie(r,u.labelSource,e,"labelSource")};if(S(r,u.ResolveRef))return{kind:"resolve-ref",source:y(r,u.resolveSource,`${e}.resolveSource`,n)};if(S(r,u.Normalize))return{kind:"normalize",source:y(r,u.normSource,`${e}.normSource`,n),normKind:Nt(r,e)};if(S(r,u.UnescapedString))return{kind:"unescaped-string",source:y(r,u.unescapedSource,`${e}.unescapedSource`,n)};if(S(r,u.RenderMarkdown))return{kind:"render-markdown",source:y(r,u.renderSource,`${e}.renderSource`,n),readProp:Ie(r,u.renderProp,e,"renderProp"),format:Dt(r,e)};if(S(r,u.IsSet))return{kind:"is-set",check:y(r,u.checkExpr,`${e}.checkExpr`,n)};if(S(r,u.CallFragment))return zt(r,e,n);if(S(r,u.Join))return{kind:"join",source:y(r,u.source,`${e}.source`,n),separator:be(r,u.separator,e)};if(S(r,u.Count))return{kind:"count",source:y(r,u.source,`${e}.source`,n)};if(S(r,u.Sum))return{kind:"sum",source:y(r,u.source,`${e}.source`,n)};if(S(r,u.Min))return{kind:"min",source:y(r,u.source,`${e}.source`,n)};if(S(r,u.Max))return{kind:"max",source:y(r,u.source,`${e}.source`,n)};if(S(r,u.Average))return{kind:"average",source:y(r,u.source,`${e}.source`,n)};if(S(r,u.ForEach))return{kind:"for-each",source:y(r,u.source,`${e}.source`,n),loopVar:be(r,u.loopVar,e),emit:y(r,u.emit,`${e}.emit`,n)};if(S(r,u.ListMap))return{kind:"list-map",source:y(r,u.source,`${e}.source`,n),loopVar:be(r,u.loopVar,e),mapBody:y(r,u.mapBody,`${e}.mapBody`,n)};if(S(r,u.Filter))return{kind:"filter",source:y(r,u.source,`${e}.source`,n),loopVar:be(r,u.loopVar,e),predicate:y(r,u.predicate,`${e}.predicate`,n)};if(S(r,u.PartitionBy))return{kind:"partition-by",source:y(r,u.source,`${e}.source`,n),loopVar:be(r,u.loopVar,e),partitionKey:y(r,u.partitionKey,`${e}.partitionKey`,n)};if(S(r,u.DistinctBy))return{kind:"distinct-by",source:y(r,u.source,`${e}.source`,n),loopVar:be(r,u.loopVar,e),distinctKey:y(r,u.distinctKey,`${e}.distinctKey`,n)};if(S(r,u.AllStatements))return{kind:"all-statements",source:y(r,u.statementsOf,`${e}.statementsOf`,n)};if(S(r,u.StatementPredicate))return{kind:"statement-predicate",source:y(r,u.predicateOf,`${e}.predicateOf`,n)};if(S(r,u.StatementValue))return{kind:"statement-value",source:y(r,u.valueOf,`${e}.valueOf`,n)};if(S(r,u.DateFormat))return{kind:"date-format",source:y(r,u.dateSource,`${e}.dateSource`,n),format:Ht(r,e)};if(S(r,u.NumberFormat)){let t=vn(r,u.fractionDigits);if(t!==void 0&&(!Number.isInteger(t)||t<0||t>20))throw new G(`fractionDigits must be an integer between 0 and 20; got ${t}`,e);let a=Fe(r,u.currencyCode);return{kind:"number-format",source:y(r,u.numberSource,`${e}.numberSource`,n),style:Bt(r,e),...t!==void 0?{fractionDigits:t}:{},...a!==void 0?{currencyCode:a}:{}}}if(S(r,u.Add))return{kind:"add",left:y(r,u.arithLeft,`${e}.arithLeft`,n),right:y(r,u.arithRight,`${e}.arithRight`,n)};if(S(r,u.Subtract))return{kind:"subtract",left:y(r,u.arithLeft,`${e}.arithLeft`,n),right:y(r,u.arithRight,`${e}.arithRight`,n)};if(S(r,u.Multiply))return{kind:"multiply",left:y(r,u.arithLeft,`${e}.arithLeft`,n),right:y(r,u.arithRight,`${e}.arithRight`,n)};if(S(r,u.Divide))return{kind:"divide",left:y(r,u.arithLeft,`${e}.arithLeft`,n),right:y(r,u.arithRight,`${e}.arithRight`,n)};if(S(r,u.Reverse))return{kind:"reverse",source:y(r,u.source,`${e}.source`,n)};if(S(r,u.WindowedMap)){let t=vn(r,u.windowSize);if(t===void 0||!Number.isInteger(t)||t<1)throw new G("windowSize must be a positive integer",`${e}.windowSize`);return{kind:"windowed-map",source:y(r,u.source,`${e}.source`,n),windowSize:t,windowVar:be(r,u.windowVar,e),windowBody:y(r,u.windowBody,`${e}.windowBody`,n)}}if(S(r,u.PairwiseMap))return{kind:"pairwise-map",source:y(r,u.source,`${e}.source`,n),firstVar:be(r,u.firstVar,e),secondVar:be(r,u.secondVar,e),pairBody:y(r,u.pairBody,`${e}.pairBody`,n)};if(S(r,u.Scan))return{kind:"scan",source:y(r,u.source,`${e}.source`,n),initialState:y(r,u.initialState,`${e}.initialState`,n),stateVar:be(r,u.stateVar,e),elementVar:be(r,u.elementVar,e),accumulate:y(r,u.accumulate,`${e}.accumulate`,n)};if(S(r,u.ListItemAt))return{kind:"list-item-at",source:y(r,u.source,`${e}.source`,n),itemIndex:y(r,u.itemIndex,`${e}.itemIndex`,n)};if(S(r,u.Equals))return{kind:"equals",left:y(r,u.compareLeft,`${e}.compareLeft`,n),right:y(r,u.compareRight,`${e}.compareRight`,n)};if(S(r,u.GreaterThan))return{kind:"greater-than",left:y(r,u.compareLeft,`${e}.compareLeft`,n),right:y(r,u.compareRight,`${e}.compareRight`,n)};if(S(r,u.LessThan))return{kind:"less-than",left:y(r,u.compareLeft,`${e}.compareLeft`,n),right:y(r,u.compareRight,`${e}.compareRight`,n)};if(S(r,u.GreaterThanOrEqual))return{kind:"greater-than-or-equal",left:y(r,u.compareLeft,`${e}.compareLeft`,n),right:y(r,u.compareRight,`${e}.compareRight`,n)};if(S(r,u.LessThanOrEqual))return{kind:"less-than-or-equal",left:y(r,u.compareLeft,`${e}.compareLeft`,n),right:y(r,u.compareRight,`${e}.compareRight`,n)};if(S(r,u.Not))return{kind:"not",operand:y(r,u.operand,`${e}.operand`,n)};if(S(r,u.And))return{kind:"and",operands:bn(r,u.operands,`${e}.operands`,n)};if(S(r,u.Or))return{kind:"or",operands:bn(r,u.operands,`${e}.operands`,n)};if(S(r,u.Contains))return{kind:"contains",haystack:y(r,u.haystack,`${e}.haystack`,n),needle:y(r,u.needle,`${e}.needle`,n)};if(S(r,u.Abs))return{kind:"abs",value:y(r,u.value,`${e}.value`,n)};if(S(r,u.Negate))return{kind:"negate",value:y(r,u.value,`${e}.value`,n)};if(S(r,u.IsReference))return{kind:"is-reference",check:y(r,u.kindCheck,`${e}.kindCheck`,n)};if(S(r,u.IsEmbedded))return{kind:"is-embedded",check:y(r,u.kindCheck,`${e}.kindCheck`,n)};if(S(r,u.IsList))return{kind:"is-list",check:y(r,u.kindCheck,`${e}.kindCheck`,n)};if(S(r,u.IsString))return{kind:"is-string",check:y(r,u.kindCheck,`${e}.kindCheck`,n)};if(S(r,u.IsNumber))return{kind:"is-number",check:y(r,u.kindCheck,`${e}.kindCheck`,n)};if(S(r,u.IsBoolean))return{kind:"is-boolean",check:y(r,u.kindCheck,`${e}.kindCheck`,n)};if(S(r,u.StatementObject))return{kind:"statement-object",source:y(r,u.statementSource,`${e}.statementSource`,n)};if(S(r,u.Let))return{kind:"let",bindName:be(r,u.letName,e),bindValue:y(r,u.letValue,`${e}.letValue`,n),body:y(r,u.letBody,`${e}.letBody`,n)};if(S(r,u.GetStatementByName))return{kind:"get-statement-by-name",inSubject:y(r,u.inSubject,`${e}.inSubject`,n),byName:y(r,u.byName,`${e}.byName`,n)};throw new G("Expression is not of a recognized v3 type \u2014 embedded has no matching subclass of tx.Expression",e)}function y(r,e,n,t){let a=Ge(r,e);if(!a)throw new G("child expression is required",n);return Oe(a,n,t)}function At(r,e,n,t){let a=Ge(r,e);if(a)return Oe(a,n,t)}function bn(r,e,n,t){let a=[],s=0;for(let o of ve(r,e))if(o instanceof C)for(let i of o.object)i instanceof V&&a.push(Oe(i,`${n}[${s++}]`,t));else o instanceof z&&a.push(Oe(o.object,`${n}[${s++}]`,t));return a}function Mt(r,e,n){let t=[],a=0;for(let s of ve(r,u.set))if(s instanceof C)for(let o of s.object)o instanceof V&&t.push(qn(o,`${e}[${a++}]`,n));else s instanceof z&&t.push(qn(s.object,`${e}[${a++}]`,n));return t}function qn(r,e,n){return{field:Ie(r,u.field,e,"field"),value:y(r,u.bindValue,`${e}.bindValue`,n)}}function Nt(r,e){let n=Ue(r,u.normKind);if(!n)throw new G("normKind is required",e);if(ce(n,u.NORM_TRIM_END))return"trim-end";if(ce(n,u.NORM_TO_UPPER))return"to-upper";if(ce(n,u.NORM_TO_LOWER))return"to-lower";if(ce(n,u.NORM_FIRST_CHAR))return"first-char";throw new G(`Unknown NormalizeKind: ${n.publisher}/${n.package_}/${n.name}`,e)}function Dt(r,e){let n=Ue(r,u.renderFormat);if(!n)throw new G("renderFormat is required",e);if(ce(n,u.RENDER_HTML))return"html";if(ce(n,u.RENDER_MARKDOWN))return"markdown";throw new G(`Unknown RenderFormat: ${n.publisher}/${n.package_}/${n.name}`,e)}var Wn=new Set(["decimal","percent","basis-points","currency","compact"]);function Bt(r,e){let n=Fe(r,u.numberStyle);if(n===void 0)throw new G("numberStyle is required",e);if(!Wn.has(n))throw new G(`Unknown numberStyle "${n}"; supported: ${[...Wn].join(", ")}`,e);return n}var Yn=new Set(["iso-date","iso-datetime","short-date","long-date","year","month-year"]);function Ht(r,e){let n=Fe(r,u.dateFormat);if(!n)throw new G("dateFormat is required",e);if(!Yn.has(n))throw new G(`Unknown dateFormat "${n}"; supported: ${[...Yn].join(", ")}`,e);return n}function zt(r,e,n){let t=Ue(r,u.fragmentRef);if(!t)throw new G("fragmentRef is required",e);if(!Wt(n.catalog,t))throw new G(`ExpressionFragment not found: ${t.publisher}/${t.package_}/${t.name}`,e);return{kind:"call-fragment",fragmentKey:Gt(t)}}function Gt(r){return`${r.publisher}/${r.package_}/${r.name}`}function qt(r){let e=new Map,n=[];for(let t of r){if(!(t instanceof Y)||!S(t,u.ExpressionFragment))continue;let a=Ge(t,u.body);if(!a)continue;let s=(t.namespace||"").split("@")[0]||"",o=s.indexOf("/");if(o<0)continue;let i=s.substring(0,o),c=s.substring(o+1),l=`${i}/${c}/${t.name}`;n.push({key:l,subject:t,bodyEmb:a,pubPkgName:`${s}/${t.name}`})}for(let t of n){let a=Oe(t.bodyEmb,`fragment(${t.pubPkgName})`,{catalog:r,depth:0});e.set(t.key,a)}return e}function Wt(r,e){for(let n of r)if(!(!(n instanceof Y)||n.name!==e.name||!(n.namespace||"").startsWith(`${e.publisher}/${e.package_}@`))&&S(n,u.ExpressionFragment))return n}function Qn(r,e){let n=new Set;for(let t of ve(r,u.outputs))if(t instanceof I)n.add(t.object.subject.name);else if(t instanceof C)for(let a of t.object)a instanceof j&&n.add(a.subject.name);if(n.size===0)throw new G("outputs is required (at least one OutputFormat)",e);return n}function et(r,e,n){let t=new Map,a=0;for(let s of ve(r,u.formatOverrides))if(s instanceof C){for(let o of s.object)if(o instanceof V){let[i,c]=Xn(o,`${e}[${a++}]`);t.set(i,c)}}else if(s instanceof z){let[o,i]=Xn(s.object,`${e}[${a++}]`);t.set(o,i)}return t}function Xn(r,e){let n=Ue(r,u.formatTarget);if(!n)throw new G("formatTarget is required",e);let t=[];for(let i of ve(r,u.metadataKeys))if(i instanceof H)t.push(i.object);else if(i instanceof C)for(let c of i.object){let l=c.value;typeof l=="string"&&t.push(l)}let a=new Map;for(let i of ve(r,u.metadataRenames))if(i instanceof C){for(let c of i.object)if(c instanceof V){let l=Fe(c,u.fromKey),d=Fe(c,u.toKey);l&&d&&a.set(l,d)}}else if(i instanceof z){let c=i.object,l=Fe(c,u.fromKey),d=Fe(c,u.toKey);l&&d&&a.set(l,d)}let s=yn(r,u.trailingNewline),o=yn(r,u.omitWrapper);return[n.name,{metadataKeys:t.length>0?t:void 0,metadataRenames:a,trailingNewline:s,omitWrapper:o}]}function Yt(r){return r.predicate?.subject}function ve(r,e){let n=[];for(let t of r.statement){let a=Yt(t);a&&ce(a,e)&&n.push(t)}return n}function Ge(r,e){for(let n of ve(r,e))if(n instanceof z)return n.object}function Ue(r,e){for(let n of ve(r,e))if(n instanceof I)return $n(n.object.subject)}function Fe(r,e){for(let n of ve(r,e))if(n instanceof H)return n.object}function vn(r,e){for(let n of ve(r,e))if(n instanceof re)return n.object}function yn(r,e){for(let n of ve(r,e))if(n instanceof te)return n.object}function be(r,e,n){let t=Fe(r,e);if(t===void 0)throw new G(`${e.name} (string) is required`,n);return t}function Jn(r,e,n){let t=vn(r,e);if(t===void 0)throw new G(`${e.name} (number) is required`,n);return t}function Xt(r,e,n){let t=yn(r,e);if(t===void 0)throw new G(`${e.name} (boolean) is required`,n);return t}function Ie(r,e,n,t){let a=Ue(r,e);if(!a)throw new G(`${t} (URI reference) is required`,n);return a}function $n(r){return{publisher:r.publisher,package_:r.package_,name:r.name}}var Pe="kanonak.org",st="look",qe="core-rdf",Jt={publisher:Pe,package_:st,name:"displayLabel"},Zt={publisher:Pe,package_:st,name:"displaySummary"},Qt={publisher:Pe,package_:qe,name:"subClassOf"},ea={publisher:Pe,package_:qe,name:"label"},na={publisher:Pe,package_:qe,name:"comment"},nt=new Pn(Pe,qe,"Resource"),ta=8;function N(r,e){return ot(r,e,new Set)}function ot(r,e,n){let t=rt(r,e,Jt)??ea,a=rt(r,e,Zt)??na,s=tt(r,e,t,n)??e.name,o=tt(r,e,a,n);return{label:s,summary:o}}function tt(r,e,n,t){for(let a of e.statement){let s=a.predicate;if(!(!s?.subject||!ce(s.subject,n))){if(a instanceof H)return a.object;if(a instanceof re||a instanceof te)return String(a.object);if(a instanceof I)return at(r,a.object.subject,t);if(a instanceof C){let o=[];for(let i of a.object??[])if(i instanceof j){let c=at(r,i.subject,t);c&&o.push(c)}if(o.length>0)return o.join(", ")}return}}}function at(r,e,n){let t=en(e);if(n.has(t)||n.size>=ta)return e.name;let[a]=le(r,e);if(!a)return e.name;let s=new Set(n);return s.add(t),ot(r,a,s).label}function rt(r,e,n){let t=nn(e,n);if(t)return t;let a=new Set,s=kn(e,aa);for(;s.length>0;){let o=s.shift(),i=en(o);if(a.has(i))continue;a.add(i);let c=le(r,o);for(let l of c){let d=nn(l,n);if(d)return d}for(let l of c)s.push(...kn(l,Qt))}if(!a.has(en(nt)))for(let o of le(r,nt)){let i=nn(o,n);if(i)return i}}var aa={publisher:Pe,package_:qe,name:"type"};function We(r,e={}){let n=r.replace(/\r\n/g,`
2
+ `).split(`
3
+ `),t=[],a=0;for(;a<n.length;){let s=n[a];if(s.trim()===""){a++;continue}let o=/^(\s*)```(\S*)\s*$/.exec(s);if(o){let l=o[2],d=[];for(a++;a<n.length&&!/^(\s*)```\s*$/.test(n[a]);)d.push(n[a]),a++;a++;let f=d.join(`
4
+ `),p=l&&e.highlight?e.highlight(l,f):De(f),k=l?` class="language-${ct(l)}"`:"";t.push(`<pre class="kan-code"><code${k}>${p}</code></pre>`);continue}let i=/^(#{1,6})\s+(.*)$/.exec(s);if(i){let l=i[1].length,d=Ne(i[2].trim());t.push(`<h${l}>${d}</h${l}>`),a++;continue}if(s.includes("|")&&a+1<n.length&&it(n[a+1])){let l=Sn(s),d=ra(n[a+1]);a+=2;let f=[];for(;a<n.length&&n[a].trim()!==""&&n[a].includes("|");)f.push(Sn(n[a])),a++;t.push(sa(l,d,f));continue}if(/^\s*[-*]\s+/.test(s)){let l=[];for(;a<n.length&&/^\s*[-*]\s+/.test(n[a]);){let d=[n[a].replace(/^\s*[-*]\s+/,"")];for(a++;a<n.length&&n[a].trim()!==""&&!/^\s*[-*]\s+/.test(n[a])&&!/^\s*\d+\.\s+/.test(n[a]);)d.push(n[a]),a++;a<n.length&&n[a].trim()===""&&a++,l.push(`<li>${Ne(d.join(" ").trim())}</li>`)}t.push(`<ul>
5
+ ${l.join(`
6
+ `)}
7
+ </ul>`);continue}if(/^\s*\d+\.\s+/.test(s)){let l=[];for(;a<n.length&&/^\s*\d+\.\s+/.test(n[a]);){let d=[n[a].replace(/^\s*\d+\.\s+/,"")];for(a++;a<n.length&&n[a].trim()!==""&&!/^\s*\d+\.\s+/.test(n[a])&&!/^\s*[-*]\s+/.test(n[a]);)d.push(n[a]),a++;a<n.length&&n[a].trim()===""&&a++,l.push(`<li>${Ne(d.join(" ").trim())}</li>`)}t.push(`<ol>
8
+ ${l.join(`
9
+ `)}
10
+ </ol>`);continue}let c=[s];for(a++;a<n.length&&n[a].trim()!==""&&!/^(#{1,6})\s+/.test(n[a])&&!/^(\s*)```/.test(n[a])&&!/^\s*[-*]\s+/.test(n[a])&&!/^\s*\d+\.\s+/.test(n[a])&&!(n[a].includes("|")&&a+1<n.length&&it(n[a+1]));)c.push(n[a]),a++;t.push(`<p>${Ne(c.join(" "))}</p>`)}return t.join(`
11
+ `)}function it(r){return r.includes("-")?/^[\s|:-]+$/.test(r):!1}function Sn(r){let e=r.trim();return e.startsWith("|")&&(e=e.slice(1)),e.endsWith("|")&&(e=e.slice(0,-1)),e.split("|").map(n=>n.trim())}function ra(r){return Sn(r).map(e=>{let n=e.startsWith(":"),t=e.endsWith(":");return n&&t?"center":t?"right":n?"left":null})}function sa(r,e,n){let t=o=>{let i=e[o];return i?` style="text-align:${i}"`:""},a=r.map((o,i)=>`<th${t(i)}>${Ne(o)}</th>`).join(""),s=n.map(o=>`<tr>${o.map((c,l)=>`<td${t(l)}>${Ne(c)}</td>`).join("")}</tr>`).join(`
12
+ `);return`<table>
13
+ <thead><tr>${a}</tr></thead>
14
+ <tbody>
15
+ ${s}
16
+ </tbody>
17
+ </table>`}function Ne(r){let e=De(r);return e=e.replace(/`([^`\n]+)`/g,(n,t)=>`<code>${t}</code>`),e=e.replace(/\[([^\]]+)\]\(([^)\s]+)\)/g,(n,t,a)=>`<a href="${ct(a)}">${t}</a>`),e=e.replace(/\*\*([^*\n]+)\*\*/g,(n,t)=>`<strong>${t}</strong>`),e=e.replace(/(^|[^*])\*([^*\n]+)\*(?!\*)/g,(n,t,a)=>`${t}<em>${a}</em>`),e=e.replace(/(^|[\s(])_([^_\n]+)_(?=[\s).,;:!?]|$)/g,(n,t,a)=>`${t}<em>${a}</em>`),e}function De(r){return r.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}function ct(r){return r.replace(/"/g,"&quot;").replace(/&/g,"&amp;")}var oa={publisher:"kanonak.org",package_:"core-rdf",name:"label"};function Ae(r){return typeof r=="object"&&r!==null&&r.kind==="raw-string"}var Ke=class extends Error{},Ye=class{constructor(e,n,t=new Map){this.resolver=e;this.catalog=n;this.fragments=t}resolver;catalog;fragments;async evaluate(e,n){switch(e.kind){case"string-literal":return e.value;case"integer-literal":return e.value;case"decimal-literal":return e.value;case"boolean-literal":return e.value;case"uri-literal":return{...e.refTo};case"var-ref":{if(!n.has(e.varName))throw new Ke(`Unbound variable "${e.varName}"`);return n.get(e.varName)}case"concat":{let t=[];for(let a of e.parts){let s=await this.evaluate(a,n);if(s!=null)if(Array.isArray(s))for(let o of s)t.push(o);else t.push(s)}return t}case"fallback":{let t=await this.evaluate(e.primary,n);return lt(t)?t:this.evaluate(e.alternate,n)}case"when":return await this.evaluate(e.condition,n)===!0?this.evaluate(e.thenBuild,n):e.elseBuild?this.evaluate(e.elseBuild,n):void 0;case"is-set":{let t=await this.evaluate(e.check,n);return lt(t)}case"property-read":{let t=await this.evaluate(e.source,n);return an(t,e.readProp)}case"traverse":{let t=await this.evaluate(e.source,n);if(!(t instanceof je))return;let a=ca(t,e.through),s=[];for(let o of a){let i=le(this.catalog,o),c=i.length>0?i:[await this.resolver.resolveSubject(o,this.catalog)];for(let l of c){if(!l)continue;let d=new Map(n);d.set("input",l);let f=await this.evaluate(e.step,d);if(f!=null&&xe(f)!==""){s.push(xe(f));break}}}return s.join("")}case"uri-name":{let t=await this.evaluate(e.source,n);return Be(t)?t.name:t instanceof j?t.subject.name:t instanceof Y?t.name:t instanceof V?t.name??"":void 0}case"uri-publisher":{let t=await this.evaluate(e.source,n);return wn(t)?.publisher}case"uri-package":{let t=await this.evaluate(e.source,n);return wn(t)?.package_}case"uri-version":{let t=await this.evaluate(e.source,n);return wn(t)?.version}case"subject-uri":{let t=await this.evaluate(e.source,n);if(t instanceof Y){let a=t.namespace??"",s=t.name??"";return!a||!s?void 0:`${a}/${s}`}if(t instanceof j){let a=t.subject,s=a.version;return s&&typeof s.major=="number"?`${a.publisher}/${a.package_}@${s.major}.${s.minor}.${s.patch}/${a.name}`:`${a.publisher}/${a.package_}/${a.name}`}return}case"display-label":{let t=await this.resolver.resolveSubject({...e.labelTarget},this.catalog);return t?an(t,e.labelSource):void 0}case"resolve-ref":{let t=await this.evaluate(e.source,n);return t instanceof Y?t:t instanceof j?await this.resolver.resolveSubject(t.subject,this.catalog):Be(t)?await this.resolver.resolveSubject(t,this.catalog):void 0}case"normalize":{let t=await this.evaluate(e.source,n),a=t==null?"":xe(t);return e.normKind==="trim-end"?a.replace(/[\s\r\n]+$/u,""):e.normKind==="to-upper"?a.toUpperCase():e.normKind==="to-lower"?a.toLowerCase():e.normKind==="first-char"?a.length===0?"":a.charAt(0):a}case"unescaped-string":{let t=await this.evaluate(e.source,n);return{kind:"raw-string",value:t==null?"":xe(t)}}case"render-markdown":{let t=await this.evaluate(e.source,n);if(!(t instanceof je))return;let a;for(let o of t.statement){let i=jn(o);if(i&&ce(i,e.readProp)){a=o;break}}if(!(a instanceof Ve)){let o=an(t,e.readProp);return o==null?void 0:xe(o)}let s=await this.renderMarkdownLinks(a);return e.format==="html"?We(s):s}case"build-ast-node":{let t={kind:e.astClass.name};for(let a of e.set){let s=await this.evaluate(a.value,n);if(s==null||Array.isArray(s)&&s.length===0)continue;let o=a.field.name;ua.has(o)&&(Array.isArray(s)&&s.every(i=>ut(i))?s=s.map(i=>dt(i)).join(""):ut(s)&&(s=dt(s))),t[o]=s}return t}case"call-fragment":{let t=this.fragments.get(e.fragmentKey);if(!t)throw new Ke(`ExpressionFragment ${e.fragmentKey} not found in registry`);return this.evaluate(t,n)}case"join":return(await this.evaluateList(e.source,n)).map(a=>a==null?"":xe(a)).join(e.separator);case"count":return(await this.evaluateList(e.source,n)).length;case"sum":{let t=await this.evaluateList(e.source,n),a=0;for(let s of t)a+=ge(s,"Sum");return a}case"min":{let t=await this.evaluateList(e.source,n);if(t.length===0)throw new Ke("Min on an empty list is undefined; guard with IsSet");let a=ge(t[0],"Min");for(let s=1;s<t.length;s++){let o=ge(t[s],"Min");o<a&&(a=o)}return a}case"max":{let t=await this.evaluateList(e.source,n);if(t.length===0)throw new Ke("Max on an empty list is undefined; guard with IsSet");let a=ge(t[0],"Max");for(let s=1;s<t.length;s++){let o=ge(t[s],"Max");o>a&&(a=o)}return a}case"average":{let t=await this.evaluateList(e.source,n);if(t.length===0)throw new Ke("Average on an empty list is undefined; guard with IsSet");let a=0;for(let s of t)a+=ge(s,"Average");return a/t.length}case"for-each":{let t=await this.evaluateList(e.source,n),a=[];for(let s of t){let o=new Map(n);o.set(e.loopVar,ye(s));let i=await this.evaluate(e.emit,o);if(i!=null)if(Array.isArray(i))for(let c of i)a.push(c);else a.push(i)}return a}case"list-map":{let t=await this.evaluateList(e.source,n),a=[];for(let s of t){let o=new Map(n);o.set(e.loopVar,ye(s)),a.push(await this.evaluate(e.mapBody,o))}return a}case"filter":{let t=await this.evaluateList(e.source,n),a=[];for(let s of t){let o=new Map(n);o.set(e.loopVar,ye(s)),await this.evaluate(e.predicate,o)===!0&&a.push(s)}return a}case"partition-by":{let t=await this.evaluateList(e.source,n),a=new Map,s=[];for(let o of t){let i=new Map(n);i.set(e.loopVar,ye(o));let c=await this.evaluate(e.partitionKey,i),l=gt(c),d=a.get(l);d||(d={kind:"Partition",key:c,members:[]},a.set(l,d),s.push(l)),d.members.push(o)}return s.map(o=>a.get(o))}case"distinct-by":{let t=await this.evaluateList(e.source,n),a=new Set,s=[];for(let o of t){let i=new Map(n);i.set(e.loopVar,ye(o));let c=await this.evaluate(e.distinctKey,i),l=gt(c);a.has(l)||(a.add(l),s.push(o))}return s}case"all-statements":{let t=await this.evaluate(e.source,n);return t instanceof je?t.statement:[]}case"statement-predicate":{let t=await this.evaluate(e.source,n);if(_n(t)){let a=t.predicate;if(a instanceof j)return a}return}case"statement-value":{let t=await this.evaluate(e.source,n);return _n(t)?ba(t):void 0}case"date-format":{let t=await this.evaluate(e.source,n),a=t==null?"":xe(t);return a?fa(a,e.format):""}case"number-format":{let t=await this.evaluate(e.source,n),a=t==null?"":xe(t);return a.trim()?ha(a,e.style,e.fractionDigits,e.currencyCode):""}case"add":{let t=ge(await this.evaluate(e.left,n),"Add"),a=ge(await this.evaluate(e.right,n),"Add");return t+a}case"subtract":{let t=ge(await this.evaluate(e.left,n),"Subtract"),a=ge(await this.evaluate(e.right,n),"Subtract");return t-a}case"multiply":{let t=ge(await this.evaluate(e.left,n),"Multiply"),a=ge(await this.evaluate(e.right,n),"Multiply");return t*a}case"divide":{let t=ge(await this.evaluate(e.left,n),"Divide"),a=ge(await this.evaluate(e.right,n),"Divide");if(a===0)throw new Ke("Divide by zero; guard with When");return t/a}case"reverse":{if(e.source.kind==="reverse")return this.evaluate(e.source.source,n);let t=await this.evaluateReverseIterator(e.source,n);return t!==void 0?t:[...await this.evaluateList(e.source,n)].reverse()}case"windowed-map":{let t=await this.evaluateList(e.source,n);if(t.length<e.windowSize)return[];let a=[];for(let s=0;s+e.windowSize<=t.length;s++){let o=t.slice(s,s+e.windowSize),i=new Map(n);i.set(e.windowVar,o);let c=await this.evaluate(e.windowBody,i);if(c!=null)if(Array.isArray(c))for(let l of c)a.push(l);else a.push(c)}return a}case"pairwise-map":{let t=await this.evaluateList(e.source,n);if(t.length<2)return[];let a=[];for(let s=0;s+1<t.length;s++){let o=new Map(n);o.set(e.firstVar,ye(t[s])),o.set(e.secondVar,ye(t[s+1]));let i=await this.evaluate(e.pairBody,o);if(i!=null)if(Array.isArray(i))for(let c of i)a.push(c);else a.push(i)}return a}case"scan":{let t=await this.evaluateList(e.source,n);if(t.length===0)return[];let a=await this.evaluate(e.initialState,n),s=[];for(let o of t){let i=new Map(n);i.set(e.stateVar,a),i.set(e.elementVar,ye(o));let c=await this.evaluate(e.accumulate,i);s.push(c),a=c}return s}case"list-item-at":{let t=await this.evaluateList(e.source,n),a=await this.evaluate(e.itemIndex,n);return typeof a!="number"||!Number.isInteger(a)||a<0||a>=t.length?void 0:t[a]}case"equals":{let t=await this.evaluate(e.left,n),a=await this.evaluate(e.right,n);return ft(t,a)}case"greater-than":{let t=await this.evaluate(e.left,n),a=await this.evaluate(e.right,n);return typeof t!="number"||typeof a!="number"?!1:t>a}case"less-than":{let t=await this.evaluate(e.left,n),a=await this.evaluate(e.right,n);return typeof t!="number"||typeof a!="number"?!1:t<a}case"greater-than-or-equal":{let t=await this.evaluate(e.left,n),a=await this.evaluate(e.right,n);return typeof t!="number"||typeof a!="number"?!1:t>=a}case"less-than-or-equal":{let t=await this.evaluate(e.left,n),a=await this.evaluate(e.right,n);return typeof t!="number"||typeof a!="number"?!1:t<=a}case"not":{let t=await this.evaluate(e.operand,n);return t===!0?!1:t===!1?!0:void 0}case"and":{for(let t of e.operands)if(await this.evaluate(t,n)!==!0)return!1;return!0}case"or":{for(let t of e.operands)if(await this.evaluate(t,n)===!0)return!0;return!1}case"contains":{let t=await this.evaluateList(e.haystack,n),a=await this.evaluate(e.needle,n);for(let s of t)if(ft(s,a))return!0;return!1}case"abs":{let t=ge(await this.evaluate(e.value,n),"Abs");return Math.abs(t)}case"negate":return-ge(await this.evaluate(e.value,n),"Negate");case"is-reference":{let t=await this.evaluate(e.check,n);return t instanceof j||t instanceof Y}case"is-embedded":return await this.evaluate(e.check,n)instanceof V;case"is-list":{let t=await this.evaluate(e.check,n);return Array.isArray(t)}case"is-string":return typeof await this.evaluate(e.check,n)=="string";case"is-number":return typeof await this.evaluate(e.check,n)=="number";case"is-boolean":return typeof await this.evaluate(e.check,n)=="boolean";case"statement-object":{let t=await this.evaluate(e.source,n);if(!_n(t))return;let a=t;return a instanceof H||a instanceof re||a instanceof te||a instanceof I||a instanceof z||a instanceof C?a.object:void 0}case"let":{let t=await this.evaluate(e.bindValue,n),a=new Map(n);return a.set(e.bindName,t),this.evaluate(e.body,a)}case"get-statement-by-name":{let t=await this.evaluate(e.inSubject,n),a=await this.evaluate(e.byName,n);if(!(t instanceof je)||typeof a!="string")return;for(let s of t.statement)if(s.predicate?.subject?.name===a)return s;return}default:{let t=e;throw new Ke("Unknown expression kind")}}}async renderMarkdownLinks(e){let n=e.object,t="",a=0;for(let s of e.links){if(t+=n.slice(a,s.startOffset),s.target){let o=s.target.subject,i=s.displayText??await this.resolveLabel(o)??o.name;t+=`[${i}](${An(o)})`}else t+=s.displayText??s.reference;a=s.endOffset}return t+=n.slice(a),t}async resolveLabel(e){let n=await this.resolver.resolveSubject(e,this.catalog);if(!n)return;let t=an(n,oa);return typeof t=="string"?t:void 0}async evaluateList(e,n){let t=await this.evaluate(e,n);return t==null?[]:Array.isArray(t)?t:[t]}async evaluateReverseIterator(e,n){if(e.kind==="pairwise-map"){let t=await this.evaluateList(e.source,n);if(t.length<2)return[];let a=[];for(let s=t.length-1;s>=1;s--){let o=new Map(n);o.set(e.firstVar,ye(t[s-1])),o.set(e.secondVar,ye(t[s]));let i=await this.evaluate(e.pairBody,o);if(i!=null)if(Array.isArray(i))for(let c of i)a.push(c);else a.push(i)}return a}if(e.kind==="for-each"){let t=await this.evaluateList(e.source,n),a=[];for(let s=t.length-1;s>=0;s--){let o=new Map(n);o.set(e.loopVar,ye(t[s]));let i=await this.evaluate(e.emit,o);if(i!=null)if(Array.isArray(i))for(let c of i)a.push(c);else a.push(i)}return a}if(e.kind==="list-map"){let t=await this.evaluateList(e.source,n),a=[];for(let s=t.length-1;s>=0;s--){let o=new Map(n);o.set(e.loopVar,ye(t[s])),a.push(await this.evaluate(e.mapBody,o))}return a}if(e.kind==="windowed-map"){let t=await this.evaluateList(e.source,n);if(t.length<e.windowSize)return[];let a=[];for(let s=t.length-e.windowSize;s>=0;s--){let o=t.slice(s,s+e.windowSize),i=new Map(n);i.set(e.windowVar,o);let c=await this.evaluate(e.windowBody,i);if(c!=null)if(Array.isArray(c))for(let l of c)a.push(l);else a.push(c)}return a}}};function an(r,e){if(r instanceof je)return ia(r,e);if(la(r))return ce(e,u.key)?r.key:ce(e,u.members)?r.members:void 0}function ia(r,e){for(let n of r.statement){let t=jn(n);if(!(!t||!ce(t,e))&&(n instanceof H||n instanceof re||n instanceof te||n instanceof I||n instanceof z||n instanceof C))return n.object}}function ca(r,e){let n=[];for(let t of r.statement){let a=jn(t);if(!(!a||!ce(a,e))){if(t instanceof I)n.push(t.object.subject);else if(t instanceof C)for(let s of t.object)s instanceof j&&n.push(s.subject)}}return n}function jn(r){return r.predicate?.subject}function xe(r){if(r==null)return"";if(typeof r=="string")return r;if(typeof r=="number"||typeof r=="boolean")return String(r);if(Ae(r))return r.value;if(r instanceof je)return r.name??"";if(r instanceof j)return r.subject.name;if(Be(r))return r.name;let e=r.value;return typeof e=="string"?e:typeof e=="number"||typeof e=="boolean"?String(e):""}function ye(r){return r!==null&&typeof r=="object"&&!Array.isArray(r)&&!(r instanceof je)&&!(r instanceof j)&&!(r instanceof V)&&"value"in r?r.value:r}function lt(r){return r==null?!1:typeof r=="string"||Array.isArray(r)?r.length>0:typeof r=="boolean"?r===!0:!0}function Be(r){return typeof r=="object"&&r!==null&&typeof r.publisher=="string"&&typeof r.package_=="string"&&typeof r.name=="string"}function la(r){return typeof r=="object"&&r!==null&&r.kind==="Partition"&&Array.isArray(r.members)}function ge(r,e){if(typeof r=="number"&&Number.isFinite(r))return r;throw new Ke(`${e} requires numeric elements; got ${da(r)}`)}function wn(r){if(r instanceof Y){let e=r.namespace??"",n=e.indexOf("/"),t=e.indexOf("@",n+1);return n<0||t<0?void 0:{publisher:e.substring(0,n),package_:e.substring(n+1,t),version:e.substring(t+1),name:r.name??""}}if(r instanceof j){let e=r.subject,n=e.version;return{publisher:e.publisher,package_:e.package_,version:n&&typeof n.major=="number"?`${n.major}.${n.minor}.${n.patch}`:"",name:e.name}}if(Be(r))return{publisher:r.publisher,package_:r.package_,version:"",name:r.name}}var ua=new Set(["stringValue","text","rawContent","key","propertyKey","linkLabel"]);function ut(r){return typeof r=="string"||typeof r=="number"||typeof r=="boolean"||Ae(r)}function dt(r){return Ae(r)?r.value:String(r)}function da(r){return r===void 0?"undefined":r===null?"null":Array.isArray(r)?`array(${r.length})`:typeof r}function fa(r,e){let n=new Date(r);if(isNaN(n.getTime()))return"";let t=n.getUTCFullYear(),a=["January","February","March","April","May","June","July","August","September","October","November","December"][n.getUTCMonth()],s=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"][n.getUTCMonth()],o=n.getUTCDate(),i=(c,l=2)=>String(c).padStart(l,"0");switch(e){case"iso-date":return`${t}-${i(n.getUTCMonth()+1)}-${i(o)}`;case"iso-datetime":return`${t}-${i(n.getUTCMonth()+1)}-${i(o)}T${i(n.getUTCHours())}:${i(n.getUTCMinutes())}:${i(n.getUTCSeconds())}Z`;case"short-date":return`${s} ${o}`;case"long-date":return`${a} ${o}, ${t}`;case"year":return String(t);case"month-year":return`${a} ${t}`}}var pa={USD:"$",EUR:"\u20AC",GBP:"\xA3",JPY:"\xA5"},ga={decimal:0,currency:0,compact:0,percent:2,"basis-points":4};function ma(r,e){if(e===0)return r;let n=r.startsWith("-"),t=n?r.slice(1):r,a=t.indexOf("."),s=a===-1?t:t.slice(0,a),o=a===-1?"":t.slice(a+1),i=s+o,c=s.length+e,l;return c<=0?l=`0.${"0".repeat(-c)}${i}`:c>=i.length?l=i+"0".repeat(c-i.length):l=`${i.slice(0,c)}.${i.slice(c)}`,l=l.replace(/^0+(?=\d)/,""),n&&/[1-9]/.test(l)?`-${l}`:l}function ka(r){let e=r.startsWith("-"),n=e?r.slice(1):r,t=n.indexOf("."),a=t===-1?n:n.slice(0,t),s=t===-1?"":n.slice(t);return`${e?"-":""}${a.replace(/\B(?=(\d{3})+(?!\d))/g,",")}${s}`}function ha(r,e,n,t){let a=Number(r.trim());if(!Number.isFinite(a))return"";let s=/e/i.test(r.trim())?a.toFixed(20).replace(/0+$/,""):r.trim();if(e==="compact"){let i=Math.abs(a),c=[[1e12,"T"],[1e9,"B"],[1e6,"M"],[1e3,"K"]];for(let[l,d]of c)if(i>=l){let f=a/l;return`${n===void 0?String(Number(f.toFixed(1))):f.toFixed(n)}${d}`}return n===void 0?String(a):a.toFixed(n)}let o=ma(s,ga[e]??0);switch(n!==void 0&&(o=Number(o).toFixed(n)),e){case"percent":return`${o}%`;case"basis-points":return`${o} bp`;case"currency":{let i=(t??"USD").toUpperCase(),c=pa[i]??`${i} `,l=o.startsWith("-");return`${l?"-":""}${c}${ka(l?o.slice(1):o)}`}default:return o}}function ft(r,e){if(r==null||e===void 0||e===null)return!1;if(r===e)return!0;let n=typeof r=="object"&&"value"in r?r.value:void 0,t=typeof e=="object"&&"value"in e?e.value:void 0,a=n??r,s=t??e,o=pt(r),i=pt(e);return o&&i?o.publisher===i.publisher&&o.package_===i.package_&&o.name===i.name:typeof a=="string"&&typeof s=="string"||typeof a=="number"&&typeof s=="number"||typeof a=="boolean"&&typeof s=="boolean"?a===s:!1}function pt(r){if(r instanceof j){let e=r.subject;return{publisher:e.publisher,package_:e.package_,name:e.name}}if(r instanceof Y){let e=r.namespace??"",n=e.indexOf("/"),t=e.indexOf("@",n+1);if(n<0)return;let a=e.substring(0,n),s=t>=0?e.substring(n+1,t):e.substring(n+1);return{publisher:a,package_:s,name:r.name??""}}if(Be(r))return{publisher:r.publisher,package_:r.package_,name:r.name}}function _n(r){return r instanceof H||r instanceof re||r instanceof te||r instanceof I||r instanceof z||r instanceof C}function ba(r){return r instanceof H||r instanceof re||r instanceof te?String(r.object??""):r instanceof I?r.object?.subject?.name??"":r instanceof z?"[embedded]":r instanceof C?(r.object??[]).map(n=>{if(n instanceof j)return n.subject.name;let t=n.name;if(t&&t.length>0)return t;let a=n.value;return typeof a=="string"||typeof a=="number"||typeof a=="boolean"?String(a):"[embedded]"}).join(", "):""}function gt(r){if(r===void 0)return"\0undef";if(r===null)return"\0null";if(typeof r=="string")return`s:${r}`;if(typeof r=="number")return`n:${r}`;if(typeof r=="boolean")return`b:${r}`;if(r instanceof j){let e=r.subject;return`r:${e.publisher}/${e.package_}/${e.name}`}if(r instanceof je){let e=r.name??"";return`k:${r.namespace??""}/${e}`}return Be(r)?`u:${r.publisher}/${r.package_}/${r.name}`:`o:${JSON.stringify(r)}`}var rn=class{constructor(e,n,t){this.repository=e;this.parser=n;this.objectParser=t}repository;parser;objectParser;cache=new Map;async resolveSubject(e,n){let t=hn(n,e);if(t)return t;let a=e.version,s=a&&typeof a.major=="number"?`@${a.major}.${a.minor}.${a.patch}`:"",o=`${e.publisher}/${e.package_}${s}`,i=this.cache.get(o);if(!i){let l=await this.repository.getDocumentsByNamespaceAsync(e.publisher,e.package_);if(l.length===0)return;let d=a&&typeof a.major=="number"?l.find(p=>{let k=p.metadata?.namespace_?.version;return k&&k.major===a.major&&k.minor===a.minor&&k.patch===a.patch})??l[0]:l[0],f=new Mn(d,this.repository);i=await this.objectParser.parseKanonaks(f),this.cache.set(o,i)}let c=hn(i,e);if(c)return c;for(let l of i)if(l instanceof Y&&l.name===e.name)return l}};var sn=class{byLang=new Map;constructor(e){for(let n of e){if(!n.language)continue;let t=[];for(let a of n.rules){if(!a.tokenClass||!a.pattern)continue;let s;try{s=new RegExp(a.pattern,"y")}catch{continue}t.push({tokenClass:a.tokenClass,re:s})}this.byLang.set(n.language,t)}}has(e){return this.byLang.has(e)}highlight(e,n){let t=this.byLang.get(e);return!t||t.length===0?De(n):n.split(`
18
+ `).map(a=>this.highlightLine(a,t)).join(`
19
+ `)}highlightLine(e,n){let t="",a=0;for(;a<e.length;){let s=!1;for(let o of n){o.re.lastIndex=a;let i=o.re.exec(e);if(i&&i[0].length>0){t+=`<span class="kan-tok-${o.tokenClass}">${De(i[0])}</span>`,a+=i[0].length,s=!0;break}}s||(t+=De(e[a]),a++)}return t}};var fn={publisher:"kanonak.org",package_:"derivation",name:"look"},pn={publisher:"kanonak.org",package_:"derivation",name:"tokens"},we={publisher:"kanonak.org",package_:"core-rdf",name:"Resource"},Kn={publisher:"kanonak.org",package_:"core-rdf",name:"label"},mt={publisher:"kanonak.org",package_:"core-rdf",name:"comment"},va={publisher:"kanonak.org",package_:"core-rdf",name:"range"},ya={publisher:"kanonak.org",package_:"core-rdf",name:"Class"},$a={publisher:"kanonak.org",package_:"core-owl",name:"Class"},Sa={publisher:"kanonak.org",package_:"look",name:"Hero"},wa={publisher:"kanonak.org",package_:"look",name:"PropertyList"},_a={publisher:"kanonak.org",package_:"look",name:"PropertyTable"},ja={publisher:"kanonak.org",package_:"look",name:"BadgeRow"},Ka={publisher:"kanonak.org",package_:"look",name:"ChipRow"},Ra={publisher:"kanonak.org",package_:"look",name:"ReferenceList"},Ea={publisher:"kanonak.org",package_:"look",name:"ReferencedBy"},La={publisher:"kanonak.org",package_:"look",name:"Instances"},kt={publisher:"kanonak.org",package_:"look",name:"Markdown"},Oa={publisher:"kanonak.org",package_:"look",name:"NavGroup"},Ua={publisher:"kanonak.org",package_:"look",name:"nav"},Rn={publisher:"kanonak.org",package_:"look",name:"NavLink"},Ca={publisher:"kanonak.org",package_:"look",name:"footer"},Ia={publisher:"kanonak.org",package_:"look",name:"text"},Fa={publisher:"kanonak.org",package_:"look",name:"links"},ht={publisher:"kanonak.org",package_:"look",name:"target"},xa={publisher:"kanonak.org",package_:"look",name:"ResourceGrid"},Ta={publisher:"kanonak.org",package_:"look",name:"Timeline"},Va={publisher:"kanonak.org",package_:"look",name:"VersionDiff"},Pa={publisher:"kanonak.org",package_:"look",name:"Figure"},Aa={publisher:"kanonak.org",package_:"look",name:"Diagram"},Ma={publisher:"kanonak.org",package_:"look",name:"facets"},Na={publisher:"kanonak.org",package_:"look",name:"relation"},Da={publisher:"kanonak.org",package_:"look",name:"encode"},Ba={publisher:"kanonak.org",package_:"look",name:"cluster"},Ha={publisher:"kanonak.org",package_:"look",name:"connector"},za={publisher:"kanonak.org",package_:"look",name:"channels"},Ga={publisher:"kanonak.org",package_:"look",name:"mapPath"},qa={publisher:"kanonak.org",package_:"look",name:"to"},Wa={publisher:"kanonak.org",package_:"look",name:"mark"},Ya={publisher:"kanonak.org",package_:"look",name:"expand"},Xa={publisher:"kanonak.org",package_:"look",name:"edges"},Ja={publisher:"kanonak.org",package_:"look",name:"nodeTier"},Za={publisher:"kanonak.org",package_:"look",name:"diagramTier"},Qa={publisher:"kanonak.org",package_:"look",name:"nodeNote"},er={publisher:"kanonak.org",package_:"look",name:"edgeLabel"},nr={publisher:"kanonak.org",package_:"look",name:"labelEdges"},tr={publisher:"kanonak.org",package_:"look",name:"edgeValue"},ar={publisher:"kanonak.org",package_:"look",name:"figureTitle"},rr={publisher:"kanonak.org",package_:"look",name:"titlePosition"},sr=`(function(){
20
+ if(window.__kanDiagramZoom)return;window.__kanDiagramZoom=1;
21
+ var TIERS=['chip','icon','card','full'];
22
+ var css='.kan-dgm-tier[hidden]{display:none}.kan-dgm-tiers{position:relative}'
23
+ +'.kan-dgm-tiers>.kan-dgm-btn{opacity:0;transition:opacity .12s}.kan-dgm-tiers:hover>.kan-dgm-btn,.kan-dgm-btn:focus{opacity:1}'
24
+ +'#kan-dgm-modal{position:fixed;inset:0;z-index:9999;display:none;background:rgba(0,0,0,.85);cursor:grab}'
25
+ +'#kan-dgm-stage{position:absolute;top:50%;left:50%}'
26
+ +'#kan-dgm-bar{position:fixed;top:14px;left:50%;transform:translateX(-50%);display:flex;gap:9px;align-items:center;font:12px sans-serif;color:#cbd5e1;background:rgba(12,18,32,.92);border:1px solid #1e293b;border-radius:999px;padding:7px 14px;user-select:none}'
27
+ +'#kan-dgm-bar .pip{width:9px;height:9px;border-radius:50%;background:#334155;cursor:pointer}'
28
+ +'#kan-dgm-bar .pip.on{background:#38bdf8}'
29
+ +'#kan-dgm-lbl{min-width:32px;text-transform:capitalize}';
30
+ var sty=document.createElement('style');sty.textContent=css;(document.head||document.documentElement).appendChild(sty);
31
+ var S={cont:null,mode:'snap',tier:1,z:1,x:0,y:0,drag:0,sx:0,sy:0,lock:0};
32
+ function el(id){return document.getElementById(id);}
33
+ function modal(){var m=el('kan-dgm-modal');if(m)return m;
34
+ m=document.createElement('div');m.id='kan-dgm-modal';
35
+ var st=document.createElement('div');st.id='kan-dgm-stage';m.appendChild(st);
36
+ var bar=document.createElement('div');bar.id='kan-dgm-bar';
37
+ var lbl=document.createElement('span');lbl.id='kan-dgm-lbl';bar.appendChild(lbl);
38
+ for(var i=0;i<4;i++){(function(i){var p=document.createElement('span');p.className='pip';p.title=TIERS[i];p.addEventListener('click',function(e){e.stopPropagation();setTier(i);});bar.appendChild(p);})(i);}
39
+ var h=document.createElement('span');h.textContent='scroll: zoom \\u00b7 drag: pan \\u00b7 esc';h.style.cssText='margin-left:6px;color:#64748b';bar.appendChild(h);
40
+ m.appendChild(bar);m.addEventListener('click',function(e){if(e.target===m)close();});document.body.appendChild(m);return m;}
41
+ function apply(){var st=el('kan-dgm-stage');if(st)st.style.transform='translate(calc(-50% + '+S.x+'px),calc(-50% + '+S.y+'px)) scale('+S.z+')';}
42
+ function updBar(){var b=el('kan-dgm-bar');if(!b)return;var geo=S.mode==='geo';var ps=b.querySelectorAll('.pip');for(var i=0;i<ps.length;i++){ps[i].style.display=geo?'none':'';ps[i].className='pip'+(i===S.tier?' on':'');}el('kan-dgm-lbl').textContent=geo?'zoom':TIERS[S.tier];}
43
+ function sizeVisible(){var c=S.cont;if(!c||S.mode==='geo')return;var svg=c.querySelector('.kan-dgm-tier:not([hidden]) svg');if(svg){var vb=(svg.getAttribute('viewBox')||'0 0 800 600').split(' ');var w=parseFloat(vb[2])||800;svg.style.width=Math.min(w,window.innerWidth*0.92)+'px';svg.style.height='auto';svg.style.display='block';}apply();}
44
+ function setTier(i){i=Math.max(0,Math.min(3,i));S.tier=i;var c=S.cont;if(!c)return;var ts=c.querySelectorAll('.kan-dgm-tier');for(var j=0;j<ts.length;j++){if(ts[j].getAttribute('data-tier')===TIERS[i])ts[j].removeAttribute('hidden');else ts[j].setAttribute('hidden','');}sizeVisible();updBar();}
45
+ function uniq(root){var seq=(window.__kanMk=(window.__kanMk||0)+1);var map={};var mk=root.querySelectorAll('marker[id]');for(var i=0;i<mk.length;i++){var o=mk[i].getAttribute('id');var n=o+'_z'+seq;map[o]=n;mk[i].setAttribute('id',n);}var all=root.querySelectorAll('[marker-end],[marker-start],[marker-mid]');for(var j=0;j<all.length;j++){(function(e){['marker-end','marker-start','marker-mid'].forEach(function(a){var v=e.getAttribute(a);if(!v)return;var mm=v.match(/url\\(#(.+?)\\)/);if(mm&&map[mm[1]])e.setAttribute(a,'url(#'+map[mm[1]]+')');});})(all[j]);}}
46
+ function open(tiersEl){modal();var st=el('kan-dgm-stage');var c=tiersEl.cloneNode(true);uniq(c);var bb=c.querySelector('.kan-dgm-btn');if(bb&&bb.parentNode)bb.parentNode.removeChild(bb);st.innerHTML='';st.appendChild(c);S.cont=c;S.x=0;S.y=0;S.z=1;
47
+ S.mode=c.getAttribute('data-geo')?'geo':'snap';
48
+ var vis=c.querySelector('.kan-dgm-tier:not([hidden])');var t=vis?vis.getAttribute('data-tier'):'icon';S.tier=Math.max(0,TIERS.indexOf(t));
49
+ el('kan-dgm-modal').style.display='block';
50
+ if(S.mode==='geo'){var bw=c.getBoundingClientRect().width||600;S.z=Math.min(1.8,(window.innerWidth*0.9)/bw);if(!(S.z>0))S.z=1;}else sizeVisible();
51
+ apply();updBar();}
52
+ function close(){var m=el('kan-dgm-modal');if(m){m.style.display='none';el('kan-dgm-stage').innerHTML='';S.cont=null;}}
53
+ document.addEventListener('wheel',function(e){var m=el('kan-dgm-modal');if(!m||m.style.display==='none')return;e.preventDefault();
54
+ if(S.mode==='geo'){S.z*=e.deltaY<0?1.15:1/1.15;S.z=Math.max(.2,Math.min(S.z,9));apply();return;}
55
+ var n=Date.now();if(n-S.lock<200)return;S.lock=n;setTier(S.tier+(e.deltaY<0?1:-1));},{passive:false});
56
+ document.addEventListener('mousedown',function(e){var m=el('kan-dgm-modal');if(!m||m.style.display==='none')return;S.drag=1;S.sx=e.clientX-S.x;S.sy=e.clientY-S.y;m.style.cursor='grabbing';});
57
+ document.addEventListener('mousemove',function(e){if(!S.drag)return;S.x=e.clientX-S.sx;S.y=e.clientY-S.sy;apply();});
58
+ document.addEventListener('mouseup',function(){S.drag=0;var m=el('kan-dgm-modal');if(m)m.style.cursor='grab';});
59
+ document.addEventListener('keydown',function(e){if(e.key==='Escape')close();});
60
+ function enhance(){var cs=document.querySelectorAll('.kan-dgm-tiers');for(var i=0;i<cs.length;i++){(function(c){if(c.__kz)return;c.__kz=1;
61
+ var b=document.createElement('button');b.type='button';b.className='kan-dgm-btn';b.textContent='\\u2922';b.setAttribute('aria-label','Open and zoom');
62
+ b.style.cssText='position:absolute;top:6px;right:6px;z-index:3;border:1px solid var(--kan-border,#333);background:var(--kan-bg-card,#111);color:var(--kan-text,#ccc);border-radius:6px;width:28px;height:28px;cursor:pointer;font-size:15px;line-height:1;padding:0';
63
+ b.addEventListener('click',function(ev){ev.preventDefault();ev.stopPropagation();open(c);});c.appendChild(b);})(cs[i]);}}
64
+ if(document.readyState!=='loading')enhance();else document.addEventListener('DOMContentLoaded',enhance);
65
+ })();`,Xe={chip:56,icon:120,card:240,full:420},or=["chip","icon","card","full"],ir={56:"chip",120:"icon",240:"card",420:"full"},_e=11,cr={publisher:"kanonak.org",package_:"look",name:"placement"},lr={publisher:"kanonak.org",package_:"look",name:"width"},ur=4,dr={publisher:"kanonak.org",package_:"look",name:"StatRow"},fr={publisher:"kanonak.org",package_:"look",name:"Horizon"},pr={publisher:"kanonak.org",package_:"look",name:"PackageContents"},En={publisher:"kanonak.org",package_:"core-kanonak",name:"Package"},gr={publisher:"kanonak.org",package_:"core-kanonak",name:"Publisher"},mr={publisher:"kanonak.org",package_:"look",name:"FeaturedResource"},kr={publisher:"kanonak.org",package_:"look",name:"PublisherPackages"},hr={publisher:"kanonak.org",package_:"look",name:"packages"},br={publisher:"kanonak.org",package_:"code-grammars",name:"CodeGrammar"},vr={publisher:"kanonak.org",package_:"code-grammars",name:"language"},yr={publisher:"kanonak.org",package_:"code-grammars",name:"rule"},$r={publisher:"kanonak.org",package_:"code-grammars",name:"tokenClass"},Sr={publisher:"kanonak.org",package_:"code-grammars",name:"pattern"},wr={publisher:"kanonak.org",package_:"look",name:"Links"},_r={publisher:"kanonak.org",package_:"link",name:"url"},jr={publisher:"kanonak.org",package_:"link",name:"links"};var Kr={publisher:"kanonak.org",package_:"look",name:"Distribution"},Rr={publisher:"kanonak.org",package_:"look",name:"alphaPath"},Er={publisher:"kanonak.org",package_:"look",name:"betaPath"},Ln={publisher:"kanonak.org",package_:"look",name:"SectionHeading"},Lr={publisher:"kanonak.org",package_:"look",name:"SectionNav"},bt={publisher:"kanonak.org",package_:"look",name:"heading"},Or={publisher:"kanonak.org",package_:"look",name:"note"},Ur={publisher:"kanonak.org",package_:"look",name:"VersionDelta"},Cr={publisher:"kanonak.org",package_:"look",name:"TimePlot"},Ir={publisher:"kanonak.org",package_:"look",name:"Details"},Fr={publisher:"kanonak.org",package_:"look",name:"EmbeddedViews"},xr={publisher:"kanonak.org",package_:"look",name:"ResourceCount"},Tr={publisher:"kanonak.org",package_:"look",name:"counts"},Vr={publisher:"kanonak.org",package_:"look",name:"skip"},Pr={publisher:"kanonak.org",package_:"derivation",name:"derivations"},Ar={publisher:"kanonak.org",package_:"look",name:"laneBy"},Mr={publisher:"kanonak.org",package_:"look",name:"stats"},Nr={publisher:"kanonak.org",package_:"look",name:"statPath"},Dr={publisher:"kanonak.org",package_:"look",name:"statLabel"},vt={publisher:"kanonak.org",package_:"look",name:"labelPath"},Br={publisher:"kanonak.org",package_:"look",name:"badgePath"},yt={publisher:"kanonak.org",package_:"look",name:"BarMeter"},Hr={publisher:"kanonak.org",package_:"look",name:"cellAs"},zr={publisher:"kanonak.org",package_:"look",name:"variants"},Gr={publisher:"kanonak.org",package_:"look",name:"when"},qr={publisher:"kanonak.org",package_:"look",name:"property"},$t={publisher:"kanonak.org",package_:"look",name:"equals"},Wr={publisher:"kanonak.org",package_:"look",name:"ResourceQuery"},Yr={publisher:"kanonak.org",package_:"look",name:"ofClass"},Xr={publisher:"kanonak.org",package_:"look",name:"direction"},Jr={publisher:"kanonak.org",package_:"look",name:"limit"},on={publisher:"kanonak.org",package_:"look",name:"orderBy"},St={publisher:"kanonak.org",package_:"look",name:"track"},Je={publisher:"kanonak.org",package_:"look",name:"metricPath"},On={publisher:"kanonak.org",package_:"look",name:"hueBy"},wt={publisher:"kanonak.org",package_:"look",name:"lowerPath"},_t={publisher:"kanonak.org",package_:"look",name:"upperPath"},Zr={publisher:"kanonak.org",package_:"look",name:"axisMin"},Qr={publisher:"kanonak.org",package_:"look",name:"axisMax"},es={publisher:"kanonak.org",package_:"look",name:"valueLabel"};var jt={publisher:"kanonak.org",package_:"look",name:"semanticSvg"},ns={publisher:"kanonak.org",package_:"look",name:"tierChip"},ts={publisher:"kanonak.org",package_:"look",name:"tierIcon"},as={publisher:"kanonak.org",package_:"look",name:"tierCard"},rs={publisher:"kanonak.org",package_:"look",name:"tierFull"},Ce={publisher:"kanonak.org",package_:"core-rdf",name:"type"},Kt={publisher:"kanonak.org",package_:"core-rdf",name:"subClassOf"},Rt=6,Un={publisher:"kanonak.org",package_:"look",name:"bands"},ss={publisher:"kanonak.org",package_:"look",name:"title"},os={publisher:"kanonak.org",package_:"look",name:"eyebrow"},is={publisher:"kanonak.org",package_:"look",name:"subtitle"},Et={publisher:"kanonak.org",package_:"look",name:"badges"},oe={publisher:"kanonak.org",package_:"look",name:"source"},cs={publisher:"kanonak.org",package_:"look",name:"via"},ls={publisher:"kanonak.org",package_:"look",name:"size"},us={publisher:"kanonak.org",package_:"look",name:"icon"},ds={publisher:"kanonak.org",package_:"look",name:"avatar"},fs={publisher:"kanonak.org",package_:"look",name:"contents"},ps={publisher:"kanonak.org",package_:"look",name:"transitive"},gs={publisher:"kanonak.org",package_:"look",name:"chips"},Lt={publisher:"kanonak.org",package_:"look",name:"entries"},ms={publisher:"kanonak.org",package_:"look",name:"urlForm"},mn=class r{constructor(e){this.catalog=e}catalog;linkMode="single-publisher";setLinkMode(e){return this.linkMode=e,this}expressionFailureList=[];expressionFailureSeen=new Set;expressionFailures(){return this.expressionFailureList}noteExpressionFailure(e,n){let t=n instanceof Error?n.message:String(n),a=`${e}\0${t}`;this.expressionFailureSeen.has(a)||(this.expressionFailureSeen.add(a),this.expressionFailureList.push({carrier:e,reason:t}));let s=o=>o.replace(/-{2,}/g,"\u2013").replace(/-$/,"");return`<!-- LookRenderer: expression carrier "${s(e)}" did not compile: ${s(t)} Nothing is rendered for it. See /.well-known/kanonak-render (Expression carriers). -->`}get publisherFirst(){return this.linkMode==="open-world"}linkBase(e){return this.publisherFirst?`/${e}`:""}resourceHref(e,n,t="="){return zn.formatResourceUrl(e,t,{contextPublisher:n,...this.publisherFirst?{publisherFirst:!0}:{}})}packageHref(e,n,t){return`${this.linkBase(e)}/${n}${t?`/${t}`:""}`}publisherHref(e){return`${this.linkBase(e)}/`}_codeHighlighter;findCascadedLook(e){let n=bs(e)?void 0:cn(e);return n?{declaration:n,sourceClass:{publisher:ne(e),package_:this.uriOf(e).package_,name:e.name}}:this.lookFromTypeRefs(he(e))}lookFromTypeRefs(e){let n=new Set,t=[...e];for(;t.length>0;){let s=t.shift().subject,o=X(s);if(n.has(o))continue;n.add(o);let i=le(this.catalog,s);for(let c of i){let l=cn(c);if(l)return{declaration:l,sourceClass:{publisher:s.publisher,package_:s.package_,name:s.name}}}for(let c of i)for(let l of un(c))t.push(l)}if(!n.has(X(we)))for(let a of le(this.catalog,we)){let s=cn(a);if(s)return{declaration:s,sourceClass:{...we}}}}matchingVariants(e){let n=this.findCascadedLook(e);if(!n)return[];let t=this.gatherValueItems(q(n.declaration,zr)).filter(i=>i instanceof V);if(t.length===0)return[];let a=Z(this.catalog,n.sourceClass),s={namespace:a?.namespace??"",name:a?.name??n.sourceClass.name},o=[];for(let i of t){let c=this.readEmbeddedCarrier(i,Gr);if(!c)continue;let l=x(c,qr);if(!l)continue;let d=x(c,$t);if(d){let p=q(e,l);this.gatherValueItems(p).filter(h=>h instanceof j).some(h=>X(h.subject)===X(d))&&o.push({variant:i,declaredBy:s});continue}let f=ee(c,$t);f!==void 0&&this.readPropertyValueText(e,l)===f&&o.push({variant:i,declaredBy:s})}return o}findCascadedTokens(e){let n=this.explainCascadedTokens(e),t=new Map;for(let[a,s]of n)t.set(a,s.value);return t}explainCascadedTokens(e){let n=new Map,t=(i,c,l)=>{for(let[d,f]of ks(i))n.has(d)||n.set(d,{value:f,sourceNamespace:l?.namespace??i.namespace??"",sourceName:l?.name??i.name,level:c})};t(e,"instance");for(let{variant:i,declaredBy:c}of this.matchingVariants(e))t(i,"variant",c);let a=new Set,s=he(e);for(;s.length>0;){let i=s.shift(),c=X(i.subject);if(a.has(c))continue;a.add(c);let l=c===X(we)?"resource-floor":"class",d=le(this.catalog,i.subject);if(d.length!==0)for(let f of d){t(f,l);for(let p of un(f))s.push(p)}}let o=ne(e);if(o){let i=this.publisherSubject(o);i!==e&&t(i,"publisher")}if(!a.has(X(we))){let i=le(this.catalog,we);for(let c of i)t(c,"resource-floor")}return n}async renderSvg(e){let n=N(this.catalog,e).label,t=(n.trim().charAt(0)||"?").toUpperCase(),a=`${e.namespace??""}/${e.name}`,s=this.collectCascadedSvgTiers(e),o=new Map([["input",e],["label",n],["firstLetter",t],["uri",a],["resourceKey",e.name]]),i=await this.evaluateTier(s.tierChip,o),c=await this.evaluateTier(s.tierIcon,o),l=await this.evaluateTier(s.tierCard,o),d=await this.evaluateTier(s.tierFull,o),p=[...this.findCascadedTokens(e)].map(([k,h])=>`--kan-${k}: ${h};`).join(" ");return`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 400" style="${Re(p)}">
66
+ <style>
67
+ .tier-chip,.tier-icon,.tier-card{display:none}
68
+ .tier-full{display:block}
69
+ @media (max-width:400px){.tier-full{display:none}.tier-card{display:block}}
70
+ @media (max-width:160px){.tier-card{display:none}.tier-icon{display:block}}
71
+ @media (max-width:60px){.tier-icon{display:none}.tier-chip{display:block}}
72
+ </style>
73
+ <g class="tier-chip">${i}</g>
74
+ <g class="tier-icon">${c}</g>
75
+ <g class="tier-card">${l}</g>
76
+ <g class="tier-full">${d}</g>
77
+ </svg>`}resolverInstance;expressionResolver(){if(!this.resolverInstance){let e=new Vn,n=new Tn(e);this.resolverInstance=new rn(n,e,new Hn(e))}return this.resolverInstance}async evaluateTier(e,n){if(!e)return"";let t;try{t=Oe(e,"semanticSvg-tier",{catalog:this.catalog,depth:0})}catch(o){return this.noteExpressionFailure("look.semanticSvg tier",o)}let a=new Ye(this.expressionResolver(),this.catalog);if(t.kind==="concat"){let o=[];for(let i of t.parts){let c=await a.evaluate(i,n);o.push(Ut(i.kind,c))}return o.join("")}let s=await a.evaluate(t,n);return Ut(t.kind,s)}async evaluateCarrier(e,n){if(!e)return;let t;try{t=Oe(e,"look-carrier",{catalog:this.catalog,depth:0})}catch(c){this.noteExpressionFailure("look band path carrier",c);return}let a=new Ye(this.expressionResolver(),this.catalog),s=new Map([["input",n]]),o=await a.evaluate(t,s),i=xt(o);return i===""?void 0:i}async evaluateCarrierNum(e,n){let t=await this.evaluateCarrier(e,n);return t===void 0?NaN:parseFloat(t)}readEmbeddedCarrier(e,n){let t=q(e,n);return t instanceof z&&t.object instanceof V?t.object:void 0}referenceLabel(e){let n=e.subject,t=le(this.catalog,n);if(t.length===0){let a=Z(this.catalog,n);a&&t.push(a)}for(let a of t){let s=N(this.catalog,a);if(s.label!==a.name)return s.label}return n.name}collectCascadedSvgTiers(e){let n={},t=c=>{let l=q(c,jt);if(!(l instanceof z))return;let d=l.object,f=ln(d,ns),p=ln(d,ts),k=ln(d,as),h=ln(d,rs);n.tierChip===void 0&&f!==void 0&&(n.tierChip=f),n.tierIcon===void 0&&p!==void 0&&(n.tierIcon=p),n.tierCard===void 0&&k!==void 0&&(n.tierCard=k),n.tierFull===void 0&&h!==void 0&&(n.tierFull=h)};t(e);let a=e.namespace||"",s=a.indexOf("/");if(s>=0){let c=a.indexOf("@"),l={publisher:a.slice(0,s),package_:a.slice(s+1,c>=0?c:a.length),name:e.name};for(let d of le(this.catalog,l))t(d)}let o=new Set,i=he(e);for(;i.length>0;){let c=i.shift(),l=X(c.subject);if(o.has(l))continue;o.add(l);let d=le(this.catalog,c.subject);for(let f of d){t(f);for(let p of un(f))i.push(p)}}if(!o.has(X(we)))for(let c of le(this.catalog,we))t(c);return n}renderStylesheet(e){let n=this.explainStylesheet(e),t=[];for(let[o,i]of n.tokens)t.push(` --kan-${o}: ${i.value};`);let a=t.length>0?`:root {
78
+ ${t.join(`
79
+ `)}
80
+ }`:":root { /* no tokens resolved */ }",s=n.baseStylesheet.css??"";return`${vs(n)}
81
+ ${a}
82
+ ${s}`}explainStylesheet(e){let n=this.explainCascadedTokens(e),t=this.explainBaseStylesheet(ne(e)),a=this.findCascadedLook(e),s=[];return t.css||(t.problem==="content-property-unresolved"?s.push(`Base stylesheet asset ${t.sourceNamespace}/base-stylesheet is in the catalog but its site.content property did not resolve \u2014 the package was likely cached without its imports block. Pages will render UNSTYLED (CSS stops at :root). Fix: re-install it from its published source: kanonak install kanonak.org/look-styles`):s.push("No look-styles package in the render catalog \u2014 pages will render UNSTYLED (CSS stops at :root). The look stack is ambient (not imported): it must be in the workspace, the global cache, or fetchable from kanonak.org by the user running the render. Fix: kanonak install kanonak.org/look-styles")),n.size===0&&s.push("No design tokens resolved \u2014 the :root block is empty. The universal token floor lives on rdfs.Resource in kanonak.org/look-tokens; that package is missing from the render catalog. Fix: kanonak install kanonak.org/look-tokens"),a||s.push(`No look (band declaration) resolved for ${e.namespace}/${e.name} \u2014 the HTML body will be an empty comment. The universal look floor lives on rdfs.Resource in kanonak.org/universal-look. Fix: kanonak install kanonak.org/universal-look`),{resource:{namespace:e.namespace||"",name:e.name},tokens:n,baseStylesheet:t,...a?{look:{sourceClass:a.sourceClass}}:{},warnings:s}}findBaseStylesheet(e){return this.explainBaseStylesheet(e).css}explainBaseStylesheet(e){let n="kanonak.org/site/content",t=f=>this.uriOf(f).version??null,a=[],s,o,i,c;for(let f of this.catalog){if(!(f instanceof Y)||f.name!=="base-stylesheet")continue;let p=f.namespace||"";if(p.startsWith(`${e}/look-styles@`)){a.push(p);let k=t(f);k&&(!o||Ze(k,o)>0)&&(s=f,o=k)}else if(p.startsWith("kanonak.org/look-styles@")){a.push(p);let k=t(f);k&&(!c||Ze(k,c)>0)&&(i=f,c=k)}}let l=s??i;if(!l)return{problem:"no-look-styles-in-catalog",candidates:a};let d=l===s?"publisher-override":"universal-default";for(let f of l.statement){let p=f.predicate?.subject;if(!p)continue;if(`${p.publisher}/${p.package_}/${p.name}`===n&&f instanceof H)return{css:f.object,sourceNamespace:l.namespace||"",scope:d,candidates:a}}return{problem:"content-property-unresolved",sourceNamespace:l.namespace||"",scope:d,candidates:a}}async renderHtml(e){let n=this.findCascadedLook(e);if(!n)return`<!-- LookRenderer: no derivation.look found for ${e.namespace}/${e.name} -->`;let t=Cn(n.declaration);if(t.length===0){let i=n.declaration.unresolvedPredicates;return i.length>0?`<!-- LookRenderer: look declaration has no bands \u2014 unresolved predicates dropped from the parse: ${i.map(l=>`${l.key} (authored by ${l.sourceDoc})`).join(", ")}. An import in the authoring document did not resolve; see the render-stack warnings (/.well-known/kanonak-render). -->`:"<!-- LookRenderer: look declaration has no bands -->"}let a=ne(e),s=this.collectSectionHeadings(t);this.diagramScriptEmitted=!1,this.diagramArrowSeq=0;let o=[];for(let i of t){let c=He(i);c&&M(c,Ln)&&o.push('<div style="clear:both"></div>'),o.push(this.applyBandPlacement(i,await this.renderBand(i,e,a,s)))}return o.push('<div style="clear:both"></div>'),o.join(`
83
+ `)}applyBandPlacement(e,n){let t=ee(e,cr);if(t!=="floatLeft"&&t!=="floatRight")return n;let a=t==="floatLeft"?"left":"right",s=ee(e,lr),o=s&&/^\d+(\.\d+)?(%|px|rem|em)$/.test(s)?s:"42%";return`<div class="kan-band-float kan-band-${a}" style="float:${a};width:${o};margin:${a==="left"?"0 1.25rem 0.75rem 0":"0 0 0.75rem 1.25rem"}">${n}</div>`}collectSectionHeadings(e){let n=[];for(let t of e){let a=He(t);if(!a||!M(a,Ln))continue;let s=ee(t,bt);s&&n.push({slug:Ct(s),label:s})}return n}publisherSubject(e){for(let t of this.catalog){if(!(t instanceof Y)||ne(t)!==e||!he(t).some(s=>M(s.subject,gr)))continue;return le(this.catalog,{publisher:e,package_:this.uriOf(t).package_,name:t.name})[0]??t}let n=new Y;return n.namespace=e,n.name=e,n.statement=[I.parse("kanonak.org/core-rdf/type","kanonak.org/core-kanonak/Publisher"),H.parse("kanonak.org/core-rdf/label",e)],n}hasDeclaredView(e){let n=this.findCascadedLook(e);return n?!(a=>a.publisher===we.publisher&&a.package_===we.package_&&a.name===we.name||a.publisher===En.publisher&&a.package_===En.package_&&a.name===En.name)(n.sourceClass):!1}renderPackageVersionList(e,n,t){let a=ne(t),s=this.renderNavGroup(t,a),o=this.renderBreadcrumb(t,a,{bareOverview:!0}),i=n.map(l=>`<a class="kan-resource-card" href="${g(this.packageHref(a,e,l))}/"><h3 class="kan-resource-card-title">${g(l)}</h3></a>`).join(`
84
+ `),c=`<header class="kan-hero">
85
+ <span class="kan-hero-eyebrow">PACKAGE</span>
86
+ <h1 class="kan-hero-title">${g(e)}</h1>
87
+ </header>
88
+ <section class="kan-resource-grid">
89
+ ${i}
90
+ </section>`;return`<!doctype html>
91
+ <html lang="en">
92
+ <head>
93
+ <meta charset="utf-8">
94
+ <meta name="viewport" content="width=device-width, initial-scale=1">
95
+ <title>${g(e)}</title>
96
+ <link rel="stylesheet" href="${g(t.name)}.css">
97
+ </head>
98
+ <body>
99
+ ${s}
100
+ ${o}
101
+ <main class="kan-main">
102
+ ${c}
103
+ </main>
104
+ </body>
105
+ </html>
106
+ `}async renderDocument(e,n){let t=await this.renderHtml(e),a=N(this.catalog,e).label,s=n?.rootIndex?"index.css":`${e.name}.css`,o=!n?.rootIndex&&this.hasSvgDerivation(e)?`<figure class="kan-figure"><img src="${g(e.name)}.svg" alt=""></figure>
107
+ `:"",i=ne(e),c=this.renderNavGroup(e,i),l=this.renderSiteFooter(i),d=n?.rootIndex?"":this.renderBreadcrumb(e,i,n);return`<!doctype html>
108
+ <html lang="en">
109
+ <head>
110
+ <meta charset="utf-8">
111
+ <meta name="viewport" content="width=device-width, initial-scale=1">
112
+ <title>${g(a)}</title>
113
+ <link rel="stylesheet" href="${g(s)}">
114
+ </head>
115
+ <body>
116
+ ${c}
117
+ ${d}
118
+ <main class="kan-main">
119
+ ${o}${t}
120
+ </main>
121
+ ${l}
122
+ </body>
123
+ </html>
124
+ `}hasSvgDerivation(e){let n=new Set,t=he(e);for(;t.length>0;){let a=t.shift(),s=X(a.subject);if(n.has(s))continue;n.add(s);let o=Z(this.catalog,a.subject);if(o){for(let i of o.statement)if(i instanceof C&&$e(i,"kanonak.org","derivation","derivations")){for(let c of i.object??[])if(c instanceof V)for(let l of c.statement){if(!(l instanceof I)||!$e(l,"kanonak.org","derivation","format")||!(l.object instanceof j))continue;let d=l.object.subject;if(d.publisher==="kanonak.org"&&d.package_==="formats"&&d.name==="svg")return!0}}for(let i of un(o))t.push(i)}}return!1}static BAND_DISPATCH=[[Lr,(e,n)=>e.renderSectionNav(n.sections)],[Sa,(e,n)=>e.renderHero(n.band,n.instance,n.contextPublisher)],[wa,(e,n)=>e.renderPropertyList(n.band,n.instance,n.contextPublisher)],[_a,(e,n)=>e.renderPropertyTable(n.band,n.instance,n.contextPublisher,n.pathPrefix)],[ja,(e,n)=>e.renderBadgeRow(n.band,n.instance,n.contextPublisher)],[Ka,(e,n)=>e.renderChipRow(n.band,n.instance,n.contextPublisher)],[Ra,(e,n)=>e.renderReferenceList(n.band,n.instance,n.contextPublisher)],[Ea,(e,n)=>e.renderReferencedBy(n.band,n.instance,n.contextPublisher)],[La,(e,n)=>e.renderInstances(n.band,n.instance,n.contextPublisher)],[kt,(e,n)=>e.renderMarkdown(n.band,n.instance,n.contextPublisher)],[wr,(e,n)=>e.renderLinks(n.band,n.instance)],[Oa,(e,n)=>e.renderNavGroup(n.instance,n.contextPublisher)],[xa,(e,n)=>e.renderResourceGrid(n.band,n.contextPublisher,n.instance)],[Ta,(e,n)=>e.renderTimeline(n.band,n.contextPublisher)],[Va,(e,n)=>e.renderVersionDiff(n.band,n.contextPublisher)],[Pa,(e,n)=>e.renderFigure(n.band,n.instance,n.contextPublisher)],[Aa,(e,n)=>e.renderDiagram(n.band,n.instance,n.contextPublisher)],[dr,(e,n)=>e.renderStatRow(n.band,n.instance)],[fr,(e,n)=>e.renderHorizon(n.band,n.instance,n.contextPublisher)],[pr,(e,n)=>e.renderPackageContents(n.instance,n.contextPublisher)],[mr,(e,n)=>e.renderFeaturedResource(n.band,n.contextPublisher)],[kr,(e,n)=>e.renderPublisherPackages(n.band,n.contextPublisher)],[Kr,(e,n)=>e.renderDistribution(n.band,n.instance)],[Ln,(e,n)=>e.renderSectionHeading(n.band)],[Ur,(e,n)=>e.renderVersionDelta(n.band,n.instance)],[Cr,(e,n)=>e.renderTimePlot(n.band,n.instance,n.contextPublisher)],[Ir,(e,n)=>e.renderDetails(n.band,n.instance,n.contextPublisher)],[Fr,(e,n)=>e.renderEmbeddedViews(n.band,n.instance,n.contextPublisher,n.pathPrefix)],[xr,(e,n)=>e.renderResourceCount(n.band,n.contextPublisher)],[yt,(e,n)=>e.renderBarMeter(n.band,n.instance)]];static bandDispatchUris(){return r.BAND_DISPATCH.map(([e])=>e)}uriOf(e){let n=Nn(e);return n?{publisher:n.publisher,package_:n.package_,name:n.name,...n.version?{version:n.version}:{}}:{publisher:ne(e),package_:"",name:e.name}}async renderBand(e,n,t,a=[],s=""){let o=He(e);if(!o)return"<!-- LookRenderer: band has no rdf:type -->";let i={band:e,instance:n,contextPublisher:t,sections:a,pathPrefix:s};for(let[c,l]of r.BAND_DISPATCH)if(M(o,c))return l(this,i);return`<!-- LookRenderer: unsupported band ${o.publisher}/${o.package_}/${o.name} -->`}async collectTrackedSeries(e,n,t,a){let{hueBy:s,lowerPath:o,upperPath:i}=a??{},c=new Map,l=e.length;for(let d=0;d<e.length;d++){let f=e[d],p=this.readPropertyValueReferences(f,n);for(let k of p){let h=Z(this.catalog,{publisher:k.subject.publisher,package_:k.subject.package_,name:k.subject.name,...k.subject.version?{version:k.subject.version}:{}});if(!h)continue;let b=k.subject.name,m=c.get(b);m||(m={key:b,label:N(this.catalog,h).label,points:new Array(l).fill(null),...o?{lower:new Array(l).fill(null)}:{},...i?{upper:new Array(l).fill(null)}:{}},c.set(b,m));let $=await this.evaluateCarrierNum(t,h);if(Number.isFinite($)&&(m.points[d]=$),o&&m.lower){let v=await this.evaluateCarrierNum(o,h);Number.isFinite(v)&&(m.lower[d]=v)}if(i&&m.upper){let v=await this.evaluateCarrierNum(i,h);Number.isFinite(v)&&(m.upper[d]=v)}if(s){let v=await this.evaluateCarrierNum(s,h);Number.isFinite(v)&&(m.hue=v)}m.lastSubject=h}}return[...c.values()]}hrefForSubject(e,n,t="="){let a=this.uriOf(e),s=a.package_,o=a.version;return this.resourceHref({publisher:ne(e),package_:s,name:e.name,...o?{version:o}:{}},n,t)}async renderVersionDiff(e,n){let t=x(e,oe);if(!t)return"<!-- LookRenderer.VersionDiff: no look.source -->";let a=this.readEmbeddedCarrier(e,Je),s=x(e,St);if(!s||!a)return"<!-- LookRenderer.VersionDiff: needs look.track + look.metricPath -->";let o=x(e,on),i=this.readEmbeddedCarrier(e,On),c=this.findInstancesOfClass(t,this.readTransitive(e));if(c.length===0)return"<!-- LookRenderer.VersionDiff: no instances -->";let l=k=>o?this.readPropertyValueText(k,o)??"":"",d=c.slice().sort((k,h)=>l(k).localeCompare(l(h))),f=await this.collectTrackedSeries(d,s,a,{hueBy:i});return f.length===0?"<!-- LookRenderer.VersionDiff: no tracked series -->":`<section class="kan-vdiff">${f.map((k,h)=>{let b=k.hue!==void 0?k.hue:Math.round(h*360/f.length),m=k.points.filter(U=>U!==null);if(m.length===0)return"";let $=m[0],v=m[m.length-1],_=v-$,K;if(Math.abs(_)>=.005){let U=_>0?"up":"down",D=_>0?"\u25B2":"\u25BC";K=`<span class="kan-vdiff-delta ${U}">${_>0?"+":""}${_.toFixed(2)} ${D}</span>`}else K='<span class="kan-vdiff-delta flat">\u2014</span>';let O=k.lastSubject&&this.isLinkable(ne(k.lastSubject),n)?`<a href="${g(this.hrefForSubject(k.lastSubject,n))}">${g(k.label)}</a>`:g(k.label);return`<div class="kan-vdiff-row" style="--kan-vdiff-hue:${b}"><span class="kan-vdiff-label">${O}</span><span class="kan-vdiff-start">${$.toFixed(2)}</span>`+this.sparkline(k.points,b)+`<span class="kan-vdiff-end">${v.toFixed(2)}</span>`+K+"</div>"}).join("")}</section>`}sparkline(e,n){let o=`hsl(${n},65%,60%)`,i=e.filter(m=>m!==null);if(i.length===0)return'<svg class="kan-vdiff-spark" viewBox="0 0 132 30" xmlns="http://www.w3.org/2000/svg"></svg>';let c=Math.min(...i),d=Math.max(...i)-c,f=e.length,p=m=>f<=1?132/2:4+m/(f-1)*124,k=m=>d<1e-9?30/2:26-(m-c)/d*22,h=[],b=[];return e.forEach((m,$)=>{if(m===null)return;let v=p($),_=k(m);h.push(`${v.toFixed(1)},${_.toFixed(1)}`),b.push(`<circle cx="${v.toFixed(1)}" cy="${_.toFixed(1)}" r="2" fill="${o}"/>`)}),`<svg class="kan-vdiff-spark" viewBox="0 0 132 30" preserveAspectRatio="none" xmlns="http://www.w3.org/2000/svg" role="img"><polyline points="${h.join(" ")}" fill="none" stroke="${o}" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round"/>`+b.join("")+"</svg>"}svgUrlForSubject(e,n,t="="){return`${this.hrefForSubject(e,n,t)}.svg`}renderFigure(e,n,t){let a=n,s=x(e,oe);if(s){let d=Z(this.catalog,s);d&&(a=d)}let o=this.svgUrlForSubject(a,t),i=N(this.catalog,a).label,c=ee(e,ls);return`<figure class="kan-figure${c==="small"||c==="medium"||c==="large"?` kan-figure-${c}`:""}"><img class="kan-figure-img" src="${g(o)}" alt="${g(i)}" loading="lazy"/></figure>`}diagramArrowSeq=0;diagramScriptEmitted=!1;async renderDiagram(e,n,t,a=0,s=new Set){let o=this.gatherValueItems(q(e,Ma)).filter(h=>h instanceof V);if(o.length===0)return"<!-- LookRenderer.Diagram: no look.facets -->";let i=[];for(let h of o){let b=x(h,Na);if(!b){i.push("<!-- LookRenderer.Diagram: facet has no resolvable look.relation -->");continue}let m=x(h,Da),$=this.resolveFacetNodes(n,b);if($.length===0){i.push(`<!-- LookRenderer.Diagram: relation ${b.publisher}/${b.package_}/${b.name} resolved to 0 instances -->`);continue}let v=await this.resolveFacetChannels(h,$),_=q(h,Wa),K=_ instanceof z&&_.object instanceof V?_.object:void 0,O=ee(h,Ja),U=O&&Xe[O]!==void 0?Xe[O]:void 0,D=U??this.classTierSize($),L=ir[D??Xe.icon]??"icon",de=this.readEmbeddedCarrier(h,Qa),F=x(h,Ya),B=F?Z(this.catalog,F):void 0;if(B){i.push(await this.renderDiagramExpand($,B,t,a,s,de,U));continue}if(m&&M(m,Ha)){let J=x(h,Xa),ue=this.facetEdgeLabel(h,J??b),fe=this.readEmbeddedCarrier(h,tr);i.push(await this.embedTiers(L,E=>J?this.renderDiagramDag($,J,v,t,E,ue,fe):this.renderDiagramConnector(n,$,v,t,E,ue,fe)));continue}if(m&&!M(m,Ba)){i.push(`<!-- LookRenderer.Diagram: unknown encode role ${m.publisher}/${m.package_}/${m.name} -->`);continue}i.push(K?`<div class="kan-dgm-tiers" data-geo="1"><div class="kan-dgm-tier" data-tier="card">${await this.renderDiagramCluster($,v,K,t,D)}</div></div>`:await this.embedTiers(L,J=>this.renderDiagramCluster($,v,void 0,t,J)))}let c=ee(e,ar),l=ee(e,rr),d=h=>`<div class="kan-diagram-title" style="font-weight:600;font-size:0.95rem;color:var(--kan-text);${h}">${g(c)}</div>`,f=c&&l!=="bottom"?d("margin:0 0 .5rem"):"",p=c&&l==="bottom"?d("margin:.5rem 0 0"):"",k="";return a===0&&!this.diagramScriptEmitted&&(this.diagramScriptEmitted=!0,k=`<script>${sr}</script>`),`<section class="kan-diagram">${f}${i.join("")}${p}${k}</section>`}async embedTiers(e,n){let t=[];for(let a of or){let s=await n(Xe[a]);t.push(`<div class="kan-dgm-tier" data-tier="${a}"${a===e?"":" hidden"}>${s}</div>`)}return`<div class="kan-dgm-tiers">${t.join("")}</div>`}async renderDiagramExpand(e,n,t,a,s,o,i){let c=[];for(let l of e){let d=`${l.namespace??""}/${l.name}`,f=await this.diagramNodeRow(l,t,i??56,o),k=a<ur&&!s.has(d)?await this.renderDiagram(n,l,t,a+1,new Set([...s,d])):"",h=k?`<div style="margin-left:30px;border-left:2px solid var(--kan-border);padding-left:14px;margin-top:6px">${k}</div>`:"";c.push(`<div class="kan-diagram-node" style="margin:6px 0">${f}${h}</div>`)}return`<figure class="kan-diagram-figure"><div class="kan-diagram-tree">${c.join("")}</div></figure>`}async diagramNodeRow(e,n,t=56,a){let s=this.hrefForSubject(e,n),o=this.svgUrlForSubject(e,n),i=N(this.catalog,e).label,c=a?await this.evaluateCarrier(a,e):void 0,l=c!==void 0?`<span class="kan-diagram-node-note" style="display:block;font-size:0.8em;color:var(--kan-text-dim)">${g(c)}</span>`:"";return`<a href="${g(s)}" style="display:inline-flex;align-items:center;gap:10px;text-decoration:none"><img src="${g(o)}" width="${t}" height="${t}" alt="" loading="lazy"/><span><span class="kan-diagram-node-label">${g(i)}</span>${l}</span></a>`}classTierSize(e){let n;for(let t of e)for(let a of he(t)){let s=Z(this.catalog,a.subject);if(!s)continue;let o=ee(s,Za),i=o?Xe[o]:void 0;i!==void 0&&(n=n===void 0?i:Math.max(n,i))}return n}resolveFacetNodes(e,n){let t=[];for(let a of this.readPropertyValueReferences(e,n)){let s=a.subject,o=Z(this.catalog,{publisher:s.publisher,package_:s.package_,name:s.name,...s.version?{version:s.version}:{}});o&&t.push(o)}return t}async resolveFacetChannels(e,n){let t=this.gatherValueItems(q(e,za)).filter(s=>s instanceof V),a=[];for(let s of t){let o=this.readEmbeddedCarrier(s,Ga),i=ee(s,qa);if(!o||!i)continue;let c=[];for(let h of n){let b=await this.evaluateCarrierNum(o,h);c.push(Number.isFinite(b)?b:NaN)}let l=c.filter(h=>Number.isFinite(h)),d=l.length?Math.min(...l):0,p=(l.length?Math.max(...l):0)-d,k=c.map(h=>Number.isFinite(h)&&p>0?(h-d)/p:.5);a.push({to:i,norm:k})}return a}facetEdgeLabel(e,n){let t=ee(e,er);if(t)return t;if(hs(e,nr)&&n){let s=Z(this.catalog,n);if(s)return N(this.catalog,s).label}}async edgeText(e,n,t){let a=t&&n?await this.evaluateCarrier(t,n):void 0,s=[e,a].filter(o=>!!o);return s.length?s.join(" "):void 0}edgeLabelEl(e,n,t){return`<text x="${e.toFixed(1)}" y="${n.toFixed(1)}" text-anchor="middle" class="kan-diagram-edge-label" style="font-size:11px;paint-order:stroke;stroke:var(--kan-bg);stroke-width:3px;fill:var(--kan-text-dim)">${g(t)}</text>`}async renderDiagramCluster(e,n,t,a,s){let o=s??132,i=18,c=18,l=n.find(b=>b.to==="opacity");if(t){let b=[];for(let m=0;m<e.length;m++){let $=e[m],v=await this.renderBand(t,$,a),_=this.hrefForSubject($,a),K=N(this.catalog,$).label,O=l?`opacity:${(.4+l.norm[m]*.6).toFixed(2)};`:"";b.push(`<a class="kan-diagram-mark" href="${g(_)}" style="display:block;text-decoration:none;${O}">${v}<span class="kan-diagram-mark-label">${g(K)}</span></a>`)}return`<figure class="kan-diagram-figure"><div class="kan-diagram-marks" style="display:flex;flex-wrap:wrap;gap:18px;align-items:flex-start">${b.join("")}</div></figure>`}let d=Math.min(e.length,4),f=Math.ceil(e.length/d),p=c*2+d*o+(d-1)*i,k=c*2+f*o+(f-1)*i,h=e.map((b,m)=>{let $=m%d,v=Math.floor(m/d),_=c+$*(o+i),K=c+v*(o+i),O=l?.4+l.norm[m]*.6:1;return this.diagramTile(b,_,K,o,a,O)}).join("");return`<figure class="kan-diagram-figure"><svg class="kan-diagram-svg" viewBox="0 0 ${p} ${k}" preserveAspectRatio="xMidYMid meet" xmlns="http://www.w3.org/2000/svg" role="img">${h}</svg></figure>`}async renderDiagramConnector(e,n,t,a,s,o,i){let c=s??120,l=24,d=130,f=18,p=t.find(F=>F.to==="thickness"),k=t.find(F=>F.to==="opacity"),h=n.length,b=h*c+(h-1)*l,m=f*2+b,$=f*2+c+d+c,v=f,_=f+(b-c)/2,K=f+c+d,O=`kan-arrow-${this.diagramArrowSeq++}`,U=[],D=[],L=[];for(let F=0;F<n.length;F++){let B=n[F],J=f+F*(c+l),ue=v+c,fe=_+c/2,E=K-_e,Q=J+c/2,T=(ue+K)/2,w=p?1.5+p.norm[F]*5.5:2,A=k?.4+k.norm[F]*.6:1,W=k?` stroke-opacity="${A.toFixed(2)}"`:"";U.push(`<path d="M${ue.toFixed(1)},${fe.toFixed(1)} C${T.toFixed(1)},${fe.toFixed(1)} ${T.toFixed(1)},${Q.toFixed(1)} ${E.toFixed(1)},${Q.toFixed(1)}" class="kan-diagram-edge" fill="none" stroke="var(--kan-border)" stroke-width="${w.toFixed(1)}"${W} marker-end="url(#${O})"/>`);let R=await this.edgeText(o,B,i);R&&D.push(this.edgeLabelEl((ue+K)/2,(fe+Q)/2-5,R)),L.push(this.diagramTile(B,K,J,c,a,k?A:1))}let de=this.diagramTile(e,v,_,c,a);return`<figure class="kan-diagram-figure"><svg class="kan-diagram-svg" viewBox="0 0 ${$.toFixed(0)} ${m.toFixed(0)}" preserveAspectRatio="xMidYMid meet" xmlns="http://www.w3.org/2000/svg" role="img">${this.arrowMarkerDef(O,"var(--kan-border)")}${U.join("")}${D.join("")}${de}${L.join("")}</svg></figure>`}arrowMarkerDef(e,n){return`<defs><marker id="${e}" viewBox="0 0 ${_e} ${_e}" refX="0" refY="${(_e/2).toFixed(1)}" markerWidth="${_e}" markerHeight="${_e}" markerUnits="userSpaceOnUse" orient="auto"><path d="M0,1 L${_e},${(_e/2).toFixed(1)} L0,${_e-1}" fill="${n}"/></marker></defs>`}async renderDiagramDag(e,n,t,a,s,o,i){let c=s??110,l=110,d=22,f=18,p=new Map(e.map((w,A)=>[w.name,A])),k=new Set(e.map(w=>w.name)),h=new Map(e.map(w=>[w.name,[]])),b=new Map(e.map(w=>[w.name,[]]));for(let w of e)for(let A of this.readPropertyValueReferences(w,n)){let W=A.subject.name;W!==w.name&&k.has(W)&&(h.get(w.name).push(W),b.get(W).push(w.name))}let m=new Map,$=new Set,v=w=>{let A=m.get(w);if(A!==void 0)return A;if($.has(w))return 0;$.add(w);let W=0;for(let R of b.get(w)??[])W=Math.max(W,v(R)+1);return $.delete(w),m.set(w,W),W};for(let w of e)v(w.name);let _=Math.min(...m.values());if(_>0)for(let w of[...m.keys()])m.set(w,m.get(w)-_);let K=Math.max(0,...m.values()),O=Array.from({length:K+1},()=>[]);for(let w of e)O[m.get(w.name)].push(w);let U=Math.max(1,...O.map(w=>w.length)),D=!1;for(let[w,A]of h)for(let W of A)m.get(W)<=m.get(w)&&(D=!0);let L=D?84:0,de=U*c+(U-1)*d,F=f*2+(K+1)*c+K*l,B=f*2+L+de,J=new Map;O.forEach((w,A)=>{let W=w.length*c+(w.length-1)*d,R=f+L+(de-W)/2;w.forEach((P,me)=>J.set(P.name,{x:f+A*(c+l),y:R+me*(c+d)}))});let ue=t.find(w=>w.to==="thickness"),fe=`kan-arrow-${this.diagramArrowSeq++}`,E=[],Q=[];for(let[w,A]of h){let W=J.get(w);for(let R of A){let P=J.get(R),me=P.x>=W.x,pe=ue?1.5+ue.norm[p.get(w)]*4.5:2,ke,se,ae;if(me){let ie=W.x+c,Te=W.y+c/2,Le=P.x-_e,ze=P.y+c/2,Me=(ie+Le)/2;ke=`M${ie.toFixed(1)},${Te.toFixed(1)} C${Me.toFixed(1)},${Te.toFixed(1)} ${Me.toFixed(1)},${ze.toFixed(1)} ${Le.toFixed(1)},${ze.toFixed(1)}`,se=(ie+Le)/2,ae=(Te+ze)/2-5}else{let ie=W.x+c/2,Te=W.y,Le=P.x+c/2,ze=P.y-_e,Me=f+L*.2;ke=`M${ie.toFixed(1)},${Te.toFixed(1)} C${ie.toFixed(1)},${Me.toFixed(1)} ${Le.toFixed(1)},${Me.toFixed(1)} ${Le.toFixed(1)},${ze.toFixed(1)}`,se=(ie+Le)/2,ae=Me+4}let Ee=me?"":' stroke-dasharray="6 4"';E.push(`<path d="${ke}" class="kan-diagram-edge" fill="none" stroke="var(--kan-accent)" stroke-width="${pe.toFixed(1)}" stroke-opacity="0.75"${Ee} marker-end="url(#${fe})"/>`);let Se=await this.edgeText(o,e[p.get(w)],i);Se&&Q.push(this.edgeLabelEl(se,ae,Se))}}let T=e.map(w=>{let A=J.get(w.name);return this.diagramTile(w,A.x,A.y,c,a)}).join("");return`<figure class="kan-diagram-figure"><svg class="kan-diagram-svg" viewBox="0 0 ${F.toFixed(0)} ${B.toFixed(0)}" preserveAspectRatio="xMidYMid meet" xmlns="http://www.w3.org/2000/svg" role="img">${this.arrowMarkerDef(fe,"var(--kan-accent)")}${E.join("")}${Q.join("")}${T}</svg></figure>`}diagramTile(e,n,t,a,s,o=1){let i=this.hrefForSubject(e,s),c=this.svgUrlForSubject(e,s),l=N(this.catalog,e).label,d=o<1?` opacity="${o.toFixed(2)}"`:"";return`<a href="${g(i)}"><image href="${g(c)}" x="${n}" y="${t}" width="${a}" height="${a}"${d}><title>${g(l)}</title></image></a>`}async renderStatRow(e,n){let t=q(e,Mr),a=this.gatherValueItems(t).filter(o=>o instanceof V);if(a.length===0)return"<!-- LookRenderer.StatRow: no look.stats -->";let s=[];for(let o of a){let i=this.readEmbeddedCarrier(o,Nr);if(!i)continue;let c=await this.evaluateCarrier(i,n);if(c===void 0)continue;let l=ee(o,Dr)??"";s.push('<div class="kan-stat">'+(l?`<span class="kan-stat-label">${g(l)}</span>`:"")+`<span class="kan-stat-val">${g(c)}</span></div>`)}return s.length===0?"":`<div class="kan-stat-row">${s.join("")}</div>`}barMarkup(e){let n=Number(e);if(!Number.isFinite(n))return g(e);let t=Math.max(0,Math.min(1,n))*100;return`<span class="kan-bar-meter" role="img" aria-label="${g(e)}"><span class="kan-bar-fill" style="width:${t.toFixed(1)}%"></span></span><span class="kan-bar-value">${g(e)}</span>`}async renderBarMeter(e,n){let t=this.readEmbeddedCarrier(e,Je);if(!t)return"<!-- LookRenderer.BarMeter: no look.metricPath -->";let a=await this.evaluateCarrier(t,n);return a===void 0?"":`<div class="kan-bar-row">${this.barMarkup(a)}</div>`}renderResourceCount(e,n){let t=q(e,Tr),a=this.gatherValueItems(t).filter(i=>i instanceof V);if(a.length===0)return"<!-- LookRenderer.ResourceCount: no look.counts -->";let s=this.readTransitive(e),o=[];for(let i of a){let c=x(i,oe);if(!c)continue;let l=Z(this.catalog,c);if(!l)continue;let d=N(this.catalog,l).label,f=this.findInstancesOfClass(c,s).length,p=this.hrefForSubject(l,n);o.push(`<a class="kan-count" href="${g(p)}"><span class="kan-count-val">${f}</span><span class="kan-count-label">${g(d)}</span></a>`)}return o.length===0?"":`<div class="kan-count-row">${o.join("")}</div>`}renderHorizon(e,n,t){let a=x(e,oe);if(!a)return"<!-- LookRenderer.Horizon: no look.source -->";let s=this.gatherValueItems(q(n,a)).filter(i=>i instanceof V);return s.length===0?"":`<section class="kan-horizon">${s.map(i=>this.renderConditionNode(i,t,0)).join("")}</section>`}renderConditionNode(e,n,t){let a=He(e),s=a?this.readLabelForUri({publisher:a.publisher,package_:a.package_,name:a.name})??a.name:"Condition",o=[],i=[];for(let p of e.statement){let k=p.predicate?.subject;if(!k||M(k,Ce))continue;let h=this.readLabelForUri({publisher:k.publisher,package_:k.package_,name:k.name})??k.name;if(p instanceof H||p instanceof re||p instanceof te)o.push(`<div class="kan-cond-field"><span class="kan-cond-key">${g(h)}</span><span class="kan-cond-v">${g(String(p.object))}</span></div>`);else if(p instanceof I&&p.object instanceof j){let b=p.object.subject,m=this.readLabelForUri({publisher:b.publisher,package_:b.package_,name:b.name})??b.name;o.push(`<div class="kan-cond-field"><span class="kan-cond-key">${g(h)}</span><span class="kan-cond-v">${g(m)}</span></div>`)}else if(p instanceof z)i.push(this.renderConditionNode(p.object,n,t+1));else if(p instanceof C)for(let b of p.object??[])b instanceof V&&i.push(this.renderConditionNode(b,n,t+1))}let c=o.length?`<div class="kan-cond-fields">${o.join("")}</div>`:"",l=i.length?`<div class="kan-cond-children">${i.join("")}</div>`:"",d=i.length>0,f=d?`<span class="kan-cond-op">${g(s)}</span>`:`<div class="kan-cond-type">${g(s)}</div>`;return`<div class="kan-cond ${d?"kan-cond-branch":"kan-cond-leaf"}">${f}${c}${l}</div>`}renderSectionHeading(e){let n=e,t=ee(n,bt);if(!t)return"<!-- LookRenderer.SectionHeading: no look.heading -->";let a=ee(n,Or);return`<div class="kan-section" id="${Ct(t)}"><h2 class="kan-section-title">${g(t)}</h2>`+(a?`<p class="kan-section-note">${g(a)}</p>`:"")+"</div>"}renderSectionNav(e){return e.length===0?"<!-- LookRenderer.SectionNav: no section headings in this view -->":`<nav class="kan-section-nav" aria-label="On this page">${e.map(t=>`<a class="kan-section-nav-link" href="#${g(t.slug)}">${g(t.label)}</a>`).join("")}</nav>`}async renderVersionDelta(e,n){let t=this.readEmbeddedCarrier(e,Je);if(!t)return"<!-- LookRenderer.VersionDelta: no look.metricPath -->";let a=async F=>{let B=await this.evaluateCarrierNum(t,F);return Number.isFinite(B)?B:void 0},s=await a(n);if(s===void 0)return"";let o=F=>this.uriOf(F).version??{major:0,minor:0,patch:0},i=(F,B)=>F.major-B.major||F.minor-B.minor||F.patch-B.patch,c={publisher:ne(n),package_:this.uriOf(n).package_,name:n.name},l=o(n),d,f;for(let F of le(this.catalog,c)){let B=o(F);i(B,l)<0&&(!f||i(B,f)>0)&&(d=F,f=B)}if(!d||!f)return'<div class="kan-delta kan-delta-first">First tracked in this version</div>';let p=await a(d);if(p===void 0)return"";let k=s-p,h=Math.abs(k)<.005?"flat":k>0?"up":"down",b=h==="up"?"\u25B2":h==="down"?"\u25BC":"\u2014",m=h==="up"?"#34d399":h==="down"?"#f87171":"var(--kan-text-faint)",$=`${f.major}.${f.minor}.${f.patch}`,v=320,_=46,K=14,O=30,U=F=>K+Math.min(1,Math.max(0,F))*(v-2*K),D=U(p),L=U(s),de=`<svg class="kan-delta-track" viewBox="0 0 ${v} ${_}" preserveAspectRatio="xMidYMid meet" xmlns="http://www.w3.org/2000/svg" role="img"><line x1="${K}" y1="${O}" x2="${v-K}" y2="${O}" class="kan-delta-base"/><line x1="${D.toFixed(1)}" y1="${O}" x2="${L.toFixed(1)}" y2="${O}" stroke="${m}" stroke-width="3"/><circle cx="${D.toFixed(1)}" cy="${O}" r="4" class="kan-delta-prev"/><circle cx="${L.toFixed(1)}" cy="${O}" r="5.5" fill="${m}"/><text x="${D.toFixed(1)}" y="${O-9}" text-anchor="middle" class="kan-delta-tick kan-delta-tick-prev">${p.toFixed(2)}</text><text x="${L.toFixed(1)}" y="${O+17}" text-anchor="middle" class="kan-delta-tick">${s.toFixed(2)}</text></svg>`;return`<div class="kan-delta"><div class="kan-delta-head"><span class="kan-delta-vs">vs ${g($)}</span><span class="kan-delta-badge ${h}">${k>0?"+":""}${k.toFixed(2)} ${b}</span></div>`+de+"</div>"}async renderTimePlot(e,n,t){let a=x(e,oe),s=x(e,on);if(!a||!s)return"<!-- LookRenderer.TimePlot: needs look.source + look.orderBy -->";let o=this.readEmbeddedCarrier(e,Ar),i=this.readEmbeddedCarrier(e,vt),c=[];for(let E of this.readPropertyValueReferences(n,a)){let Q=Z(this.catalog,{publisher:E.subject.publisher,package_:E.subject.package_,name:E.subject.name,...E.subject.version?{version:E.subject.version}:{}});if(!Q)continue;let T=this.readPropertyValueText(Q,s)??"",w=Date.parse(T);if(!Number.isFinite(w))continue;let A=o?await this.evaluateCarrier(o,Q)??"":"",W=(i?await this.evaluateCarrier(i,Q):void 0)??N(this.catalog,Q).label;c.push({t:w,dateStr:T,lane:A,label:W,href:this.hrefForSubject(Q,t),linkable:this.isLinkable(ne(Q),t)})}if(c.length===0)return"<!-- LookRenderer.TimePlot: no dated points -->";let l=[];for(let E of c)l.includes(E.lane)||l.push(E.lane);let d=Math.min(...c.map(E=>E.t)),f=Math.max(...c.map(E=>E.t));f===d&&(f=d+1);let p=l.some(E=>E),k=720,h=p?96:16,b=18,m=12,$=24,v=36,_=m+l.length*v+$,K=h,O=k-b,U=O-K,D=E=>K+(E-d)/(f-d)*U,L=E=>m+E*v+v/2,de=E=>Math.round(E*360/Math.max(1,l.length)),F=[];l.forEach((E,Q)=>{let T=L(Q);F.push(`<line x1="${K}" y1="${T.toFixed(1)}" x2="${O}" y2="${T.toFixed(1)}" class="kan-plot-guide"/>`),E&&F.push(`<text x="${(h-8).toFixed(1)}" y="${(T+4).toFixed(1)}" text-anchor="end" class="kan-plot-lane">${Re(E)}</text>`)});let B={},J=[];for(let E of c){let Q=l.indexOf(E.lane),w=((B[E.lane]=(B[E.lane]??0)+1)%3-1)*7,A=D(E.t),W=L(Q)+w,R=`${dn(E.dateStr)} \xB7 ${E.label}`,P=`<circle cx="${A.toFixed(1)}" cy="${W.toFixed(1)}" r="5" fill="hsl(${de(Q)},65%,60%)" class="kan-plot-pt"><title>${Re(R)}</title></circle>`;J.push(E.linkable?`<a href="${g(E.href)}" class="kan-plot-link">${P}</a>`:P)}let ue=`<text x="${K}" y="${(_-6).toFixed(1)}" text-anchor="start" class="kan-plot-axis">${Re(dn(new Date(d).toISOString()))}</text><text x="${O}" y="${(_-6).toFixed(1)}" text-anchor="end" class="kan-plot-axis">${Re(dn(new Date(f).toISOString()))}</text>`;return`<section class="kan-plot">${`<svg class="kan-plot-svg" viewBox="0 0 ${k} ${_}" preserveAspectRatio="xMidYMid meet" xmlns="http://www.w3.org/2000/svg" role="img">`+F.join("")+J.join("")+ue+"</svg>"}</section>`}renderDetails(e,n,t){let a=In(e,Vr),s=this.detailRows(n,t,a);return s?`<dl class="kan-details">${s}</dl>`:"<!-- LookRenderer.Details: no properties -->"}detailRows(e,n,t){let a=[];for(let s of e.statement){let o=s.predicate?.subject;if(!o||this.isMetaPredicate(o)||t.some(l=>M(l,o)))continue;let i=this.readLabelForUri({publisher:o.publisher,package_:o.package_,name:o.name})??o.name,c=this.detailValue(s,n,t);c&&a.push(`<dt class="kan-details-key">${g(i)}</dt><dd class="kan-details-val">${c}</dd>`)}return a.join("")}detailValue(e,n,t){if(e instanceof H)return Ft(e.object);if(e instanceof re||e instanceof te)return g(String(e.object));if(e instanceof I&&e.object instanceof j)return this.detailReferenceLink(e.object,n);if(e instanceof z)return this.detailEmbedded(e.object,n,t);if(e instanceof C){let a=e.object??[];return a.length>0&&a.every(s=>s instanceof V)?a.map(s=>this.detailEmbedded(s,n,t)).join(""):a.map(s=>s instanceof j?this.detailReferenceLink(s,n):s instanceof V?this.detailEmbedded(s,n,t):g(String(s))).filter(s=>s).join(", ")}return""}detailReferenceLink(e,n){let t=this.readLabelForUri({publisher:e.subject.publisher,package_:e.subject.package_,name:e.subject.name})??e.subject.name;if(!this.isLinkable(e.subject.publisher,n))return`<span class="kan-link-plain">${g(t)}</span>`;let a=this.urlForReference(e,void 0,n);return`<img class="kan-md-chip" src="${g(`${a}.svg`)}" alt="" loading="lazy"><a class="kan-link" href="${g(a)}">${g(t)}</a>`}detailEmbedded(e,n,t){let a=He(e),s=a?this.readLabelForUri({publisher:a.publisher,package_:a.package_,name:a.name})??a.name:"",o=this.detailRows(e,n,t);return'<div class="kan-details-embed">'+(s?`<span class="kan-details-type">${g(s)}</span>`:"")+(o?`<dl class="kan-details">${o}</dl>`:"")+"</div>"}rangeTypeRefs(e){let n=Z(this.catalog,e);if(!n)return[];let t=q(n,va);return t instanceof I&&t.object instanceof j?[t.object]:[]}async renderEmbeddedViews(e,n,t,a=""){let s=x(e,oe);if(!s)return"<!-- LookRenderer: EmbeddedViews missing look.source -->";let o=this.gatherValueItems(q(n,s)).filter(k=>k instanceof V);if(o.length===0)return"";let i=a?`${a}.${s.name}`:s.name,c=q(e,fs),l=c instanceof te?c.object===!0:c instanceof H&&c.object==="true",d=[],f=[];for(let k of o){let h=k,b=k.name?`${i}.${k.name}`:"";if(l&&b){let U=N(this.catalog,h).label||k.name||b;d.push(`<a class="kan-section-nav-link" href="#${g(b)}">${g(U)}</a>`)}let m=he(h),$=m.length>0?m:this.rangeTypeRefs(s),v=cn(h)?this.findCascadedLook(h):this.lookFromTypeRefs($),_="";if(v){let U=[];for(let D of Cn(v.declaration))U.push(await this.renderBand(D,h,t,[],b));_=U.join(`
125
+ `)}else{let U=this.detailRows(k,t,[]);_=U?`<dl class="kan-details">${U}</dl>`:""}let K=b?` id="${g(b)}"`:"",O=b?this.anchorLink(b):"";f.push(`<section class="kan-embedded-view"${K}>${O}${_}</section>`)}return`<div class="kan-embedded-views">${d.length>0?`<nav class="kan-section-nav" aria-label="On this page">${d.join("")}</nav>
126
+ `:""}${f.join(`
127
+ `)}</div>`}anchorLink(e){return`<a class="kan-anchor" href="#${g(e)}" title="${g(e)}" aria-label="Link to this resource">#</a>`}isMetaPredicate(e){return M(e,Ce)||M(e,Kn)||M(e,mt)||M(e,fn)||M(e,pn)||M(e,Pr)||M(e,jt)||M(e,jr)}renderPackageContents(e,n){let t=e.namespace||"";if(!t)return"";let a=this.catalog.filter(o=>o instanceof Y&&o.namespace===t&&o.name!==e.name);return a.length===0?`<!-- LookRenderer.PackageContents: no members in ${t} -->`:(a.sort((o,i)=>{let c=N(this.catalog,o).label,l=N(this.catalog,i).label;return c.localeCompare(l)}),`<section class="kan-pkg-grid">${a.map(o=>{let i=N(this.catalog,o),c=i.label,l=i.summary,d=l?Fn(l,160):"",f=this.hrefForSubject(o,n),p=this.svgUrlForSubject(o,n);return`<a class="kan-pkg-card" href="${g(f)}"><img class="kan-pkg-card-svg" src="${g(p)}" alt="" loading="lazy"/><span class="kan-pkg-card-body"><span class="kan-pkg-card-title">${g(c)}</span>`+(d?`<span class="kan-pkg-card-comment">${g(d)}</span>`:"")+"</span></a>"}).join("")}</section>`)}renderReferencedBy(e,n,t){let a=x(e,cs),s={publisher:ne(n),package_:this.uriOf(n).package_,name:n.name},o=X(s),i=p=>this.uriOf(p).version??{major:0,minor:0,patch:0},c=(p,k)=>p.major-k.major||p.minor-k.minor||p.patch-k.patch,l=new Map;for(let p of this.catalog){if(!(p instanceof Y))continue;let k=X({publisher:ne(p),package_:this.uriOf(p).package_,name:p.name});if(k!==o)for(let h of p.statement){let b=h.predicate?.subject;if(!b||M(b,Ce)||a&&X(b)!==X(a))continue;let m=[];if(h instanceof I&&h.object instanceof j)m.push(h.object);else if(h instanceof C)for(let K of h.object??[])K instanceof j&&m.push(K);if(!m.some(K=>X(K.subject)===o))continue;let $=X(b),v=l.get($);v||(v={label:this.readLabelForUri(b)??b.name,best:new Map},l.set($,v));let _=v.best.get(k);(!_||c(i(p),i(_))>0)&&v.best.set(k,p)}}return l.size===0?"<!-- LookRenderer.ReferencedBy: no incoming references -->":`<div class="kan-section"><h2 class="kan-section-title">Referenced by</h2></div>${[...l.values()].sort((p,k)=>p.label.localeCompare(k.label)).map(p=>{let h=[...p.best.values()].sort((b,m)=>N(this.catalog,b).label.localeCompare(N(this.catalog,m).label)).map(b=>this.resourceCard(b,t,n.namespace??void 0)).join("");return`<div class="kan-rel-group"><h3 class="kan-rel-prop"><span class="kan-rel-dir" title="incoming \u2014 references this resource">\u2190</span> ${g(p.label)}</h3><section class="kan-pkg-grid">${h}</section></div>`}).join("")}`}resourceCard(e,n,t){let a=N(this.catalog,e),s=a.summary?Fn(a.summary,160):"",o=he(e).map($=>this.readLabelForUri({publisher:$.subject.publisher,package_:$.subject.package_,name:$.subject.name})??$.subject.name),c='<span class="kan-pkg-card-body">'+(o.length>0?`<span class="kan-card-types">${o.map($=>`<span class="kan-card-type">${g($)}</span>`).join("")}</span>`:"")+`<span class="kan-pkg-card-title">${g(a.label)}</span>`+(s?`<span class="kan-pkg-card-comment">${g(s)}</span>`:"")+"</span>",l=this.isLinkable(ne(e),n),d=l?`<a class="kan-pkg-card-link" href="${g(this.hrefForSubject(e,n))}"><img class="kan-pkg-card-svg" src="${g(this.svgUrlForSubject(e,n))}" alt="" loading="lazy"/>`+c+"</a>":`<span class="kan-pkg-card-link">${c}</span>`,f=e.namespace||"",p=this.uriOf(e),k=p.publisher,h=p.package_,b=p.version?Qe(p.version):"",m="";if(h&&f!==t){let $=b?`<span class="kan-card-at">@</span><span class="kan-card-ver">${g(b)}</span>`:"";if(l){let v=`<span class="kan-card-pkg">${g(h)}</span>${$}`;m=`<a class="kan-pkg-card-foot" href="${g(this.packageHref(k,h,b||void 0))}" title="${g(b?`${h}@${b}`:h)}">${v}</a>`}else{let v=`<span class="kan-card-pub">${g(k)}/</span><span class="kan-card-pkg">${g(h)}</span>${$}`;m=`<span class="kan-pkg-card-foot" title="${g(b?`${k}/${h}@${b}`:`${k}/${h}`)}">${v}</span>`}}return`<div class="kan-pkg-card kan-pkg-card--foot">${d}${m}</div>`}renderInstances(e,n,t){let a={publisher:ne(n),package_:this.uriOf(n).package_,name:n.name},s=this.readTransitive(e),o=s?this.descendantTypeKeys(a):new Set([X(a)]),i=m=>this.uriOf(m).version??{major:0,minor:0,patch:0},c=(m,$)=>m.major-$.major||m.minor-$.minor||m.patch-$.patch,l=new Map;for(let m of this.catalog){if(!(m instanceof Y)||!he(m).some(K=>o.has(X(K.subject))))continue;let v=X({publisher:ne(m),package_:this.uriOf(m).package_,name:m.name}),_=l.get(v);(!_||c(i(m),i(_))>0)&&l.set(v,m)}let d=[...l.values()];if(d.length===0)return"<!-- LookRenderer.Instances: none -->";d.sort((m,$)=>N(this.catalog,m).label.localeCompare(N(this.catalog,$).label));let f=48,p=d.slice(0,f),k=p.map(m=>this.resourceCard(m,t,n.namespace??void 0)),h=d.length>f?` <span class="kan-count">${p.length} of ${d.length}</span>`:` <span class="kan-count">${d.length}</span>`;return`<div class="kan-section"><h2 class="kan-section-title">${s?"Instances (including subtypes)":"Instances"}${h}</h2></div><section class="kan-pkg-grid">${k.join("")}</section>`}descendantTypeKeys(e){let n=X(e),t=new Set([n]),a=new Set;for(let s of this.catalog)if(s instanceof Y)for(let o of he(s)){let i=o.subject,c=X(i);a.has(c)||(a.add(c),Dn(this.catalog,i).some(l=>X(l)===n)&&t.add(c))}return t}referencesTarget(e,n,t){for(let a of e.statement){let s=a.predicate?.subject;if(s&&M(s,Ce)||t&&!(s&&X(s)===X(t)))continue;let o=[];if(a instanceof I&&a.object instanceof j)o.push(a.object);else if(a instanceof C)for(let i of a.object??[])i instanceof j&&o.push(i);for(let i of o)if(X(i.subject)===n)return!0}return!1}async renderFeaturedResource(e,n){let t=x(e,oe);if(!t)return"<!-- LookRenderer.FeaturedResource: no look.source -->";let a=le(this.catalog,t),s=l=>this.uriOf(l).version??{major:0,minor:0,patch:0},o=a.length>0?a.slice().sort((l,d)=>{let f=s(l),p=s(d);return p.major-f.major||p.minor-f.minor||p.patch-f.patch})[0]:Z(this.catalog,t);if(!o)return`<!-- LookRenderer.FeaturedResource: ${t.publisher}/${t.package_}/${t.name} not found -->`;let i=await this.renderHtml(o),c=this.hrefForSubject(o,n);return`<section class="kan-featured"><a class="kan-featured-permalink" href="${g(c)}">View full resource \u2192</a>`+i+"</section>"}async renderDistribution(e,n){let t=async T=>{let w=this.readEmbeddedCarrier(e,T);if(!w)return;let A=await this.evaluateCarrierNum(w,n);return Number.isFinite(A)?A:void 0},a=await t(Rr),s=await t(Er);if(a===void 0||s===void 0||a<=0||s<=0)return"<!-- LookRenderer.Distribution: needs resolvable alphaPath + betaPath (> 0) -->";let o=await t(Je)??a/(a+s),i=await t(wt),c=await t(_t),l=await t(On),d=l!==void 0?`hsl(${l},65%,60%)`:"var(--kan-accent)",f=T=>Number.isInteger(T)?String(T):T.toFixed(1),p=280,k=168,h={top:14,right:14,bottom:24,left:14},b=p-h.left-h.right,m=k-h.top-h.bottom,$=120,v=1e-4,_=[],K=[],O=0;for(let T=0;T<=$;T++){let w=T/$;w<v?w=v:w>1-v&&(w=1-v);let A=Math.exp((a-1)*Math.log(w)+(s-1)*Math.log(1-w));_.push(w),K.push(A),A>O&&(O=A)}let U=T=>h.left+Math.min(1,Math.max(0,T))*b,D=T=>h.top+(1-(O>0?T/O:0))*m,L=h.top+m,de=_.map((T,w)=>`${U(T).toFixed(1)},${D(K[w]).toFixed(1)}`),F=`M${U(0).toFixed(1)},${L.toFixed(1)} L${de.join(" L")} L${U(1).toFixed(1)},${L.toFixed(1)} Z`,B="";if(i!==void 0&&c!==void 0&&c>i){let T=[`${U(i).toFixed(1)},${L.toFixed(1)}`];for(let w=0;w<=$;w++)_[w]>=i&&_[w]<=c&&T.push(`${U(_[w]).toFixed(1)},${D(K[w]).toFixed(1)}`);T.push(`${U(c).toFixed(1)},${L.toFixed(1)}`),B=`<path d="M${T.join(" L")} Z" fill="${d}" fill-opacity="0.3"/>`}let J=U(o),ue=`<line x1="${J.toFixed(1)}" y1="${h.top.toFixed(1)}" x2="${J.toFixed(1)}" y2="${L.toFixed(1)}" stroke="${d}" stroke-width="1.5" stroke-dasharray="3 3"/><text x="${J.toFixed(1)}" y="${(h.top-3).toFixed(1)}" text-anchor="middle" class="kan-dist-mean">\u03BC ${o.toFixed(2)}</text>`,fe=`<text x="${U(0).toFixed(1)}" y="${(L+15).toFixed(1)}" text-anchor="start" class="kan-dist-axis">0</text><text x="${U(1).toFixed(1)}" y="${(L+15).toFixed(1)}" text-anchor="end" class="kan-dist-axis">1</text>`,E=`<svg class="kan-dist-svg" viewBox="0 0 ${p} ${k}" preserveAspectRatio="xMidYMid meet" xmlns="http://www.w3.org/2000/svg" role="img"><line x1="${h.left}" y1="${L.toFixed(1)}" x2="${(p-h.right).toFixed(1)}" y2="${L.toFixed(1)}" class="kan-dist-base"/><path d="${F}" fill="${d}" fill-opacity="0.12"/>`+B+`<polyline points="${de.join(" ")}" fill="none" stroke="${d}" stroke-width="2"/>`+ue+fe+"</svg>",Q=i!==void 0&&c!==void 0?` \xB7 95% CI [${i.toFixed(2)}\u2013${c.toFixed(2)}]`:"";return`<figure class="kan-dist">${E}<figcaption class="kan-dist-caption">Beta(${f(a)}, ${f(s)})${Q}</figcaption></figure>`}renderPublisherPackages(e,n){let t=new Map;for(let c of this.catalog){if(!(c instanceof Y)||ne(c)!==n)continue;let l=this.uriOf(c).package_;if(!l||c.name!==l)continue;let d=t.get(l),f=this.uriOf(c).version,p=d?this.uriOf(d).version:void 0;(!d||f&&(!p||Ze(f,p)>0))&&t.set(l,c)}let a,s=q(e,hr),o=s instanceof C?s.object??[]:s instanceof I&&s.object instanceof j?[s.object]:[];if(o.length>0){a=[];for(let c of o){if(!(c instanceof j))continue;let l=c.subject.package_,d=t.get(l);d&&a.push([l,d])}}else a=[...t.entries()].sort((c,l)=>c[0].localeCompare(l[0]));return a.length===0?"":`<section class="kan-pkg-grid">${a.map(([c,l])=>{let d=N(this.catalog,l),f=d.label,p=d.summary,k=p?Fn(p,160):"",h=this.svgUrlForSubject(l,n);return`<a class="kan-pkg-card" href="${g(this.packageHref(n,c))}"><img class="kan-pkg-card-svg" src="${g(h)}" alt="" loading="lazy"/><span class="kan-pkg-card-body"><span class="kan-pkg-card-title">${g(f)}</span>`+(k?`<span class="kan-pkg-card-comment">${g(k)}</span>`:"")+"</span></a>"}).join("")}</section>`}async renderTimeline(e,n){let t=x(e,oe);if(!t)return"<!-- LookRenderer.Timeline: no look.source -->";let a=x(e,on),s=this.findInstancesOfClass(t,this.readTransitive(e));if(s.length===0)return"<!-- LookRenderer.Timeline: no instances -->";let o=f=>a?this.readPropertyValueText(f,a)??"":"",i=s.slice().sort((f,p)=>o(f).localeCompare(o(p))),c=x(e,St),l=this.readEmbeddedCarrier(e,Je);return c&&l?this.renderTrajectoryChart(i,c,l,e,n,o):`<section class="kan-timeline"><ol>
128
+ ${i.map(f=>{let p=this.uriOf(f),k=p.package_,h=p.version,b=this.resourceHref({publisher:ne(f),package_:k,name:f.name,...h?{version:h}:{}},n),m=o(f),$=m?`<span class="kan-timeline-date">${g(m)}</span>`:"",v=h?Qe(h):f.name;return`<li class="kan-timeline-node"><a href="${g(b)}"><span class="kan-timeline-key">${g(v)}</span>${$}</a></li>`}).join(`
129
+ `)}
130
+ </ol></section>`}async renderTrajectoryChart(e,n,t,a,s,o){let i=a,c=this.readEmbeddedCarrier(a,On),l=this.readEmbeddedCarrier(a,wt),d=this.readEmbeddedCarrier(a,_t),f=ee(i,es),p=Ot(i,Zr),k=Ot(i,Qr),h=e.length,b=await this.collectTrackedSeries(e,n,t,{hueBy:c,lowerPath:l,upperPath:d});if(b.length===0)return"<!-- LookRenderer.Timeline: no tracked series -->";let m=[];for(let R of b){for(let P of R.points)P!==null&&m.push(P);for(let P of R.lower??[])P!==null&&m.push(P);for(let P of R.upper??[])P!==null&&m.push(P)}if(m.length===0)return"<!-- LookRenderer.Timeline: no metric values -->";let $=Math.min(...m),v=Math.max(...m);v-$<1e-9&&($-=.5,v+=.5);let _=(v-$)*.08,K=p!==void 0?p:$-_,O=k!==void 0?k:v+_;O-K<1e-9&&(O=K+1);let U=1e3,D=440,L={top:28,right:24,bottom:56,left:52},de=U-L.left-L.right,F=D-L.top-L.bottom,B=R=>h<=1?L.left+de/2:L.left+R/(h-1)*de,J=R=>L.top+(1-(R-K)/(O-K))*F,ue=(R,P)=>R.hue!==void 0?R.hue:Math.round(P*360/b.length),fe=[];for(let R=0;R<5;R++){let P=K+R*(O-K)/4,me=J(P);fe.push(`<line x1="${L.left}" y1="${me.toFixed(1)}" x2="${(U-L.right).toFixed(1)}" y2="${me.toFixed(1)}" class="kan-fan-grid"/>`),fe.push(`<text x="${(L.left-8).toFixed(1)}" y="${(me+4).toFixed(1)}" class="kan-fan-axis" text-anchor="end">${P.toFixed(2)}</text>`)}let E=[];e.forEach((R,P)=>{let me=this.hrefForSubject(R,s),pe=this.uriOf(R).version,ke=pe?Qe(pe):"",se=B(P),ae=dn(o(R));E.push(`<a href="${g(me)}" class="kan-fan-xtick"><line x1="${se.toFixed(1)}" y1="${L.top}" x2="${se.toFixed(1)}" y2="${(D-L.bottom).toFixed(1)}" class="kan-fan-vline"/><text x="${se.toFixed(1)}" y="${(D-L.bottom+20).toFixed(1)}" class="kan-fan-xlabel" text-anchor="middle">${Re(ke||R.name)}</text>`+(ae?`<text x="${se.toFixed(1)}" y="${(D-L.bottom+36).toFixed(1)}" class="kan-fan-xdate" text-anchor="middle">${Re(ae)}</text>`:"")+"</a>")});let Q=[];b.forEach((R,P)=>{if(!R.lower||!R.upper)return;let me=ue(R,P),pe=[],ke=[];for(let ae=0;ae<h;ae++){let Ee=R.upper[ae],Se=R.lower[ae];Ee==null||Se===null||Se===void 0||(pe.push(`${B(ae).toFixed(1)},${J(Ee).toFixed(1)}`),ke.unshift(`${B(ae).toFixed(1)},${J(Se).toFixed(1)}`))}let se=pe.concat(ke);se.length<3||Q.push(`<polygon class="kan-fan-band" points="${se.join(" ")}" fill="hsl(${me},65%,60%)"/>`)});let T=[];b.forEach((R,P)=>{let pe=`hsl(${ue(R,P)},65%,60%)`,ke=[],se=[];R.points.forEach((ae,Ee)=>{if(ae===null)return;let Se=B(Ee),ie=J(ae);ke.push(`${Se.toFixed(1)},${ie.toFixed(1)}`),se.push(`<circle cx="${Se.toFixed(1)}" cy="${ie.toFixed(1)}" r="3.5" fill="${pe}"/>`)}),ke.length!==0&&T.push(`<g class="kan-fan-series" data-series="${g(R.key)}"><polyline points="${ke.join(" ")}" fill="none" stroke="${pe}" stroke-width="2" stroke-linejoin="round" stroke-linecap="round"/>`+se.join("")+"</g>")});let w=`<svg class="kan-fan-svg" viewBox="0 0 ${U} ${D}" preserveAspectRatio="xMidYMid meet" xmlns="http://www.w3.org/2000/svg" role="img">`+fe.join("")+E.join("")+Q.join("")+T.join("")+"</svg>",A=f?`${g(f)}=`:"",W=b.map((R,P)=>{let me=ue(R,P),pe=R.points.filter(ie=>ie!==null),ke=pe.length?pe[0]:void 0,se=pe.length?pe[pe.length-1]:void 0,ae="";if(se!==void 0&&ke!==void 0){let ie=se-ke;if(Math.abs(ie)>=.005){let Te=ie>0?"up":"down",Le=ie>0?"\u25B2":"\u25BC";ae=` <span class="kan-fan-delta ${Te}">${ie>0?"+":""}${ie.toFixed(2)} ${Le}</span>`}else ae=' <span class="kan-fan-delta flat">\u2014</span>'}let Ee=se!==void 0?`${A}${se.toFixed(2)}`:"\u2014",Se=R.lastSubject&&this.isLinkable(ne(R.lastSubject),s)?`<a href="${g(this.hrefForSubject(R.lastSubject,s))}">${g(R.label)}</a>`:g(R.label);return`<div class="kan-fan-legend-item" style="--kan-fan-hue:${me}"><span class="kan-fan-swatch"></span><span class="kan-fan-legend-label">${Se}</span><span class="kan-fan-legend-cur">${Ee}${ae}</span></div>`});return`<section class="kan-fan"><div class="kan-fan-chart">${w}</div><div class="kan-fan-legend">${W.join("")}</div></section>`}resolveResourceQuery(e){let n=i=>{let c=x(i,Yr);if(!c)return;let l=x(i,on),d=ee(i,Xr),f=this.readPropertyValueText(i,Jr),p=f!==void 0?Number(f):NaN;return{ofClass:c,...l?{orderBy:l}:{},descending:d==="descending",...Number.isInteger(p)&&p>0?{limit:p}:{}}},t=this.readEmbeddedCarrier(e,oe);if(t)return n(t);let a=x(e,oe);if(!a)return;let s=Z(this.catalog,a);return(s?he(s).some(i=>M(i.subject,Wr)):!1)&&s?n(s):{ofClass:a,descending:!1}}applyQueryShape(e,n){let t=e;if(n.orderBy){let a=s=>this.readPropertyValueText(s,n.orderBy)??"";t=t.slice().sort((s,o)=>a(s).localeCompare(a(o))),n.descending&&t.reverse()}return n.limit!==void 0&&(t=t.slice(0,n.limit)),t}renderResourceGrid(e,n,t){let a=this.resolveResourceQuery(e),s=x(e,oe)??a?.ofClass;if(!s)return"<!-- LookRenderer.ResourceGrid: no look.source -->";let o=Z(this.catalog,s),i=o?Bn(this.catalog,o)!==void 0:!1,c=[];if(i&&t){let d=this.readPropertyValueReferences(t,s);for(let f of d){let p=Z(this.catalog,{publisher:f.subject.publisher,package_:f.subject.package_,name:f.subject.name,...f.subject.version?{version:f.subject.version}:{}});p&&c.push(p)}}else a?c=this.applyQueryShape(this.findInstancesOfClass(a.ofClass,this.readTransitive(e)),a):c=this.findInstancesOfClass(s,this.readTransitive(e));if(c.length===0)return`<!-- LookRenderer.ResourceGrid: no resources for ${s.publisher}/${s.package_}/${s.name} -->`;let l=[];for(let d of c){let f=N(this.catalog,d),p=f.label,k=f.summary,h=this.uriOf(d),b=h.package_,m=h.version,$=this.resourceHref({publisher:ne(d),package_:b,name:d.name,...m?{version:m}:{}},n),v=k?`<p class="kan-resource-card-subtitle">${g(k)}</p>`:"",_=`<h3 class="kan-resource-card-title">${g(p)}</h3>${v}`;l.push(this.isLinkable(ne(d),n)?`<a class="kan-resource-card" href="${g($)}">${_}</a>`:`<span class="kan-resource-card">${_}</span>`)}return`<section class="kan-resource-grid">
131
+ ${l.join(`
132
+ `)}
133
+ </section>`}readTransitive(e){let n=q(e,ps);return n instanceof te?n.object===!0:n instanceof H&&n.object==="true"}findInstancesOfClass(e,n=!1){let t=n?this.descendantTypeKeys(e):new Set([X(e)]),a=[];for(let s of this.catalog)s instanceof Y&&he(s).some(o=>t.has(X(o.subject)))&&a.push(s);return a}renderBreadcrumb(e,n,t){let s=(e.namespace||"").split("/");if(s.length<2)return"";let o=s[0],i=s[1]??"",c=i.split("@")[0]??"",l=i.split("@")[1]??"";if(!o||!c)return"";if(t?.bareOverview)return`<nav class="kan-breadcrumb"><ol>
134
+ <li><a href="${g(this.publisherHref(o))}">${g(o)}</a></li>
135
+ <li aria-current="page">${g(c)}</li>
136
+ </ol></nav>`;let d=e.name,p=!!Z(this.catalog,{publisher:o,package_:c,name:c}),k=l?`${c}@${l}`:c,h=this.resourceHref({publisher:o,package_:c,name:c,...l?{version:xn(l)}:{}},o),b=e.name===c,m=[];return m.push(`<li><a href="${g(this.publisherHref(o))}">${g(o)}</a></li>`),b?m.push(`<li aria-current="page">${g(k)}</li>`):(m.push(p?`<li><a href="${g(h)}">${g(k)}</a></li>`:`<li>${g(k)}</li>`),m.push(`<li aria-current="page">${g(d)}</li>`)),`<nav class="kan-breadcrumb"><ol>
137
+ ${m.join(`
138
+ `)}
139
+ </ol></nav>`}renderNavGroup(e,n){let t=q(this.publisherSubject(n),Ua),a=t instanceof C?t.object??[]:t instanceof I&&t.object instanceof j?[t.object]:[];if(a.length===0)return"";let s=[];for(let o of a){if(!(o instanceof j))continue;let i=Z(this.catalog,{publisher:o.subject.publisher,package_:o.subject.package_,name:o.subject.name}),{href:c,label:l}=this.resolveNavEntry(o,i,n),d=this.hrefForSubject(e,n),f=c===d?' aria-current="page"':"";s.push(`<li><a class="kan-nav-link" href="${g(c)}"${f}>${g(l)}</a></li>`)}return`<nav class="kan-site-nav"><ul>
140
+ ${s.join(`
141
+ `)}
142
+ </ul></nav>`}renderSiteFooter(e){let n=q(this.publisherSubject(e),Ca),t;if(n instanceof z?t=n.object:n instanceof I&&n.object instanceof j&&(t=Z(this.catalog,{publisher:n.object.subject.publisher,package_:n.object.subject.package_,name:n.object.subject.name})),!t)return"";let a=ee(t,Ia),s=q(t,Fa),o=s instanceof C?s.object??[]:s instanceof I&&s.object instanceof j?[s.object]:[],i=[];for(let l of o){if(!(l instanceof j))continue;let d=Z(this.catalog,{publisher:l.subject.publisher,package_:l.subject.package_,name:l.subject.name}),{href:f,label:p}=this.resolveNavEntry(l,d,e);i.push(`<a class="kan-footer-link" href="${g(f)}">${g(p)}</a>`)}if(!a&&i.length===0)return"";let c=[];return i.length>0&&c.push(`<div class="kan-footer-links">${i.join("")}</div>`),a&&c.push(`<p class="kan-footer-text">${g(a)}</p>`),`<footer class="kan-site-footer">${c.join(`
143
+ `)}</footer>`}resolveNavEntry(e,n,t){if(n&&he(n).map(c=>c.subject).some(c=>c.publisher===Rn.publisher&&c.package_===Rn.package_&&c.name===Rn.name)){let c=ee(n,Kn),l=q(n,ht);if(l instanceof I&&l.object instanceof j){let d=l.object,f=this.readLabelForUri({publisher:d.subject.publisher,package_:d.subject.package_,name:d.subject.name});return{href:this.urlForReference(d,ht,t),label:c??f??d.subject.name}}}let a=this.resourceHref({publisher:e.subject.publisher,package_:e.subject.package_,...e.subject.version?{version:e.subject.version}:{},name:e.subject.name},t,"*"),s=n?N(this.catalog,n).label:e.subject.name;return{href:a,label:s}}codeHighlighter(){return this._codeHighlighter||(this._codeHighlighter=new sn(this.collectGrammars())),this._codeHighlighter}collectGrammars(){let e=[];for(let n of this.catalog){if(!(n instanceof Y)||!he(n).some(i=>M(i.subject,br)))continue;let t=ee(n,vr);if(!t)continue;let a=q(n,yr),s=a instanceof C?a.object??[]:[],o=[];for(let i of s){if(!(i instanceof V))continue;let c=x(i,$r),l=ee(i,Sr);!c||!l||o.push({tokenClass:c.name,pattern:l})}e.push({language:t,rules:o})}return e}renderLinks(e,n){let t=x(e,oe);if(!t)return"";let a=q(n,t),s=[];a instanceof C?s=a.object??[]:a instanceof z?s=[a.object]:a instanceof I&&a.object instanceof j&&(s=[a.object]);let o=[];for(let i of s){let c;if(i instanceof V?c=i:i instanceof j&&(c=Z(this.catalog,{publisher:i.subject.publisher,package_:i.subject.package_,name:i.subject.name})),!c)continue;let l=ee(c,_r);if(!l)continue;let d=ee(c,Kn)??l,f=ee(c,mt),p=f?` title="${g(f)}"`:"";o.push(`<a class="kan-extlink" href="${g(l)}"${p} target="_blank" rel="noopener noreferrer">${g(d)}</a>`)}return o.length===0?"":`<section class="kan-extlink-row">${o.join("")}</section>`}renderMarkdown(e,n,t){let a=x(e,oe);if(!a)return"<!-- LookRenderer.Markdown: no look.source -->";let s=q(n,a),o=new Map,i;if(s instanceof Ve?i=this.resolveMarkdownLinks(s,t,o):s instanceof H?i=s.object:i=this.readPropertyValueText(n,a),!i)return"";let c=this.codeHighlighter(),l=We(i,{highlight:(d,f)=>c.highlight(d,f)});for(let[d,f]of o){let p=new RegExp('(<a href="'+It(d)+'">)([^<]*)(</a>)',"g");l=l.replace(p,`$1<img class="kan-md-chip" src="${g(f)}" alt="" loading="lazy">$2$3`)}return`<section class="kan-markdown">
144
+ ${l}
145
+ </section>`}resolveMarkdownLinks(e,n,t){let a=e.object,s=[...e.links].sort((o,i)=>i.startOffset-o.startOffset);for(let o of s){let i;if(o.target&&this.isLinkable(o.target.subject.publisher,n)){let c=o.target.subject,l=(o.displayText??this.readLabelForUri({publisher:c.publisher,package_:c.package_,name:c.name})??o.reference).replace(/[[\]]/g,""),d=this.resourceHref({publisher:c.publisher,package_:c.package_,name:c.name,...c.version?{version:c.version}:{}},n);t&&t.set(d,`${d}.svg`),i=`[${l}](${d})`}else if(o.target){let c=o.target.subject;i=(o.displayText??this.readLabelForUri({publisher:c.publisher,package_:c.package_,name:c.name})??o.reference).replace(/[[\]]/g,"")}else i=o.displayText??o.reference;a=a.slice(0,o.startOffset)+i+a.slice(o.endOffset)}return a}renderRawMarkdown(e){let n=this.findCascadedLook(e);if(!n)return;let t=Cn(n.declaration),a=[];for(let s of t){let o=He(s);if(!o||!M(o,kt))continue;let i=x(s,oe);if(!i)continue;let c=this.readPropertyValueText(e,i);c&&a.push(c)}return a.length>0?a.join(`
146
+
147
+ `):void 0}renderHero(e,n,t){let a=b=>{let m=q(e,b);return m instanceof te?m.object===!0:m instanceof H&&m.object==="true"},s=a(ds),o=!s&&a(us),i=s||o,l=[`<header class="${s?"kan-hero kan-hero-has-avatar":o?"kan-hero kan-hero-has-icon":"kan-hero"}">`];if(i){let b=this.svgUrlForSubject(n,t),m=s?"kan-hero-avatar":"kan-hero-icon";l.push(`<img class="${m}" src="${g(b)}" alt="" loading="lazy"/>`),l.push('<div class="kan-hero-text">')}let d=x(e,os);if(d){let b=this.readPropertyValueText(n,d);b&&l.push(`<span class="kan-hero-eyebrow">${g(gn(b)??b)}</span>`)}let f=x(e,ss),p="";f&&(p=this.readPropertyValueText(n,f)??""),p||(p=N(this.catalog,n).label),l.push(`<h1 class="kan-hero-title">${g(gn(p)??p)}</h1>`);let k=x(e,is);if(k){let b=this.readPropertyValueText(n,k);b&&l.push(`<p class="kan-hero-subtitle">${g(gn(b)??b)}</p>`)}let h=x(e,Et);if(h){let b=this.readPropertyValueReferences(n,h);if(b.length>0){let m=b.map($=>this.renderBadge($,Et,t)).join("");l.push(`<div class="kan-hero-badges">${m}</div>`)}}return i&&l.push("</div>"),l.push("</header>"),l.join(`
148
+ `)}renderPropertyList(e,n,t){let a=x(e,oe);if(!a)return"<!-- LookRenderer: PropertyList missing look.source -->";let s=this.readLabelForUri(a)??a.name,o=q(n,a),i=this.gatherValueItems(o),c=i.length>0?i.map(l=>`<li>${this.renderInlineValue(l,oe,t)}</li>`).join(""):'<li class="kan-empty">(no values)</li>';return['<section class="kan-property-list">',`<h3 class="kan-property-list-title">${g(s)}</h3>`,`<ul class="kan-property-list-items">${c}</ul>`,"</section>"].join(`
149
+ `)}renderPropertyTable(e,n,t,a=""){let s=x(e,oe);if(!s)return"<!-- LookRenderer: PropertyTable missing look.source -->";let o=this.gatherValueItems(q(n,s)).filter(d=>d instanceof V);if(o.length===0)return"";let i=this.readLabelForUri(s)??s.name,c=a?`${a}.${s.name}`:s.name,l=x(e,Hr);return this.renderEmbeddedTable(o,t,i,c,l)}renderEmbeddedTable(e,n,t,a,s){let o=[],i=new Set;for(let m of e)for(let $ of m.statement){let v=$.predicate?.subject;if(!v||this.isMetaPredicate(v))continue;let _=`${v.publisher}/${v.package_}/${v.name}`;i.has(_)||(i.add(_),o.push({uri:{publisher:v.publisher,package_:v.package_,name:v.name},label:this.readLabelForUri(v)??v.name}))}if(o.length===0)return"";let c=e.map(m=>N(this.catalog,m).label),l=e.some((m,$)=>c[$]!==""&&c[$]!==m.name),d=!!a,f=(d?'<th class="kan-anchor-col"></th>':"")+(l?"<th></th>":"")+o.map(m=>`<th>${g(m.label)}</th>`).join(""),p=e.map((m,$)=>{let v=d&&m.name?`${a}.${m.name}`:"",_=v?` id="${g(v)}"`:"",K=d?`<td class="kan-anchor-col">${v?this.anchorLink(v):""}</td>`:"",O=l?`<th scope="row">${g(c[$]??"")}</th>`:"",U=o.map(D=>{let L=q(m,D.uri);return L?`<td>${this.tableCellValue(L,n,s)}</td>`:"<td></td>"}).join("");return`<tr${_}>${K}${O}${U}</tr>`}).join(""),k=d&&a?` id="${g(a)}"`:"",h=d&&a?this.anchorLink(a):"",b=t?`<caption>${g(t)}${h}</caption>`:"";return`<table class="kan-property-table"${k}>${b}<thead><tr>${f}</tr></thead><tbody>${p}</tbody></table>`}tableCellValue(e,n,t){if(t&&M(t,yt)){if(e instanceof re)return this.barMarkup(String(e.object));if(e instanceof H&&Number.isFinite(Number(e.object)))return this.barMarkup(e.object)}if(e instanceof Ve)return this.statementToMarkdownHtml(e,n);if(e instanceof H)return Ft(e.object);if(e instanceof re||e instanceof te)return g(String(e.object));if(e instanceof I&&e.object instanceof j)return this.detailReferenceLink(e.object,n);if(e instanceof z)return this.renderEmbeddedTable([e.object],n);if(e instanceof C){let a=e.object??[],s=a.filter(o=>o instanceof V);return s.length>0&&s.length===a.length?this.renderEmbeddedTable(s,n):a.map(o=>o instanceof j?this.detailReferenceLink(o,n):o instanceof V?this.renderEmbeddedTable([o],n):g(String(o))).filter(o=>o).join(", ")}return""}statementToMarkdownHtml(e,n){let t=new Map,a;if(e instanceof Ve?a=this.resolveMarkdownLinks(e,n,t):e instanceof H&&(a=e.object),!a)return"";let s=this.codeHighlighter(),o=We(a,{highlight:(i,c)=>s.highlight(i,c)});for(let[i,c]of t){let l=new RegExp('(<a href="'+It(i)+'">)([^<]*)(</a>)',"g");o=o.replace(l,`$1<img class="kan-md-chip" src="${g(c)}" alt="" loading="lazy">$2$3`)}return o}renderBadgeRow(e,n,t){let a=x(e,oe);if(!a)return"<!-- LookRenderer: BadgeRow missing look.source -->";let s=this.readPropertyValueReferences(n,a);return s.length===0?"":`<div class="kan-badge-row">${s.map(i=>this.renderBadge(i,oe,t)).join("")}</div>`}renderChipRow(e,n,t){let a=In(e,gs);if(a.length===0)return"<!-- LookRenderer: ChipRow has no look.chips -->";let s=[];for(let o of a){let i=q(n,o);if(!i)continue;let c=this.readLabelForUri(o)??o.name,l=this.renderStatementInlineValue(i,o,t);l&&s.push(`<span class="kan-chip"><span class="kan-chip-key">${g(c)}</span> <span class="kan-chip-val">${l}</span></span>`)}return s.length===0?"":`<div class="kan-chip-row">${s.join("")}</div>`}async renderReferenceList(e,n,t){let a=In(e,Lt);if(a.length===0)return"<!-- LookRenderer: ReferenceList has no look.entries -->";let s=this.readEmbeddedCarrier(e,vt),o=this.readEmbeddedCarrier(e,Br),i=[];for(let c of a){let l=this.readPropertyValueReferences(n,c);if(l.length===0)continue;let d=this.readLabelForUri(c)??c.name;if(s){let f=[];for(let k of l)f.push(await this.renderDetailRow(k,s,o,t));let p=f.filter(k=>k).join("");p&&i.push(`<dt>${g(d)}</dt><dd><ul class="kan-ref-rows">${p}</ul></dd>`)}else{let f=l.map(p=>this.renderReferenceLink(p,Lt,t)).join(", ");i.push(`<dt>${g(d)}</dt><dd>${f}</dd>`)}}return i.length===0?"":`<dl class="kan-reference-list">${i.join("")}</dl>`}async renderDetailRow(e,n,t,a){let s=Z(this.catalog,{publisher:e.subject.publisher,package_:e.subject.package_,name:e.subject.name,...e.subject.version?{version:e.subject.version}:{}});if(!s)return"";let o=await this.evaluateCarrier(n,s)??N(this.catalog,s).label,i="";if(t){let f=await this.evaluateCarrier(t,s);f&&(i=`<span class="kan-ref-badge">${g(f)}</span>`)}let c=`<span class="kan-ref-text">${g(o)}</span>${i}`;if(!this.isLinkable(ne(s),a))return`<li class="kan-ref-row"><span class="kan-ref-rowlink">${c}</span></li>`;let l=this.hrefForSubject(s,a),d=this.svgUrlForSubject(s,a);return`<li class="kan-ref-row"><a class="kan-ref-rowlink" href="${g(l)}"><img class="kan-ref-icon" src="${g(d)}" alt="" loading="lazy"/>`+c+"</a></li>"}readPropertyValueText(e,n){let t=q(e,n);if(t){if(t instanceof H)return t.object;if(t instanceof re||t instanceof te)return String(t.object);if(t instanceof I){let a=t.object;return this.readLabelForUri({publisher:a.subject.publisher,package_:a.subject.package_,name:a.subject.name})??a.subject.name}if(t instanceof z)return this.readEmbeddedText(t.object,0)||void 0;if(t instanceof C)return(t.object??[]).map(s=>s instanceof j?this.readLabelForUri({publisher:s.subject.publisher,package_:s.subject.package_,name:s.subject.name})??s.subject.name:s instanceof V?this.readEmbeddedText(s,0):String(s)).filter(s=>s).join(", ")}}readEmbeddedText(e,n){if(n>=Rt)return"\u2026";let t=[];for(let a of e.statement){let s=a.predicate?.subject;if(!(s&&M(s,Ce)))if(a instanceof H)t.push(a.object);else if(a instanceof re||a instanceof te)t.push(String(a.object));else if(a instanceof I){let o=a.object;t.push(this.readLabelForUri({publisher:o.subject.publisher,package_:o.subject.package_,name:o.subject.name})??o.subject.name)}else a instanceof z&&t.push(this.readEmbeddedText(a.object,n+1))}return t.filter(a=>a).join(", ")}readPropertyValueReferences(e,n){let t=q(e,n);if(!t)return[];if(t instanceof I)return[t.object];if(t instanceof C){let a=[];for(let s of t.object??[])s instanceof j&&a.push(s);return a}return[]}gatherValueItems(e){return e?e instanceof C?e.object??[]:e instanceof I?[e.object]:e instanceof z?[e.object]:e instanceof H?[e.object]:e instanceof re||e instanceof te?[e.object]:[]:[]}renderInlineValue(e,n,t,a=0){return e instanceof j?this.renderReferenceLink(e,n,t):e instanceof V?this.renderEmbeddedInline(e,t,a):typeof e=="string"?g(e):typeof e=="number"||typeof e=="boolean"?g(String(e)):""}renderStatementInlineValue(e,n,t,a=0){return e instanceof H?g(e.object):e instanceof re||e instanceof te?g(String(e.object)):e instanceof I?this.renderReferenceLink(e.object,n,t):e instanceof z?this.renderEmbeddedInline(e.object,t,a):e instanceof C?(e.object??[]).map(o=>this.renderInlineValue(o,n,t,a)).filter(o=>o).join(", "):""}renderEmbeddedInline(e,n,t=0){if(t>=Rt)return"\u2026";let a=[];for(let s of e.statement){let o=s.predicate?.subject;if(!o||M(o,Ce))continue;let i=this.readLabelForUri({publisher:o.publisher,package_:o.package_,name:o.name})??o.name,c=this.renderStatementInlineValue(s,o,n,t+1);c&&a.push(`<dt>${g(i)}</dt><dd>${c}</dd>`)}return a.length?`<dl class="kan-embedded">${a.join("")}</dl>`:""}renderReferenceLink(e,n,t){let a=this.readLabelForUri({publisher:e.subject.publisher,package_:e.subject.package_,name:e.subject.name})??e.subject.name;if(!this.isLinkable(e.subject.publisher,t))return`<span class="kan-link-plain">${g(a)}</span>`;let s=this.urlForReference(e,n,t);return`<a class="kan-link" href="${g(s)}">${g(a)}</a>`}isLinkable(e,n){return this.publisherFirst||e===n}renderBadge(e,n,t){let a=this.readLabelForUri({publisher:e.subject.publisher,package_:e.subject.package_,name:e.subject.name})??e.subject.name,s=this.readCommentForUri({publisher:e.subject.publisher,package_:e.subject.package_,name:e.subject.name}),o=s?` title="${g(s)}"`:"";if(!this.isLinkable(e.subject.publisher,t))return`<span class="kan-badge"${o}>${g(a)}</span>`;let i=this.urlForReference(e,n,t);return`<a class="kan-badge" href="${g(i)}"${o}>${g(a)}</a>`}urlForReference(e,n,t){let a=n?this.getUrlFormForProperty(n):"=";return this.resourceHref({publisher:e.subject.publisher,package_:e.subject.package_,...e.subject.version?{version:e.subject.version}:{},name:e.subject.name},t,a)}getUrlFormForProperty(e){let n=Z(this.catalog,e);if(!n)return"=";let t=ee(n,ms);return t==="*"||t==="^"||t==="~"||t==="="?t:"="}readLabelForUri(e){let n=Z(this.catalog,e);if(n)return N(this.catalog,n).label}readCommentForUri(e){let n=Z(this.catalog,e);if(n)return N(this.catalog,n).summary}};function ks(r){let e=new Map;for(let n of r.statement){if(!(n instanceof z)||!$e(n,pn.publisher,pn.package_,pn.name))continue;let t=n.object;for(let a of t.statement){if(!(a instanceof H))continue;let s=a.predicate?.subject?.name;if(!s)continue;let o=a.object;e.has(s)||e.set(s,o)}}return e}function cn(r){for(let e of r.statement)if(e instanceof z&&$e(e,fn.publisher,fn.package_,fn.name))return e.object}function Cn(r){for(let e of r.statement){if(!(e instanceof C)||!$e(e,Un.publisher,Un.package_,Un.name))continue;let n=[];for(let t of e.object??[])t instanceof V&&n.push(t);return n}return[]}function He(r){for(let e of r.statement)if(e instanceof I&&!(!e.predicate?.subject||!M(e.predicate.subject,Ce))&&e.object instanceof j){let n=e.object.subject;return{publisher:n.publisher,package_:n.package_,name:n.name}}}function x(r,e){for(let n of r.statement)if(n instanceof I&&$e(n,e.publisher,e.package_,e.name)&&n.object instanceof j){let t=n.object.subject;return{publisher:t.publisher,package_:t.package_,name:t.name}}}function In(r,e){for(let n of r.statement){if(!(n instanceof C)||!$e(n,e.publisher,e.package_,e.name))continue;let t=[];for(let a of n.object??[])a instanceof j&&t.push({publisher:a.subject.publisher,package_:a.subject.package_,name:a.subject.name});return t}return[]}function q(r,e){for(let n of r.statement)if($e(n,e.publisher,e.package_,e.name))return n}function ee(r,e){for(let n of r.statement)if(n instanceof H&&$e(n,e.publisher,e.package_,e.name))return n.object}function ln(r,e){for(let n of r.statement)if(n instanceof z&&$e(n,e.publisher,e.package_,e.name))return n.object}function Ot(r,e){for(let n of r.statement)if(n instanceof re&&$e(n,e.publisher,e.package_,e.name))return n.object}function hs(r,e){for(let n of r.statement)if(n instanceof te&&$e(n,e.publisher,e.package_,e.name))return n.object===!0;return!1}function bs(r){for(let e of he(r))if(M(e.subject,ya)||M(e.subject,$a))return!0;return!1}function he(r){let e=[];for(let n of r.statement)if(n instanceof I){if(!n.predicate?.subject||!M(n.predicate.subject,Ce))continue;n.object instanceof j&&e.push(n.object)}else if(n instanceof C){if(!n.predicate?.subject||!M(n.predicate.subject,Ce))continue;for(let t of n.object??[])t instanceof j&&e.push(t)}return e}function un(r){let e=[];for(let n of r.statement)if(n instanceof I){if(!n.predicate?.subject||!M(n.predicate.subject,Kt))continue;n.object instanceof j&&e.push(n.object)}else if(n instanceof C){if(!n.predicate?.subject||!M(n.predicate.subject,Kt))continue;for(let t of n.object??[])t instanceof j&&e.push(t)}return e}function Z(r,e){let n="version"in e?e.version:void 0;if(n){let t=`${e.publisher}/${e.package_}@${n.major}.${n.minor}.${n.patch}`;for(let a of r)if(a instanceof Y&&a.name===e.name&&a.namespace===t)return a}for(let t of r){if(!(t instanceof Y)||t.name!==e.name)continue;if((t.namespace||"").startsWith(`${e.publisher}/${e.package_}@`))return t}}function $e(r,e,n,t){let a=r.predicate?.subject;return a?a.publisher===e&&a.package_===n&&a.name===t:!1}function M(r,e){return r.publisher===e.publisher&&r.package_===e.package_&&r.name===e.name}function X(r){return`${r.publisher}/${r.package_}/${r.name}`}function vs(r){let e=s=>s.replace(/\*\//g,"* /"),n=[];n.push(` * kanonak stylesheet \u2014 ${e(r.resource.namespace)}/${e(r.resource.name)}`),n.push(" *");let t=new Map;for(let s of r.tokens.values()){let o=`${s.sourceNamespace} ${s.sourceName}`,i=t.get(o)??{count:0,level:s.level};i.count+=1,t.set(o,i)}if(t.size===0)n.push(" * :root tokens: NONE resolved");else{n.push(` * :root tokens (${r.tokens.size}):`);for(let[s,{count:o,level:i}]of t)n.push(` * ${o} from ${e(s)} (${i})`)}let a=r.baseStylesheet;if(a.css!==void 0)n.push(` * base CSS: ${e(a.sourceNamespace??"")}/base-stylesheet (${a.css.length} bytes, ${a.scope})`);else{n.push(" *"),n.push(" * !! WARNING: NO BASE STYLESHEET \u2014 this file contains only :root tokens."),n.push(" * !! Pages will appear UNSTYLED.");for(let s of r.warnings)n.push(` * !! ${e(s)}`);n.push(" * !! Full diagnostics: /.well-known/kanonak-render")}if(r.look){let s=r.look.sourceClass;n.push(` * look: ${e(s.publisher)}/${e(s.package_)}/${e(s.name)}`)}return`/*
150
+ ${n.join(`
151
+ `)}
152
+ */`}function ne(r){let e=r.namespace||"",n=e.indexOf("/");return n>=0?e.substring(0,n):e}function g(r){return r.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}function Re(r){return r.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}function Ut(r,e){return e==null?"":Ae(e)?e.value:r==="string-literal"?typeof e=="string"?e:String(e):Array.isArray(e)?e.map(n=>Ae(n)?n.value:Re(typeof n=="string"?n:String(n))).join(""):Re(typeof e=="string"?e:String(e))}function xt(r){if(r==null)return"";if(typeof r=="string")return r;if(typeof r=="number"||typeof r=="boolean")return String(r);if(Ae(r))return r.value;if(Array.isArray(r))return r.map(xt).filter(n=>n!=="").join(", ");if(r instanceof j)return r.subject.name;if(r instanceof Y||r instanceof V)return r.name??"";let e=r.value;return typeof e=="string"?e:typeof e=="number"||typeof e=="boolean"?String(e):""}function Fn(r,e){return r.length<=e?r:r.slice(0,e).replace(/\s+\S*$/,"")+"\u2026"}function Ct(r){return r.toLowerCase().trim().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")}function It(r){return r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Ft(r){let e=gn(r);return g(e||r)}function gn(r){let e=/^(\d{4})-(\d{2})-(\d{2})([T ]\d{2}:\d{2}(?::\d{2})?(?:\.\d+)?(?:Z|[+-]\d{2}:?\d{2})?)?$/.exec(r.trim());if(!e)return;let n=Date.parse(r);if(!Number.isFinite(n))return;let t=new Date(n),s=`${["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"][t.getUTCMonth()]} ${t.getUTCDate()}, ${t.getUTCFullYear()}`;if(!e[4])return s;let o=t.getUTCHours(),i=(o+11)%12+1,c=o>=12?"PM":"AM";return`${s} \xB7 ${i}:${String(t.getUTCMinutes()).padStart(2,"0")} ${c} UTC`}function dn(r){if(!r)return"";let e=/^(\d{4})-(\d{2})-(\d{2})/.exec(r);return e?`${["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"][parseInt(e[2],10)-1]??e[2]} ${parseInt(e[3],10)}`:r}function ys(){return new Set(mn.bandDispatchUris().map(r=>`${r.publisher}/${r.package_}/${r.name}`))}export{G as a,qs as b,Oe as c,N as d,We as e,Ae as f,Ke as g,Ye as h,rn as i,mn as j,ys as k};
package/dist/index.d.ts CHANGED
@@ -15,7 +15,7 @@ export type { IStatement } from './statements/index.js';
15
15
  export type { MarkdownLink } from './statements/index.js';
16
16
  export { Statement, ScalarStatement, StringStatement, NumberStatement, BooleanStatement, ReferenceStatement, EmbeddedStatement, ListStatement, MarkdownStatement } from './statements/index.js';
17
17
  export { extractMarkdownLinks, findMalformedReferences, type RawMarkdownLink, type MalformedMarkdownLink, } from './parsing/extractMarkdownLinks.js';
18
- export { OntologyValidationResult, OntologyValidationError, ValidationSeverity, ValidationContext, ValidationCache, KanonakObjectValidator, NamespacePrefixRule, ResourceNamingRule, PropertyTypeSpecificityRule, SubjectKanonakTypeRequiredRule, PackageHeaderRule, EmbeddedKanonakTypeRule, ImportExistenceRule, UnresolvedReferenceRule, ClassHierarchyCycleRule, PropertyHierarchyCycleRule, PropertyRangeRequiredRule, SubClassOfReferenceRule, SubPropertyOfReferenceRule, NamespaceImportCycleRule, UnresolvedPredicateRule, AmbiguousReferenceRule, PropertyRangeReferenceRule, ObjectPropertyValueValidationRule, PropertyDomainRule, PropertyKindRangeConsistencyRule, ReservedNameShadowRule, ClassDefinitionRule, MarkdownLinkRule, DisplayLensScopeRule, LookSemanticSvgPathRule, LookBandPathRule, TxExpressionPathRule, ShaclShapeRule, OwlOneOfRule, DiamondNameClashRule } from './validation/index.js';
18
+ export { OntologyValidationResult, OntologyValidationError, ValidationSeverity, ValidationContext, ValidationCache, KanonakObjectValidator, NamespacePrefixRule, ResourceNamingRule, PropertyTypeSpecificityRule, SubjectKanonakTypeRequiredRule, PackageHeaderRule, EmbeddedKanonakTypeRule, ImportExistenceRule, UnresolvedReferenceRule, ClassHierarchyCycleRule, PropertyHierarchyCycleRule, PropertyRangeRequiredRule, SubClassOfReferenceRule, SubPropertyOfReferenceRule, NamespaceImportCycleRule, UnresolvedPredicateRule, AmbiguousReferenceRule, PropertyRangeReferenceRule, ObjectPropertyValueValidationRule, PropertyDomainRule, PropertyKindRangeConsistencyRule, ReservedNameShadowRule, ClassDefinitionRule, MarkdownLinkRule, DisplayLensScopeRule, LookSemanticSvgPathRule, TxExpressionCompilesRule, LookBandPathRule, TxExpressionPathRule, ShaclShapeRule, OwlOneOfRule, DiamondNameClashRule } from './validation/index.js';
19
19
  export { scopeFromRepositoryAsync, scopeFromCatalog, scopeFromDocumentAsync, buildShapesModel, lowerConstraint, foldFlagsIntoPattern, evaluateConformance, buildReportPackageAsync, SHACL_PUBLISHER, SHACL_PACKAGE, SH_SHAPE, SH_NODE_SHAPE, SH_PROPERTY_SHAPE, } from './shacl/index.js';
20
20
  export type { ConformanceScope, ShaclNodeShapeModel, ShaclPropertyConstraint, ShaclNodeKind, ShaclSeverity, LoweredCheck, LoweredExprNode, ShaclConformanceResult, ShaclFinding, } from './shacl/index.js';
21
21
  export type { IKanonakObjectValidator, DocumentValidationResult, IDocumentValidationRule, IRepositoryValidationRule } from './validation/index.js';