archsight 0.4.0 → 0.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. checksums.yaml +4 -4
  2. data/docs/configuration.md +1 -1
  3. data/docs/modeling.md +39 -10
  4. data/docs/pages.md +2 -2
  5. data/lib/archsight/analysis/typst_renderer.rb +2 -3
  6. data/lib/archsight/export/confluence/analysis_output.rb +3 -4
  7. data/lib/archsight/export/confluence/exporter.rb +3 -1
  8. data/lib/archsight/export/confluence/page_properties.rb +2 -3
  9. data/lib/archsight/export/confluence/storage.rb +25 -12
  10. data/lib/archsight/export/confluence/tables.rb +2 -3
  11. data/lib/archsight/git_source.rb +81 -0
  12. data/lib/archsight/helpers/asset_images.rb +3 -4
  13. data/lib/archsight/import/executor.rb +1 -0
  14. data/lib/archsight/import.rb +27 -2
  15. data/lib/archsight/linter/structure.rb +4 -1
  16. data/lib/archsight/linter.rb +2 -2
  17. data/lib/archsight/markdown.rb +48 -0
  18. data/lib/archsight/openapi.rb +169 -0
  19. data/lib/archsight/page_tree.rb +2 -3
  20. data/lib/archsight/resources/application_component.rb +8 -0
  21. data/lib/archsight/resources/application_interface.rb +12 -0
  22. data/lib/archsight/resources/technology_communication_network.rb +2 -0
  23. data/lib/archsight/resources/technology_device.rb +56 -4
  24. data/lib/archsight/resources/technology_service.rb +7 -0
  25. data/lib/archsight/version.rb +1 -1
  26. data/lib/archsight/web/api/docs.rb +2 -1
  27. data/lib/archsight/web/api/openapi/spec.yaml +136 -27
  28. data/lib/archsight/web/api/routes.rb +2 -2
  29. data/lib/archsight/web/application.rb +2 -2
  30. data/lib/archsight/web/public/vendor/redoc/LICENSE +22 -0
  31. data/lib/archsight/web/public/vendor/redoc/VERSION +1 -0
  32. data/lib/archsight/web/public/vendor/redoc/api.html +27 -0
  33. data/lib/archsight/web/public/vendor/redoc/api.js +19 -0
  34. data/lib/archsight/web/public/vendor/redoc/redoc.standalone.js +1851 -0
  35. data/lib/archsight/web/public/vendor/redoc/redoc.standalone.js.LICENSE.txt +102 -0
  36. data/lib/archsight/web/public/vue/{DocPage-D52OwaKc.js → DocPage-C8Ysway-.js} +1 -1
  37. data/lib/archsight/web/public/vue/EditorPage-pr2MR6_b.js +35 -0
  38. data/lib/archsight/web/public/vue/ErrorPage-FAkpW-hn.js +2 -0
  39. data/lib/archsight/web/public/vue/GraphView-liQJzFyo.js +1 -0
  40. data/lib/archsight/web/public/vue/HomePage-DYpzSXG8.js +2 -0
  41. data/lib/archsight/web/public/vue/InstanceRouter-BdkBTmGO.js +1 -0
  42. data/lib/archsight/web/public/vue/{InstanceRouter-ZaCcjlIX.css → InstanceRouter-Ca_C8izS.css} +1 -1
  43. data/lib/archsight/web/public/vue/KindList-CrgI4qDb.js +1 -0
  44. data/lib/archsight/web/public/vue/PageView-BIxT_t49.js +1 -0
  45. data/lib/archsight/web/public/vue/QueryError-ChdyV8B1.js +1 -0
  46. data/lib/archsight/web/public/vue/ResourceList-DdtaHY4k.js +2 -0
  47. data/lib/archsight/web/public/vue/SearchResults-BYRAcK_o.js +1 -0
  48. data/lib/archsight/web/public/vue/WikiPage-CgvRN6R2.js +3 -0
  49. data/lib/archsight/web/public/vue/architecture-WOLXFQ4H-BGN-TV5r.js +1 -0
  50. data/lib/archsight/web/public/vue/cynefin-EF2NZ3EQ-CZd6g_tq.js +1 -0
  51. data/lib/archsight/web/public/vue/eventmodeling-K75KTNOO-CYnbEx8O.js +1 -0
  52. data/lib/archsight/web/public/vue/gitGraph-VSP46ZUC-DialfQSk.js +1 -0
  53. data/lib/archsight/web/public/vue/graphviz-1lWBhpEX.js +3 -0
  54. data/lib/archsight/web/public/vue/{index-eUHmJ7K2.css → index-BLSE5DSv.css} +1 -1
  55. data/lib/archsight/web/public/vue/index-yiZbbvAs.js +3 -0
  56. data/lib/archsight/web/public/vue/info-OHQRW6UA-BuhOW7ss.js +1 -0
  57. data/lib/archsight/web/public/vue/katex-B_JcIwqj.js +257 -0
  58. data/lib/archsight/web/public/vue/mermaid-C3bOamfn.js +3999 -0
  59. data/lib/archsight/web/public/vue/packet-JDAUHWVQ-CUeRz7w4.js +1 -0
  60. data/lib/archsight/web/public/vue/pie-XZMESJXO-DnuewJI6.js +1 -0
  61. data/lib/archsight/web/public/vue/radar-ABXABTNO-Bi9l8bcv.js +1 -0
  62. data/lib/archsight/web/public/vue/railroad-I3PHUGI6-DSlxFbxk.js +1 -0
  63. data/lib/archsight/web/public/vue/railroad-abnf-LNEFI6M7-D6Kqu8wu.js +1 -0
  64. data/lib/archsight/web/public/vue/railroad-ebnf-DWYD2UWJ-MR7uCYT0.js +1 -0
  65. data/lib/archsight/web/public/vue/railroad-peg-JR7BVNR7-BL7aKIc-.js +1 -0
  66. data/lib/archsight/web/public/vue/rolldown-runtime-COiEfhsA.js +1 -0
  67. data/lib/archsight/web/public/vue/treeView-D4JQ5SDB-CamtB04D.js +1 -0
  68. data/lib/archsight/web/public/vue/treemap-SAJKECNS-DeQxu_HM.js +1 -0
  69. data/lib/archsight/web/public/vue/{useGraphviz-4evusK9i.js → useGraphviz-Dnm2pkon.js} +2 -2
  70. data/lib/archsight/web/public/vue/useHighlight-BH32C7yt.js +10 -0
  71. data/lib/archsight/web/public/vue/usePanZoom-HxgEsqq2.js +12 -0
  72. data/lib/archsight/web/public/vue/wardley-7MLQ67FV-BvKIB6Tv.js +1 -0
  73. data/lib/archsight/web/public/vue.html +4 -4
  74. metadata +47 -40
  75. data/lib/archsight/web/public/vue/ApiDocsPage-COp4onwn.js +0 -1
  76. data/lib/archsight/web/public/vue/ApiDocsPage-DZ0fa5-h.css +0 -1
  77. data/lib/archsight/web/public/vue/EditorPage-3aqL7yVf.js +0 -35
  78. data/lib/archsight/web/public/vue/ErrorPage--b9XeSYa.js +0 -2
  79. data/lib/archsight/web/public/vue/GraphView-qh_EtRrQ.js +0 -1
  80. data/lib/archsight/web/public/vue/HomePage-C2TNh2U-.js +0 -2
  81. data/lib/archsight/web/public/vue/InstanceRouter-uzb_OMG0.js +0 -1
  82. data/lib/archsight/web/public/vue/KindList-CyJuP_uq.js +0 -1
  83. data/lib/archsight/web/public/vue/PageView-FyygrS-b.js +0 -1
  84. data/lib/archsight/web/public/vue/QueryError-B4Ex_csZ.js +0 -1
  85. data/lib/archsight/web/public/vue/ResourceList-BY6Z1Kcb.js +0 -2
  86. data/lib/archsight/web/public/vue/SearchResults-CkFpHF8m.js +0 -1
  87. data/lib/archsight/web/public/vue/WikiPage-BoHNewCX.js +0 -3
  88. data/lib/archsight/web/public/vue/architecture-7GRP2DOG-BvzKZE4e.js +0 -1
  89. data/lib/archsight/web/public/vue/cynefin-OW5HDTMX-D-xs_Hxh.js +0 -1
  90. data/lib/archsight/web/public/vue/eventmodeling-NTZA5JFV-nbjxG01S.js +0 -1
  91. data/lib/archsight/web/public/vue/gitGraph-4MIJSDKK-CW6mw2ab.js +0 -1
  92. data/lib/archsight/web/public/vue/graphviz-SXWTgZH5.js +0 -3
  93. data/lib/archsight/web/public/vue/index-BGlYCbi7.js +0 -3
  94. data/lib/archsight/web/public/vue/info-A6RAGUB7-C12sjlHe.js +0 -1
  95. data/lib/archsight/web/public/vue/katex-CXMH3UgJ.js +0 -257
  96. data/lib/archsight/web/public/vue/mermaid-DjsXQ_XN.js +0 -3334
  97. data/lib/archsight/web/public/vue/packet-AYTQ26CC-wMwKwHmA.js +0 -1
  98. data/lib/archsight/web/public/vue/pie-WAS4IAKB-w1-sAU_K.js +0 -1
  99. data/lib/archsight/web/public/vue/radar-RG4KPBEZ-DpwqIFoy.js +0 -1
  100. data/lib/archsight/web/public/vue/railroad-74A4TZTK-Ce5XC24d.js +0 -1
  101. data/lib/archsight/web/public/vue/railroad-abnf-HS5TGJTU-BSQO2pds.js +0 -1
  102. data/lib/archsight/web/public/vue/railroad-ebnf-LZEXJU2U-Dq1c2YtD.js +0 -1
  103. data/lib/archsight/web/public/vue/railroad-peg-WCYAUIDC-DKj6dli0.js +0 -1
  104. data/lib/archsight/web/public/vue/rolldown-runtime-hePW80VL.js +0 -1
  105. data/lib/archsight/web/public/vue/treeView-Q6P3EWNA-BmHNTWxU.js +0 -1
  106. data/lib/archsight/web/public/vue/treemap-WGGIJYW6-DsEI7sSD.js +0 -1
  107. data/lib/archsight/web/public/vue/useHighlight-DPguaxfm.js +0 -10
  108. data/lib/archsight/web/public/vue/usePanZoom-seQE1TPk.js +0 -12
  109. data/lib/archsight/web/public/vue/wardley-WFR3VGLG-CSCW83-M.js +0 -1
@@ -1,2 +0,0 @@
1
- import{A as e,F as t,I as n,K as r,M as i,N as a,Q as o,R as s,T as c,Y as l,b as u,i as d,it as f,k as p,nt as m,q as h,w as g,z as _}from"./index-BGlYCbi7.js";var v={key:0},y={class:`error-header`},b={class:`error-message`},x={class:`error-location`},S={class:`error-line-badge`},C={key:0,class:`error-code-block`},w={class:`line-number`},T={key:1},E=d({__name:`ErrorPage`,setup(d){let E=g(),D=c(),O=i(()=>{try{return E.query.data?JSON.parse(E.query.data):null}catch{return null}});async function k(){let e=await u();e.error?D.replace({name:`error`,query:{data:JSON.stringify(e.error)}}):(D.push(`/`),window.location.reload())}return(i,c)=>{let u=l(`router-link`);return O.value?(r(),n(`div`,v,[a(`header`,null,[a(`article`,y,[c[1]||=a(`h3`,null,[a(`i`,{class:`iconoir-warning-triangle`}),s(` Error `)],-1),a(`p`,b,f(O.value.error),1),a(`p`,x,[c[0]||=a(`i`,{class:`iconoir-page`},null,-1),s(` `+f(O.value.path)+` `,1),a(`span`,S,`Line `+f(O.value.line_no),1)])]),a(`a`,{href:`#`,class:`reload-btn`,onClick:p(k,[`prevent`])},[...c[2]||=[a(`i`,{class:`iconoir-refresh`},null,-1),s(` Reload `,-1)]])]),O.value.context?(r(),n(`div`,C,[a(`pre`,null,[a(`code`,null,[(r(!0),n(e,null,h(O.value.context,e=>(r(),n(`span`,{key:e.line_no,class:m(e.selected?`error-line`:`code-line`)},[a(`span`,w,f(String(e.line_no).padStart(4,` `)),1),s(f(e.content)+`
2
- `,1)],2))),128))])])])):t(``,!0)])):(r(),n(`div`,T,[c[4]||=a(`p`,null,`No error data available.`,-1),_(u,{to:`/`},{default:o(()=>[...c[3]||=[s(`Back to home`,-1)]]),_:1})]))}}},[[`__scopeId`,`data-v-cb96d9d5`]]);export{E as default};
@@ -1 +0,0 @@
1
- import{G as e,H as t,I as n,K as r,N as i,W as a,et as o,i as s,p as c}from"./index-BGlYCbi7.js";import{t as l}from"./useGraphviz-4evusK9i.js";import{t as u}from"./usePanZoom-seQE1TPk.js";var d={key:0},f={key:1,class:`graph-container graph-expand`},p=[`innerHTML`],m=s({__name:`GraphView`,setup(s){let m=o(``),h=o(!0),g=o(null),_=null;a(async()=>{let e=await c();m.value=e?await l(e):``,h.value=!1,await t(),v()}),e(()=>{_?.destroy()});function v(){if(!g.value)return;let e=g.value.querySelector(`svg`);e&&(_=u(e,g.value))}return(e,t)=>(r(),n(`article`,null,[t[1]||=i(`header`,null,[i(`h2`,null,`Architecture Overview`)],-1),h.value?(r(),n(`div`,d,[...t[0]||=[i(`p`,null,`Loading graph...`,-1)]])):(r(),n(`div`,f,[i(`div`,{id:`graphviz`,ref_key:`graphEl`,ref:g,class:`fullcanvas`,innerHTML:m.value},null,8,p)]))]))}},[[`__scopeId`,`data-v-dbc5bc1f`]]);export{m as default};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["vue/GraphView-qh_EtRrQ.js","vue/index-BGlYCbi7.js","vue/mermaid-DjsXQ_XN.js","vue/rolldown-runtime-hePW80VL.js","vue/index-eUHmJ7K2.css","vue/useGraphviz-4evusK9i.js","vue/usePanZoom-seQE1TPk.js","vue/GraphView-BvWAbUAl.css"])))=>i.map(i=>d[i]);
2
- import{M as e}from"./mermaid-DjsXQ_XN.js";import{B as t,I as n,K as r,M as i,N as a,P as o,V as s,tt as c}from"./index-BGlYCbi7.js";import{n as l}from"./PageView-FyygrS-b.js";var u={key:2},d={__name:`HomePage`,setup(d){let f=t(()=>e(()=>import(`./GraphView-qh_EtRrQ.js`),__vite__mapDeps([0,1,2,3,4,5,6,7]))),p=s(`pages`,null),m=s(`pageHome`,null),h=i(()=>p?.value!=null),g=i(()=>m?.value);return(e,t)=>g.value?(r(),o(l,{key:0,name:g.value.name},null,8,[`name`])):h.value?(r(),o(c(f),{key:1})):(r(),n(`article`,u,[...t[0]||=[a(`p`,null,`Loading...`,-1)]]))}};export{d as default};
@@ -1 +0,0 @@
1
- import{$ as e,A as t,F as n,G as r,H as i,I as a,K as o,M as s,N as c,O as l,P as u,Q as d,R as f,T as p,V as m,W as h,X as g,Y as _,Z as v,et as y,h as b,i as x,it as S,j as C,m as w,n as T,nt as E,o as D,q as O,r as k,rt as A,tt as j,z as M}from"./index-BGlYCbi7.js";import{t as N}from"./useGraphviz-4evusK9i.js";import{t as P}from"./usePanZoom-seQE1TPk.js";import{a as F,d as I,l as L,n as R,r as z,s as ee,u as te}from"./ResourceList-BY6Z1Kcb.js";import{a as ne,c as re,i as B,l as ie,n as ae,o as oe,r as V,s as se,u as H}from"./WikiPage-BoHNewCX.js";import{n as ce,r as U}from"./PageView-FyygrS-b.js";var le=[`title`],W=x({__name:`EmbedButton`,props:{kind:String,name:String},setup(e){let t=e,n=y(!1),r=s(()=>`![[${t.kind}/${t.name}]]`),i=s(()=>({View:`the result of this view`,Analysis:`the result of this analysis`})[t.kind]||`this description`);async function l(){try{await navigator.clipboard.writeText(r.value)}catch{window.prompt(`Copy this into a page:`,r.value);return}n.value=!0,setTimeout(()=>{n.value=!1},2e3)}return(e,t)=>(o(),a(`button`,{type:`button`,class:`btn-embed`,title:`Copy ${r.value} to show ${i.value} inside a page`,onClick:l},[c(`i`,{class:E(n.value?`iconoir-check`:`iconoir-copy`)},null,2),f(` `+S(n.value?`Copied`:`Embed`),1)],8,le))}},[[`__scopeId`,`data-v-04c65c40`]]),ue={key:0,class:`relations-section`},de={class:`relations-grid`},G={class:`relations-column relations-outgoing`},K={class:`relation-kind`},fe={class:`relation-verb`},q={class:`instance-badges`},pe={key:1,class:`relations-empty`},J={class:`relations-column relations-incoming`},Y={class:`relation-kind`},X={class:`relation-verb`},me={class:`instance-badges`},he={key:1,class:`relations-empty`},Z=x({__name:`RelationsGrid`,props:{data:Object},setup(e){let r=e,i=m(`kinds`),l=s(()=>r.data.relations||{}),p=s(()=>r.data.references||{}),h=s(()=>Object.keys(l.value).length>0||Object.keys(p.value).length>0);function g(e){return i?.value?.kinds?i.value.kinds.find(t=>t.kind===e):null}function v(e){return g(e)?.icon||`cube`}function y(e){return g(e)?.layer||`technology`}let b=s(()=>{let e=[];for(let[t,n]of Object.entries(l.value))for(let[r,i]of Object.entries(n))e.push({verb:t,kind:r,names:[...i].sort()});return e}),x=s(()=>{let e=[];for(let[t,n]of Object.entries(p.value))for(let[r,i]of Object.entries(n))e.push({verb:r||`references`,kind:t,names:[...i].sort()});return e});return(e,r)=>{let i=_(`router-link`);return h.value?(o(),a(`article`,ue,[r[2]||=c(`header`,null,[c(`h2`,null,`Relations`)],-1),c(`div`,de,[c(`div`,G,[r[0]||=c(`h3`,null,[f(`Outgoing `),c(`i`,{class:`iconoir-arrow-right`})],-1),b.value.length?(o(!0),a(t,{key:0},O(b.value,(e,n)=>(o(),a(`div`,{key:`out-`+n,class:`relation-group`},[c(`div`,K,[c(`i`,{class:E(`iconoir-${v(e.kind)} icon-${y(e.kind)}`)},null,2),c(`span`,null,S(e.kind)+` (`+S(e.names.length)+`)`,1)]),c(`div`,fe,S(e.verb)+` (`+S(e.names.length)+`)`,1),c(`div`,q,[(o(!0),a(t,null,O(e.names,t=>(o(),u(i,{key:t,class:`badge badge-info`,to:{name:`instance`,params:{kind:e.kind,instance:t}}},{default:d(()=>[f(S(t),1)]),_:2},1032,[`to`]))),128))])]))),128)):(o(),a(`div`,pe,`None`))]),c(`div`,J,[r[1]||=c(`h3`,null,[c(`i`,{class:`iconoir-arrow-right`}),f(` Incoming`)],-1),x.value.length?(o(!0),a(t,{key:0},O(x.value,(e,n)=>(o(),a(`div`,{key:`in-`+n,class:`relation-group`},[c(`div`,Y,[c(`i`,{class:E(`iconoir-${v(e.kind)} icon-${y(e.kind)}`)},null,2),c(`span`,null,S(e.kind)+` (`+S(e.names.length)+`)`,1)]),c(`div`,X,S(e.verb)+` (`+S(e.names.length)+`)`,1),c(`div`,me,[(o(!0),a(t,null,O(e.names,t=>(o(),u(i,{key:t,class:`badge badge-info`,to:{name:`instance`,params:{kind:e.kind,instance:t}}},{default:d(()=>[f(S(t),1)]),_:2},1032,[`to`]))),128))])]))),128)):(o(),a(`div`,he,`None`))])])])):n(``,!0)}}},[[`__scopeId`,`data-v-2fa43570`]]),ge={key:0},_e={key:1,class:`graph-error`},ve={key:2,class:`graph-container`},ye=[`innerHTML`],be=x({__name:`ModuleGraph`,props:{dot:String,label:{type:String,default:`Module Structure`}},setup(e){let t=e,s=y(``),l=y(!0),u=y(null),d=y(null),p=null;async function m(e){if(!e){l.value=!1;return}p?.destroy(),p=null,l.value=!0,u.value=null;try{s.value=await N(e)}catch(e){u.value=e?.message||`Failed to render module graph`,s.value=``}finally{if(l.value=!1,await i(),d.value){let e=d.value.querySelector(`svg`);e&&(p=P(e,d.value))}}}return h(()=>m(t.dot)),v(()=>t.dot,m),r(()=>{p?.destroy()}),(t,r)=>(o(),a(`article`,null,[c(`header`,null,[c(`h2`,null,S(e.label),1)]),l.value?(o(),a(`div`,ge,[...r[0]||=[c(`p`,null,`Loading graph...`,-1)]])):u.value?(o(),a(`p`,_e,[r[1]||=c(`i`,{class:`iconoir-warning-triangle`},null,-1),f(` `+S(u.value),1)])):s.value?(o(),a(`div`,ve,[c(`div`,{ref_key:`graphEl`,ref:d,class:`canvas`,innerHTML:s.value},null,8,ye)])):n(``,!0)]))}},[[`__scopeId`,`data-v-c3280c1e`]]),Q={key:0,class:`requirements-section`},xe={__name:`RequirementsSection`,props:{data:Object},setup(e){let t=e,r=s(()=>{let e=t.data.relations||{},n=[];for(let[t,r]of Object.entries({realizes:`implemented`,partiallyRealizes:`partial`,plans:`planned`})){let i=e[t]||{},a=i.MotivationRequirement||i.motivationRequirements||[];for(let e of a)n.push({name:e,status:r,verb:t})}return n}),i=y([]);v(r,async e=>{if(!e.length){i.value=[];return}let t=await Promise.all(e.map(async e=>{try{let t=(await w(`MotivationRequirement`,e.name)).metadata?.annotations||{};return{...e,priority:t[`requirement/priority`]||null,story:t[`requirement/story`]||null}}catch{return{...e,priority:null,story:null}}}));i.value=t},{immediate:!0});function l(e){let n=t.data.name;return`/search?q=${encodeURIComponent(`MotivationRequirement: <- "${n}" & requirement/priority == "${e}"`)}`}return(e,t)=>r.value.length?(o(),a(`article`,Q,[t[0]||=c(`header`,null,[c(`h2`,null,`Requirements`)],-1),M(V,{items:i.value,"priority-link":l},null,8,[`items`])])):n(``,!0)}},Se={key:0},Ce=[`title`],we=[`href`],Te={class:`git-info`},Ee={class:`git-item`},De={class:`git-clone-command`},Oe=x({__name:`GitInfo`,props:{annotations:Object},setup(e){let t=e,r=s(()=>t.annotations[`repository/git`]),i=s(()=>r.value?ee(r.value):null);function l(){navigator.clipboard.writeText(`git clone ${r.value}`)}return(e,t)=>r.value?(o(),a(`tr`,Se,[c(`th`,{scope:`row`,title:j(R)(`repository/git`)},[c(`a`,{class:`git-link`,href:i.value,target:`_blank`},`Git Repo`,8,we)],8,Ce),c(`td`,null,[c(`div`,Te,[c(`div`,Ee,[t[0]||=c(`i`,{class:`iconoir-git-branch`},null,-1),c(`code`,De,`git clone `+S(r.value),1)]),c(`button`,{class:`copy-button`,onClick:l,title:`Copy to clipboard`},[...t[1]||=[c(`i`,{class:`iconoir-copy`},null,-1)]])])])])):n(``,!0)}},[[`__scopeId`,`data-v-808bbe74`]]),ke={key:0},Ae=[`title`],je={class:`language-distribution`},Me={class:`language-total`},Ne={class:`language-count`},Pe={class:`language-bar`},Fe=[`title`],Ie={class:`language-legend`},Le={class:`other-languages`},Re=x({__name:`LanguageStats`,props:{annotations:Object,kind:String},setup(e){let r=e,i=s(()=>{let e=r.annotations[`scc/languages`];if(!e)return null;let t=e.split(`,`).map(e=>{let t=`scc/language/${e.trim()}/loc`;return{name:e.trim(),loc:parseInt(r.annotations[t]||`0`,10)}}).sort((e,t)=>t.loc-e.loc),n=t.reduce((e,t)=>e+t.loc,0);if(n<=0)return null;let i=t.filter(e=>e.loc/n*100>=.1),a=i.slice(0,10),o=[...i.slice(10),...t.filter(e=>e.loc/n*100<.1)],s=o.reduce((e,t)=>e+t.loc,0),c=[...a];return s>0&&c.push({name:`Other`,loc:s,isOther:!0,otherNames:o.map(e=>e.name)}),{display:c,total:n}});function l(e){return(e/i.value.total*100).toFixed(1)}function p(e,t){return t.isOther?`lang-other`:`lang-${e}`}function m(e,t){return{name:`search`,query:{q:`${e} == "${t}"`}}}return(e,r)=>{let s=_(`router-link`);return i.value?(o(),a(`tr`,ke,[c(`th`,{scope:`row`,title:j(R)(`scc/languages`,`scc/language/<Language>/loc`)},`Languages`,8,Ae),c(`td`,null,[c(`div`,je,[c(`div`,Me,[c(`span`,Ne,S(j(L)(i.value.total)),1),r[0]||=c(`span`,{class:`language-label`},`lines of code`,-1)]),c(`div`,Pe,[(o(!0),a(t,null,O(i.value.display,(e,t)=>(o(),a(`div`,{key:e.name,class:E([`language-bar-segment`,p(t,e)]),style:A({width:l(e.loc)+`%`}),title:`${e.name}: ${j(L)(e.loc)} (${l(e.loc)}%)`},null,14,Fe))),128))]),c(`div`,Ie,[(o(!0),a(t,null,O(i.value.display,(e,i)=>(o(),a(`div`,{key:e.name,class:`language-legend-item`},[c(`div`,{class:E([`language-legend-dot`,p(i,e)])},null,2),e.isOther?(o(),a(t,{key:0},[c(`span`,null,`Other `+S(l(e.loc))+`%`,1),c(`span`,Le,[r[1]||=f(` (`,-1),(o(!0),a(t,null,O(e.otherNames,(r,i)=>(o(),a(t,{key:r},[M(s,{to:m(`scc/languages`,r)},{default:d(()=>[f(S(r),1)]),_:2},1032,[`to`]),i<e.otherNames.length-1?(o(),a(t,{key:0},[f(`, `)],64)):n(``,!0)],64))),128)),r[2]||=f(`) `,-1)])],64)):(o(),u(s,{key:1,to:m(`scc/languages`,e.name)},{default:d(()=>[f(S(e.name)+` `+S(l(e.loc))+`% `,1)]),_:2},1032,[`to`]))]))),128))])])])])):n(``,!0)}}},[[`__scopeId`,`data-v-c1202fdd`]]),ze={key:0},Be=[`title`],Ve={class:`project-estimate`},He={key:0,class:`estimate-item`},Ue={class:`estimate-value`},We={key:1,class:`estimate-item`},Ge={class:`estimate-value`},Ke={key:2,class:`estimate-item`},qe={class:`estimate-value`},Je=x({__name:`ProjectEstimate`,props:{annotations:Object},setup(e){let t=e,r=s(()=>z(`cost`,t.annotations[`scc/estimatedCost`])),i=s(()=>z(`schedule`,t.annotations[`scc/estimatedScheduleMonths`])),l=s(()=>z(`team`,t.annotations[`scc/estimatedPeople`])),u=s(()=>r.value!=null||i.value!=null||l.value!=null);return(e,t)=>u.value?(o(),a(`tr`,ze,[c(`th`,{scope:`row`,title:j(R)(`scc/estimatedCost`,`scc/estimatedScheduleMonths`,`scc/estimatedPeople`)},[...t[0]||=[f(` Project Estimate `,-1),c(`span`,{class:`estimate-note`,title:`Estimates adjusted for €80k salary and AI-assisted development (3x productivity)`},[c(`i`,{class:`iconoir-info-circle`})],-1)]],8,Be),c(`td`,null,[c(`div`,Ve,[r.value==null?n(``,!0):(o(),a(`div`,He,[t[1]||=c(`i`,{class:`iconoir-euro`},null,-1),t[2]||=c(`span`,{class:`estimate-label`},`Cost:`,-1),c(`span`,Ue,S(j(I)(r.value)),1)])),i.value==null?n(``,!0):(o(),a(`div`,We,[t[3]||=c(`i`,{class:`iconoir-calendar`},null,-1),t[4]||=c(`span`,{class:`estimate-label`},`Schedule:`,-1),c(`span`,Ge,S(i.value.toFixed(1))+` months`,1)])),l.value==null?n(``,!0):(o(),a(`div`,Ke,[t[5]||=c(`i`,{class:`iconoir-group`},null,-1),t[6]||=c(`span`,{class:`estimate-label`},`Team:`,-1),c(`span`,qe,S(l.value)+` people`,1)]))])])])):n(``,!0)}},[[`__scopeId`,`data-v-d97600d8`]]),Ye={key:0},Xe=[`title`],Ze={class:`repository-distribution`},Qe={class:`repository-total`},$e={class:`repository-count`},et={class:`repository-bar`},tt=[`title`],nt={class:`repository-legend`},rt=x({__name:`RepositoriesBar`,props:{annotations:Object},setup(e){let r=e,i=s(()=>parseInt(r.annotations[`repository/artifacts/total`]||`0`,10)),l=s(()=>parseInt(r.annotations[`repository/artifacts/active`]||`0`,10)),u=s(()=>parseInt(r.annotations[`repository/artifacts/abandoned`]||`0`,10)),d=s(()=>parseInt(r.annotations[`repository/artifacts/archived`]||`0`,10)),f=s(()=>parseInt(r.annotations[`repository/artifacts/highBusFactor`]||`0`,10)),p=s(()=>i.value>0),m=s(()=>l.value-f.value),h=s(()=>i.value-l.value-u.value-d.value);function g(e){return(e/i.value*100).toFixed(1)}let _=s(()=>{let e=[];return m.value>0&&e.push({cls:`status-active`,value:m.value,label:`Active (healthy)`}),f.value>0&&e.push({cls:`status-high-bus-factor`,value:f.value,label:`Active (high bus factor)`}),d.value>0&&e.push({cls:`status-archived`,value:d.value,label:`Archived`}),h.value>0&&e.push({cls:`status-other`,value:h.value,label:`Other`}),u.value>0&&e.push({cls:`status-abandoned`,value:u.value,label:`Abandoned`}),e});return(e,r)=>p.value?(o(),a(`tr`,Ye,[c(`th`,{scope:`row`,title:j(R)(`repository/artifacts/total`,`repository/artifacts/active`,`repository/artifacts/abandoned`,`repository/artifacts/archived`,`repository/artifacts/highBusFactor`)},`Repositories`,8,Xe),c(`td`,null,[c(`div`,Ze,[c(`div`,Qe,[c(`span`,$e,S(i.value),1),r[0]||=c(`span`,{class:`repository-label`},`repositories`,-1)]),c(`div`,et,[(o(!0),a(t,null,O(_.value,e=>(o(),a(`div`,{key:e.cls,class:E([`repository-bar-segment`,e.cls]),style:A({width:g(e.value)+`%`}),title:`${e.label}: ${e.value} (${g(e.value)}%)`},null,14,tt))),128))]),c(`div`,nt,[(o(!0),a(t,null,O(_.value,e=>(o(),a(`div`,{key:e.cls,class:`repository-legend-item`},[c(`div`,{class:E([`repository-legend-dot`,e.cls])},null,2),c(`span`,null,S(e.value)+` `+S(e.label.toLowerCase()),1)]))),128))])])])])):n(``,!0)}},[[`__scopeId`,`data-v-6c3e5f7d`]]),it=[`title`],$=x({__name:`SparklineChart`,props:{values:{type:String,required:!0},type:{type:String,default:`commits`},maxHeight:{type:Number,default:16},colorClass:{type:String,default:null}},setup(e){let n=e,r=s(()=>!n.values||n.values.trim()===``?[]:n.values.split(`,`).map(e=>parseInt(e,10)||0)),i=s(()=>{let e=Math.max(...r.value);return e===0?1:e});function c(e){return e===0?0:Math.max(2,Math.round(e/i.value*n.maxHeight))}let l=s(()=>{switch(n.type){case`created`:return` issues created`;case`resolved`:return` issues resolved`;default:return` commits`}});return(n,i)=>(o(),a(`div`,{class:E([`activity-sparkline`,e.colorClass])},[(o(!0),a(t,null,O(r.value,(e,t)=>(o(),a(`div`,{key:t,class:E([`activity-sparkline-bar`,{empty:e===0}]),style:A({height:c(e)+`px`}),title:e+l.value},null,14,it))),128))],2))}},[[`__scopeId`,`data-v-33cc84bd`]]),at={key:0},ot=[`title`],st={class:`activity-summary`},ct={key:0,class:`activity-item`},lt=[`title`],ut={class:`activity-value sparkline-total`},dt={key:1,class:`activity-item`},ft=[`title`],pt={key:0,class:`activity-value sparkline-total`},mt={key:1,class:`activity-value contributors-total`},ht={key:2,class:`activity-item`},gt=[`title`],_t={class:`activity-value`},vt={key:3,class:`activity-item`},yt=[`title`],bt={key:4,class:`activity-item`},xt=[`title`],St=x({__name:`ActivityInfo`,props:{annotations:Object,kind:String},setup(e){let t=e,r=s(()=>t.annotations[`activity/commits`]),i=s(()=>t.annotations[`activity/contributors`]),l=s(()=>t.annotations[`activity/contributors/6m`]),u=s(()=>t.annotations[`activity/contributors/total`]),p=s(()=>t.annotations[`activity/status`]),m=s(()=>t.annotations[`activity/busFactor`]),h=s(()=>t.annotations[`activity/createdAt`]),g=s(()=>r.value||i.value||p.value||m.value||h.value),v=s(()=>r.value?r.value.split(`,`).map(Number).reduce((e,t)=>e+t,0):0),y=s(()=>h.value?new Date(h.value).toLocaleDateString(`en`,{month:`short`,year:`numeric`}):null),b=s(()=>{let e=m.value,t=``;switch(e){case`high`:t=`High risk: One contributor accounts for >75% of commits in the last 6 months`;break;case`medium`:t=`Medium risk: One contributor accounts for 50-75% of commits in the last 6 months`;break;case`low`:t=`Low risk: No single contributor dominates the codebase`;break;default:t=`Unknown: Not enough recent activity to assess`}return l.value&&(t+=` (${l.value} unique contributors)`),t});function x(e,t){return{name:`search`,query:{q:`${e} == "${t}"`}}}return(e,t)=>{let s=_(`router-link`);return g.value?(o(),a(`tr`,at,[c(`th`,{scope:`row`,title:j(R)(`activity/commits`,`activity/contributors`,`activity/contributors/6m`,`activity/contributors/total`,`activity/status`,`activity/busFactor`,`activity/createdAt`)},`Activity`,8,ot),c(`td`,null,[c(`div`,st,[r.value?(o(),a(`div`,ct,[t[0]||=c(`i`,{class:`iconoir-git-commit`},null,-1),c(`span`,{class:`activity-label`,title:j(R)(`activity/commits`)},`Commits:`,8,lt),M($,{values:r.value},null,8,[`values`]),c(`span`,ut,S(v.value),1)])):n(``,!0),i.value?(o(),a(`div`,dt,[t[1]||=c(`i`,{class:`iconoir-community`},null,-1),c(`span`,{class:`activity-label`,title:j(R)(`activity/contributors`,`activity/contributors/6m`,`activity/contributors/total`)},`Contributors:`,8,ft),M($,{values:i.value,"color-class":`contributors-sparkline`},null,8,[`values`]),l.value?(o(),a(`span`,pt,S(l.value),1)):n(``,!0),u.value?(o(),a(`span`,mt,`(`+S(u.value)+` total)`,1)):n(``,!0)])):n(``,!0),h.value?(o(),a(`div`,ht,[t[2]||=c(`i`,{class:`iconoir-calendar`},null,-1),c(`span`,{class:`activity-label`,title:j(R)(`activity/createdAt`)},`Created:`,8,gt),c(`span`,_t,S(y.value),1)])):n(``,!0),p.value?(o(),a(`div`,vt,[t[3]||=c(`i`,{class:`iconoir-info-circle`},null,-1),c(`span`,{class:`activity-label`,title:j(R)(`activity/status`)},`Status:`,8,yt),M(s,{class:E(`activity-value status-${p.value}`),to:x(`activity/status`,p.value)},{default:d(()=>[f(S(p.value),1)]),_:1},8,[`class`,`to`])])):n(``,!0),m.value?(o(),a(`div`,bt,[t[4]||=c(`i`,{class:`iconoir-warning-triangle`},null,-1),c(`span`,{class:`activity-label`,title:j(R)(`activity/busFactor`)},`Bus Factor:`,8,xt),M(s,{class:E(`activity-value bus-factor-${m.value}`),to:x(`activity/busFactor`,m.value),title:b.value},{default:d(()=>[f(S(m.value),1)]),_:1},8,[`class`,`to`,`title`])])):n(``,!0)])])])):n(``,!0)}}},[[`__scopeId`,`data-v-a2e60c62`]]),Ct={key:0},wt={key:1},Tt=[`title`],Et={class:`jira-info`},Dt=[`href`],Ot={class:`jira-metric`},kt={class:`jira-metric-total`},At={class:`jira-metric`},jt={class:`jira-metric-total`},Mt={key:0,class:`iconoir-arrow-down-circle`},Nt={key:1,class:`iconoir-arrow-up-circle`},Pt={key:2,class:`iconoir-minus-circle`},Ft={class:`jira-trend-text`},It={key:2},Lt=[`title`],Rt=[`href`],zt={key:1,class:`team-value`},Bt={key:3},Vt=[`title`],Ht={class:`team-stats`},Ut={key:0,class:`team-stat-item`},Wt={class:`team-stat-value`},Gt={key:1,class:`team-stat-item`},Kt={class:`team-stat-value`},qt={key:4},Jt=[`title`],Yt={class:`team-members`},Xt=[`href`],Zt={key:1,class:`team-member`},Qt=x({__name:`TeamInfo`,props:{annotations:Object,instance:Object},setup(e){let r=e,i=s(()=>r.annotations[`team/lead`]),l=s(()=>r.annotations[`team/members`]),u=s(()=>r.annotations[`team/size`]),p=s(()=>r.annotations[`team/lead/size`]),m=s(()=>r.annotations[`team/jira`]),h=s(()=>r.annotations[`jira/projectUrl`]),g=s(()=>r.annotations[`jira/issues/created`]),v=s(()=>r.annotations[`jira/issues/resolved`]),y=s(()=>r.instance?.kind===`BusinessActor`),b=s(()=>`kind in ("ApplicationService", "ApplicationComponent") & ~> $(TechnologyArtifact: -{maintainedBy}> "${r.instance?.name||``}")`),x=s(()=>l.value?l.value.split(/,|\n/).map(e=>e.trim()).filter(Boolean):[]);function C(e){let t=e.match(/<([^>]+@[^>]+)>/);return t?t[1]:null}function w(e){return{name:`search`,query:{q:e}}}let T=s(()=>g.value?g.value.split(`,`).map(Number).reduce((e,t)=>e+t,0):0),D=s(()=>v.value?v.value.split(`,`).map(Number).reduce((e,t)=>e+t,0):0),k=s(()=>g.value?g.value.split(`,`).map(Number):[]),A=s(()=>v.value?v.value.split(`,`).map(Number):[]),N=s(()=>(k.value.length?T.value/k.value.length:0)-(A.value.length?D.value/A.value.length:0)),P=s(()=>{let e=N.value;return e<-1?`positive`:e>1?`negative`:`neutral`});return(e,r)=>{let s=_(`router-link`);return o(),a(t,null,[y.value?(o(),a(`tr`,Ct,[r[1]||=c(`th`,{scope:`row`},`Owned Services`,-1),c(`td`,null,[M(s,{class:`badge badge-info`,to:w(b.value)},{default:d(()=>[...r[0]||=[f(` Show ApplicationServices & Components `,-1)]]),_:1},8,[`to`])])])):n(``,!0),m.value&&h.value?(o(),a(`tr`,wt,[c(`th`,{scope:`row`,title:j(R)(`team/jira`,`jira/projectUrl`,`jira/issues/created`,`jira/issues/resolved`)},`Jira Project`,8,Tt),c(`td`,null,[c(`div`,Et,[c(`a`,{class:`badge badge-info`,href:h.value,target:`_blank`},S(m.value),9,Dt),g.value||v.value?(o(),a(t,{key:0},[c(`div`,Ot,[r[2]||=c(`span`,{class:`jira-metric-label`},`Created (6m):`,-1),M($,{values:g.value,type:`created`,"color-class":`jira-created-sparkline`},null,8,[`values`]),c(`span`,kt,S(T.value),1)]),c(`div`,At,[r[3]||=c(`span`,{class:`jira-metric-label`},`Resolved (6m):`,-1),M($,{values:v.value,type:`resolved`,"color-class":`jira-resolved-sparkline`},null,8,[`values`]),c(`span`,jt,S(D.value),1)]),c(`div`,{class:E([`jira-trend`,`jira-trend-${P.value}`])},[P.value===`positive`?(o(),a(`i`,Mt)):P.value===`negative`?(o(),a(`i`,Nt)):(o(),a(`i`,Pt)),c(`span`,Ft,S(N.value>0?`+`:``)+S(N.value.toFixed(1))+`/mo`,1)],2)],64)):n(``,!0)])])])):n(``,!0),i.value?(o(),a(`tr`,It,[c(`th`,{scope:`row`,title:j(R)(`team/lead`)},`Team Lead`,8,Lt),c(`td`,null,[C(i.value)?(o(),a(`a`,{key:0,class:`team-value`,href:`mailto:${C(i.value)}`},S(i.value),9,Rt)):(o(),a(`span`,zt,S(i.value),1))])])):n(``,!0),u.value||p.value?(o(),a(`tr`,Bt,[c(`th`,{scope:`row`,title:j(R)(`team/size`,`team/lead/size`)},`Team Stats`,8,Vt),c(`td`,null,[c(`div`,Ht,[p.value?(o(),a(`div`,Ut,[c(`span`,Wt,S(p.value),1),r[4]||=c(`span`,{class:`team-stat-label`},`leads`,-1)])):n(``,!0),u.value?(o(),a(`div`,Gt,[c(`span`,Kt,S(u.value),1),r[5]||=c(`span`,{class:`team-stat-label`},`members`,-1)])):n(``,!0)])])])):n(``,!0),l.value?(o(),a(`tr`,qt,[c(`th`,{scope:`row`,title:j(R)(`team/members`)},`Team Members`,8,Jt),c(`td`,null,[c(`div`,Yt,[(o(!0),a(t,null,O(x.value,e=>(o(),a(t,{key:e},[C(e)?(o(),a(`a`,{key:0,class:`team-member`,href:`mailto:${C(e)}`},S(e),9,Xt)):(o(),a(`span`,Zt,S(e),1))],64))),128))])])])):n(``,!0)],64)}}},[[`__scopeId`,`data-v-ddf2e61d`]]),$t={key:0},en=[`title`],tn={class:`deployment-types`},nn=x({__name:`DeploymentInfo`,props:{annotations:Object,kind:String},setup(e){let r=e,i=s(()=>(r.annotations[`repository/artifacts`]||`none`).split(`,`).map(e=>e.trim())),l=s(()=>i.value[0]!==`none`),f=[{key:`container`,icon:`iconoir-box`,label:`Container Image`},{key:`chart`,icon:`iconoir-packages`,label:`Helm Chart`},{key:`binary`,icon:`iconoir-terminal`,label:`Binary`},{key:`debian`,icon:`iconoir-package`,label:`Debian Package`},{key:`rpm`,icon:`iconoir-package`,label:`RPM Package`}];function p(e,t){return{name:`search`,query:{q:`${e} == "${t}"`}}}return(e,r)=>{let s=_(`router-link`);return l.value?(o(),a(`tr`,$t,[c(`th`,{scope:`row`,title:j(R)(`repository/artifacts`)},`Deployment Artifacts`,8,en),c(`td`,null,[c(`div`,tn,[(o(),a(t,null,O(f,e=>(o(),a(t,{key:e.key},[i.value.includes(e.key)?(o(),u(s,{key:0,class:`deployment-item`,to:p(`repository/artifacts`,e.key)},{default:d(()=>[c(`i`,{class:E(e.icon)},null,2),c(`strong`,null,S(e.label),1)]),_:2},1032,[`to`])):n(``,!0)],64))),64))])])])):n(``,!0)}}},[[`__scopeId`,`data-v-c57237c3`]]),rn=[`title`],an={class:`workflow-platforms`},on=[`checked`],sn=[`checked`],cn=[`checked`],ln={class:`info-section-cell`,colspan:`2`},un={open:``},dn=[`title`],fn={class:`workflow-types`},pn={class:`workflow-category`},mn=[`checked`],hn=[`checked`],gn={class:`workflow-category`},_n=[`checked`],vn=[`checked`],yn=[`checked`],bn=[`checked`],xn={class:`workflow-category`},Sn=[`checked`],Cn=[`checked`],wn={class:`workflow-category`},Tn=[`checked`],En=[`checked`],Dn=x({__name:`WorkflowInfo`,props:{annotations:Object,kind:String},setup(e){let r=e,i=s(()=>(r.annotations[`workflow/platforms`]||`none`).split(`,`).map(e=>e.trim())),l=s(()=>(r.annotations[`workflow/types`]||`none`).split(`,`).map(e=>e.trim())),u=s(()=>i.value[0]!==`none`||l.value[0]!==`none`),p=s(()=>l.value.includes(`test`));function m(e,t){return{name:`search`,query:{q:`${e} == "${t}"`}}}function h(e,t){return e.includes(t)}return(e,r)=>{let s=_(`router-link`);return u.value?(o(),a(t,{key:0},[c(`tr`,null,[c(`th`,{scope:`row`,title:j(R)(`workflow/platforms`)},`CI/CD Platforms`,8,rn),c(`td`,null,[c(`div`,an,[M(s,{class:`workflow-platform-item`,to:m(`workflow/platforms`,`github-actions`)},{default:d(()=>[c(`input`,{type:`checkbox`,disabled:``,checked:h(i.value,`github-actions`)},null,8,on),r[0]||=c(`label`,null,`GitHub Actions`,-1)]),_:1},8,[`to`]),M(s,{class:`workflow-platform-item`,to:m(`workflow/platforms`,`gitlab-ci`)},{default:d(()=>[c(`input`,{type:`checkbox`,disabled:``,checked:h(i.value,`gitlab-ci`)},null,8,sn),r[1]||=c(`label`,null,`GitLab CI`,-1)]),_:1},8,[`to`]),M(s,{class:`workflow-platform-item`,to:m(`workflow/platforms`,`makefile`)},{default:d(()=>[c(`input`,{type:`checkbox`,disabled:``,checked:h(i.value,`makefile`)},null,8,cn),r[2]||=c(`label`,null,`Makefile`,-1)]),_:1},8,[`to`])])])]),c(`tr`,null,[c(`td`,ln,[c(`details`,un,[c(`summary`,{title:j(R)(`workflow/types`)},[...r[3]||=[c(`strong`,null,`Workflow Types`,-1)]],8,dn),c(`div`,fn,[c(`div`,null,[c(`div`,pn,[r[6]||=c(`strong`,null,`Build & Deploy`,-1),c(`ul`,null,[c(`li`,null,[c(`input`,{type:`checkbox`,disabled:``,checked:h(l.value,`build`)},null,8,mn),M(s,{to:m(`workflow/types`,`build`)},{default:d(()=>[...r[4]||=[f(`Build`,-1)]]),_:1},8,[`to`])]),c(`li`,null,[c(`input`,{type:`checkbox`,disabled:``,checked:h(l.value,`deploy`)},null,8,hn),M(s,{to:m(`workflow/types`,`deploy`)},{default:d(()=>[...r[5]||=[f(`Deploy`,-1)]]),_:1},8,[`to`])])])]),c(`div`,gn,[r[11]||=c(`strong`,null,`Testing`,-1),c(`ul`,null,[c(`li`,null,[c(`input`,{type:`checkbox`,disabled:``,checked:h(l.value,`test`)},null,8,_n),M(s,{to:m(`workflow/types`,`test`)},{default:d(()=>[...r[7]||=[f(`Test (generic)`,-1)]]),_:1},8,[`to`])]),c(`li`,{class:E({"grayed-out":p.value})},[c(`input`,{type:`checkbox`,disabled:``,checked:h(l.value,`unit-test`)},null,8,vn),M(s,{to:m(`workflow/types`,`unit-test`)},{default:d(()=>[...r[8]||=[f(`Unit Tests`,-1)]]),_:1},8,[`to`])],2),c(`li`,{class:E({"grayed-out":p.value})},[c(`input`,{type:`checkbox`,disabled:``,checked:h(l.value,`integration-test`)},null,8,yn),M(s,{to:m(`workflow/types`,`integration-test`)},{default:d(()=>[...r[9]||=[f(`Integration Tests`,-1)]]),_:1},8,[`to`])],2),c(`li`,{class:E({"grayed-out":p.value})},[c(`input`,{type:`checkbox`,disabled:``,checked:h(l.value,`smoke-test`)},null,8,bn),M(s,{to:m(`workflow/types`,`smoke-test`)},{default:d(()=>[...r[10]||=[f(`Smoke Tests`,-1)]]),_:1},8,[`to`])],2)])]),c(`div`,xn,[r[14]||=c(`strong`,null,`Quality & Security`,-1),c(`ul`,null,[c(`li`,null,[c(`input`,{type:`checkbox`,disabled:``,checked:h(l.value,`lint`)},null,8,Sn),M(s,{to:m(`workflow/types`,`lint`)},{default:d(()=>[...r[12]||=[f(`Linting`,-1)]]),_:1},8,[`to`])]),c(`li`,null,[c(`input`,{type:`checkbox`,disabled:``,checked:h(l.value,`security-scan`)},null,8,Cn),M(s,{to:m(`workflow/types`,`security-scan`)},{default:d(()=>[...r[13]||=[f(`Security Scan`,-1)]]),_:1},8,[`to`])])])]),c(`div`,wn,[r[17]||=c(`strong`,null,`Automation`,-1),c(`ul`,null,[c(`li`,null,[c(`input`,{type:`checkbox`,disabled:``,checked:h(l.value,`dependency-update`)},null,8,Tn),M(s,{to:m(`workflow/types`,`dependency-update`)},{default:d(()=>[...r[15]||=[f(`Dependency Updates`,-1)]]),_:1},8,[`to`])]),c(`li`,null,[c(`input`,{type:`checkbox`,disabled:``,checked:h(l.value,`ticket-creation`)},null,8,En),M(s,{to:m(`workflow/types`,`ticket-creation`)},{default:d(()=>[...r[16]||=[f(`Ticket Creation`,-1)]]),_:1},8,[`to`])])])])])])])])])],64)):n(``,!0)}}},[[`__scopeId`,`data-v-5e906c49`]]),On=[`title`],kn={class:`info-section-cell`,colspan:`2`},An={class:`agentic-tools`},jn={class:`tool-item-header`},Mn=[`checked`],Nn={class:`tool-item-description`},Pn=x({__name:`AgenticTools`,props:{annotations:Object,kind:String},setup(e){let r=e,i=s(()=>(r.annotations[`agentic/tools`]||`none`).split(`,`).map(e=>e.trim())),l=s(()=>i.value[0]!==`none`),u=[{key:`claude`,icon:`iconoir-brain`,name:`Claude`,description:`Anthropic Claude API`},{key:`cursor`,icon:`iconoir-edit-pencil`,name:`Cursor`,description:`AI code editor`},{key:`aider`,icon:`iconoir-terminal`,name:`Aider`,description:`CLI pair programmer`},{key:`github-copilot`,icon:`iconoir-github`,name:`GitHub Copilot`,description:`GitHub AI assistant`},{key:`agents`,icon:`iconoir-cpu-warning`,name:`Custom Agents`,description:`Custom AI agents`}];function p(e,t){return{name:`search`,query:{q:`${e} == "${t}"`}}}return(e,r)=>{let s=_(`router-link`);return l.value?(o(),a(t,{key:0},[c(`tr`,null,[c(`th`,{scope:`row`,colspan:`2`,title:j(R)(`agentic/tools`)},[...r[0]||=[c(`i`,{class:`iconoir-cpu`},null,-1),f(` AI Coding Assistants `,-1)]],8,On)]),c(`tr`,null,[c(`td`,kn,[c(`div`,An,[(o(),a(t,null,O(u,e=>M(s,{key:e.key,class:E([`tool-item`,{"not-implemented":!i.value.includes(e.key)}]),to:p(`agentic/tools`,e.key)},{default:d(()=>[c(`div`,jn,[c(`input`,{type:`checkbox`,checked:i.value.includes(e.key),disabled:``},null,8,Mn),c(`i`,{class:E([e.icon,i.value.includes(e.key)?`implemented`:`not-implemented`])},null,2),c(`strong`,null,S(e.name),1)]),c(`div`,Nn,S(e.description),1)]),_:2},1032,[`class`,`to`])),64))])])])],64)):n(``,!0)}}},[[`__scopeId`,`data-v-52b7b17d`]]),Fn={key:0},In=[`title`],Ln={class:`activity-summary`},Rn={class:`activity-item`},zn={key:0,class:`activity-item`},Bn={class:`activity-value`},Vn={key:1,class:`activity-item`},Hn={key:0,class:`license-details-inline`},Un={class:`badge badge-secondary`},Wn={class:`license-overflow`},Gn=x({__name:`LicenseInfo`,props:{annotations:Object,kind:String},setup(e){let r=e,i=s(()=>r.annotations[`license/spdx`]),l=s(()=>r.annotations[`license/category`]||`unknown`),p=s(()=>r.annotations[`license/dependencies/count`]),m=s(()=>(r.annotations[`license/dependencies/ecosystems`]||``).split(`,`).map(e=>e.trim()).filter(Boolean)),h=s(()=>r.annotations[`license/dependencies/risk`]||`unknown`),g=s(()=>r.annotations[`license/dependencies/copyleft`]||`unknown`),v=s(()=>(r.annotations[`license/dependencies/licenses`]||``).split(`,`).map(e=>e.trim()).filter(Boolean)),y=s(()=>{switch(l.value){case`permissive`:return`badge-success`;case`weak-copyleft`:return`badge-warning`;case`source-available`:return`badge-warning`;case`copyleft`:return`badge-danger`;default:return`badge-secondary`}}),b=s(()=>{switch(h.value){case`low`:return`badge-success`;case`weak-copyleft`:return`badge-warning`;case`copyleft`:return`badge-danger`;default:return`badge-secondary`}}),x=s(()=>{switch(h.value){case`copyleft`:return`Copyleft dependencies (GPL, AGPL) or >50% unknown licenses`;case`weak-copyleft`:return`Weak-copyleft dependencies (LGPL, MPL) present`;case`low`:return`All dependencies have known permissive licenses`;default:return`No dependency license data available`}}),C=s(()=>v.value.filter(e=>e!==`unknown`).map(e=>({name:e,count:parseInt(r.annotations[`license/dependencies/${e}/count`]||`0`,10)})).sort((e,t)=>t.count-e.count));function w(e,t){return{name:`search`,query:{q:`${e} == "${t}"`}}}return(e,r)=>{let s=_(`router-link`);return i.value?(o(),a(`tr`,Fn,[c(`th`,{scope:`row`,title:j(R)(`license/spdx`,`license/category`,`license/dependencies/count`,`license/dependencies/ecosystems`,`license/dependencies/risk`,`license/dependencies/copyleft`,`license/dependencies/licenses`)},`License`,8,In),c(`td`,null,[c(`div`,Ln,[c(`div`,Rn,[r[0]||=c(`i`,{class:`iconoir-shield-check`},null,-1),M(s,{class:E([`badge`,y.value]),to:w(`license/spdx`,i.value)},{default:d(()=>[f(S(i.value),1)]),_:1},8,[`class`,`to`]),l.value===`unknown`?n(``,!0):(o(),u(s,{key:0,class:`badge badge-outline`,to:w(`license/category`,l.value)},{default:d(()=>[f(S(l.value),1)]),_:1},8,[`to`]))]),p.value&&parseInt(p.value)>0?(o(),a(`div`,zn,[r[2]||=c(`i`,{class:`iconoir-box`},null,-1),r[3]||=c(`span`,{class:`activity-label`},`Dependencies:`,-1),c(`span`,Bn,S(p.value),1),(o(!0),a(t,null,O(m.value,e=>(o(),u(s,{key:e,class:`badge badge-info`,to:w(`license/dependencies/ecosystems`,e)},{default:d(()=>[f(S(e),1)]),_:2},1032,[`to`]))),128)),M(s,{class:E([`badge`,b.value]),title:x.value,to:w(`license/dependencies/risk`,h.value)},{default:d(()=>[f(`Risk: `+S(h.value),1)]),_:1},8,[`class`,`title`,`to`]),g.value===`true`?(o(),u(s,{key:0,class:`badge badge-warning`,to:w(`license/dependencies/copyleft`,`true`)},{default:d(()=>[...r[1]||=[f(`Copyleft present`,-1)]]),_:1},8,[`to`])):n(``,!0)])):n(``,!0),C.value.length?(o(),a(`div`,Vn,[r[4]||=c(`i`,{class:`iconoir-list`},null,-1),r[5]||=c(`span`,{class:`activity-label`},`Types:`,-1),(o(!0),a(t,null,O(C.value.slice(0,5),e=>(o(),u(s,{key:e.name,class:`badge badge-outline`,to:w(`license/dependencies/licenses`,e.name)},{default:d(()=>[f(S(e.count>0?`${e.name} (${e.count})`:e.name),1)]),_:2},1032,[`to`]))),128)),C.value.length>5?(o(),a(`details`,Hn,[c(`summary`,Un,`+`+S(C.value.length-5)+` more`,1),c(`div`,Wn,[(o(!0),a(t,null,O(C.value.slice(5),e=>(o(),u(s,{key:e.name,class:`badge badge-outline`,to:w(`license/dependencies/licenses`,e.name)},{default:d(()=>[f(S(e.count>0?`${e.name} (${e.count})`:e.name),1)]),_:2},1032,[`to`]))),128))])])):n(``,!0)])):n(``,!0)])])])):n(``,!0)}}},[[`__scopeId`,`data-v-126f0fee`]]),Kn={key:0},qn=[`title`],Jn={__name:`ExternalLinks`,props:{annotations:Object},setup(e){let t=e,r=s(()=>Object.fromEntries(Object.entries(t.annotations).filter(([e])=>e.startsWith(`link/`)).map(([e,t])=>[e.slice(5),t])));return(e,t)=>Object.keys(r.value).length?(o(),a(`tr`,Kn,[c(`th`,{scope:`row`,title:j(R)(`link/<name>`)},`Links`,8,qn),c(`td`,null,[M(U,{links:r.value},null,8,[`links`])])])):n(``,!0)}},Yn={"component/type":{executable:`play`,library:`book-stack`,module:`box-3d-three-points`,plugin:`plug-type-a`,frontend:`web-window`,other:`code-brackets`},"component/role":{service:`cloud-sync`,cli:`terminal`,job:`timer`,operator:`settings`,agent:`cpu`}},Xn={"architecture/kind":`Architecture style`,"architecture/size":`Architecture size`,"component/dependents":`Used by`},Zn=[`architecture/aliases`,`component/type`,`component/role`,`architecture/kind`,`architecture/size`,`architecture/tags`,`component/dependents`];function Qn(e,t){return Yn[e]?.[t]||null}function $n(e){return Xn[e]||null}function er(e,t){if(e!==`component/dependents`)return t;let n=Number(t);return Number.isFinite(n)?n===0?`No other component`:`${n} ${n===1?`component`:`components`}`:t}var tr={class:`chip-group`},nr={key:1,class:`chip-namespace`},rr={__name:`TagChips`,props:{kind:{type:String,required:!0},annotationKey:{type:String,required:!0},values:{type:Array,required:!0},linked:{type:Boolean,default:!0}},setup(e){let r=e,i={planned:`chip-info`,deprecated:`chip-warning`,sunset:`chip-danger`,"end-of-life":`chip-danger`},l=/^([a-z][a-z0-9-]*):(.+)$/i;function f(e){return String(e).replace(/\\/g,`\\\\`).replace(/"/g,`\\"`)}let p=s(()=>r.values.map(e=>{let t=l.exec(e);return{value:e,namespace:t?t[1]:null,label:t?t[2]:e,symbol:Qn(r.annotationKey,e),tone:r.annotationKey===`lifecycle/status`&&i[e]||null,to:{name:`search`,query:D(`${r.kind}: ${r.annotationKey} == "${f(e)}"`)}}}));return(r,i)=>(o(),a(`span`,tr,[(o(!0),a(t,null,O(p.value,t=>(o(),u(g(e.linked?`router-link`:`span`),{key:t.value,class:E([`chip`,t.tone]),to:e.linked?t.to:void 0,title:e.linked?`Show ${e.kind} resources with ${e.annotationKey} = ${t.value}`:void 0},{default:d(()=>[t.symbol?(o(),a(`i`,{key:0,class:E(`iconoir-${t.symbol} icon-application chip-symbol`),"aria-hidden":`true`},null,2)):n(``,!0),t.namespace?(o(),a(`span`,nr,S(t.namespace),1)):n(``,!0),c(`span`,null,S(t.label),1)]),_:2},1032,[`class`,`to`,`title`]))),128))]))}},ir=[`title`],ar=[`innerHTML`],or=[`href`],sr={__name:`AnnotationRow`,props:{annotationKey:String,value:[String,Number,Boolean],kind:String,format:{type:String,default:null},link:{type:String,default:null}},setup(e){let n=e,r=y(null);H(r);let i=s(()=>{let e=$n(n.annotationKey);if(e)return e;let t=n.annotationKey.split(`/`);return t[t.length-1].replace(/([a-z])([A-Z])/g,`$1 $2`).replace(/^./,e=>e.toUpperCase())}),l=s(()=>typeof n.value==`string`&&/^https?:\/\//.test(n.value)),d=s(()=>n.format!==`identifier`||n.value==null?[]:String(n.value).split(`,`).map(e=>e.trim()).filter(Boolean)),p=s(()=>{if(![`tag_list`,`tag_word`].includes(n.format)||n.value==null)return[];let e=String(n.value);return n.format===`tag_list`?e.split(`,`).map(e=>e.trim()).filter(Boolean):[e]});return(n,s)=>(o(),a(`tr`,null,[c(`th`,{scope:`row`,title:j(R)(e.annotationKey)},S(i.value),9,ir),c(`td`,null,[e.format===`markdown`?(o(),a(`div`,{key:0,ref_key:`mdEl`,ref:r,innerHTML:e.value},null,8,ar)):d.value.length?(o(),u(rr,{key:1,kind:e.kind,"annotation-key":e.annotationKey,values:d.value,linked:!1},null,8,[`kind`,`annotation-key`,`values`])):p.value.length?(o(),u(rr,{key:2,kind:e.kind,"annotation-key":e.annotationKey,values:p.value},null,8,[`kind`,`annotation-key`,`values`])):(o(),a(t,{key:3},[l.value?(o(),a(`a`,{key:0,href:e.value,target:`_blank`},S(e.value),9,or)):(o(),a(t,{key:1},[f(S(j(er)(e.annotationKey,e.value)),1)],64))],64))])]))}},cr={class:`instance-title-text`},lr={class:`instance-name`},ur={class:`instance-kind-subtitle`},dr={key:0,class:`generated-badge`},fr={class:`generated-script`},pr={key:0,class:`generated-time`},mr={class:`header-actions`},hr={key:0,class:`view-pager`,role:`group`,"aria-label":`Diagram view`},gr=[`aria-pressed`],_r=[`aria-pressed`],vr=[`innerHTML`],yr={class:`graph-options`},br={role:`group`,"aria-label":`Graph depth`},xr=[`aria-pressed`,`title`,`onClick`],Sr={role:`group`,"aria-label":`Graph layers`},Cr=[`aria-pressed`,`aria-label`,`disabled`,`title`,`onClick`],wr=[`innerHTML`],Tr={key:3,class:`graph-too-large`},Er=[`innerHTML`],Dr={class:`documentation`},Or=x({__name:`InstanceDetail`,props:{data:Object,kind:String,kindMeta:Object},setup(p){let m=p,g=y(``),x=y(null),w=y(null),D=!1,I=null,L=[1,2,3,null],R=k,z=e=>`${T.find(t=>t.id===e)?.title||e} layer`;function ee(e,t,n){try{let r=localStorage.getItem(e),i=r===null?t:JSON.parse(r);return n.includes(i)?i:t}catch{return t}}function ne(e,t){try{localStorage.setItem(e,JSON.stringify(t))}catch{}}let B=y(ee(`archsight.graphDepth`,2,L)),V=y([...m.data.graph_layers||R]);async function se(e){B.value=e,ne(`archsight.graphDepth`,e),D=!1,await Q()}async function ce(e){let t=V.value.includes(e);t&&V.value.length===1||(V.value=t?V.value.filter(t=>t!==e):R.filter(t=>t===e||V.value.includes(t)),D=!1,await Q())}let U=y(null);H(U);let{embeds:le,scanEmbeds:ue}=oe(),de=y(null);H(de);let G=s(()=>m.data.metadata?.annotations||{}),K=s(()=>Object.keys(m.data.relations||{}).length>0),fe=s(()=>{let e=m.data.references||{};return K.value||Object.keys(e).length>0}),q=s(()=>G.value[`generated/script`]),pe=s(()=>G.value[`generated/at`]),J=s(()=>G.value[`architecture/description`]),Y=s(()=>m.data.diagram||``),X=y(m.data.diagram?`diagram`:`graph`),me=[[`go`,`Go`],[`python`,`Python`],[`java`,`Java`],[`typescript`,`TypeScript`],[`javascript`,`JavaScript`],[`rust`,`Rust`],[`ruby`,`Ruby`],[`crystal`,`Crystal`],[`cpp`,`C++`],[`csharp`,`C#`],[`zig`,`Zig`],[`elixir`,`Elixir`]],he=s(()=>{let e=me.filter(([e])=>G.value[`architecture/${e}/modules`]).map(([e,t])=>({label:`${t} Module Structure`,dot:G.value[`architecture/${e}/modules`]}));return!e.length&&G.value[`architecture/modules`]&&e.push({label:`Module Structure`,dot:G.value[`architecture/modules`]}),e}),ge=[`scc/language/`,`repository/artifacts/`,`link/`,`team/`,`jira/`,`generated/`,`license/`],_e=new Set([`scc/languages`,`architecture/description`,`architecture/diagram`,`architecture/modules`,`workflow/platforms`,`workflow/types`,`agentic/tools`,`repository/artifacts`,`repository/git`,`repository/visibility`]),ve=[/^scc\/estimated(Cost|ScheduleMonths|People)$/,/^activity\/(commits|contributors(\/.*)?|status|busFactor|createdAt)$/,/^scc\/language\/.+\/loc$/,/^repository\/$/,/^architecture\/.+\/modules$/],ye=s(()=>{let e=e=>{let t=Zn.indexOf(e);return t===-1?Zn.length:t};return Object.entries(G.value).filter(([e])=>!(_e.has(e)||ge.some(t=>e.startsWith(t))||ve.some(t=>t.test(e)))).sort(([t],[n])=>e(t)-e(n))});async function Q(){if(D||!K.value)return;D=!0;let e=await b(m.kind,m.data.name,{depth:B.value,layers:V.value});I?.destroy(),I=null,g.value=e?await N(e):``,await i(),Ce()}async function Se(e){X.value=e,e===`graph`&&await Q()}h(async()=>{X.value===`graph`&&await Q(),await i(),U.value&&(ie(U.value),re(U.value),ue(U.value))}),v(J,async()=>{await i(),U.value&&(ie(U.value),re(U.value),ue(U.value))}),r(()=>{I?.destroy()});function Ce(){if(!x.value)return;let e=x.value.querySelector(`svg`);e&&(I=P(e,x.value,{fullscreenTarget:w.value}))}return(r,i)=>{let s=_(`router-link`);return o(),a(t,null,[c(`article`,null,[c(`header`,null,[c(`h2`,null,[p.kindMeta?(o(),a(`i`,{key:0,class:E(`iconoir-${p.kindMeta.icon} icon-${p.kindMeta.layer}`)},null,2)):n(``,!0),c(`div`,cr,[c(`span`,lr,S(j(F)(p.data.name,p.kind)),1),c(`span`,ur,S(p.kind),1)])]),q.value?(o(),a(`div`,dr,[c(`span`,fr,[i[2]||=f(` by `,-1),M(s,{to:{name:`instance`,params:{kind:`Import`,instance:q.value}}},{default:d(()=>[f(S(q.value),1)]),_:1},8,[`to`])]),pe.value?(o(),a(`span`,pr,` generated `+S(j(te)(pe.value)),1)):n(``,!0)])):n(``,!0),c(`div`,mr,[M(W,{kind:p.kind,name:p.data.name},null,8,[`kind`,`name`]),q.value?n(``,!0):(o(),u(s,{key:0,class:`btn-header`,to:`/kinds/${p.kind}/instances/${p.data.name}/edit`,title:`Edit this resource`},{default:d(()=>[...i[3]||=[c(`i`,{class:`iconoir-edit-pencil`},null,-1),f(` Edit `,-1)]]),_:1},8,[`to`]))])]),Y.value&&K.value?(o(),a(`div`,hr,[c(`button`,{type:`button`,class:E([`outline`,{secondary:X.value!==`diagram`}]),"aria-pressed":X.value===`diagram`,onClick:i[0]||=e=>Se(`diagram`)},[...i[4]||=[c(`i`,{class:`iconoir-developer`},null,-1),f(` Diagram `,-1)]],10,gr),c(`button`,{type:`button`,class:E([`outline`,{secondary:X.value!==`graph`}]),"aria-pressed":X.value===`graph`,onClick:i[1]||=e=>Se(`graph`)},[...i[5]||=[c(`i`,{class:`iconoir-graph-up`},null,-1),f(` Dependencies `,-1)]],10,_r)])):n(``,!0),Y.value?e((o(),a(`div`,{key:1,ref_key:`diagramEl`,ref:de,class:`asd-diagram-wrap`,innerHTML:Y.value},null,8,vr)),[[l,X.value===`diagram`]]):n(``,!0),K.value&&g.value?e((o(),a(`div`,{key:2,ref_key:`graphBox`,ref:w,class:`graph-container`},[c(`div`,yr,[i[6]||=c(`i`,{class:`iconoir-depth`,title:`Depth: how many steps the graph follows`},null,-1),c(`div`,br,[(o(),a(t,null,O(L,e=>c(`button`,{key:String(e),type:`button`,class:E({outline:B.value!==e,secondary:B.value!==e}),"aria-pressed":B.value===e,title:e?`Depth ${e}: ${e} step${e>1?`s`:``} from here`:`Depth: all the way`,onClick:t=>se(e)},S(e??`All`),11,xr)),64))]),i[7]||=c(`i`,{class:`iconoir-color-filter`,title:`Layers the graph follows`},null,-1),c(`div`,Sr,[(o(!0),a(t,null,O(j(R),e=>(o(),a(`button`,{key:e,type:`button`,class:E([`layer-toggle`,{outline:!V.value.includes(e),secondary:!V.value.includes(e)}]),"aria-pressed":V.value.includes(e),"aria-label":z(e),disabled:V.value.length===1&&V.value.includes(e),title:`${z(e)}: ${V.value.includes(e)?`shown, click to hide`:`hidden, click to show`}`,onClick:t=>ce(e)},[c(`span`,{class:`layer-swatch`,style:A({background:`var(--layer-${e}-fill, var(--pico-muted-border-color))`})},null,4)],10,Cr))),128))])]),c(`div`,{id:`graphviz`,ref_key:`graphEl`,ref:x,class:`canvas`,innerHTML:g.value},null,8,wr)],512)),[[l,X.value===`graph`]]):fe.value&&!K.value&&!Y.value?(o(),a(`p`,Tr,[...i[8]||=[c(`i`,{class:`iconoir-graph-up`},null,-1),f(` No outgoing dependencies — graph omitted `,-1)]])):n(``,!0),J.value?(o(),a(`div`,{key:4,ref_key:`descEl`,ref:U,innerHTML:J.value,class:E([`prose`,{footer:fe.value}])},null,10,Er)):n(``,!0),(o(!0),a(t,null,O(j(le),e=>(o(),u(C,{key:e.key,to:e.el},[M(ae,{kind:e.kind,name:e.name,spec:e.spec},null,8,[`kind`,`name`,`spec`])],8,[`to`]))),128))]),(o(!0),a(t,null,O(he.value,e=>(o(),u(be,{key:e.label,dot:e.dot,label:e.label},null,8,[`dot`,`label`]))),128)),M(xe,{data:p.data},null,8,[`data`]),c(`article`,Dr,[i[9]||=c(`header`,null,[c(`h2`,null,`Details`)],-1),c(`table`,null,[c(`tbody`,null,[M(Oe,{annotations:G.value},null,8,[`annotations`]),M(Re,{annotations:G.value,kind:p.kind},null,8,[`annotations`,`kind`]),M(Je,{annotations:G.value},null,8,[`annotations`]),M(rt,{annotations:G.value},null,8,[`annotations`]),M(St,{annotations:G.value,kind:p.kind},null,8,[`annotations`,`kind`]),M(Qt,{annotations:G.value,instance:p.data},null,8,[`annotations`,`instance`]),M(nn,{annotations:G.value,kind:p.kind},null,8,[`annotations`,`kind`]),M(Dn,{annotations:G.value,kind:p.kind},null,8,[`annotations`,`kind`]),M(Pn,{annotations:G.value,kind:p.kind},null,8,[`annotations`,`kind`]),M(Gn,{annotations:G.value,kind:p.kind},null,8,[`annotations`,`kind`]),M(Jn,{annotations:G.value},null,8,[`annotations`]),(o(!0),a(t,null,O(ye.value,([e,t])=>(o(),u(sr,{key:e,"annotation-key":e,value:t,kind:p.kind,format:p.data.annotation_formats?.[e]||null,link:p.data.annotation_links?.[e]??null},null,8,[`annotation-key`,`value`,`kind`,`format`,`link`]))),128))])])]),M(Z,{data:p.data},null,8,[`data`])],64)}}},[[`__scopeId`,`data-v-d50431eb`]]),kr={class:`view-header`},Ar={class:`instance-title-text`},jr={class:`instance-name`},Mr={class:`header-actions`},Nr=[`innerHTML`],Pr={key:1,class:`view-query-display`},Fr={class:`query-item`},Ir={class:`query-value`},Lr={key:1},Rr=x({__name:`ViewDetail`,props:{data:Object,kindMeta:Object},setup(e){let r=e,i=s(()=>r.data.metadata?.annotations||{}),l=s(()=>se(i.value)),d=s(()=>l.value.query),f=s(()=>i.value[`architecture/description`]),p=s(()=>l.value.fields),m=s(()=>l.value.sort),h=s(()=>l.value.showKind),g=y(null);return H(g),(r,i)=>(o(),a(t,null,[c(`article`,kr,[c(`header`,null,[c(`h2`,null,[e.kindMeta?(o(),a(`i`,{key:0,class:E(`iconoir-${e.kindMeta.icon} icon-${e.kindMeta.layer}`)},null,2)):n(``,!0),c(`div`,Ar,[c(`span`,jr,S(j(F)(e.data.name,`View`)),1),i[0]||=c(`span`,{class:`instance-kind-subtitle`},`View`,-1)])]),c(`div`,Mr,[M(W,{kind:`View`,name:e.data.name},null,8,[`name`])])]),f.value?(o(),a(`div`,{key:0,ref_key:`descEl`,ref:g,class:`description-box prose`,innerHTML:f.value},null,8,Nr)):n(``,!0),d.value?(o(),a(`div`,Pr,[c(`p`,Fr,[i[1]||=c(`span`,{class:`label`},`Query:`,-1),c(`code`,Ir,S(d.value),1)])])):n(``,!0)]),d.value?(o(),u(ne,{key:0,query:d.value,fields:p.value,sort:m.value,"show-kind":h.value},null,8,[`query`,`fields`,`sort`,`show-kind`])):n(``,!0),d.value?n(``,!0):(o(),a(`article`,Lr,[...i[2]||=[c(`p`,{class:`view-empty-state`},[c(`em`,null,`No query defined`)],-1)]]))],64))}},[[`__scopeId`,`data-v-1c2b385e`]]),zr={components:{RelationsGrid:Z,AnalysisResults:B,EmbedButton:W},props:{data:Object,kindMeta:Object},setup(e){let t=s(()=>e.data.metadata?.annotations||{}),n=s(()=>t.value[`analysis/description`]),r=s(()=>t.value[`architecture/description`]),i=s(()=>t.value[`analysis/script`]),a=y(null);H(a);let o=y(null);return H(o),{annotations:t,summary:n,description:r,analysisScript:i,descEl:a,summaryEl:o,displayName:F}}},Br={class:`analysis-header`},Vr={class:`instance-title-text`},Hr={class:`instance-name`},Ur={class:`header-actions`},Wr=[`innerHTML`],Gr=[`innerHTML`],Kr={key:1};function qr(e,r,i,s,l,p){let m=_(`EmbedButton`),h=_(`router-link`),g=_(`AnalysisResults`),v=_(`RelationsGrid`);return o(),a(t,null,[c(`article`,Br,[c(`header`,null,[c(`h2`,null,[i.kindMeta?(o(),a(`i`,{key:0,class:E(`iconoir-${i.kindMeta.icon} icon-${i.kindMeta.layer}`)},null,2)):n(``,!0),c(`div`,Vr,[c(`span`,Hr,S(s.displayName(i.data.name,`Analysis`)),1),r[0]||=c(`span`,{class:`instance-kind-subtitle`},`Analysis`,-1)])]),c(`div`,Ur,[M(m,{kind:`Analysis`,name:i.data.name},null,8,[`name`]),M(h,{class:`btn-header`,to:`/kinds/Analysis/instances/${i.data.name}/edit`,title:`Edit this resource`},{default:d(()=>[...r[1]||=[c(`i`,{class:`iconoir-edit-pencil`},null,-1),f(` Edit `,-1)]]),_:1},8,[`to`])])]),s.summary?(o(),a(`div`,{key:0,ref:`summaryEl`,class:`analysis-summary prose`,innerHTML:s.summary},null,8,Wr)):n(``,!0),s.description?(o(),a(`div`,{key:1,ref:`descEl`,class:`description-box prose`,innerHTML:s.description},null,8,Gr)):n(``,!0)]),s.analysisScript?(o(),u(g,{key:0,name:i.data.name},null,8,[`name`])):(o(),a(`article`,Kr,[...r[2]||=[c(`p`,{class:`analysis-empty-state`},[c(`i`,{class:`iconoir-warning-triangle`}),f(` No script defined for this analysis. `)],-1)]])),M(v,{data:i.data},null,8,[`data`])],64)}var Jr=x(zr,[[`render`,qr],[`__scopeId`,`data-v-a10d9499`]]),Yr={class:`import-header`},Xr={class:`instance-title-text`},Zr={class:`instance-name`},Qr={class:`header-actions`},$r={key:0,class:`badge badge-primary`},ei={key:1,class:`badge badge-warning`},ti=[`innerHTML`],ni={key:0,class:`graph-container`},ri=[`innerHTML`],ii={key:1,class:`graph-too-large`},ai={key:2,class:`graph-too-large`},oi={class:`import-configuration`},si={class:`import-metadata`},ci={key:0,class:`import-meta-item`},li={key:1,class:`import-meta-item`},ui={key:2,class:`import-meta-item`},di={key:3,class:`import-meta-item status-enabled`},fi={key:4,class:`import-meta-item status-disabled`},pi={key:0,class:`import-output-path`},mi={key:1,class:`import-config-section`,open:``},hi={class:`import-config-table`},gi={scope:`row`},_i={key:0},vi=x({__name:`ImportDetail`,props:{data:Object,kindMeta:Object},setup(e){let l=e,u=y(``),p=y(null),m=null,g=y(null);H(g);let v=s(()=>l.data.metadata?.annotations||{}),x=s(()=>v.value[`import/handler`]),C=s(()=>v.value[`import/enabled`]!==`false`),w=s(()=>v.value[`import/cacheTime`]),T=s(()=>v.value[`import/priority`]),D=s(()=>v.value[`import/outputPath`]),k=s(()=>v.value[`architecture/description`]),A=s(()=>Object.entries(v.value).filter(([e])=>e.startsWith(`import/config/`)).map(([e,t])=>[e.replace(`import/config/`,``),t])),I=s(()=>{let e=l.data.relations||{};return Object.values(e).reduce((e,t)=>typeof t==`object`?e+Object.values(t).reduce((e,t)=>e+(Array.isArray(t)?t.length:0),0):e,0)}),L=s(()=>Object.keys(l.data.relations||{}).length>0),R=s(()=>{let e=l.data.references||{};return L.value||Object.keys(e).length>0}),z=s(()=>I.value>=50);h(async()=>{if(L.value&&!z.value){let e=await b(`Import`,l.data.name);u.value=e?await N(e):``,await i(),ee()}}),r(()=>{m?.destroy()});function ee(){if(!p.value)return;let e=p.value.querySelector(`svg`);e&&(m=P(e,p.value))}function te(e){return typeof e==`string`?e.startsWith(`http`)||e.startsWith(`git@`)||e.startsWith(`file://`):!1}return(r,i)=>{let s=_(`router-link`);return o(),a(t,null,[c(`article`,Yr,[c(`header`,null,[c(`h2`,null,[e.kindMeta?(o(),a(`i`,{key:0,class:E(`iconoir-${e.kindMeta.icon} icon-${e.kindMeta.layer}`)},null,2)):n(``,!0),c(`div`,Xr,[c(`span`,Zr,S(j(F)(e.data.name,`Import`)),1),i[0]||=c(`span`,{class:`instance-kind-subtitle`},`Import`,-1)])]),c(`div`,Qr,[x.value?(o(),a(`span`,$r,S(x.value),1)):n(``,!0),C.value?n(``,!0):(o(),a(`span`,ei,`Disabled`)),M(s,{class:`btn-header`,to:`/kinds/Import/instances/${e.data.name}/edit`,title:`Edit this resource`},{default:d(()=>[...i[1]||=[c(`i`,{class:`iconoir-edit-pencil`},null,-1),f(` Edit `,-1)]]),_:1},8,[`to`])])]),k.value?(o(),a(`div`,{key:0,ref_key:`descEl`,ref:g,class:`description-box prose`,innerHTML:k.value},null,8,ti)):n(``,!0),R.value?(o(),a(t,{key:1},[L.value&&!z.value&&u.value?(o(),a(`div`,ni,[c(`div`,{id:`graphviz`,ref_key:`graphEl`,ref:p,class:`canvas`,innerHTML:u.value},null,8,ri)])):z.value?(o(),a(`p`,ii,[i[2]||=c(`i`,{class:`iconoir-warning-triangle`},null,-1),f(` Graph too large to display (`+S(I.value)+` relations) `,1)])):L.value?n(``,!0):(o(),a(`p`,ai,[...i[3]||=[c(`i`,{class:`iconoir-graph-up`},null,-1),f(` No outgoing dependencies — graph omitted `,-1)]]))],64)):n(``,!0)]),c(`article`,oi,[i[11]||=c(`header`,null,[c(`h3`,null,[c(`i`,{class:`iconoir-settings`}),f(` Configuration`)])],-1),c(`div`,si,[x.value?(o(),a(`span`,ci,[i[4]||=c(`i`,{class:`iconoir-code`},null,-1),f(` `+S(x.value),1)])):n(``,!0),w.value?(o(),a(`span`,li,[i[5]||=c(`i`,{class:`iconoir-timer`},null,-1),f(` `+S(w.value),1)])):n(``,!0),T.value?(o(),a(`span`,ui,[i[6]||=c(`i`,{class:`iconoir-sort-down`},null,-1),f(` Priority: `+S(T.value),1)])):n(``,!0),C.value?(o(),a(`span`,di,[...i[7]||=[c(`i`,{class:`iconoir-check-circle`},null,-1),f(` Enabled `,-1)]])):(o(),a(`span`,fi,[...i[8]||=[c(`i`,{class:`iconoir-xmark-circle`},null,-1),f(` Disabled `,-1)]]))]),D.value?(o(),a(`div`,pi,[i[9]||=c(`strong`,null,`Output:`,-1),c(`code`,null,S(D.value),1)])):n(``,!0),A.value.length?(o(),a(`details`,mi,[i[10]||=c(`summary`,null,[c(`i`,{class:`iconoir-list`}),f(` Handler Settings `)],-1),c(`table`,hi,[c(`tbody`,null,[(o(!0),a(t,null,O(A.value,([e,n])=>(o(),a(`tr`,{key:e},[c(`th`,gi,S(e),1),c(`td`,null,[te(n)?(o(),a(`code`,_i,S(n),1)):(o(),a(t,{key:1},[f(S(n),1)],64))])]))),128))])])])):n(``,!0)]),M(Z,{data:e.data},null,8,[`data`])],64)}}},[[`__scopeId`,`data-v-f0340aef`]]),yi={class:`page-actions`},bi={class:`page-resource`},xi={__name:`PageDetail`,props:{data:Object,kindMeta:Object},setup(e){return(r,i)=>{let s=_(`router-link`);return o(),a(t,null,[M(ce,{name:e.data.name},{actions:d(()=>[c(`div`,yi,[c(`span`,bi,[e.kindMeta?(o(),a(`i`,{key:0,class:E(`iconoir-${e.kindMeta.icon} icon-${e.kindMeta.layer}`)},null,2)):n(``,!0),i[0]||=f(` Page `,-1),c(`code`,null,S(j(F)(e.data.name,`Page`)),1)]),M(s,{class:`btn-header`,to:{name:`page`,params:{name:e.data.name}},title:`Open in the handbook tree`},{default:d(()=>[...i[1]||=[c(`i`,{class:`iconoir-book`},null,-1),f(` Open in handbook `,-1)]]),_:1},8,[`to`]),M(s,{class:`btn-header`,to:`/kinds/Page/instances/${encodeURIComponent(e.data.name)}/edit`,title:`Edit this page`},{default:d(()=>[...i[2]||=[c(`i`,{class:`iconoir-edit-pencil`},null,-1),f(` Edit `,-1)]]),_:1},8,[`to`])])]),_:1},8,[`name`]),M(Z,{data:e.data},null,8,[`data`])],64)}}},Si={key:0},Ci={key:1},wi={__name:`InstanceRouter`,props:{kind:String,instance:String},setup(e){let r=e,i=p(),s=m(`kinds`),l=y(null),d=y(!0),h=y(null);async function g(){d.value=!0,h.value=null;try{l.value=await w(r.kind,r.instance);let e=l.value.kind||r.kind,t=l.value.name||r.instance;(e!==r.kind||t!==r.instance)&&i.replace({name:`instance`,params:{kind:e,instance:t}})}catch(e){h.value=e.message}finally{d.value=!1}}v(()=>[r.kind,r.instance],g,{immediate:!0});function _(){return s.value?s.value.kinds.find(e=>e.kind===r.kind):null}return(r,i)=>d.value?(o(),a(`article`,Si,[...i[0]||=[c(`p`,null,`Loading...`,-1)]])):h.value?(o(),a(`article`,Ci,[i[4]||=c(`header`,null,[c(`h2`,null,`Not Found`)],-1),c(`p`,null,[i[1]||=f(`Instance `,-1),c(`strong`,null,S(e.instance),1),i[2]||=f(` of kind `,-1),c(`strong`,null,S(e.kind),1),i[3]||=f(` was not found.`,-1)])])):l.value?(o(),a(t,{key:2},[e.kind===`View`?(o(),u(Rr,{key:0,data:l.value,"kind-meta":_()},null,8,[`data`,`kind-meta`])):e.kind===`Analysis`?(o(),u(Jr,{key:1,data:l.value,"kind-meta":_()},null,8,[`data`,`kind-meta`])):e.kind===`Import`?(o(),u(vi,{key:2,data:l.value,"kind-meta":_()},null,8,[`data`,`kind-meta`])):e.kind===`Page`?(o(),u(xi,{key:3,data:l.value,"kind-meta":_()},null,8,[`data`,`kind-meta`])):(o(),u(Or,{key:4,data:l.value,kind:e.kind,"kind-meta":_()},null,8,[`data`,`kind`,`kind-meta`]))],64)):n(``,!0)}};export{wi as default};
@@ -1 +0,0 @@
1
- import{A as e,F as t,G as n,H as r,I as i,K as a,M as o,N as s,P as c,Q as l,R as u,T as d,V as f,Y as p,Z as m,_ as h,et as g,g as _,i as v,it as y,nt as b,w as x,z as S}from"./index-BGlYCbi7.js";import{t as C}from"./useGraphviz-4evusK9i.js";import{t as w}from"./usePanZoom-seQE1TPk.js";import{t as T}from"./ResourceList-BY6Z1Kcb.js";var E={key:0},D={key:1,class:`kind-graph-note`},O={key:0,class:`kind-graph-note`},k=[`innerHTML`],A=v({__name:`KindGraph`,props:{kind:String,total:Number},setup(o){let c=o,l=g(``),u=g(0),d=g(!0),f=g(null),p=g(null),h=null;async function v(){d.value=!0,h?.destroy(),h=null;let e=await _(c.kind);l.value=e?await C(e):``,u.value=(l.value.match(/class="node\b/g)||[]).length,d.value=!1,await r();let t=p.value?.querySelector(`svg`);t&&(h=w(t,p.value,{fullscreenTarget:f.value}))}return m(()=>c.kind,v,{immediate:!0}),n(()=>{h?.destroy()}),(n,r)=>d.value?(a(),i(`p`,E,`Loading graph...`)):u.value?(a(),i(e,{key:2},[o.total>u.value?(a(),i(`p`,O,y(u.value)+` of `+y(o.total)+` resources are related to each other; the list shows all of them. `,1)):t(``,!0),s(`div`,{ref_key:`graphBox`,ref:f,class:`graph-container`},[s(`div`,{id:`graphviz`,ref_key:`graphEl`,ref:p,innerHTML:l.value},null,8,k)],512)],64)):(a(),i(`p`,D,`No relations between `+y(o.kind)+` resources.`,1))}},[[`__scopeId`,`data-v-d11563c5`]]),j={key:0},M={class:`header-actions`},N={key:0,class:`kind-view`,role:`group`,"aria-label":`Show as`},P=[`aria-pressed`],F=[`aria-pressed`,`title`],I={key:1},L=100,R=v({__name:`KindList`,props:{kind:String},setup(e){let n=e,r=x(),_=d(),v=f(`kinds`),C=g([]),w=g(0),E=g(!0),D=g(!1),O=g(null),k=0;async function R(){E.value=!0,k=0;try{let e=await h(n.kind,{limit:L,offset:0,output:`brief`});e.kind&&e.kind!==n.kind&&_.replace({name:`kind`,params:{kind:e.kind}}),C.value=e.instances||[],w.value=e.total||0,k=C.value.length}catch{C.value=[],w.value=0}v.value&&(O.value=v.value.kinds.find(e=>e.kind===n.kind)),E.value=!1}async function z(){if(!(D.value||k>=w.value)){D.value=!0;try{let e=(await h(n.kind,{limit:L,offset:k,output:`brief`})).instances||[];C.value=[...C.value,...e],k+=e.length}catch{}D.value=!1}}m(()=>n.kind,R,{immediate:!0});let B=o(()=>!!O.value?.self_relations),V=o(()=>B.value&&r.query.view===`graph`);function H(e){_.replace({query:{...r.query,view:e===`graph`?`graph`:void 0}})}function U(e){return e.replace(/([a-z])([A-Z])/g,`$1_$2`).toLowerCase()}return(n,r)=>{let o=p(`router-link`);return E.value?(a(),i(`article`,I,[...r[5]||=[s(`p`,null,`Loading...`,-1)]])):(a(),i(`article`,j,[s(`header`,null,[s(`h2`,null,[O.value?(a(),i(`i`,{key:0,class:b(`iconoir-${O.value.icon} icon-${O.value.layer}`)},null,2)):t(``,!0),u(` `+y(e.kind),1)]),s(`div`,M,[B.value?(a(),i(`div`,N,[s(`button`,{type:`button`,class:b({outline:V.value,secondary:V.value}),"aria-pressed":!V.value,"aria-label":`List`,title:`List of all resources`,onClick:r[0]||=e=>H(`list`)},[...r[2]||=[s(`i`,{class:`iconoir-list`},null,-1)]],10,P),s(`button`,{type:`button`,class:b({outline:!V.value,secondary:!V.value}),"aria-pressed":V.value,"aria-label":`Graph`,title:`Graph of the relations between ${e.kind} resources`,onClick:r[1]||=e=>H(`graph`)},[...r[3]||=[s(`i`,{class:`iconoir-network`},null,-1)]],10,F)])):t(``,!0),S(o,{class:`kind-help`,to:{name:`doc`,params:{filename:`resources/`+U(e.kind)}},title:`Documentation`},{default:l(()=>[...r[4]||=[s(`i`,{class:`iconoir-help-circle`},null,-1)]]),_:1},8,[`to`])])]),V.value?(a(),c(A,{key:0,kind:e.kind,total:w.value},null,8,[`kind`,`total`])):(a(),c(T,{key:1,instances:C.value,"omit-kind":!0,total:w.value,"loading-more":D.value,onLoadMore:z},null,8,[`instances`,`total`,`loading-more`]))]))}}},[[`__scopeId`,`data-v-e2d53ca9`]]);export{R as default};
@@ -1 +0,0 @@
1
- import{n as e}from"./rolldown-runtime-hePW80VL.js";import{A as t,F as n,I as r,J as i,K as a,L as o,M as s,N as c,P as l,Q as u,R as d,Y as f,Z as p,et as m,i as h,it as g,nt as _,o as v,q as y,t as b,tt as x,v as S,z as C}from"./index-BGlYCbi7.js";import{c as w,i as T}from"./ResourceList-BY6Z1Kcb.js";import{t as ee}from"./WikiPage-BoHNewCX.js";var E={confluence:`Confluence`,jira:`Jira`,github:`GitHub`,gitlab:`GitLab`,servicenow:`ServiceNow`,grafana:`Grafana`,prometheus:`Prometheus`,sonar:`SonarQube`,slack:`Slack`,drive:`Google Drive`};function D(e){let[t,...n]=e.split(`-`),r=E[t.toLowerCase()];return r?[r,...n].join(` `):e}function O(e){return Object.hasOwn(E,e.split(`-`)[0].toLowerCase())}function k(e){try{return new URL(e).host}catch{return``}}function A(e){return Object.entries(e||{}).sort(([e],[t])=>Number(O(t))-Number(O(e))||e.localeCompare(t))}function j(e){let t={};for(let[n,r]of e){let e=T(r);(t[e]||=[]).push({name:n,url:r})}return Object.entries(t).sort(([e],[t])=>e.localeCompare(t))}var M={key:0,class:`link-groups`},N=[`href`,`title`],P={key:1,class:`chip-group`},F=[`href`,`title`],I={key:0,class:`link-host`},L=h({__name:`ResourceLinks`,props:{links:{type:Object,default:()=>({})}},setup(e){let i=e,o=s(()=>A(i.links)),l=s(()=>o.value.length>10?j(o.value):null);return(e,i)=>l.value?(a(),r(`div`,M,[(a(!0),r(t,null,y(l.value,([e,n])=>(a(),r(`section`,{key:e},[c(`strong`,null,g(e),1),c(`ul`,null,[(a(!0),r(t,null,y(n,e=>(a(),r(`li`,{key:e.name},[c(`a`,{href:e.url,target:`_blank`,rel:`noopener noreferrer`,title:e.url},[c(`i`,{class:_(x(w)(e.url)),"aria-hidden":`true`},null,2),d(` `+g(e.name),1)],8,N)]))),128))])]))),128))])):o.value.length?(a(),r(`span`,P,[(a(!0),r(t,null,y(o.value,([e,t])=>(a(),r(`a`,{key:e,class:`chip link-chip`,href:t,target:`_blank`,rel:`noopener noreferrer`,title:`Open ${t}`},[c(`i`,{class:_(`${x(w)(t)} link-icon`),"aria-hidden":`true`},null,2),c(`span`,null,g(x(D)(e)),1),x(k)(t)?(a(),r(`span`,I,g(x(k)(t)),1)):n(``,!0)],8,F))),128))])):n(``,!0)}},[[`__scopeId`,`data-v-5c834d2b`]]),R=e({default:()=>$}),z={key:0,class:`page-properties`},B={key:0,class:`prop`},V={key:1,class:`prop`},H=[`href`],U={key:2,class:`prop`},W=[`href`],G={key:3,class:`prop`},K=[`title`],q={key:4,class:`prop`},J=[`title`],Y={key:5,class:`prop`},X=[`innerHTML`],Z={key:6,class:`prop`},Q={key:1},te={key:2},$={__name:`PageView`,props:{name:String},setup(e){let h=e,x=m(null),w=m(null),T=s(()=>{let e=x.value;return!!(e&&(e.status||e.author||e.owner||e.created||e.updated||e.tags.length||e.properties?.length||Object.keys(e.links||{}).length))});async function E(){w.value=null;try{x.value=await S(h.name)}catch(e){x.value=null,w.value=e.message,b(`Not found`);return}b(x.value.title)}p(()=>h.name,E,{immediate:!0});function D(e){return`status-${String(e).toLowerCase().replace(/[^a-z0-9]+/g,`-`)}`}function O(e){let t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleDateString(void 0,{year:`numeric`,month:`short`,day:`numeric`})}function k(e){return{name:`search`,query:v(`Page: page/tags == "${e}"`,`pages`)}}return(e,s)=>{let p=f(`router-link`);return x.value?(a(),l(ee,{key:0,title:x.value.title,html:x.value.html,breadcrumb:x.value.breadcrumb,toc:x.value.toc,backlinks:x.value.backlinks,"edit-name":x.value.name},o({properties:u(()=>[T.value?(a(),r(`dl`,z,[x.value.status?(a(),r(`div`,B,[s[0]||=c(`dt`,null,`Status`,-1),c(`dd`,null,[c(`span`,{class:_([`status-pill`,D(x.value.status)])},g(x.value.status),3)])])):n(``,!0),x.value.author?(a(),r(`div`,V,[s[1]||=c(`dt`,null,`Author`,-1),c(`dd`,null,[x.value.author.email?(a(),r(`a`,{key:0,href:`mailto:${x.value.author.email}`},g(x.value.author.name),9,H)):(a(),r(t,{key:1},[d(g(x.value.author.name),1)],64))])])):n(``,!0),x.value.owner?(a(),r(`div`,U,[s[2]||=c(`dt`,null,`Owner`,-1),c(`dd`,null,[x.value.owner.email?(a(),r(`a`,{key:0,href:`mailto:${x.value.owner.email}`},g(x.value.owner.name),9,W)):(a(),r(t,{key:1},[d(g(x.value.owner.name),1)],64))])])):n(``,!0),x.value.created?(a(),r(`div`,G,[s[3]||=c(`dt`,null,`Created`,-1),c(`dd`,{title:x.value.created},g(O(x.value.created)),9,K)])):n(``,!0),x.value.updated?(a(),r(`div`,q,[s[4]||=c(`dt`,null,`Updated`,-1),c(`dd`,{title:x.value.updated},g(O(x.value.updated)),9,J)])):n(``,!0),x.value.tags.length?(a(),r(`div`,Y,[s[5]||=c(`dt`,null,`Tags`,-1),c(`dd`,null,[(a(!0),r(t,null,y(x.value.tags,(e,i)=>(a(),r(t,{key:e},[C(p,{to:k(e)},{default:u(()=>[d(g(e),1)]),_:2},1032,[`to`]),i<x.value.tags.length-1?(a(),r(t,{key:0},[d(`, `)],64)):n(``,!0)],64))),128))])])):n(``,!0),(a(!0),r(t,null,y(x.value.properties,e=>(a(),r(`div`,{key:e.key,class:`prop`},[c(`dt`,null,g(e.key),1),c(`dd`,{innerHTML:e.html},null,8,X)]))),128)),Object.keys(x.value.links||{}).length?(a(),r(`div`,Z,[s[6]||=c(`dt`,null,`Links`,-1),c(`dd`,null,[C(L,{links:x.value.links},null,8,[`links`])])])):n(``,!0)])):n(``,!0)]),_:2},[e.$slots.actions?{name:`actions`,fn:u(()=>[i(e.$slots,`actions`)]),key:`0`}:void 0]),1032,[`title`,`html`,`breadcrumb`,`toc`,`backlinks`,`edit-name`])):w.value?(a(),r(`article`,Q,[c(`p`,null,g(w.value),1)])):(a(),r(`article`,te,[...s[7]||=[c(`p`,null,`Loading...`,-1)]]))}}};export{$ as n,L as r,R as t};
@@ -1 +0,0 @@
1
- import{I as e,K as t,N as n,R as r,i,it as a}from"./index-BGlYCbi7.js";var o={class:`query-error`,role:`alert`},s={class:`query-error-message`},c=i({__name:`QueryError`,props:{message:{type:String,required:!0}},setup(i){return(c,l)=>(t(),e(`div`,o,[l[0]||=n(`div`,{class:`query-error-title`},[n(`i`,{class:`iconoir-warning-triangle`,"aria-hidden":`true`}),r(` Query error`)],-1),n(`pre`,s,a(i.message),1)]))}},[[`__scopeId`,`data-v-9e8569f3`]]);export{c as t};
@@ -1,2 +0,0 @@
1
- import{A as e,F as t,I as n,K as r,M as i,N as a,P as o,Q as s,R as c,T as l,U as u,V as d,W as f,Y as p,Z as m,et as h,i as g,it as _,nt as v,o as y,q as b,tt as x,z as S}from"./index-BGlYCbi7.js";function C(e){return e.toString().replace(/\B(?=(\d{3})+(?!\d))/g,`,`)}function w(e){let t=(Math.round(e*100)/100).toFixed(2).split(`.`);return t[0]=t[0].replace(/\B(?=(\d{3})+(?!\d))/g,`,`),`\u20AC${t.join(`.`)}`}var T={cocomoSalary:15e4,targetSalary:8e4,aiCostMultiplier:3,aiScheduleMultiplier:2.5,aiTeamMultiplier:3};function E(e,t){if(t==null)return null;let n=T.targetSalary/T.cocomoSalary,r=parseFloat(t);switch(e){case`cost`:return r*n/T.aiCostMultiplier;case`schedule`:return r/T.aiScheduleMultiplier;case`team`:return Math.ceil(r/T.aiTeamMultiplier);default:return null}}function D(e){return e.replace(/\.git$/,``).replace(`:`,`/`).replace(`git@`,`https://`)}function O(e){if(!e)return null;let t=new Date(e),n=Math.floor((Date.now()-t.getTime())/1e3);if(n<10)return`just now`;let r=[[60,`second`],[60,`minute`],[24,`hour`],[7,`day`],[4,`week`],[12,`month`],[1/0,`year`]],i=n;for(let[e,t]of r){if(i<e)return`${i} ${t}${i===1?``:`s`} ago`;i=Math.floor(i/e)}return`${i} years ago`}function k(e){return/docs\.google\.com\/(document|spreadsheets|presentation)/.test(e)?`iconoir-google-docs`:/github\.com/.test(e)?`iconoir-github`:/gitlab/.test(e)?`iconoir-git-fork`:/confluence\.|atlassian\.net/.test(e)?`iconoir-page-edit`:/jira\.|atlassian\.net.*jira/.test(e)?`iconoir-list`:/grafana/.test(e)?`iconoir-graph-up`:/prometheus/.test(e)?`iconoir-database`:/api\./.test(e)?`iconoir-code`:/docs\./.test(e)?`iconoir-book`:`iconoir-internet`}function A(e){return/docs\.google\.com/.test(e)?`Documentation`:/github\.com|gitlab/.test(e)?`Code Repository`:/confluence\.|atlassian\.net/.test(e)?`Documentation`:/jira\.|atlassian\.net.*jira/.test(e)?`Project Management`:/grafana|prometheus/.test(e)?`Monitoring`:/api\./.test(e)?`API`:/docs\./.test(e)?`Documentation`:`Other`}var j=new Set([`name`,`kind`]);function M(e){return j.has(e)}function N(e,t){return M(t)?e[t]??null:e.metadata?.annotations?.[t]??null}function P(e,t){let n=`${t}:`;return t&&e?.startsWith(n)&&e.length>n.length?e.slice(n.length):e}function F(...e){return e.filter(Boolean).join(`
2
- `)||void 0}var I=[`title`],L={class:`hl-label`},R={class:`hl-number`},z={key:0,class:`hl-more`},B=2,V=g({__name:`HighlightValue`,props:{item:{type:Object,required:!0},kind:{type:String,required:!0}},setup(l){let u=l,d=i(()=>u.item.type===`Time`),f=i(()=>typeof u.item.value==`number`),m=i(()=>[`Person`,`EmailRecipient`].includes(u.item.type)),h=i(()=>[`tag_word`,`tag_list`].includes(u.item.format)),g=i(()=>Array.isArray(u.item.value)?u.item.value:[u.item.value]),v=i(()=>g.value.slice(0,B)),S=i(()=>g.value.length-v.value.length),C=i(()=>F(u.item.title,u.item.key,d.value?u.item.value:null)),w=i(()=>String(u.item.value).replace(/\s*<[^>]*>/,``).trim()||String(u.item.value));function T(e){let t=`${u.kind}: ${u.item.key} == "${String(e).replace(/\\/g,`\\\\`).replace(/"/g,`\\"`)}"`;return{name:`search`,query:y(t,u.kind===`Page`?`pages`:`kinds`)}}return(i,u)=>{let y=p(`router-link`);return r(),n(`span`,{class:`hl`,title:C.value},[f.value?(r(),n(e,{key:0},[a(`span`,L,_(l.item.title),1),a(`span`,R,_(l.item.value.toLocaleString(`en`)),1)],64)):d.value?(r(),n(e,{key:1},[c(_(x(O)(l.item.value)),1)],64)):m.value?(r(),n(e,{key:2},[c(_(w.value),1)],64)):h.value?(r(),n(e,{key:3},[(r(!0),n(e,null,b(v.value,e=>(r(),o(y,{key:e,class:`hl-tag`,to:T(e)},{default:s(()=>[c(_(e),1)]),_:2},1032,[`to`]))),128)),S.value>0?(r(),n(`span`,z,`+`+_(S.value),1)):t(``,!0)],64)):(r(),n(e,{key:4},[c(_(g.value.join(`, `)),1)],64))],8,I)}}},[[`__scopeId`,`data-v-318b23ef`]]),H={class:`highlights`},U=g({__name:`HighlightList`,props:{items:{type:Array,required:!0},kind:{type:String,required:!0}},setup(t){return(i,a)=>(r(),n(`div`,H,[(r(!0),n(e,null,b(t.items,e=>(r(),o(V,{key:e.key,item:e,kind:t.kind},null,8,[`item`,`kind`]))),128))]))}},[[`__scopeId`,`data-v-c7feccbb`]]),W={key:0,class:`empty-state`},G={key:0,class:`col-kind`},K=[`onClick`],q={class:`col-name`},J={key:0,class:`instance-sub`},Y={key:0,class:`col-kind`},X={key:0,class:`instance-kind`},Z=[`title`],Q={key:1,class:`empty-value`},$={class:`instance-main`},ee={key:0,class:`instance-sub`},te={key:1,class:`instance-kind`},ne={key:0},re=g({__name:`ResourceList`,props:{instances:{type:Array,required:!0},omitKind:{type:Boolean,default:!1},fields:{type:Array,default:null},total:{type:Number,default:0},loadingMore:{type:Boolean,default:!1},pageLinks:{type:Boolean,default:!1},rows:{type:Boolean,default:!1},embedded:{type:Boolean,default:!1}},emits:[`load-more`],setup(g,{emit:y}){let C=g,w=y,T=d(`pageTitles`,null);function E(e){return C.pageLinks&&e.kind===`Page`}let D=l();function k(e,t){t.target.closest(`a`)||t.metaKey||t.ctrlKey||t.shiftKey||window.getSelection()?.toString()||D.push(A(e))}function A(e){return E(e)?{name:`page`,params:{name:e.name}}:{name:`instance`,params:{kind:e.kind,instance:e.name}}}function j(e){return E(e)&&T?.value?.[e.name]||e.name}function P(e){return E(e)&&j(e)!==e.name?e.name:null}let F=h(null),I=null,L=i(()=>C.total>C.instances.length);function R(){I&&I.disconnect(),F.value&&(I=new IntersectionObserver(e=>{e[0].isIntersecting&&L.value&&!C.loadingMore&&w(`load-more`)},{rootMargin:`200px`}),I.observe(F.value))}f(R),m(F,R),u(()=>{I&&I.disconnect()});let z=i(()=>C.fields&&C.fields.length>0),B=i(()=>C.fields?C.fields.filter(e=>!M(e)).map(e=>{let t=e.split(`/`),n;return n=t.length>=2?`${t[t.length-2]} ${t[t.length-1]}`:t[t.length-1],n=n.replace(/([a-z])([A-Z])/g,`$1 $2`).replace(/^./,e=>e.toUpperCase()),{key:e,title:n}}):[]);function V(e,t){return N(e,t)}function H(e){return/at$/i.test(e)||/date$/i.test(e)||/time$/i.test(e)}return(i,l)=>{let u=p(`router-link`);return r(),n(e,null,[g.instances.length?z.value?(r(),n(`table`,{key:1,class:v([`resource-list-table`,{embedded:g.embedded}])},[a(`thead`,null,[a(`tr`,null,[l[1]||=a(`th`,{class:`col-name`},`Name`,-1),g.omitKind?t(``,!0):(r(),n(`th`,G,`Kind`)),(r(!0),n(e,null,b(B.value,e=>(r(),n(`th`,{key:e.key,class:`col-annotation`},_(e.title),1))),128))])]),a(`tbody`,null,[(r(!0),n(e,null,b(g.instances,i=>(r(),n(`tr`,{key:i.name,class:`resource-list-row`,onClick:e=>k(i,e)},[a(`td`,q,[S(u,{class:`instance-name`,to:A(i)},{default:s(()=>[i.icon?(r(),n(`i`,{key:0,class:v(`iconoir-${i.icon} icon-${i.layer}`)},null,2)):t(``,!0),c(` `+_(j(i)),1)]),_:2},1032,[`to`]),P(i)?(r(),n(`span`,J,_(P(i)),1)):t(``,!0)]),g.omitKind?t(``,!0):(r(),n(`td`,Y,[E(i)?t(``,!0):(r(),n(`span`,X,_(i.kind),1))])),(r(!0),n(e,null,b(B.value,t=>(r(),n(`td`,{key:t.key,class:`col-annotation`},[V(i,t.key)==null?(r(),n(`span`,Q,`—`)):(r(),n(e,{key:0},[H(t.key)?(r(),n(`span`,{key:0,title:V(i,t.key)},_(x(O)(V(i,t.key))),9,Z)):(r(),n(e,{key:1},[c(_(V(i,t.key)),1)],64))],64))]))),128))],8,K))),128))])],2)):(r(),n(`ul`,{key:2,class:v([`search-instance-list`,{rows:g.rows}])},[(r(!0),n(e,null,b(g.instances,e=>(r(),n(`li`,{key:e.name,class:`search-instance-item`},[a(`div`,$,[S(u,{class:`instance-name`,to:A(e)},{default:s(()=>[e.icon?(r(),n(`i`,{key:0,class:v(`iconoir-${e.icon} icon-${e.layer}`)},null,2)):t(``,!0),c(` `+_(j(e)),1)]),_:2},1032,[`to`]),P(e)?(r(),n(`span`,ee,_(P(e)),1)):t(``,!0),!g.omitKind&&!E(e)?(r(),n(`span`,te,_(e.kind),1)):t(``,!0)]),e.highlights?.length?(r(),o(U,{key:0,items:e.highlights,kind:e.kind},null,8,[`items`,`kind`])):t(``,!0)]))),128))],2)):(r(),n(`p`,W,[...l[0]||=[a(`i`,null,`No resources found`,-1)]])),L.value?(r(),n(`div`,{key:3,ref_key:`sentinel`,ref:F,class:`load-more-sentinel`},[g.loadingMore?(r(),n(`small`,ne,`Loading more…`)):t(``,!0)],512)):t(``,!0)],64)}}},[[`__scopeId`,`data-v-196c71cd`]]);export{P as a,k as c,w as d,A as i,C as l,F as n,N as o,E as r,D as s,re as t,O as u};
@@ -1 +0,0 @@
1
- import{A as e,C as t,F as n,I as r,K as i,M as a,N as o,P as s,Q as c,R as l,V as u,Y as d,Z as f,a as p,et as m,i as h,it as g,nt as _,o as v,q as y,r as b,w as x,z as S}from"./index-BGlYCbi7.js";import{t as C}from"./ResourceList-BY6Z1Kcb.js";import{t as w}from"./QueryError-B4Ex_csZ.js";var T={class:`kind-facets`,"aria-label":`Filter by kind`},E={class:`facet-count`},D={class:`facet-count`},O=h({__name:`KindFacets`,props:{byKind:{type:Object,default:()=>({})},selected:{type:String,default:null}},setup(t){let n=t,f=b,p=x(),m=u(`kinds`,null),h=a(()=>Object.fromEntries((m?.value?.kinds||[]).map(e=>[e.kind,e.layer]))),v=a(()=>Object.entries(n.byKind).map(([e,t])=>({kind:e,count:t,layer:f.includes(h.value[e])?h.value[e]:`other`})).sort((e,t)=>f.indexOf(e.layer)-f.indexOf(t.layer)||e.kind.localeCompare(t.kind))),C=a(()=>v.value.reduce((e,t)=>e+t.count,0));function w(e){let t={...p.query};return e?t.kind=e:delete t.kind,{name:`search`,query:t}}return(n,a)=>{let u=d(`router-link`);return i(),r(`nav`,T,[S(u,{class:_([`facet facet-all`,{selected:!t.selected}]),to:w(null),"aria-current":t.selected?void 0:`true`},{default:c(()=>[a[0]||=l(` All `,-1),o(`span`,E,g(C.value),1)]),_:1},8,[`class`,`to`,`aria-current`]),(i(!0),r(e,null,y(v.value,e=>(i(),s(u,{key:e.kind,class:_([`facet`,[`icon-${e.layer}`,{selected:t.selected===e.kind}]]),to:w(e.kind),"aria-current":t.selected===e.kind?`true`:void 0},{default:c(()=>[a[1]||=o(`span`,{class:`facet-dot`,"aria-hidden":`true`},null,-1),l(` `+g(e.kind)+` `,1),o(`span`,D,g(e.count),1)]),_:2},1032,[`class`,`to`,`aria-current`]))),128))])}}},[[`__scopeId`,`data-v-0ba72b02`]]),k={key:0,class:`search-hints`},A={class:`hint-lead`},j={class:`hint-examples`},M={class:`hint-note`},N={key:1,class:`search-hints`},P={class:`hint-lead`},F={class:`hint-tips`},I={key:0},L={key:1},R=h({__name:`SearchHints`,props:{mode:{type:String,required:!0},query:{type:String,default:``},scope:{type:String,default:`kinds`}},setup(t){let s=t,f=u(`pages`,null),p=a(()=>!!f?.value?.length),m={kinds:[{query:`kubernetes`,note:`names that contain a word`},{query:`TechnologyArtifact: activity/status == "active"`,note:`active repositories`},{query:`MotivationRequirement: requirement/priority == "must"`,note:`requirements that must be met`},{query:`-> ApplicationInterface`,note:`resources that use an interface`}],pages:[{query:`handbook`,note:`words in a page title, name or text`},{query:`page/status == "rfc"`,note:`pages in review`}]},h=a(()=>m[s.scope]||m.kinds),_=a(()=>s.scope===`pages`?`pages`:`resources`);function b(e){return{name:`search`,query:v(e.query,s.scope)}}return(a,s)=>{let u=d(`router-link`);return t.mode===`intro`?(i(),r(`section`,k,[o(`p`,A,`Search `+g(_.value)+` by name, or filter them with a query.`,1),o(`ul`,j,[(i(!0),r(e,null,y(h.value,e=>(i(),r(`li`,{key:e.query},[S(u,{to:b(e)},{default:c(()=>[o(`code`,null,g(e.query),1)]),_:2},1032,[`to`]),o(`span`,M,g(e.note),1)]))),128))]),o(`p`,null,[S(u,{to:`/doc/search`},{default:c(()=>[...s[0]||=[l(`Query syntax`,-1)]]),_:1})])])):(i(),r(`section`,N,[o(`p`,P,[l(`No `+g(_.value)+` match `,1),o(`code`,null,g(t.query),1),s[1]||=l(`.`,-1)]),o(`ul`,F,[s[2]||=o(`li`,null,`Check the spelling, or try a shorter word.`,-1),t.scope===`kinds`&&p.value?(i(),r(`li`,I,`Page texts are searched from the Pages tab.`)):n(``,!0),t.scope===`pages`?(i(),r(`li`,L,`Switch to the Kinds tab to search resources.`)):n(``,!0)]),o(`p`,null,[S(u,{to:`/doc/search`},{default:c(()=>[...s[3]||=[l(`Query syntax`,-1)]]),_:1})])]))}}},[[`__scopeId`,`data-v-c91e9485`]]),z={class:`search-page`},B={class:`sr-only`,role:`status`,"aria-live":`polite`},V={class:`header-actions`},H={key:2,class:`search-summary`},U={class:`search-meta`},W={key:0,class:`search-meta`},G={key:1,class:`more-error`},K=100,q=h({__name:`SearchResults`,setup(u){let h=x(),v=m([]),y=m(0),b=m({}),T=m(0),E=m(``),D=m(``),k=m(`kinds`),A=m(null),j=m(!1),M=m(!1),N=m(null),P=m(!1),F=0,I=0,L=a(()=>!!E.value),q=a(()=>Object.keys(b.value).length>1||!!A.value),J=a(()=>j.value||!!N.value),Y=a(()=>{let e=y.value===1?`result`:`results`;return A.value?`${y.value} ${e} in ${A.value}`:`${y.value} ${e}`});async function X(){let e=h.query.q;if(A.value=h.query.kind||null,k.value=h.query.scope===`pages`?`pages`:`kinds`,!e){I++,v.value=[],y.value=0,b.value={},E.value=``,D.value=``,N.value=null,j.value=!1;return}E.value=e,D.value=p(e,k.value);let n=++I;j.value=!0,N.value=null,P.value=!1;try{let e=await t(D.value,{limit:K,offset:0,output:`brief`,kind:A.value});if(n!==I)return;v.value=e.instances||[],y.value=e.total||0,b.value=e.by_kind||{},T.value=e.query_time_ms||0,F=v.value.length}catch(e){if(n!==I)return;N.value=e.message}finally{n===I&&(j.value=!1)}}async function Z(){if(M.value||F>=y.value||!E.value)return;M.value=!0,P.value=!1;let e=I;try{let n=await t(D.value,{limit:K,offset:F,output:`brief`,kind:A.value});if(e!==I)return;let r=n.instances||[];v.value=[...v.value,...r],F+=r.length}catch{P.value=!0}finally{M.value=!1}}return f(()=>[h.query.q,h.query.scope,h.query.kind],X,{immediate:!0}),(t,a)=>{let u=d(`router-link`);return i(),r(`article`,z,[o(`span`,B,g(j.value?`Searching`:``),1),o(`header`,null,[a[1]||=o(`h2`,null,[o(`i`,{class:`iconoir-search`,"aria-hidden":`true`}),l(` Search`)],-1),o(`div`,V,[S(u,{class:`search-syntax`,to:`/doc/search`,title:`Query syntax`},{default:c(()=>[...a[0]||=[o(`i`,{class:`iconoir-help-circle`,"aria-hidden":`true`},null,-1)]]),_:1})])]),L.value?(i(),r(e,{key:1},[q.value?(i(),s(O,{key:0,"by-kind":b.value,selected:A.value},null,8,[`by-kind`,`selected`])):n(``,!0),N.value?(i(),s(w,{key:1,message:N.value},null,8,[`message`])):n(``,!0),!N.value&&v.value.length?(i(),r(`p`,H,[l(g(Y.value)+` `,1),o(`span`,U,g(T.value)+` ms`,1),k.value===`pages`&&D.value!==E.value?(i(),r(`span`,W,[a[2]||=l(` searched as `,-1),o(`code`,null,g(D.value),1)])):n(``,!0)])):n(``,!0),o(`div`,{class:_({stale:J.value})},[v.value.length?(i(),s(C,{key:0,rows:``,instances:v.value,"omit-kind":!!A.value,"page-links":k.value===`pages`,total:y.value,"loading-more":M.value,onLoadMore:Z},null,8,[`instances`,`omit-kind`,`page-links`,`total`,`loading-more`])):n(``,!0),P.value?(i(),r(`p`,G,[a[3]||=l(` Could not load more results. `,-1),o(`button`,{type:`button`,class:`more-retry`,onClick:Z},`Try again`)])):n(``,!0)],2),!j.value&&!N.value&&!v.value.length?(i(),s(R,{key:3,mode:`empty`,query:E.value,scope:k.value},null,8,[`query`,`scope`])):n(``,!0)],64)):(i(),s(R,{key:0,mode:`intro`,scope:k.value},null,8,[`scope`]))])}}},[[`__scopeId`,`data-v-3a63d0fc`]]);export{q as default};
@@ -1,3 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["vue/mermaid-DjsXQ_XN.js","vue/rolldown-runtime-hePW80VL.js"])))=>i.map(i=>d[i]);
2
- import{M as e}from"./mermaid-DjsXQ_XN.js";import{A as t,C as n,F as r,H as i,I as a,J as o,K as s,M as c,N as l,P as u,Q as d,R as f,T as p,U as m,V as h,W as g,Y as _,Z as v,et as y,i as b,it as x,j as S,k as C,m as w,nt as T,q as E,rt as D,s as O,tt as k,y as A,z as j}from"./index-BGlYCbi7.js";import{t as M}from"./useHighlight-DPguaxfm.js";import{t as N}from"./usePanZoom-seQE1TPk.js";import{o as P,t as F}from"./ResourceList-BY6Z1Kcb.js";import{t as I}from"./QueryError-B4Ex_csZ.js";var ee=[`/kinds/`,`/pages/`,`/doc/`];function L(e){let t=p();function n(e){let n=e.target.closest(`a[href]`);if(!n)return;let r=n.getAttribute(`href`);!r||!ee.some(e=>r.startsWith(e))||(e.preventDefault(),t.push(r))}v(e,(e,t)=>{t?.removeEventListener(`click`,n),e?.addEventListener(`click`,n)},{immediate:!0,flush:`post`}),m(()=>{e.value?.removeEventListener(`click`,n)})}var R=null,z=!1;function B(){return window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`default`}async function te(){return R||(R=(await e(()=>import(`./mermaid-DjsXQ_XN.js`).then(e=>e.t),__vite__mapDeps([0,1]))).default,R.initialize({startOnLoad:!1,theme:B()}),ne(),R)}function V(e){e.querySelectorAll(`.mermaid svg`).forEach(e=>{if(e.hasAttribute(`data-panzoom-init`))return;e.setAttribute(`data-panzoom-init`,`true`);let t=e.parentElement;N(e,t)})}function ne(){z||(z=!0,window.matchMedia(`(prefers-color-scheme: dark)`).addEventListener(`change`,async()=>{R&&(R.initialize({startOnLoad:!1,theme:B()}),document.querySelectorAll(`.mermaid[data-mermaid-source]`).forEach(e=>{e.removeAttribute(`data-processed`),e.innerHTML=e.getAttribute(`data-mermaid-source`)}),await R.run(),document.querySelectorAll(`.mermaid`).forEach(e=>{e.querySelectorAll(`svg`).forEach(e=>e.removeAttribute(`data-panzoom-init`)),V(e.parentElement||e)}))}))}async function H(e){let t=e.querySelectorAll(`pre > code.language-mermaid`);if(t.length===0)return;let n=await te();t.forEach(e=>{let t=e.parentElement,n=document.createElement(`div`);n.className=`mermaid`,n.setAttribute(`data-mermaid-source`,e.textContent),n.textContent=e.textContent,t.parentElement.replaceChild(n,t)}),await n.run(),V(e)}var re=`/vendor/drawio/viewer.html`,ie=`archsight-drawio`,ae=240,oe=4e3,se=!1;function ce(e){return[...document.querySelectorAll(`iframe.drawio-frame`)].find(t=>t.contentWindow===e)}function le(e,t){let n=document.createElement(`div`);n.className=`drawio-error`,n.setAttribute(`role`,`alert`),n.textContent=t,e.replaceWith(n)}function ue(e){let t=e.data;if(e.origin!==window.location.origin||!t||t.channel!==ie)return;let n=ce(e.source);n&&(t.type===`size`&&Number.isFinite(t.height)?n.style.height=`${Math.min(Math.ceil(t.height),oe)}px`:t.type===`error`&&le(n,t.message||`The diagram could not be shown.`))}function de(e,t){let n=document.createElement(`iframe`);return n.className=`drawio-frame`,n.src=`${re}?src=${encodeURIComponent(e)}`,n.title=t||`draw.io diagram`,n.loading=`lazy`,n.referrerPolicy=`no-referrer`,n.setAttribute(`sandbox`,`allow-scripts allow-same-origin`),n.style.height=`${ae}px`,n}function fe(e){let t=document.createElement(`a`);return t.className=`drawio-open`,t.href=e,t.target=`_blank`,t.rel=`noopener`,t.textContent=`Open the .drawio file`,t}function U(e){e&&(se||=(window.addEventListener(`message`,ue),!0),e.querySelectorAll(`.drawio-diagram[data-drawio-src]:not([data-drawio-ready])`).forEach(e=>{let t=e.dataset.drawioSrc;e.dataset.drawioReady=`true`,e.replaceChildren(de(t,e.dataset.drawioTitle),fe(t))}))}var W=e=>(e||``).split(`,`).map(e=>e.trim()).filter(Boolean);function G(e){let t=e[`view/type`]||`list:name+kind`;return{query:e[`view/query`],fields:W(e[`view/fields`]),sort:W(e[`view/sort`]),showKind:t===`list:name+kind`}}var K=e=>(e||``).split(`,`).filter(Boolean);function q(){let e=y([]);async function t(t){await i();let n=t?[...t.querySelectorAll(`.kind-embed[data-kind][data-name], .view-embed[data-query], .requirements-embed[data-of]`)]:[];e.value=n.map((e,t)=>{if(e.replaceChildren(),e.classList.contains(`requirements-embed`)){let n=e.dataset,r={of:n.of,priority:K(n.priority),status:K(n.status)};return{el:e,key:`requirements/${t}`,kind:`Requirements`,name:n.title,spec:r}}if(e.classList.contains(`view-embed`)){let n=e.dataset,r=G({"view/query":n.query,"view/fields":n.fields,"view/sort":n.sort,"view/type":n.type});return{el:e,key:`inline/${t}`,kind:`View`,name:n.title,spec:r}}return{el:e,key:`${e.dataset.kind}/${e.dataset.name}`,kind:e.dataset.kind,name:e.dataset.name}})}return{embeds:e,scanEmbeds:t}}var J=(e,t)=>`${e} ${t}${e===1?``:`s`}`;function Y(e){if(!e)return null;if(!e.success)return{failed:!0,label:`Failed`,notes:``};let t=(e.sections||[]).filter(e=>e.type===`message`).map(e=>e.level),n=t.filter(e=>e===`error`).length,r=t.filter(e=>e===`warning`).length;return{failed:!1,label:`Completed`,notes:[n&&J(n,`error`),r&&J(r,`warning`)].filter(Boolean).join(`, `)}}var pe={key:1,class:`view-loading`,"aria-busy":`true`},me={key:2,class:`view-results`},he={key:0},ge={class:`view-result-meta`},X=100,Z=b({__name:`ViewResults`,props:{query:String,fields:{type:Array,default:()=>[]},sort:{type:Array,default:()=>[]},showKind:{type:Boolean,default:!0},compact:{type:Boolean,default:!1}},emits:[`loaded`],setup(e,{emit:t}){let i=e,o=t,d=y([]),p=y(0),m=y(0),h=y(!1),g=y(!1),_=y(null),b=0;function S(e,t){return t.length?[...e].sort((e,n)=>{for(let r of t){let t=r.startsWith(`-`),i=t?r.slice(1):r,a=P(e,i)??``,o=P(n,i)??``,s=String(a).localeCompare(String(o),void 0,{numeric:!0});if(s!==0)return t?-s:s}return 0}):e}let C=c(()=>S(d.value,i.sort)),w=c(()=>i.fields.length?`annotations`:`brief`);async function T(){if(i.query){h.value=!0,_.value=null,b=0;try{let e=await n(i.query,{limit:X,offset:0,output:w.value});d.value=e.instances||[],p.value=e.total||0,m.value=e.query_time_ms||0,b=d.value.length,o(`loaded`,{total:p.value})}catch(e){_.value=e.message}finally{h.value=!1}}}async function E(){if(!(g.value||b>=p.value||!i.query)){g.value=!0;try{let e=(await n(i.query,{limit:X,offset:b,output:w.value})).instances||[];d.value=[...d.value,...e],b+=e.length}catch{}g.value=!1}}return v(()=>[i.query,i.fields.join(`,`)],T,{immediate:!0}),(t,n)=>_.value?(s(),u(I,{key:0,message:_.value},null,8,[`message`])):h.value?(s(),a(`article`,pe,[...n[0]||=[l(`i`,{class:`iconoir-refresh spinning`},null,-1),f(` Running query... `,-1)]])):e.query?(s(),a(`article`,me,[e.compact?r(``,!0):(s(),a(`header`,he,[n[1]||=l(`h3`,null,`Results`,-1),l(`span`,ge,x(p.value)+` `+x(p.value===1?`item`:`items`)+` in `+x(m.value)+` ms`,1)])),j(F,{instances:C.value,"omit-kind":!e.showKind,fields:e.fields.length?e.fields:null,total:p.value,"loading-more":g.value,embedded:e.compact,onLoadMore:E},null,8,[`instances`,`omit-kind`,`fields`,`total`,`loading-more`,`embedded`])])):r(``,!0)}},[[`__scopeId`,`data-v-8ee7464a`]]),_e=[`innerHTML`],ve=[`innerHTML`],ye={key:1},be=[`innerHTML`],xe={key:1},Se=[`innerHTML`],Ce={key:1},we={key:5,class:`code`},Q=b({__name:`AnalysisSection`,props:{section:Object},setup(e){let n=y(null);L(n);let i={error:`xmark-circle`,warning:`warning-triangle`,info:`info-circle`};return(o,c)=>e.section.type===`heading`?(s(),a(`div`,{key:0,class:T([`analysis-heading`,`level-`+e.section.level])},x(e.section.text),3)):e.section.type===`text`?(s(),a(`div`,{key:1,ref_key:`sectionEl`,ref:n,class:`analysis-text`,innerHTML:e.section.content},null,8,_e)):e.section.type===`message`?(s(),a(`div`,{key:2,ref_key:`sectionEl`,ref:n,class:T([`analysis-message`,`message-`+e.section.level])},[l(`i`,{class:T(`iconoir-${i[e.section.level]||`info-circle`}`)},null,2),e.section.message_html==null?(s(),a(`span`,ye,x(e.section.message),1)):(s(),a(`span`,{key:0,innerHTML:e.section.message_html},null,8,ve))],2)):e.section.type===`table`?(s(),a(`div`,{key:3,ref_key:`sectionEl`,ref:n,class:`analysis-table-wrapper`},[l(`table`,null,[l(`thead`,null,[l(`tr`,null,[(s(!0),a(t,null,E(e.section.headers,e=>(s(),a(`th`,{key:e},x(e),1))),128))])]),l(`tbody`,null,[(s(!0),a(t,null,E(e.section.rows,(n,r)=>(s(),a(`tr`,{key:r},[(s(!0),a(t,null,E(n,(n,i)=>(s(),a(t,{key:i},[e.section.rows_html?(s(),a(`td`,{key:0,innerHTML:e.section.rows_html[r][i]},null,8,be)):(s(),a(`td`,xe,x(n),1))],64))),128))]))),128))])])],512)):e.section.type===`list`?(s(),a(`ul`,{key:4,ref_key:`sectionEl`,ref:n,class:`analysis-list`},[(s(!0),a(t,null,E(e.section.items,(n,r)=>(s(),a(t,{key:r},[e.section.items_html?(s(),a(`li`,{key:0,innerHTML:e.section.items_html[r]},null,8,Se)):(s(),a(`li`,Ce,x(n),1))],64))),128))],512)):e.section.type===`code`?(s(),a(`pre`,we,[l(`code`,{class:T(e.section.lang?`language-`+e.section.lang:``)},x(e.section.content),3)])):r(``,!0)}},[[`__scopeId`,`data-v-1a903fe7`]]),Te={key:0,class:`analysis-bar`},Ee={class:`status-indicator`},De={key:0,class:`status-notes`,title:`Reported by the analysis`},Oe={class:`analysis-bar-end`},ke={key:0,class:`duration`,title:`Run time`},Ae={key:0,class:`analysis-error-details`},je={key:0},Me={class:`code`},Ne={key:1,class:`analysis-output`},Pe={key:1,open:``},Fe=[`title`],Ie={class:`analysis-group-title`},Le={key:2,class:`analysis-results-placeholder`},Re=b({__name:`AnalysisResults`,props:{name:String,compact:{type:Boolean,default:!1}},emits:[`state`],setup(e,{emit:n}){let o=e,d=n,p=y(null),m=y(!1),h=y(null);async function _(){m.value=!0;try{p.value=await O(o.name)}catch(e){p.value={success:!1,error:e.message,sections:[]}}finally{m.value=!1}}function b(e){let t=[],n={title:null,sections:[]};for(let r of e)r.type===`heading`&&r.level===0?((n.title||n.sections.length)&&t.push(n),n={title:r.text,sections:[]}):n.sections.push(r);return(n.title||n.sections.length)&&t.push(n),t}let S={error:`xmark-circle`,warning:`warning-triangle`};function C(e){let t=e.sections.filter(e=>e.type===`message`).map(e=>e.level);return[`error`,`warning`].find(e=>t.includes(e))}let w=c(()=>p.value?.sections?.length?b(p.value.sections):[]),D=c(()=>Y(p.value)),k=c(()=>w.value.some(e=>e.title)),A=c(()=>w.value.filter(e=>e.title).length>1);return v([p,m],()=>d(`state`,{result:p.value,executing:m.value}),{immediate:!0}),v(p,async()=>{await i(),h.value&&M(h.value)}),g(_),(n,i)=>(s(),a(`article`,{ref_key:`rootEl`,ref:h,class:T([`analysis-execution`,{compact:e.compact}])},[e.compact?r(``,!0):(s(),a(`div`,Te,[l(`span`,Ee,[D.value?(s(),a(t,{key:0},[l(`i`,{class:T(D.value.failed?`iconoir-xmark-circle status-error`:`iconoir-check-circle status-done`)},null,2),f(` `+x(D.value.label)+` `,1),D.value.notes?(s(),a(`span`,De,`· `+x(D.value.notes),1)):r(``,!0)],64)):(s(),a(t,{key:1},[i[0]||=l(`i`,{class:`iconoir-refresh spinning`},null,-1),i[1]||=f(` Running...`,-1)],64))]),l(`span`,Oe,[p.value?.duration?(s(),a(`span`,ke,x(p.value.duration.toFixed(2))+`s`,1)):r(``,!0)])])),p.value?(s(),a(`div`,{key:1,class:T([`analysis-result-container`,p.value.success?`success`:`failed`])},[p.value.success?r(``,!0):(s(),a(`div`,Ae,[i[3]||=l(`strong`,null,`Error:`,-1),f(` `+x(p.value.error)+` `,1),p.value.error_backtrace?.length?(s(),a(`details`,je,[i[2]||=l(`summary`,null,`Show backtrace`,-1),l(`pre`,Me,x(p.value.error_backtrace.join(`
3
- `)),1)])):r(``,!0)])),p.value.sections?.length?(s(),a(`div`,Ne,[k.value?(s(!0),a(t,{key:1},E(w.value,(e,n)=>(s(),a(t,{key:n},[e.title?A.value?(s(),a(`details`,Pe,[l(`summary`,null,[f(x(e.title)+` `,1),C(e)?(s(),a(`i`,{key:0,class:T([`iconoir-${S[C(e)]}`,`status-${C(e)}`]),title:C(e)},null,10,Fe)):r(``,!0)]),(s(!0),a(t,null,E(e.sections,(e,t)=>(s(),u(Q,{key:`g${n}-${t}`,section:e},null,8,[`section`]))),128))])):(s(),a(t,{key:2},[l(`h3`,Ie,x(e.title),1),(s(!0),a(t,null,E(e.sections,(e,t)=>(s(),u(Q,{key:`g${n}-${t}`,section:e},null,8,[`section`]))),128))],64)):(s(!0),a(t,{key:0},E(e.sections,(e,t)=>(s(),u(Q,{key:`u${t}`,section:e},null,8,[`section`]))),128))],64))),128)):(s(!0),a(t,{key:0},E(w.value[0]?.sections,(e,t)=>(s(),u(Q,{key:t,section:e},null,8,[`section`]))),128))])):r(``,!0)],2)):m.value&&e.compact?(s(),a(`div`,Le,` Running analysis... `)):r(``,!0)],2))}},[[`__scopeId`,`data-v-21d7d6d8`]]),ze={class:`requirements-table`},Be={key:0},Ve={class:`requirement-status`},He=[`title`],Ue={key:1,class:`view-empty-value`},We={class:`requirement-story`},Ge=[`innerHTML`],Ke={key:1,class:`view-empty-value`},qe={key:0,class:`requirement-by`},Je=[`title`],Ye=b({__name:`RequirementsTable`,props:{items:{type:Array,default:()=>[]},priorityLink:{type:Function,required:!0},showBy:{type:Boolean,default:!1}},setup(e){function n(e){switch(e){case`implemented`:return`iconoir-check-circle`;case`partial`:return`iconoir-half-moon`;case`planned`:return`iconoir-calendar`;default:return`iconoir-circle`}}return(i,o)=>{let c=_(`router-link`);return s(),a(`table`,ze,[l(`thead`,null,[l(`tr`,null,[o[0]||=l(`th`,null,null,-1),o[1]||=l(`th`,null,`Name`,-1),o[2]||=l(`th`,null,`Priority`,-1),o[3]||=l(`th`,null,`Story`,-1),e.showBy?(s(),a(`th`,Be,`Realized by`)):r(``,!0)])]),l(`tbody`,null,[(s(!0),a(t,null,E(e.items,i=>(s(),a(`tr`,{key:i.name},[l(`td`,Ve,[l(`i`,{class:T([[n(i.status),`status-${i.status}`],`requirement-status-icon`]),title:i.status},null,10,He)]),l(`td`,null,[j(c,{to:{name:`instance`,params:{kind:`MotivationRequirement`,instance:i.name}}},{default:d(()=>[f(x(i.name),1)]),_:2},1032,[`to`])]),l(`td`,null,[i.priority?(s(),u(c,{key:0,class:`badge badge-info`,to:e.priorityLink(i.priority)},{default:d(()=>[f(x(i.priority),1)]),_:2},1032,[`to`])):(s(),a(`span`,Ue,`-`))]),l(`td`,We,[i.story?(s(),a(`div`,{key:0,innerHTML:i.story},null,8,Ge)):(s(),a(`span`,Ke,`-`))]),e.showBy?(s(),a(`td`,qe,[l(`ul`,null,[(s(!0),a(t,null,E(i.by,e=>(s(),a(`li`,{key:`${e.kind}/${e.name}`},[l(`i`,{class:T([[n(e.status),`status-${e.status}`],`requirement-status-icon`]),title:e.status},null,10,Je),j(c,{to:{name:`instance`,params:{kind:e.kind,instance:e.name}}},{default:d(()=>[f(x(e.name),1)]),_:2},1032,[`to`])]))),128))])])):r(``,!0)]))),128))])])}}},[[`__scopeId`,`data-v-327154ce`]]),Xe={class:`kind-embed-box`},Ze={class:`kind-embed-source`},Qe={key:0,class:`kind-embed-title`},$e={key:2,class:`kind-embed-kind`},et={key:3,class:`kind-embed-count`},tt={key:1,class:`kind-embed-status`},nt={key:0,class:`kind-embed-error`,role:`alert`},rt={key:1,class:`kind-embed-loading`,"aria-busy":`true`},it={key:1,class:`kind-embed-empty`},at={key:3,class:`kind-embed-loading`,"aria-busy":`true`},ot={key:1,class:`kind-embed-empty`},st={key:1,class:`kind-embed-empty`},ct=[`innerHTML`],lt={key:1,class:`kind-embed-empty`},$=b({__name:`EmbeddedKind`,props:{kind:String,name:String,spec:{type:Object,default:null}},setup(e){let n=e,o=y(null),p=y(null),m=y(null),g=y(null),b=y(null),S=y(null);L(S);let C=h(`kinds`,y(null)),E=[`View`,`Analysis`,`Requirements`],D=c(()=>!n.spec&&!E.includes(n.kind));async function O(){b.value=null,p.value=null,g.value=null;try{let e=await A(n.spec);b.value=e.requirements,p.value=e.total}catch(e){g.value=e.message}}async function k(){if(n.kind===`Requirements`)return O();if(!n.spec){o.value=null,p.value=null,m.value=null,g.value=null;try{o.value=await w(n.kind,n.name)}catch(e){g.value=e.message}}}v(()=>[n.kind,n.name,JSON.stringify(n.spec)],k,{immediate:!0});let j=c(()=>o.value?.metadata?.annotations||{}),M=c(()=>n.spec||G(j.value)),N=c(()=>{let e=m.value?.result,t=Y(e);if(!t)return null;let n=t.notes?`${t.label}, ${t.notes}`:t.label;return{failed:t.failed,label:e.duration?`${n} ${e.duration.toFixed(2)}s`:n}}),P=c(()=>!!j.value[`analysis/script`]),F=c(()=>j.value[`architecture/description`]);v(F,async()=>{await i(),S.value&&(H(S.value),U(S.value))});let I=c(()=>C.value?.kinds?.find(e=>e.kind===n.kind)),ee=c(()=>D.value?I.value?`iconoir-${I.value.icon}`:`iconoir-page`:{View:`iconoir-table-rows`,Requirements:`iconoir-list`}[n.kind]||`iconoir-play`),R=c(()=>n.name||(n.kind===`Requirements`?`Requirements`:`View`)),z=c(()=>new Set((b.value||[]).flatMap(e=>e.by.map(e=>`${e.kind}/${e.name}`))).size>1),B=e=>`/search?q=${encodeURIComponent(`MotivationRequirement: requirement/priority == "${e}"`)}`;return(n,i)=>{let c=_(`router-link`);return s(),a(`div`,Xe,[l(`p`,Ze,[l(`i`,{class:T(ee.value)},null,2),e.spec?(s(),a(`span`,Qe,x(R.value),1)):(s(),u(c,{key:1,to:{name:`instance`,params:{kind:e.kind,instance:e.name}},title:`Open ${e.kind.toLowerCase()} ${e.name}`},{default:d(()=>[f(x(e.name),1)]),_:1},8,[`to`,`title`])),D.value?(s(),a(`span`,$e,x(e.kind),1)):r(``,!0),p.value==null?r(``,!0):(s(),a(`span`,et,`(`+x(p.value)+` `+x(p.value===1?`item`:`items`)+`)`,1)),m.value?(s(),a(t,{key:4},[N.value?(s(),a(`span`,{key:0,class:T([`kind-embed-status`,{failed:N.value.failed}])},`(`+x(N.value.label)+`)`,3)):m.value.executing?(s(),a(`span`,tt,`(Running...)`)):r(``,!0)],64)):r(``,!0)]),g.value?(s(),a(`div`,nt,x(g.value),1)):e.kind===`Requirements`&&!b.value?(s(),a(`p`,rt,[...i[2]||=[l(`i`,{class:`iconoir-refresh spinning`},null,-1),f(` Loading requirements... `,-1)]])):e.kind===`Requirements`?(s(),a(t,{key:2},[b.value.length?(s(),u(Ye,{key:0,items:b.value,"priority-link":B,"show-by":z.value},null,8,[`items`,`show-by`])):(s(),a(`p`,it,`No requirements`))],64)):!o.value&&!e.spec?(s(),a(`p`,at,[i[3]||=l(`i`,{class:`iconoir-refresh spinning`},null,-1),f(` Loading `+x(e.kind.toLowerCase())+`... `,1)])):e.kind===`View`?(s(),a(t,{key:4},[M.value.query?(s(),u(Z,{key:0,query:M.value.query,fields:M.value.fields,sort:M.value.sort,"show-kind":M.value.showKind,compact:``,onLoaded:i[0]||=e=>p.value=e.total},null,8,[`query`,`fields`,`sort`,`show-kind`])):(s(),a(`p`,ot,`No query defined`))],64)):e.kind===`Analysis`?(s(),a(t,{key:5},[P.value?(s(),u(Re,{key:0,name:e.name,compact:``,onState:i[1]||=e=>m.value=e},null,8,[`name`])):(s(),a(`p`,st,`No script defined for this analysis`))],64)):(s(),a(t,{key:6},[F.value?(s(),a(`div`,{key:0,ref_key:`descriptionEl`,ref:S,class:`kind-embed-description prose`,innerHTML:F.value},null,8,ct)):(s(),a(`p`,lt,`No description`))],64))])}}},[[`__scopeId`,`data-v-3ba9331a`]]),ut={class:`page-head`},dt={key:1,class:`breadcrumb`},ft={key:1},pt={key:0,class:`page-toc`,"aria-label":`On this page`},mt=[`href`,`aria-current`,`onClick`],ht=[`innerHTML`],gt={key:1,class:`page-foot`},_t={__name:`WikiPage`,props:{title:String,html:String,breadcrumb:{type:Array,default:()=>[]},toc:{type:Array,default:()=>[]},backlinks:{type:Array,default:()=>[]},editName:{type:String,default:null}},setup(e){let n=e,p=y(null),h=y(null),b=c(()=>Math.min(...n.toc.map(e=>e.level)||[1]));L(p);let{embeds:w,scanEmbeds:O}=q();async function A(){await i(),p.value&&(M(p.value),H(p.value),U(p.value)),O(p.value),P()}let N=null;function P(){N=null;let e=n.toc.map(e=>e.id),t=e[0]||null;for(let n of e){let e=document.getElementById(n);e&&e.getBoundingClientRect().top<=80&&(t=n)}window.innerHeight+window.scrollY>=document.documentElement.scrollHeight-2&&window.scrollY>0&&e.length&&(t=e[e.length-1]),h.value=t}function F(){N===null&&(N=requestAnimationFrame(P))}g(()=>window.addEventListener(`scroll`,F,{passive:!0,capture:!0})),m(()=>{window.removeEventListener(`scroll`,F,{capture:!0}),N!==null&&cancelAnimationFrame(N)}),v(()=>n.html,A,{immediate:!0,flush:`post`});function I(e){document.getElementById(e)?.scrollIntoView({behavior:`smooth`}),h.value=e}return(n,i)=>{let c=_(`router-link`);return s(),a(`article`,{class:T([`wiki-page`,{"has-toc":e.toc.length}])},[l(`div`,ut,[o(n.$slots,`actions`),e.editName&&!n.$slots.actions?(s(),u(c,{key:0,class:`page-edit`,to:`/kinds/Page/instances/${encodeURIComponent(e.editName)}/edit`,title:`Edit page`,"aria-label":`Edit page`},{default:d(()=>[...i[0]||=[l(`i`,{class:`iconoir-edit-pencil`},null,-1)]]),_:1},8,[`to`])):r(``,!0),e.breadcrumb.length?(s(),a(`div`,dt,[(s(!0),a(t,null,E(e.breadcrumb,(e,n)=>(s(),a(t,{key:n},[e.page?(s(),u(c,{key:0,to:{name:`page`,params:{name:e.page}}},{default:d(()=>[f(x(e.title),1)]),_:2},1032,[`to`])):(s(),a(`span`,ft,x(e.title),1))],64))),128))])):r(``,!0),l(`h1`,null,x(e.title),1),o(n.$slots,`properties`)]),e.toc.length?(s(),a(`aside`,pt,[i[1]||=l(`span`,{class:`toc-title`},`On this page`,-1),l(`ul`,null,[(s(!0),a(t,null,E(e.toc,e=>(s(),a(`li`,{key:e.id},[l(`a`,{href:`#${e.id}`,style:D({paddingLeft:`${12+(e.level-b.value)*12}px`}),"aria-current":h.value===e.id?`location`:void 0,onClick:C(t=>I(e.id),[`prevent`])},x(e.text),13,mt)]))),128))])])):r(``,!0),l(`div`,{ref_key:`bodyEl`,ref:p,class:`page-body prose`,innerHTML:e.html},null,8,ht),(s(!0),a(t,null,E(k(w),e=>(s(),u(S,{key:e.key,to:e.el},[j($,{kind:e.kind,name:e.name,spec:e.spec},null,8,[`kind`,`name`,`spec`])],8,[`to`]))),128)),e.backlinks.length?(s(),a(`div`,gt,[i[2]||=l(`strong`,null,`Linked from`,-1),l(`ul`,null,[(s(!0),a(t,null,E(e.backlinks,e=>(s(),a(`li`,{key:e.name},[j(c,{to:{name:`page`,params:{name:e.name}}},{default:d(()=>[f(x(e.title),1)]),_:2},1032,[`to`])]))),128))])])):r(``,!0)],2)}}};export{Z as a,U as c,Re as i,H as l,$ as n,q as o,Ye as r,G as s,_t as t,L as u};
@@ -1 +0,0 @@
1
- import{j as e}from"./mermaid-DjsXQ_XN.js";export{e as createArchitectureServices};
@@ -1 +0,0 @@
1
- import{k as e}from"./mermaid-DjsXQ_XN.js";export{e as createCynefinServices};
@@ -1 +0,0 @@
1
- import{D as e}from"./mermaid-DjsXQ_XN.js";export{e as createEventModelingServices};
@@ -1 +0,0 @@
1
- import{T as e}from"./mermaid-DjsXQ_XN.js";export{e as createGitGraphServices};