archsight 0.2.2 → 0.2.4

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 (86) hide show
  1. checksums.yaml +4 -4
  2. data/chart/archsight/Chart.yaml +2 -2
  3. data/chart/archsight/templates/deployment.yaml +11 -0
  4. data/chart/archsight/templates/restart-secret.yaml +11 -0
  5. data/chart/archsight/values.yaml +14 -0
  6. data/docs/kubernetes.md +13 -10
  7. data/lib/archsight/analysis/sandbox.rb +1 -1
  8. data/lib/archsight/cli.rb +5 -2
  9. data/lib/archsight/resources/technology_artifact.rb +1 -1
  10. data/lib/archsight/version.rb +1 -1
  11. data/lib/archsight/web/public/vue/{ApiDocsPage-Cwn04X61.js → ApiDocsPage-DHOFUCYc.js} +1 -1
  12. data/lib/archsight/web/public/vue/{DocPage-Y83PCbYi.js → DocPage-CV66qgTr.js} +1 -1
  13. data/lib/archsight/web/public/vue/{EditorPage-DqRMOBE6.js → EditorPage-KqBivY-B.js} +1 -1
  14. data/lib/archsight/web/public/vue/{ErrorPage-D0lKMCXA.js → ErrorPage-DcbC8Kf1.js} +1 -1
  15. data/lib/archsight/web/public/vue/{GraphView-Byq-Nfd9.js → GraphView-Bg_l-F-Q.js} +1 -1
  16. data/lib/archsight/web/public/vue/{InstanceRouter-BJkDRXZY.css → InstanceRouter-4VEtZM7n.css} +1 -1
  17. data/lib/archsight/web/public/vue/{InstanceRouter-B3Q2fH0X.js → InstanceRouter-D-twdyZY.js} +1 -1
  18. data/lib/archsight/web/public/vue/{KindList-DlDrvJDd.js → KindList-CPImTKNb.js} +1 -1
  19. data/lib/archsight/web/public/vue/{ResourceList-DwsfI85-.js → ResourceList-DMxm0cGh.js} +1 -1
  20. data/lib/archsight/web/public/vue/{SearchResults-DlWGROho.js → SearchResults-BqUHEWHE.js} +1 -1
  21. data/lib/archsight/web/public/vue/_baseUniq-BjkdEi26.js +1 -0
  22. data/lib/archsight/web/public/vue/architectureDiagram-VXUJARFQ-JN7CxdtP.js +36 -0
  23. data/lib/archsight/web/public/vue/{blockDiagram-VD42YOAC-C8HXvtNT.js → blockDiagram-VD42YOAC-teziPFHX.js} +1 -1
  24. data/lib/archsight/web/public/vue/{c4Diagram-YG6GDRKO-QzXboDJ8.js → c4Diagram-YG6GDRKO-CVNrzCCc.js} +1 -1
  25. data/lib/archsight/web/public/vue/{chunk-4BX2VUAB-DSPzEX5F.js → chunk-4BX2VUAB-BQUARyyA.js} +1 -1
  26. data/lib/archsight/web/public/vue/{chunk-55IACEB6-Dd5Z8Bov.js → chunk-55IACEB6-BgJn0Waa.js} +1 -1
  27. data/lib/archsight/web/public/vue/{chunk-B4BG7PRW-B_hXD1nI.js → chunk-B4BG7PRW-0ghAfB1t.js} +1 -1
  28. data/lib/archsight/web/public/vue/{chunk-DI55MBZ5-C-2DUMJY.js → chunk-DI55MBZ5-HJo1DW2B.js} +1 -1
  29. data/lib/archsight/web/public/vue/{chunk-FMBD7UC4-BlBtfKnL.js → chunk-FMBD7UC4-C1GwGKgX.js} +1 -1
  30. data/lib/archsight/web/public/vue/{chunk-QN33PNHL-Db3REDIz.js → chunk-QN33PNHL-BOoA1KfJ.js} +1 -1
  31. data/lib/archsight/web/public/vue/{chunk-QZHKN3VN-BqVqGMTy.js → chunk-QZHKN3VN-BcTNH3IX.js} +1 -1
  32. data/lib/archsight/web/public/vue/{chunk-TZMSLE5B-DfX4VDWu.js → chunk-TZMSLE5B-58bQF3J5.js} +1 -1
  33. data/lib/archsight/web/public/vue/classDiagram-2ON5EDUG-DAA8tpbN.js +1 -0
  34. data/lib/archsight/web/public/vue/classDiagram-v2-WZHVMYZB-DAA8tpbN.js +1 -0
  35. data/lib/archsight/web/public/vue/clone-BPcOyh7U.js +1 -0
  36. data/lib/archsight/web/public/vue/{cose-bilkent-S5V4N54A-CfkQxn-a.js → cose-bilkent-S5V4N54A-Bv8iR4rF.js} +1 -1
  37. data/lib/archsight/web/public/vue/dagre-6UL2VRFP-B8ZPRhgU.js +4 -0
  38. data/lib/archsight/web/public/vue/diagram-PSM6KHXK-Dp1bZnNq.js +24 -0
  39. data/lib/archsight/web/public/vue/diagram-QEK2KX5R-DZBsDWP6.js +43 -0
  40. data/lib/archsight/web/public/vue/diagram-S2PKOQOG-BKOnLWNk.js +24 -0
  41. data/lib/archsight/web/public/vue/{erDiagram-Q2GNP2WA-D1mxJWSp.js → erDiagram-Q2GNP2WA-V6FqHPc9.js} +1 -1
  42. data/lib/archsight/web/public/vue/{flowDiagram-NV44I4VS-DpRd5cPP.js → flowDiagram-NV44I4VS-BipXjPVT.js} +1 -1
  43. data/lib/archsight/web/public/vue/{ganttDiagram-JELNMOA3-D04Sdd3Q.js → ganttDiagram-JELNMOA3-DUdVPVK1.js} +1 -1
  44. data/lib/archsight/web/public/vue/gitGraphDiagram-V2S2FVAM-Bcf_apTG.js +65 -0
  45. data/lib/archsight/web/public/vue/graph-C4e9XILZ.js +1 -0
  46. data/lib/archsight/web/public/vue/{index-Zr9MoxJi.js → index-BUI400cn.js} +2 -2
  47. data/lib/archsight/web/public/vue/infoDiagram-HS3SLOUP-DBwnExXO.js +2 -0
  48. data/lib/archsight/web/public/vue/{journeyDiagram-XKPGCS4Q-D-SRalYk.js → journeyDiagram-XKPGCS4Q-D4b8PEzB.js} +1 -1
  49. data/lib/archsight/web/public/vue/{kanban-definition-3W4ZIXB7-CuOjHa3p.js → kanban-definition-3W4ZIXB7-R6r4NPxJ.js} +1 -1
  50. data/lib/archsight/web/public/vue/layout-CXL8NrCi.js +1 -0
  51. data/lib/archsight/web/public/vue/{mermaid-DUllW9QE.js → mermaid-MmHzOPPB.js} +4 -4
  52. data/lib/archsight/web/public/vue/min-B4MPxNTL.js +1 -0
  53. data/lib/archsight/web/public/vue/{mindmap-definition-VGOIOE7T-BfbYXGBk.js → mindmap-definition-VGOIOE7T-BypPT67y.js} +1 -1
  54. data/lib/archsight/web/public/vue/{pieDiagram-ADFJNKIX-mb757Gpq.js → pieDiagram-ADFJNKIX-BJ4nb15u.js} +2 -2
  55. data/lib/archsight/web/public/vue/{quadrantDiagram-AYHSOK5B-DMtvHJQW.js → quadrantDiagram-AYHSOK5B-D4Ee5XRs.js} +1 -1
  56. data/lib/archsight/web/public/vue/{requirementDiagram-UZGBJVZJ-CHguirsB.js → requirementDiagram-UZGBJVZJ-DuxpUmt2.js} +1 -1
  57. data/lib/archsight/web/public/vue/{sankeyDiagram-TZEHDZUN-nblWMNF6.js → sankeyDiagram-TZEHDZUN-CgWlWmza.js} +5 -5
  58. data/lib/archsight/web/public/vue/{sequenceDiagram-WL72ISMW-B83ZoXls.js → sequenceDiagram-WL72ISMW-v2l2CbI0.js} +1 -1
  59. data/lib/archsight/web/public/vue/stateDiagram-FKZM4ZOC-B5ROi2_1.js +1 -0
  60. data/lib/archsight/web/public/vue/stateDiagram-v2-4FDKWEC3-CQhha5H7.js +1 -0
  61. data/lib/archsight/web/public/vue/{timeline-definition-IT6M3QCI-D1Wd-DLb.js → timeline-definition-IT6M3QCI-Bnx2HvxP.js} +1 -1
  62. data/lib/archsight/web/public/vue/treemap-GDKQZRPO-BVho_qBy.js +162 -0
  63. data/lib/archsight/web/public/vue/{useGraphviz-BN4iwLLN.js → useGraphviz-C5lv_BWF.js} +1 -1
  64. data/lib/archsight/web/public/vue/{useHighlight-DmGaxZxx.js → useHighlight-yg_u-WUA.js} +1 -1
  65. data/lib/archsight/web/public/vue/{useMermaid-DSo5f1Jc.js → useMermaid-BPBwn39g.js} +1 -1
  66. data/lib/archsight/web/public/vue/{usePanZoom-BEXq_r0S.js → usePanZoom-CgSmFLId.js} +1 -1
  67. data/lib/archsight/web/public/vue/{xychartDiagram-PRI3JC2R-i_eB4HAQ.js → xychartDiagram-PRI3JC2R-CDkeZXF1.js} +1 -1
  68. data/lib/archsight/web/public/vue.html +2 -2
  69. metadata +59 -58
  70. data/lib/archsight/web/public/vue/_basePickBy-DXGWsL9H.js +0 -1
  71. data/lib/archsight/web/public/vue/_baseUniq-C8pAAASt.js +0 -1
  72. data/lib/archsight/web/public/vue/architectureDiagram-VXUJARFQ-Dg_wTk4u.js +0 -36
  73. data/lib/archsight/web/public/vue/classDiagram-2ON5EDUG-C9Kk58xl.js +0 -1
  74. data/lib/archsight/web/public/vue/classDiagram-v2-WZHVMYZB-C9Kk58xl.js +0 -1
  75. data/lib/archsight/web/public/vue/clone-B6uzD5eH.js +0 -1
  76. data/lib/archsight/web/public/vue/dagre-6UL2VRFP-D13da1qu.js +0 -4
  77. data/lib/archsight/web/public/vue/diagram-PSM6KHXK-BwzbeHPK.js +0 -24
  78. data/lib/archsight/web/public/vue/diagram-QEK2KX5R-COjSoDC8.js +0 -43
  79. data/lib/archsight/web/public/vue/diagram-S2PKOQOG-FH65FafS.js +0 -24
  80. data/lib/archsight/web/public/vue/gitGraphDiagram-V2S2FVAM-DgNNP2nj.js +0 -65
  81. data/lib/archsight/web/public/vue/graph-Cnoy0p_X.js +0 -1
  82. data/lib/archsight/web/public/vue/infoDiagram-HS3SLOUP-D5asL_9P.js +0 -2
  83. data/lib/archsight/web/public/vue/layout-CD8FBujT.js +0 -1
  84. data/lib/archsight/web/public/vue/stateDiagram-FKZM4ZOC-Ct0OgmPh.js +0 -1
  85. data/lib/archsight/web/public/vue/stateDiagram-v2-4FDKWEC3-CJZXQ6xd.js +0 -1
  86. data/lib/archsight/web/public/vue/treemap-GDKQZRPO-DFPZrNlp.js +0 -162
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 80cb12962c9a8df468f3d644135ad4a19f4253f931655b971f3c8f537a8f339c
4
- data.tar.gz: e901fd680848d138dd069322adb0ffc60704cc081e19a2855ae080d1cfbbc9bf
3
+ metadata.gz: 3915931a74e1a99c1916113fb6a4002d35384aa3c7d40858c62ec7923b42bf83
4
+ data.tar.gz: eb585529128c07c269dec0bdea9bd48199d0fc55fc23753d52f53d4de4d87f0a
5
5
  SHA512:
6
- metadata.gz: 2cb304a5d1699e21bfe51e50882ece47a8ec245b8c86e0088b19d167a4662a719152d4e547d61ce0ee1aa6aa9b4fe19e9cb89ee16a1e566f3b18057b2872ef75
7
- data.tar.gz: d4fa392608acd1ed9c2d09efe0c1b5313b7fb10e48b17a8283b505c3f212241223e07f9effac546c4ac2bccd431bd561c9c202bf9ab5e43ecdac7785935d54b0
6
+ metadata.gz: 9ebe5f64aab31b80c4d8f39280312850ab6c0f131be1fdcfc24355dc219506b1d2ffa597549dc2e3e453ab086b2c14bc4dd685bd850c7d72464845889b2e46f9
7
+ data.tar.gz: 267d143d4ecfc7e0d40580dec15fc0c208d51fcc4ebd2b65a3b81565d9a6613df7bf1b3e8da9cae0d7ccaa0505d93fe02bdba2729d624decf80314d3dc930815
@@ -2,5 +2,5 @@ apiVersion: v2
2
2
  name: archsight
3
3
  description: A Helm chart for ArchSight
4
4
  type: application
5
- version: 0.1.1
6
- appVersion: "0.1.4"
5
+ version: 0.2.0
6
+ appVersion: "0.2.3"
@@ -44,6 +44,17 @@ spec:
44
44
  value: {{ .Values.app.resourcesDir | quote }}
45
45
  - name: APP_ENV
46
46
  value: {{ .Values.app.env | quote }}
47
+ {{- if .Values.restart.enabled }}
48
+ - name: ARCHSIGHT_RESTART_ENABLED
49
+ value: "true"
50
+ {{- if or .Values.restart.token .Values.restart.existingSecret }}
51
+ - name: ARCHSIGHT_RESTART_TOKEN
52
+ valueFrom:
53
+ secretKeyRef:
54
+ name: {{ .Values.restart.existingSecret | default (printf "%s-restart-token" (include "archsight.fullname" .)) }}
55
+ key: {{ .Values.restart.secretKey | default "restart-token" }}
56
+ {{- end }}
57
+ {{- end }}
47
58
  {{- if .Values.args }}
48
59
  args:
49
60
  {{- toYaml .Values.args | nindent 12 }}
@@ -0,0 +1,11 @@
1
+ {{- if and .Values.restart.enabled .Values.restart.token (not .Values.restart.existingSecret) }}
2
+ apiVersion: v1
3
+ kind: Secret
4
+ metadata:
5
+ name: {{ include "archsight.fullname" . }}-restart-token
6
+ labels:
7
+ {{- include "archsight.labels" . | nindent 4 }}
8
+ type: Opaque
9
+ data:
10
+ {{ default "restart-token" .Values.restart.secretKey }}: {{ .Values.restart.token | b64enc | quote }}
11
+ {{- end }}
@@ -79,6 +79,20 @@ app:
79
79
  resourcesDir: /resources
80
80
  env: production
81
81
 
82
+ # Restart endpoint configuration
83
+ # Enables POST /maintenance/restart to trigger a rolling restart (useful with imagePullPolicy: Always)
84
+ restart:
85
+ enabled: false
86
+ # Plain-text token value. A Kubernetes Secret will be created automatically.
87
+ # If set, the app requires this value in the X-Restart-Token header.
88
+ # If neither token nor existingSecret is set, the restart endpoint is enabled without token protection.
89
+ token: ""
90
+ # Use an existing Secret instead of creating one. The Secret must contain the token.
91
+ # If set, the app requires the referenced Secret value in the X-Restart-Token header.
92
+ existingSecret: ""
93
+ # Key inside the Secret that holds the token (default: "restart-token")
94
+ secretKey: "restart-token"
95
+
82
96
  # Strategy for populating the /resources directory
83
97
  # Options are "emptyDir", "configMap", "persistence" (PVC), or usage of "extraVolumes"
84
98
  content:
data/docs/kubernetes.md CHANGED
@@ -157,16 +157,19 @@ For simple deployments where you want to trigger a pod restart (and image re-pul
157
157
  image:
158
158
  pullPolicy: Always # Pull a fresh image on every pod restart
159
159
 
160
- args:
161
- - web
162
- - "--port"
163
- - "4567"
164
- - "-H"
165
- - "0.0.0.0"
166
- - "--production"
167
- - "--enable-restart" # Opt-in: exposes POST /maintenance/restart
168
- - "--restart-token"
169
- - "your-secret-token" # Recommended: require a shared secret
160
+ restart:
161
+ enabled: true
162
+ token: "your-secret-token" # Stored as a Kubernetes Secret automatically
163
+ ```
164
+
165
+ The chart creates a `Secret` containing the token and injects it as `ARCHSIGHT_RESTART_TOKEN`
166
+ into the container. To use a pre-existing Secret instead:
167
+
168
+ ```yaml
169
+ restart:
170
+ enabled: true
171
+ existingSecret: "my-restart-secret"
172
+ secretKey: "restart-token" # key inside the Secret (default)
170
173
  ```
171
174
 
172
175
  **Trigger a restart:**
@@ -285,7 +285,7 @@ module Archsight
285
285
  return if data.empty?
286
286
 
287
287
  # If array of hashes with consistent keys, render as table
288
- if data.all? { |item| item.is_a?(Hash) }
288
+ if data.all?(Hash)
289
289
  keys = data.first.keys
290
290
  if data.all? { |item| item.keys == keys }
291
291
  table(headers: keys.map(&:to_s), rows: data.map { |item| keys.map { |k| item[k] } })
data/lib/archsight/cli.rb CHANGED
@@ -32,8 +32,11 @@ module Archsight
32
32
  Archsight::Web::Application.configure_environment!(env, logging: options[:enable_logging])
33
33
  Archsight::Web::Application.set :reload_enabled, !options[:disable_reload]
34
34
  Archsight::Web::Application.set :inline_edit_enabled, options[:inline_edit]
35
- Archsight::Web::Application.set :restart_enabled, options[:enable_restart]
36
- Archsight::Web::Application.set :restart_token, options[:restart_token]
35
+
36
+ restart_enabled = options[:enable_restart] || ENV["ARCHSIGHT_RESTART_ENABLED"] == "true"
37
+ restart_token = options[:restart_token] || ENV.fetch("ARCHSIGHT_RESTART_TOKEN", nil)
38
+ Archsight::Web::Application.set :restart_enabled, restart_enabled
39
+ Archsight::Web::Application.set :restart_token, restart_token
37
40
  Archsight::Web::Application.setup_mcp!
38
41
  Archsight::Web::Application.run!(port: options[:port], bind: options[:host])
39
42
  rescue Archsight::ResourceError => e
@@ -179,7 +179,7 @@ class Archsight::Resources::TechnologyArtifact < Archsight::Resources::Base
179
179
  description: "License category",
180
180
  title: "License Category",
181
181
  filter: :word,
182
- enum: %w[permissive copyleft weak-copyleft proprietary unknown]
182
+ enum: %w[permissive copyleft weak-copyleft source-available proprietary unknown]
183
183
  annotation "license/dependencies/count",
184
184
  description: "Total dependencies",
185
185
  title: "Dependencies",
@@ -4,5 +4,5 @@
4
4
  # Do not edit manually.
5
5
 
6
6
  module Archsight
7
- VERSION = "0.2.2"
7
+ VERSION = "0.2.4"
8
8
  end
@@ -1 +1 @@
1
- import{_ as u,l as _,c as s,a as c,v as m,t as f,b as v,r as i,z as k,o as d,B as w}from"./index-Zr9MoxJi.js";import"./mermaid-DUllW9QE.js";const h={class:"api-docs-page"},y={key:0,class:"pico-color-red-500"},g={__name:"ApiDocsPage",setup(B){const l=k(),r=i(null),t=i(null);function p(o){return new Promise((e,n)=>{if(window.Redoc)return e();const a=document.createElement("script");a.src=o,a.onload=e,a.onerror=()=>n(new Error("Failed to load ReDoc")),document.head.appendChild(a)})}return _(async()=>{try{await p("https://cdn.redoc.ly/redoc/latest/bundles/redoc.standalone.js"),window.Redoc.init("/api/v1/openapi.yaml",{},r.value)}catch(o){t.value=o.message}}),(o,e)=>(d(),s("div",h,[c("a",{href:"#",class:"back-link",onClick:e[0]||(e[0]=m(n=>w(l).back(),["prevent"]))},"← Back"),t.value?(d(),s("div",y,f(t.value),1)):v("",!0),c("div",{ref_key:"container",ref:r},null,512)]))}},R=u(g,[["__scopeId","data-v-0e03906d"]]);export{R as default};
1
+ import{_ as u,l as _,c as s,a as c,v as m,t as f,b as v,r as i,z as k,o as d,B as w}from"./index-BUI400cn.js";import"./mermaid-MmHzOPPB.js";const h={class:"api-docs-page"},y={key:0,class:"pico-color-red-500"},g={__name:"ApiDocsPage",setup(B){const l=k(),r=i(null),t=i(null);function p(o){return new Promise((e,n)=>{if(window.Redoc)return e();const a=document.createElement("script");a.src=o,a.onload=e,a.onerror=()=>n(new Error("Failed to load ReDoc")),document.head.appendChild(a)})}return _(async()=>{try{await p("https://cdn.redoc.ly/redoc/latest/bundles/redoc.standalone.js"),window.Redoc.init("/api/v1/openapi.yaml",{},r.value)}catch(o){t.value=o.message}}),(o,e)=>(d(),s("div",h,[c("a",{href:"#",class:"back-link",onClick:e[0]||(e[0]=m(n=>w(l).back(),["prevent"]))},"← Back"),t.value?(d(),s("div",y,f(t.value),1)):v("",!0),c("div",{ref_key:"container",ref:r},null,512)]))}},R=u(g,[["__scopeId","data-v-0e03906d"]]);export{R as default};
@@ -1 +1 @@
1
- import{w as m,c as i,a as f,r as a,o as s,j as p,k as d}from"./index-Zr9MoxJi.js";import{r as v}from"./useMermaid-DSo5f1Jc.js";import{h as _}from"./useHighlight-DmGaxZxx.js";import"./mermaid-DUllW9QE.js";import"./usePanZoom-BEXq_r0S.js";const k=["innerHTML"],g={key:1},D={__name:"DocPage",props:{filename:String},setup(c){const n=c,o=a(""),t=a(!0),e=a(null);async function u(){t.value=!0;const r=await p(n.filename);o.value=r||"<p>Documentation not found.</p>",t.value=!1,await d(),e.value&&(_(e.value),v(e.value))}return m(()=>n.filename,u,{immediate:!0}),(r,l)=>t.value?(s(),i("article",g,[...l[0]||(l[0]=[f("p",null,"Loading...",-1)])])):(s(),i("div",{key:0,ref_key:"articleEl",ref:e,innerHTML:o.value},null,8,k))}};export{D as default};
1
+ import{w as m,c as i,a as f,r as a,o as s,j as p,k as d}from"./index-BUI400cn.js";import{r as v}from"./useMermaid-BPBwn39g.js";import{h as _}from"./useHighlight-yg_u-WUA.js";import"./mermaid-MmHzOPPB.js";import"./usePanZoom-CgSmFLId.js";const k=["innerHTML"],g={key:1},D={__name:"DocPage",props:{filename:String},setup(c){const n=c,o=a(""),t=a(!0),e=a(null);async function u(){t.value=!0;const r=await p(n.filename);o.value=r||"<p>Documentation not found.</p>",t.value=!1,await d(),e.value&&(_(e.value),v(e.value))}return m(()=>n.filename,u,{immediate:!0}),(r,l)=>t.value?(s(),i("article",g,[...l[0]||(l[0]=[f("p",null,"Loading...",-1)])])):(s(),i("div",{key:0,ref_key:"articleEl",ref:e,innerHTML:o.value},null,8,k))}};export{D as default};
@@ -1,4 +1,4 @@
1
- import{_ as nr,o as D,c as R,a as A,d as le,t as ne,b as Fe,I as Ge,J as Ri,F as yt,x as fn,K as Ft,n as Mt,y as Xe,w as Es,r as ie,l as ga,L as Tc,k as wc,p as Nc,M as Ac,N as Fc,e as Mn,f as go,B as Oc,v as $c,g as Ic,z as Mc,i as Pc,q as Lc,O as Dc,P as Rc}from"./index-Zr9MoxJi.js";import{h as ho}from"./useHighlight-DmGaxZxx.js";import{b9 as po}from"./mermaid-DUllW9QE.js";const zc={class:"label-row"},Bc=["for","title"],Kc={key:0,class:"required"},Uc=["id","aria-invalid"],Wc=["value"],jc={key:1,class:"markdown-field"},Hc=["id","aria-invalid","placeholder"],Jc={key:0,class:"future-hint"},Vc={key:2,class:"code-field"},qc=["id","aria-invalid","placeholder"],Gc={class:"future-hint"},Yc=["id","step","aria-invalid"],Zc=["id","aria-invalid"],Xc=["id","aria-invalid"],Qc=["id","aria-invalid"],ed={key:7,class:"field-description"},td={key:8,class:"field-error"},nd={__name:"EditorField",props:{field:Object,modelValue:[String,Number,null],error:[Array,null]},emits:["update:modelValue","openMarkdown"],setup(n,{emit:e}){const t=n,r=e,i=Xe({get:()=>t.modelValue??"",set:l=>r("update:modelValue",l)}),s=Xe(()=>["textarea","markdown","code"].includes(t.field.input_type)),o=Xe(()=>t.error&&t.error.length>0);return(l,a)=>(D(),R("div",{class:Mt(["field-group",{"field-full-width":s.value}])},[A("div",zc,[A("label",{for:n.field.key,title:n.field.description},[le(ne(n.field.title)+" ",1),n.field.required?(D(),R("span",Kc,"*")):Fe("",!0)],8,Bc),n.field.input_type==="markdown"?(D(),R("button",{key:0,type:"button",class:"btn-edit-markdown",title:"Open rich text editor",onClick:a[0]||(a[0]=u=>l.$emit("openMarkdown",n.field.key))},[...a[8]||(a[8]=[A("i",{class:"iconoir-edit-pencil"},null,-1),le(" Edit ",-1)])])):Fe("",!0)]),n.field.input_type==="select"?Ge((D(),R("select",{key:0,id:n.field.key,"onUpdate:modelValue":a[1]||(a[1]=u=>i.value=u),"aria-invalid":o.value?"true":void 0},[a[9]||(a[9]=A("option",{value:""},"Select...",-1)),(D(!0),R(yt,null,fn(n.field.options,u=>(D(),R("option",{key:u,value:u},ne(u),9,Wc))),128))],8,Uc)),[[Ri,i.value]]):n.field.input_type==="textarea"||n.field.input_type==="markdown"?(D(),R("div",jc,[Ge(A("textarea",{id:n.field.key,"onUpdate:modelValue":a[2]||(a[2]=u=>i.value=u),"aria-invalid":o.value?"true":void 0,placeholder:n.field.input_type==="markdown"?"Enter markdown content...":"One entry per line..."},null,8,Hc),[[Ft,i.value]]),n.field.input_type==="markdown"?(D(),R("small",Jc,[...a[10]||(a[10]=[A("i",{class:"iconoir-info-circle"},null,-1),le(" Supports Markdown formatting ",-1)])])):Fe("",!0)])):n.field.input_type==="code"?(D(),R("div",Vc,[Ge(A("textarea",{id:n.field.key,"onUpdate:modelValue":a[3]||(a[3]=u=>i.value=u),"aria-invalid":o.value?"true":void 0,placeholder:`Enter ${n.field.code_language||""} code...`,spellcheck:"false"},null,8,qc),[[Ft,i.value]]),A("small",Gc,[a[11]||(a[11]=A("i",{class:"iconoir-code"},null,-1)),le(" "+ne((n.field.code_language||"").charAt(0).toUpperCase()+(n.field.code_language||"").slice(1))+" code ",1)])])):n.field.input_type==="number"?Ge((D(),R("input",{key:3,id:n.field.key,type:"number","onUpdate:modelValue":a[4]||(a[4]=u=>i.value=u),step:n.field.step,"aria-invalid":o.value?"true":void 0},null,8,Yc)),[[Ft,i.value]]):n.field.input_type==="url"?Ge((D(),R("input",{key:4,id:n.field.key,type:"url","onUpdate:modelValue":a[5]||(a[5]=u=>i.value=u),placeholder:"https://...","aria-invalid":o.value?"true":void 0},null,8,Zc)),[[Ft,i.value]]):n.field.input_type==="list"?Ge((D(),R("input",{key:5,id:n.field.key,type:"text","onUpdate:modelValue":a[6]||(a[6]=u=>i.value=u),placeholder:"Comma-separated values","aria-invalid":o.value?"true":void 0},null,8,Xc)),[[Ft,i.value]]):Ge((D(),R("input",{key:6,id:n.field.key,type:"text","onUpdate:modelValue":a[7]||(a[7]=u=>i.value=u),"aria-invalid":o.value?"true":void 0},null,8,Qc)),[[Ft,i.value]]),n.field.description&&!["textarea","markdown","code"].includes(n.field.input_type)?(D(),R("small",ed,ne(n.field.description),1)):Fe("",!0),o.value?(D(),R("div",td,ne(n.error.join(", ")),1)):Fe("",!0)],2))}},rd=nr(nd,[["__scopeId","data-v-6dfd17ff"]]),id={class:"relations-editor"},sd={key:0,class:"no-relations"},od={id:"relations-list"},ld={class:"relation-text"},ad=["onClick"],ud={class:"add-relation-row"},cd=["value"],dd=["value"],fd={__name:"EditorRelations",props:{relations:Array,relationOptions:Array,instancesByKind:Object},emits:["update:relations"],setup(n,{emit:e}){const t=n,r=e,i=ie(""),s=ie(""),o=Xe(()=>[...t.relations].sort((f,d)=>(f.verb+f.kind+f.name).localeCompare(d.verb+d.kind+d.name))),l=Xe(()=>i.value?t.relationOptions.find(d=>d.combo===i.value)?.target_kind:null),a=Xe(()=>l.value?t.instancesByKind[l.value]||[]:[]);Es(i,()=>{s.value=""});function u(){if(!i.value||!s.value)return;const f=t.relationOptions.find(g=>g.combo===i.value);if(!f||t.relations.some(g=>g.verb===f.verb&&g.kind===f.target_kind&&g.name===s.value))return;const h=[...t.relations,{verb:f.verb,kind:f.target_kind,name:s.value}];r("update:relations",h),i.value="",s.value=""}function c(f){const d=t.relations.filter((h,g)=>g!==f);r("update:relations",d)}return(f,d)=>(D(),R("div",id,[!n.relationOptions||n.relationOptions.length===0?(D(),R("p",sd," This resource type has no defined relations. ")):(D(),R(yt,{key:1},[A("div",od,[(D(!0),R(yt,null,fn(o.value,(h,g)=>(D(),R("div",{key:`${h.verb}:${h.kind}:${h.name}`,class:"relation-item"},[A("span",ld,[A("strong",null,ne(h.verb),1),le(" → "+ne(h.kind)+": ",1),A("em",null,ne(h.name),1)]),A("button",{class:"btn-remove",type:"button",title:"Remove",onClick:_=>c(g)},[...d[2]||(d[2]=[A("i",{class:"iconoir-xmark"},null,-1)])],8,ad)]))),128))]),A("div",ud,[Ge(A("select",{"onUpdate:modelValue":d[0]||(d[0]=h=>i.value=h)},[d[3]||(d[3]=A("option",{value:""},"Select relation...",-1)),(D(!0),R(yt,null,fn(n.relationOptions,h=>(D(),R("option",{key:h.combo,value:h.combo},ne(h.verb)+" → "+ne(h.target_kind),9,cd))),128))],512),[[Ri,i.value]]),Ge(A("select",{"onUpdate:modelValue":d[1]||(d[1]=h=>s.value=h)},[d[4]||(d[4]=A("option",{value:""},"Select instance...",-1)),(D(!0),R(yt,null,fn(a.value,h=>(D(),R("option",{key:h,value:h},ne(h),9,dd))),128))],512),[[Ri,s.value]]),A("button",{class:"secondary btn-add",type:"button",onClick:u},[...d[5]||(d[5]=[A("i",{class:"iconoir-plus"},null,-1),le(" Add ",-1)])])])],64))]))}},gd=nr(fd,[["__scopeId","data-v-e27dc1c0"]]),hd={class:"yaml-output-container"},pd={key:0,class:"conflict-error"},md={id:"yaml-content"},yd={class:"language-yaml"},_d={key:0,class:"yaml-file-info"},vd={key:1,class:"yaml-instructions"},xd={class:"yaml-actions"},bd=["disabled"],Sd={__name:"EditorYamlOutput",props:{yaml:String,kind:String,name:String,contentHash:String,pathRef:String,inlineEditEnabled:Boolean},emits:["editAgain"],setup(n,{emit:e}){const t=n,r=ie(null),i=ie("idle"),s=ie("idle"),o=ie(null);ga(()=>{r.value&&ho(r.value)}),Es(()=>t.yaml,async()=>{await wc(),r.value&&ho(r.value)});async function l(){try{await navigator.clipboard.writeText(t.yaml),i.value="copied",setTimeout(()=>{i.value="idle"},2e3)}catch{const u=document.createElement("textarea");u.value=t.yaml,u.style.position="fixed",u.style.opacity="0",document.body.appendChild(u),u.select(),document.execCommand("copy"),document.body.removeChild(u),i.value="copied",setTimeout(()=>{i.value="idle"},2e3)}}async function a(){s.value="saving",o.value=null;try{const u=await Tc(t.kind,t.name,t.yaml,t.contentHash);u.success?(s.value="saved",setTimeout(()=>{s.value="idle"},2e3)):u.conflict?(o.value=u.error,s.value="idle"):(alert("Save failed: "+u.error),s.value="idle")}catch(u){alert("Save failed: "+u.message),s.value="idle"}}return(u,c)=>(D(),R("div",hd,[o.value?(D(),R("div",pd,[c[1]||(c[1]=A("i",{class:"iconoir-warning-triangle"},null,-1)),A("span",null,ne(o.value),1)])):Fe("",!0),c[5]||(c[5]=A("p",{class:"yaml-success"},[A("i",{class:"iconoir-check-circle"}),le(" Generated YAML ")],-1)),A("div",{ref_key:"codeEl",ref:r},[A("pre",md,[A("code",yd,ne(n.yaml),1)])],512),A("footer",null,[n.pathRef?(D(),R("p",_d,[c[2]||(c[2]=A("i",{class:"iconoir-folder"},null,-1)),A("span",null,"Source: "+ne(n.pathRef),1)])):(D(),R("p",vd,[...c[3]||(c[3]=[A("i",{class:"iconoir-info-circle"},null,-1),A("span",null,[le(" Copy this YAML and save it to a "),A("code",null,".yaml"),le(" file in your resources directory, "),A("br"),le("then reload the application. ")],-1)])])),A("div",xd,[n.pathRef&&n.inlineEditEnabled?(D(),R("button",{key:0,type:"button",onClick:a,disabled:s.value==="saving",class:Mt({saved:s.value==="saved"})},[A("i",{class:Mt(s.value==="saving"?"iconoir-refresh":s.value==="saved"?"iconoir-check":"iconoir-check-circle")},null,2),le(" "+ne(s.value==="saving"?"Saving...":s.value==="saved"?"Saved!":"Save to File"),1)],10,bd)):Fe("",!0),A("button",{type:"button",onClick:l,class:Mt({copied:i.value==="copied"})},[A("i",{class:Mt(i.value==="copied"?"iconoir-check":"iconoir-copy")},null,2),le(" "+ne(i.value==="copied"?"Copied!":"Copy to Clipboard"),1)],2),A("button",{class:"secondary",type:"button",onClick:c[0]||(c[0]=f=>u.$emit("editAgain"))},[...c[4]||(c[4]=[A("i",{class:"iconoir-edit-pencil"},null,-1),le(" Edit Again ",-1)])])])])]))}},kd=nr(Sd,[["__scopeId","data-v-f7e6a550"]]);function F(n,...e){const t=new URL("https://lexical.dev/docs/error"),r=new URLSearchParams;r.append("code",n);for(const i of e)r.append("v",i);throw t.search=r.toString(),Error(`Minified Lexical error #${n}; visit ${t.toString()} for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`)}function ha(n,...e){const t=new URL("https://lexical.dev/docs/error"),r=new URLSearchParams;r.append("code",n);for(const i of e)r.append("v",i);t.search=r.toString(),console.warn(`Minified Lexical warning #${n}; visit ${t.toString()} for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`)}const He=typeof window<"u"&&window.document!==void 0&&window.document.createElement!==void 0,Cd=He&&"documentMode"in document?document.documentMode:null,Ke=He&&/Mac|iPod|iPhone|iPad/.test(navigator.platform),kt=He&&/^(?!.*Seamonkey)(?=.*Firefox).*/i.test(navigator.userAgent),$r=!(!He||!("InputEvent"in window)||Cd)&&"getTargetRanges"in new window.InputEvent("input"),Xr=He&&/Version\/[\d.]+.*Safari/.test(navigator.userAgent),rr=He&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream,Ed=He&&/Android/.test(navigator.userAgent),pa=He&&/^(?=.*Chrome).*/i.test(navigator.userAgent),zi=He&&Ed&&pa,Qr=He&&/AppleWebKit\/[\d.]+/.test(navigator.userAgent)&&Ke&&!pa,Td=0,wd=1,Nd=2,ma=128,Ad=1,Fd=2,Od=3,$d=4,Id=5,Md=6,Jn=Xr||rr||Qr?" ":"​",ei=`
1
+ import{_ as nr,o as D,c as R,a as A,d as le,t as ne,b as Fe,I as Ge,J as Ri,F as yt,x as fn,K as Ft,n as Mt,y as Xe,w as Es,r as ie,l as ga,L as Tc,k as wc,p as Nc,M as Ac,N as Fc,e as Mn,f as go,B as Oc,v as $c,g as Ic,z as Mc,i as Pc,q as Lc,O as Dc,P as Rc}from"./index-BUI400cn.js";import{h as ho}from"./useHighlight-yg_u-WUA.js";import{bk as po}from"./mermaid-MmHzOPPB.js";const zc={class:"label-row"},Bc=["for","title"],Kc={key:0,class:"required"},Uc=["id","aria-invalid"],Wc=["value"],jc={key:1,class:"markdown-field"},Hc=["id","aria-invalid","placeholder"],Jc={key:0,class:"future-hint"},Vc={key:2,class:"code-field"},qc=["id","aria-invalid","placeholder"],Gc={class:"future-hint"},Yc=["id","step","aria-invalid"],Zc=["id","aria-invalid"],Xc=["id","aria-invalid"],Qc=["id","aria-invalid"],ed={key:7,class:"field-description"},td={key:8,class:"field-error"},nd={__name:"EditorField",props:{field:Object,modelValue:[String,Number,null],error:[Array,null]},emits:["update:modelValue","openMarkdown"],setup(n,{emit:e}){const t=n,r=e,i=Xe({get:()=>t.modelValue??"",set:l=>r("update:modelValue",l)}),s=Xe(()=>["textarea","markdown","code"].includes(t.field.input_type)),o=Xe(()=>t.error&&t.error.length>0);return(l,a)=>(D(),R("div",{class:Mt(["field-group",{"field-full-width":s.value}])},[A("div",zc,[A("label",{for:n.field.key,title:n.field.description},[le(ne(n.field.title)+" ",1),n.field.required?(D(),R("span",Kc,"*")):Fe("",!0)],8,Bc),n.field.input_type==="markdown"?(D(),R("button",{key:0,type:"button",class:"btn-edit-markdown",title:"Open rich text editor",onClick:a[0]||(a[0]=u=>l.$emit("openMarkdown",n.field.key))},[...a[8]||(a[8]=[A("i",{class:"iconoir-edit-pencil"},null,-1),le(" Edit ",-1)])])):Fe("",!0)]),n.field.input_type==="select"?Ge((D(),R("select",{key:0,id:n.field.key,"onUpdate:modelValue":a[1]||(a[1]=u=>i.value=u),"aria-invalid":o.value?"true":void 0},[a[9]||(a[9]=A("option",{value:""},"Select...",-1)),(D(!0),R(yt,null,fn(n.field.options,u=>(D(),R("option",{key:u,value:u},ne(u),9,Wc))),128))],8,Uc)),[[Ri,i.value]]):n.field.input_type==="textarea"||n.field.input_type==="markdown"?(D(),R("div",jc,[Ge(A("textarea",{id:n.field.key,"onUpdate:modelValue":a[2]||(a[2]=u=>i.value=u),"aria-invalid":o.value?"true":void 0,placeholder:n.field.input_type==="markdown"?"Enter markdown content...":"One entry per line..."},null,8,Hc),[[Ft,i.value]]),n.field.input_type==="markdown"?(D(),R("small",Jc,[...a[10]||(a[10]=[A("i",{class:"iconoir-info-circle"},null,-1),le(" Supports Markdown formatting ",-1)])])):Fe("",!0)])):n.field.input_type==="code"?(D(),R("div",Vc,[Ge(A("textarea",{id:n.field.key,"onUpdate:modelValue":a[3]||(a[3]=u=>i.value=u),"aria-invalid":o.value?"true":void 0,placeholder:`Enter ${n.field.code_language||""} code...`,spellcheck:"false"},null,8,qc),[[Ft,i.value]]),A("small",Gc,[a[11]||(a[11]=A("i",{class:"iconoir-code"},null,-1)),le(" "+ne((n.field.code_language||"").charAt(0).toUpperCase()+(n.field.code_language||"").slice(1))+" code ",1)])])):n.field.input_type==="number"?Ge((D(),R("input",{key:3,id:n.field.key,type:"number","onUpdate:modelValue":a[4]||(a[4]=u=>i.value=u),step:n.field.step,"aria-invalid":o.value?"true":void 0},null,8,Yc)),[[Ft,i.value]]):n.field.input_type==="url"?Ge((D(),R("input",{key:4,id:n.field.key,type:"url","onUpdate:modelValue":a[5]||(a[5]=u=>i.value=u),placeholder:"https://...","aria-invalid":o.value?"true":void 0},null,8,Zc)),[[Ft,i.value]]):n.field.input_type==="list"?Ge((D(),R("input",{key:5,id:n.field.key,type:"text","onUpdate:modelValue":a[6]||(a[6]=u=>i.value=u),placeholder:"Comma-separated values","aria-invalid":o.value?"true":void 0},null,8,Xc)),[[Ft,i.value]]):Ge((D(),R("input",{key:6,id:n.field.key,type:"text","onUpdate:modelValue":a[7]||(a[7]=u=>i.value=u),"aria-invalid":o.value?"true":void 0},null,8,Qc)),[[Ft,i.value]]),n.field.description&&!["textarea","markdown","code"].includes(n.field.input_type)?(D(),R("small",ed,ne(n.field.description),1)):Fe("",!0),o.value?(D(),R("div",td,ne(n.error.join(", ")),1)):Fe("",!0)],2))}},rd=nr(nd,[["__scopeId","data-v-6dfd17ff"]]),id={class:"relations-editor"},sd={key:0,class:"no-relations"},od={id:"relations-list"},ld={class:"relation-text"},ad=["onClick"],ud={class:"add-relation-row"},cd=["value"],dd=["value"],fd={__name:"EditorRelations",props:{relations:Array,relationOptions:Array,instancesByKind:Object},emits:["update:relations"],setup(n,{emit:e}){const t=n,r=e,i=ie(""),s=ie(""),o=Xe(()=>[...t.relations].sort((f,d)=>(f.verb+f.kind+f.name).localeCompare(d.verb+d.kind+d.name))),l=Xe(()=>i.value?t.relationOptions.find(d=>d.combo===i.value)?.target_kind:null),a=Xe(()=>l.value?t.instancesByKind[l.value]||[]:[]);Es(i,()=>{s.value=""});function u(){if(!i.value||!s.value)return;const f=t.relationOptions.find(g=>g.combo===i.value);if(!f||t.relations.some(g=>g.verb===f.verb&&g.kind===f.target_kind&&g.name===s.value))return;const h=[...t.relations,{verb:f.verb,kind:f.target_kind,name:s.value}];r("update:relations",h),i.value="",s.value=""}function c(f){const d=t.relations.filter((h,g)=>g!==f);r("update:relations",d)}return(f,d)=>(D(),R("div",id,[!n.relationOptions||n.relationOptions.length===0?(D(),R("p",sd," This resource type has no defined relations. ")):(D(),R(yt,{key:1},[A("div",od,[(D(!0),R(yt,null,fn(o.value,(h,g)=>(D(),R("div",{key:`${h.verb}:${h.kind}:${h.name}`,class:"relation-item"},[A("span",ld,[A("strong",null,ne(h.verb),1),le(" → "+ne(h.kind)+": ",1),A("em",null,ne(h.name),1)]),A("button",{class:"btn-remove",type:"button",title:"Remove",onClick:_=>c(g)},[...d[2]||(d[2]=[A("i",{class:"iconoir-xmark"},null,-1)])],8,ad)]))),128))]),A("div",ud,[Ge(A("select",{"onUpdate:modelValue":d[0]||(d[0]=h=>i.value=h)},[d[3]||(d[3]=A("option",{value:""},"Select relation...",-1)),(D(!0),R(yt,null,fn(n.relationOptions,h=>(D(),R("option",{key:h.combo,value:h.combo},ne(h.verb)+" → "+ne(h.target_kind),9,cd))),128))],512),[[Ri,i.value]]),Ge(A("select",{"onUpdate:modelValue":d[1]||(d[1]=h=>s.value=h)},[d[4]||(d[4]=A("option",{value:""},"Select instance...",-1)),(D(!0),R(yt,null,fn(a.value,h=>(D(),R("option",{key:h,value:h},ne(h),9,dd))),128))],512),[[Ri,s.value]]),A("button",{class:"secondary btn-add",type:"button",onClick:u},[...d[5]||(d[5]=[A("i",{class:"iconoir-plus"},null,-1),le(" Add ",-1)])])])],64))]))}},gd=nr(fd,[["__scopeId","data-v-e27dc1c0"]]),hd={class:"yaml-output-container"},pd={key:0,class:"conflict-error"},md={id:"yaml-content"},yd={class:"language-yaml"},_d={key:0,class:"yaml-file-info"},vd={key:1,class:"yaml-instructions"},xd={class:"yaml-actions"},bd=["disabled"],Sd={__name:"EditorYamlOutput",props:{yaml:String,kind:String,name:String,contentHash:String,pathRef:String,inlineEditEnabled:Boolean},emits:["editAgain"],setup(n,{emit:e}){const t=n,r=ie(null),i=ie("idle"),s=ie("idle"),o=ie(null);ga(()=>{r.value&&ho(r.value)}),Es(()=>t.yaml,async()=>{await wc(),r.value&&ho(r.value)});async function l(){try{await navigator.clipboard.writeText(t.yaml),i.value="copied",setTimeout(()=>{i.value="idle"},2e3)}catch{const u=document.createElement("textarea");u.value=t.yaml,u.style.position="fixed",u.style.opacity="0",document.body.appendChild(u),u.select(),document.execCommand("copy"),document.body.removeChild(u),i.value="copied",setTimeout(()=>{i.value="idle"},2e3)}}async function a(){s.value="saving",o.value=null;try{const u=await Tc(t.kind,t.name,t.yaml,t.contentHash);u.success?(s.value="saved",setTimeout(()=>{s.value="idle"},2e3)):u.conflict?(o.value=u.error,s.value="idle"):(alert("Save failed: "+u.error),s.value="idle")}catch(u){alert("Save failed: "+u.message),s.value="idle"}}return(u,c)=>(D(),R("div",hd,[o.value?(D(),R("div",pd,[c[1]||(c[1]=A("i",{class:"iconoir-warning-triangle"},null,-1)),A("span",null,ne(o.value),1)])):Fe("",!0),c[5]||(c[5]=A("p",{class:"yaml-success"},[A("i",{class:"iconoir-check-circle"}),le(" Generated YAML ")],-1)),A("div",{ref_key:"codeEl",ref:r},[A("pre",md,[A("code",yd,ne(n.yaml),1)])],512),A("footer",null,[n.pathRef?(D(),R("p",_d,[c[2]||(c[2]=A("i",{class:"iconoir-folder"},null,-1)),A("span",null,"Source: "+ne(n.pathRef),1)])):(D(),R("p",vd,[...c[3]||(c[3]=[A("i",{class:"iconoir-info-circle"},null,-1),A("span",null,[le(" Copy this YAML and save it to a "),A("code",null,".yaml"),le(" file in your resources directory, "),A("br"),le("then reload the application. ")],-1)])])),A("div",xd,[n.pathRef&&n.inlineEditEnabled?(D(),R("button",{key:0,type:"button",onClick:a,disabled:s.value==="saving",class:Mt({saved:s.value==="saved"})},[A("i",{class:Mt(s.value==="saving"?"iconoir-refresh":s.value==="saved"?"iconoir-check":"iconoir-check-circle")},null,2),le(" "+ne(s.value==="saving"?"Saving...":s.value==="saved"?"Saved!":"Save to File"),1)],10,bd)):Fe("",!0),A("button",{type:"button",onClick:l,class:Mt({copied:i.value==="copied"})},[A("i",{class:Mt(i.value==="copied"?"iconoir-check":"iconoir-copy")},null,2),le(" "+ne(i.value==="copied"?"Copied!":"Copy to Clipboard"),1)],2),A("button",{class:"secondary",type:"button",onClick:c[0]||(c[0]=f=>u.$emit("editAgain"))},[...c[4]||(c[4]=[A("i",{class:"iconoir-edit-pencil"},null,-1),le(" Edit Again ",-1)])])])])]))}},kd=nr(Sd,[["__scopeId","data-v-f7e6a550"]]);function F(n,...e){const t=new URL("https://lexical.dev/docs/error"),r=new URLSearchParams;r.append("code",n);for(const i of e)r.append("v",i);throw t.search=r.toString(),Error(`Minified Lexical error #${n}; visit ${t.toString()} for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`)}function ha(n,...e){const t=new URL("https://lexical.dev/docs/error"),r=new URLSearchParams;r.append("code",n);for(const i of e)r.append("v",i);t.search=r.toString(),console.warn(`Minified Lexical warning #${n}; visit ${t.toString()} for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`)}const He=typeof window<"u"&&window.document!==void 0&&window.document.createElement!==void 0,Cd=He&&"documentMode"in document?document.documentMode:null,Ke=He&&/Mac|iPod|iPhone|iPad/.test(navigator.platform),kt=He&&/^(?!.*Seamonkey)(?=.*Firefox).*/i.test(navigator.userAgent),$r=!(!He||!("InputEvent"in window)||Cd)&&"getTargetRanges"in new window.InputEvent("input"),Xr=He&&/Version\/[\d.]+.*Safari/.test(navigator.userAgent),rr=He&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream,Ed=He&&/Android/.test(navigator.userAgent),pa=He&&/^(?=.*Chrome).*/i.test(navigator.userAgent),zi=He&&Ed&&pa,Qr=He&&/AppleWebKit\/[\d.]+/.test(navigator.userAgent)&&Ke&&!pa,Td=0,wd=1,Nd=2,ma=128,Ad=1,Fd=2,Od=3,$d=4,Id=5,Md=6,Jn=Xr||rr||Qr?" ":"​",ei=`
2
2
 
3
3
  `,Ts=kt?" ":Jn,ya="֑-߿יִ-﷽ﹰ-ﻼ",_a="A-Za-zÀ-ÖØ-öø-ʸ̀-֐ࠀ-῿‎Ⰰ-﬜︀-﹯﻽-￿",Pd=new RegExp("^[^"+_a+"]*["+ya+"]"),Ld=new RegExp("^[^"+ya+"]*["+_a+"]"),Wt={bold:1,capitalize:1024,code:16,highlight:ma,italic:2,lowercase:256,strikethrough:4,subscript:32,superscript:64,underline:8,uppercase:512},Dd={directionless:1,unmergeable:2},Bi={center:2,end:6,justify:4,left:1,right:3,start:5},Rd={[Fd]:"center",[Md]:"end",[$d]:"justify",[Ad]:"left",[Od]:"right",[Id]:"start"},zd={normal:0,segmented:2,token:1},Bd={[Td]:"normal",[Nd]:"segmented",[wd]:"token"},mo="$config";function va(n,e,t,r,i,s){let o=n.getFirstChild();for(;o!==null;){const l=o.__key;o.__parent===e&&(T(o)&&va(o,l,t,r,i,s),t.has(l)||s.delete(l),i.push(l)),o=o.getNextSibling()}}let Ki=!1,ws=0;function Kd(n){ws=n.timeStamp}function yi(n,e,t){const r=n.nodeName==="BR",i=e.__lexicalLineBreak;return i&&(n===i||r&&n.previousSibling===i)||r&&li(n,t)!==void 0}function Ud(n,e,t){const r=Be(Le(t));let i=null,s=null;r!==null&&r.anchorNode===n&&(i=r.anchorOffset,s=r.focusOffset);const o=n.nodeValue;o!==null&&Vs(e,o,i,s,!1)}function Wd(n,e,t){if(N(n)){const r=n.anchor.getNode();if(r.is(t)&&n.format!==r.getFormat())return!1}return pt(e)&&t.isAttached()}function jd(n,e,t,r){for(let i=n;i&&!Jf(i);i=lr(i)){const s=li(i,e);if(s!==void 0){const o=Q(s,t);if(o)return W(o)||!oe(i)?void 0:[i,o]}else if(i===r)return[r,Tu(t)]}}function xa(n,e,t){Ki=!0;const r=performance.now()-ws>100;try{tt(n,()=>{const i=$()||(function(d){return d.getEditorState().read(()=>{const h=$();return h!==null?h.clone():null})})(n),s=new Map,o=n.getRootElement(),l=n._editorState,a=n._blockCursorElement;let u=!1,c="";for(let d=0;d<e.length;d++){const h=e[d],g=h.type,_=h.target,p=jd(_,n,l,o);if(!p)continue;const[y,m]=p;if(g==="characterData")r&&O(m)&&pt(_)&&Wd(i,_,m)&&Ud(_,m,n);else if(g==="childList"){u=!0;const v=h.addedNodes;for(let x=0;x<v.length;x++){const C=v[x],E=Cu(C),k=C.parentNode;if(k!=null&&C!==a&&E===null&&!yi(C,k,n)){if(kt){const w=(oe(C)?C.innerText:null)||C.nodeValue;w&&(c+=w)}k.removeChild(C)}}const b=h.removedNodes,S=b.length;if(S>0){let x=0;for(let C=0;C<S;C++){const E=b[C];(yi(E,_,n)||a===E)&&(_.appendChild(E),x++)}S!==x&&s.set(y,m)}}}if(s.size>0)for(const[d,h]of s)h.reconcileObservedMutation(d,n);const f=t.takeRecords();if(f.length>0){for(let d=0;d<f.length;d++){const h=f[d],g=h.addedNodes,_=h.target;for(let p=0;p<g.length;p++){const y=g[p],m=y.parentNode;m==null||y.nodeName!=="BR"||yi(y,_,n)||m.removeChild(y)}}t.takeRecords()}i!==null&&(u&&xe(i),kt&&Fu(n)&&i.insertRawText(c))})}finally{Ki=!1}}function ba(n){const e=n._observer;e!==null&&xa(n,e.takeRecords(),e)}function Sa(n){(function(e){ws===0&&Le(e).addEventListener("textInput",Kd,!0)})(n),n._observer=new MutationObserver((e,t)=>{xa(n,e,t)})}let Hd=class{key;parse;unparse;isEqual;defaultValue;constructor(e,t){this.key=e,this.parse=t.parse.bind(t),this.unparse=(t.unparse||qd).bind(t),this.isEqual=(t.isEqual||Object.is).bind(t),this.defaultValue=this.parse(void 0)}};function Ns(n,e){return new Hd(n,e)}function As(n,e,t="latest"){const r=(t==="latest"?n.getLatest():n).__state;return r?r.getValue(e):e.defaultValue}function br(n,e,t){let r;if(ce(),typeof t=="function"){const s=n.getLatest(),o=As(s,e);if(r=t(o),e.isEqual(o,r))return s}else r=t;const i=n.getWritable();return Ca(i).updateFromKnown(e,r),i}function Jd(n){const e=new Map,t=new Set;for(let r=typeof n=="function"?n:n.replace;r.prototype&&r.prototype.getType!==void 0;r=Object.getPrototypeOf(r)){const{ownNodeConfig:i}=ui(r);if(i&&i.stateConfigs)for(const s of i.stateConfigs){let o;"stateConfig"in s?(o=s.stateConfig,s.flat&&t.add(o.key)):o=s,e.set(o.key,o)}}return{flatKeys:t,sharedConfigMap:e}}let Vd=class ka{node;knownState;unknownState;sharedNodeState;size;constructor(e,t,r=void 0,i=new Map,s=void 0){this.node=e,this.sharedNodeState=t,this.unknownState=r,this.knownState=i;const{sharedConfigMap:o}=this.sharedNodeState,l=s!==void 0?s:(function(a,u,c){let f=c.size;if(u)for(const d in u){const h=a.get(d);h&&c.has(h)||f++}return f})(o,r,i);this.size=l}getValue(e){const t=this.knownState.get(e);if(t!==void 0)return t;this.sharedNodeState.sharedConfigMap.set(e.key,e);let r=e.defaultValue;if(this.unknownState&&e.key in this.unknownState){const i=this.unknownState[e.key];i!==void 0&&(r=e.parse(i)),this.updateFromKnown(e,r)}return r}getInternalState(){return[this.unknownState,this.knownState]}toJSON(){const e={...this.unknownState},t={};for(const[r,i]of this.knownState)r.isEqual(i,r.defaultValue)?delete e[r.key]:e[r.key]=r.unparse(i);for(const r of this.sharedNodeState.flatKeys)r in e&&(t[r]=e[r],delete e[r]);return yo(e)&&(t.$=e),t}getWritable(e){if(this.node===e)return this;const{sharedNodeState:t,unknownState:r}=this,i=new Map(this.knownState);return new ka(e,t,(function(s,o,l){let a;if(l)for(const[u,c]of Object.entries(l)){const f=s.get(u);f?o.has(f)||o.set(f,f.parse(c)):(a=a||{},a[u]=c)}return a})(t.sharedConfigMap,i,r),i,this.size)}updateFromKnown(e,t){const r=e.key;this.sharedNodeState.sharedConfigMap.set(r,e);const{knownState:i,unknownState:s}=this;i.has(e)||s&&r in s||(s&&(delete s[r],this.unknownState=yo(s)),this.size++),i.set(e,t)}updateFromUnknown(e,t){const r=this.sharedNodeState.sharedConfigMap.get(e);r?this.updateFromKnown(r,r.parse(t)):(this.unknownState=this.unknownState||{},e in this.unknownState||this.size++,this.unknownState[e]=t)}updateFromJSON(e){const{knownState:t}=this;for(const r of t.keys())t.set(r,r.defaultValue);if(this.size=t.size,this.unknownState=void 0,e)for(const[r,i]of Object.entries(e))this.updateFromUnknown(r,i)}};function Ca(n){const e=n.getWritable(),t=e.__state?e.__state.getWritable(e):new Vd(e,Ea(e));return e.__state=t,t}function Ea(n){return n.__state?n.__state.sharedNodeState:vu(ai(),n.getType()).sharedNodeState}function yo(n){if(n)for(const e in n)return n}function qd(n){return n}function _o(n,e,t){for(const[r,i]of e.knownState){if(n.has(r.key))continue;n.add(r.key);const s=t?t.getValue(r):r.defaultValue;if(s!==i&&!r.isEqual(s,i))return!0}return!1}function vo(n,e,t){const{unknownState:r}=e,i=t?t.unknownState:void 0;if(r){for(const[s,o]of Object.entries(r))if(!n.has(s)&&(n.add(s),o!==(i?i[s]:void 0)))return!0}return!1}function xo(n,e){const t=n.__state;return t&&t.node===n?t.getWritable(e):t}function bo(n,e){const t=n.__mode,r=n.__format,i=n.__style,s=e.__mode,o=e.__format,l=e.__style,a=n.__state,u=e.__state;return(t===null||t===s)&&(r===null||r===o)&&(i===null||i===l)&&(n.__state===null||a===u||(function(c,f){if(c===f)return!0;if(c&&f&&c.size!==f.size)return!1;const d=new Set;return!(c&&_o(d,c,f)||f&&_o(d,f,c)||c&&vo(d,c,f)||f&&vo(d,f,c))})(a,u))}function So(n,e){const t=n.mergeWithSibling(e),r=q()._normalizedNodes;return r.add(n.__key),r.add(e.__key),t}function ko(n){let e,t,r=n;if(r.__text!==""||!r.isSimpleText()||r.isUnmergeable()){for(;(e=r.getPreviousSibling())!==null&&O(e)&&e.isSimpleText()&&!e.isUnmergeable();){if(e.__text!==""){if(bo(e,r)){r=So(e,r);break}break}e.remove()}for(;(t=r.getNextSibling())!==null&&O(t)&&t.isSimpleText()&&!t.isUnmergeable();){if(t.__text!==""){if(bo(r,t)){r=So(r,t);break}break}t.remove()}}else r.remove()}function Ir(n){return Co(n.anchor),Co(n.focus),n}function Co(n){for(;n.type==="element";){const e=n.getNode(),t=n.offset;let r,i;if(t===e.getChildrenSize()?(r=e.getChildAtIndex(t-1),i=!0):(r=e.getChildAtIndex(t),i=!1),O(r)){n.set(r.__key,i?r.getTextContentSize():0,"text",!0);break}if(!T(r))break;n.set(r.__key,i?r.getChildrenSize():0,"element",!0)}}let jt,pe,Vn,ti,Ui,Wi,Ht,Ue,ji,qn,ae="",qe=null,Ot=null,ln=!1,Mr=!1;function Pr(n,e){const t=Ht.get(n);if(e!==null){const r=qi(n);r.parentNode===e&&e.removeChild(r)}if(Ue.has(n)||pe._keyToDOMMap.delete(n),T(t)){const r=Dr(t,Ht);Hi(r,0,r.length-1,null)}t!==void 0&&qs(qn,Vn,ti,t,"destroyed")}function Hi(n,e,t,r){for(let i=e;i<=t;++i){const s=n[i];s!==void 0&&Pr(s,r)}}function At(n,e){n.setProperty("text-align",e)}const Gd="40px";function Ta(n,e){const t=jt.theme.indent;if(typeof t=="string"){const i=n.classList.contains(t);e>0&&!i?n.classList.add(t):e<1&&i&&n.classList.remove(t)}if(e===0)return void n.style.setProperty("padding-inline-start","");const r=getComputedStyle(pe._rootElement||n).getPropertyValue("--lexical-indent-base-value")||Gd;n.style.setProperty("padding-inline-start",`calc(${e} * ${r})`)}function wa(n,e){const t=n.style;e===0?At(t,""):e===1?At(t,"left"):e===2?At(t,"center"):e===3?At(t,"right"):e===4?At(t,"justify"):e===5?At(t,"start"):e===6&&At(t,"end")}function Ji(n,e){const t=(function(r){const i=r.__dir;if(i!==null)return i;if(ue(r))return null;const s=r.getParentOrThrow();return ue(s)&&s.__dir===null?"auto":null})(e);t!==null?n.dir=t:n.removeAttribute("dir")}function Lr(n,e){const t=Ue.get(n);t===void 0&&F(60);const r=t.createDOM(jt,pe);if((function(i,s,o){const l=o._keyToDOMMap;(function(a,u,c){const f=`__lexicalKey_${u._key}`;a[f]=c})(s,o,i),l.set(i,s)})(n,r,pe),O(t)?r.setAttribute("data-lexical-text","true"):W(t)&&r.setAttribute("data-lexical-decorator","true"),T(t)){const i=t.__indent,s=t.__size;if(Ji(r,t),i!==0&&Ta(r,i),s!==0){const l=s-1;Vi(Dr(t,Ue),t,0,l,t.getDOMSlot(r))}const o=t.__format;o!==0&&wa(r,o),t.isInline()||Na(null,t,r)}else{const i=t.getTextContent();if(W(t)){const s=t.decorate(pe,jt);s!==null&&Aa(n,s),r.contentEditable="false"}ae+=i}return e!==null&&e.insertChild(r),qs(qn,Vn,ti,t,"created"),r}function Vi(n,e,t,r,i){const s=ae;ae="";let o=t;for(;o<=r;++o){Lr(n[o],i);const l=Ue.get(n[o]);l!==null&&O(l)?qe===null&&(qe=l.getFormat(),Ot=l.getStyle()):T(l)&&o<r&&!l.isInline()&&(ae+=ei)}i.element.__lexicalTextContent=ae,ae=s+ae}function Eo(n,e){if(n){const t=n.__last;if(t){const r=e.get(t);if(r)return ee(r)?"line-break":W(r)&&r.isInline()?"decorator":null}return"empty"}return null}function Na(n,e,t){const r=Eo(n,Ht),i=Eo(e,Ue);r!==i&&e.getDOMSlot(t).setManagedLineBreak(i)}function Yd(n,e,t){var r;qe=null,Ot=null,(function(i,s,o){const l=ae,a=i.__size,u=s.__size;ae="";const c=o.element;if(a===1&&u===1){const f=i.__first,d=s.__first;if(f===d)Sr(f,c);else{const g=qi(f),_=Lr(d,null);try{c.replaceChild(_,g)}catch(p){if(typeof p=="object"&&p!=null){const y=`${p.toString()} Parent: ${c.tagName}, new child: {tag: ${_.tagName} key: ${d}}, old child: {tag: ${g.tagName}, key: ${f}}.`;throw new Error(y)}throw p}Pr(f,null)}const h=Ue.get(d);O(h)&&qe===null&&(qe=h.getFormat(),Ot=h.getStyle())}else{const f=Dr(i,Ht),d=Dr(s,Ue);if(f.length!==a&&F(227),d.length!==u&&F(228),a===0)u!==0&&Vi(d,0,0,u-1,o);else if(u===0){if(a!==0){const h=o.after==null&&o.before==null&&o.element.__lexicalLineBreak==null;Hi(f,0,a-1,h?null:c),h&&(c.textContent="")}}else(function(h,g,_,p,y,m){const v=p-1,b=y-1;let S,x,C=m.getFirstChild(),E=0,k=0;for(;E<=v&&k<=b;){const P=g[E],K=_[k];if(P===K)C=_i(Sr(K,m.element)),E++,k++;else{if(x===void 0&&(x=To(_,k)),S===void 0)S=To(g,E);else if(!S.has(P)){E++;continue}if(!x.has(P)){C=_i(qi(P)),Pr(P,m.element),E++,S.delete(P);continue}if(S.has(K)){const X=Sn(pe,K);X!==C&&m.withBefore(C).insertChild(X),C=_i(Sr(K,m.element)),E++,k++}else Lr(K,m.withBefore(C)),k++}const U=Ue.get(K);U!==null&&O(U)?qe===null&&(qe=U.getFormat(),Ot=U.getStyle()):T(U)&&k<=b&&!U.isInline()&&(ae+=ei)}const w=E>v,M=k>b;if(w&&!M){const P=_[b+1],K=P===void 0?null:pe.getElementByKey(P);Vi(_,0,k,b,m.withBefore(K))}else M&&!w&&Hi(g,E,v,m.element)})(0,f,d,a,u,o)}c.__lexicalTextContent=ae,ae=l+ae})(n,e,e.getDOMSlot(t)),r=e,qe==null||qe===r.__textFormat||Mr||r.setTextFormat(qe),(function(i){Ot==null||Ot===i.__textStyle||Mr||i.setTextStyle(Ot)})(e)}function Dr(n,e){const t=[];let r=n.__first;for(;r!==null;){const i=e.get(r);i===void 0&&F(101),t.push(r),r=i.__next}return t}function Sr(n,e){const t=Ht.get(n);let r=Ue.get(n);t!==void 0&&r!==void 0||F(61);const i=ln||Wi.has(n)||Ui.has(n),s=Sn(pe,n);if(t===r&&!i){let o;if(T(t)){const l=s.__lexicalTextContent;typeof l=="string"?o=l:(o=t.getTextContent(),s.__lexicalTextContent=o)}else o=t.getTextContent();return ae+=o,s}if(t!==r&&i&&qs(qn,Vn,ti,r,"updated"),r.updateDOM(t,s,jt)){const o=Lr(n,null);return e===null&&F(62),e.replaceChild(o,s),Pr(n,null),o}if(T(t)){T(r)||F(334,n);const o=r.__indent;(ln||o!==t.__indent)&&Ta(s,o);const l=r.__format;if((ln||l!==t.__format)&&wa(s,l),i)Yd(t,r,s),ue(r)||r.isInline()||Na(t,r,s);else{const a=s.__lexicalTextContent;let u;typeof a=="string"?u=a:(u=t.getTextContent(),s.__lexicalTextContent=u),ae+=u}if((ln||r.__dir!==t.__dir)&&(Ji(s,r),ue(r)&&!ln))for(const a of r.getChildren())T(a)&&Ji(Sn(pe,a.getKey()),a)}else{const o=r.getTextContent();if(W(r)){const l=r.decorate(pe,jt);l!==null&&Aa(n,l)}ae+=o}if(!Mr&&ue(r)&&r.__cachedText!==ae){const o=r.getWritable();o.__cachedText=ae,r=o}return s}function Aa(n,e){let t=pe._pendingDecorators;const r=pe._decorators;if(t===null){if(r[n]===e)return;t=Eu(pe)}t[n]=e}function _i(n){let e=n.nextSibling;return e!==null&&e===pe._blockCursorElement&&(e=e.nextSibling),e}function To(n,e){const t=new Set;for(let r=e;r<n.length;r++)t.add(n[r]);return t}function Zd(n,e,t,r,i,s){ae="",ln=r===2,pe=t,jt=t._config,Vn=t._nodes,ti=pe._listeners.mutation,Ui=i,Wi=s,Ht=n._nodeMap,Ue=e._nodeMap,Mr=e._readOnly,ji=new Map(t._keyToDOMMap);const o=new Map;return qn=o,Sr("root",null),pe=void 0,Vn=void 0,Ui=void 0,Wi=void 0,Ht=void 0,Ue=void 0,jt=void 0,ji=void 0,qn=void 0,o}function qi(n){const e=ji.get(n);return e===void 0&&F(75,n),e}function L(n){return{type:n}}const Fa=L("SELECTION_CHANGE_COMMAND"),Xd=L("SELECTION_INSERT_CLIPBOARD_NODES_COMMAND"),Oa=L("CLICK_COMMAND"),$a=L("BEFORE_INPUT_COMMAND"),Ia=L("INPUT_COMMAND"),Ma=L("COMPOSITION_START_COMMAND"),Pa=L("COMPOSITION_END_COMMAND"),Rt=L("DELETE_CHARACTER_COMMAND"),gn=L("INSERT_LINE_BREAK_COMMAND"),Gn=L("INSERT_PARAGRAPH_COMMAND"),hn=L("CONTROLLED_TEXT_INSERTION_COMMAND"),Fs=L("PASTE_COMMAND"),Gi=L("REMOVE_TEXT_COMMAND"),Yn=L("DELETE_WORD_COMMAND"),Zn=L("DELETE_LINE_COMMAND"),ct=L("FORMAT_TEXT_COMMAND"),Os=L("UNDO_COMMAND"),$s=L("REDO_COMMAND"),La=L("KEYDOWN_COMMAND"),Da=L("KEY_ARROW_RIGHT_COMMAND"),Yi=L("MOVE_TO_END"),Ra=L("KEY_ARROW_LEFT_COMMAND"),Rr=L("MOVE_TO_START"),_n=L("KEY_ARROW_UP_COMMAND"),zr=L("KEY_ARROW_DOWN_COMMAND"),Br=L("KEY_ENTER_COMMAND"),za=L("KEY_SPACE_COMMAND"),Ba=L("KEY_BACKSPACE_COMMAND"),Ka=L("KEY_ESCAPE_COMMAND"),Ua=L("KEY_DELETE_COMMAND"),Is=L("KEY_TAB_COMMAND"),Zi=L("INSERT_TAB_COMMAND"),zt=L("INDENT_CONTENT_COMMAND"),cn=L("OUTDENT_CONTENT_COMMAND"),Wa=L("DROP_COMMAND"),Qd=L("FORMAT_ELEMENT_COMMAND"),ja=L("DRAGSTART_COMMAND"),Ha=L("DRAGOVER_COMMAND"),ef=L("DRAGEND_COMMAND"),ni=L("COPY_COMMAND"),Ms=L("CUT_COMMAND"),Xi=L("SELECT_ALL_COMMAND"),tf=L("CLEAR_EDITOR_COMMAND"),nf=L("CLEAR_HISTORY_COMMAND"),cr=L("CAN_REDO_COMMAND"),dr=L("CAN_UNDO_COMMAND"),rf=L("FOCUS_COMMAND"),sf=L("BLUR_COMMAND"),of=L("KEY_MODIFIER_COMMAND"),st=Object.freeze({}),Qi=[["keydown",function(n,e){Xn=n.timeStamp,Ja=n.key,!e.isComposing()&&I(e,La,n)}],["pointerdown",function(n,e){const t=n.target,r=n.pointerType;On(t)&&r!=="touch"&&r!=="pen"&&n.button===0&&tt(e,()=>{xu(t)||(ns=!0)})}],["compositionstart",function(n,e){I(e,Ma,n)}],["compositionend",function(n,e){kt?Rn=!0:rr||!Xr&&!Qr?I(e,Pa,n):(kr=!0,Cr=n.data)}],["input",function(n,e){n.stopPropagation(),tt(e,()=>{e.dispatchCommand(Ia,n)},{event:n}),an=null}],["click",function(n,e){tt(e,()=>{const t=$(),r=Be(Le(e)),i=Nn();if(r){if(N(t)){const s=t.anchor,o=s.getNode();if(s.type==="element"&&s.offset===0&&t.isCollapsed()&&!ue(o)&&te().getChildrenSize()===1&&o.getTopLevelElementOrThrow().isEmpty()&&i!==null&&t.is(i))r.removeAllRanges(),t.dirty=!0;else if(n.detail===3&&!t.isCollapsed()&&o!==t.focus.getNode()){const l=ze(o,a=>T(a)&&!a.isInline());T(l)&&l.select(0)}}else if(n.pointerType==="touch"||n.pointerType==="pen"){const s=r.anchorNode;(oe(s)||pt(s))&&xe(Ds(i,r,e,n))}}I(e,Oa,n)})}],["cut",st],["copy",st],["dragstart",st],["dragover",st],["dragend",st],["paste",st],["focus",st],["blur",st],["drop",st]];$r&&Qi.push(["beforeinput",(n,e)=>(function(t,r){const i=t.inputType;i==="deleteCompositionText"||kt&&Fu(r)||i!=="insertCompositionText"&&I(r,$a,t)})(n,e)]);let Xn=0,Ja=null,Va=0,an=null;const es=new WeakMap,Kr=new WeakMap;let ts=!1,ns=!1,Kn=!1,Rn=!1,kr=!1,Cr="",It=null,qa=[0,"",0,"root",0];function Ga(n,e,t,r,i){const s=n.anchor,o=n.focus,l=s.getNode(),a=q(),u=Be(Le(a)),c=u!==null?u.anchorNode:null,f=s.key,d=a.getElementByKey(f),h=t.length;return f!==o.key||!O(l)||(!i&&(!$r||Va<r+50)||l.isDirty()&&h<2||wu(t))&&s.offset!==o.offset&&!l.isComposing()||at(l)||l.isDirty()&&h>1||(i||!$r)&&d!==null&&!l.isComposing()&&c!==xn(d)||u!==null&&e!==null&&(!e.collapsed||e.startContainer!==u.anchorNode||e.startOffset!==u.anchorOffset)||!l.isComposing()&&(l.getFormat()!==n.format||l.getStyle()!==n.style)||(function(g,_){if(_.isSegmented())return!0;if(!g.isCollapsed())return!1;const p=g.anchor.offset,y=_.getParentOrThrow(),m=Bt(_);return p===0?!_.canInsertTextBefore()||!y.canInsertTextBefore()&&!_.isComposing()||m||(function(v){const b=v.getPreviousSibling();return(O(b)||T(b)&&b.isInline())&&!b.canInsertTextAfter()})(_):p===_.getTextContentSize()&&(!_.canInsertTextAfter()||!y.canInsertTextAfter()&&!_.isComposing()||m)})(n,l)}function wo(n,e){return pt(n)&&n.nodeValue!==null&&e!==0&&e!==n.nodeValue.length}function No(n,e,t){const{anchorNode:r,anchorOffset:i,focusNode:s,focusOffset:o}=n;ts&&(ts=!1,wo(r,i)&&wo(s,o)&&!It)||tt(e,()=>{if(!t)return void xe(null);if(!or(e,r,s))return;let l=$();if(It&&N(l)&&l.isCollapsed()){const a=l.anchor,u=It.anchor;(a.key===u.key&&a.offset===u.offset+1||a.offset===1&&u.getNode().is(a.getNode().getPreviousSibling()))&&(l=It.clone(),xe(l))}if(It=null,N(l)){const a=l.anchor,u=a.getNode();if(l.isCollapsed()){n.type==="Range"&&n.anchorNode===n.focusNode&&(l.dirty=!0);const c=Le(e).event,f=c?c.timeStamp:performance.now(),[d,h,g,_,p]=qa,y=te(),m=e.isComposing()===!1&&y.getTextContent()==="";if(f<p+200&&a.offset===g&&a.key===_)Er(l,d,h);else if(a.type==="text")O(u)||F(141),Ya(l,u);else if(a.type==="element"&&!m){T(u)||F(259);const v=a.getNode();v.isEmpty()?(function(b,S){const x=S.getTextFormat(),C=S.getTextStyle();Er(b,x,C)})(l,v):Er(l,0,"")}}else{const c=a.key,f=l.focus.key,d=l.getNodes(),h=d.length,g=l.isBackward(),_=g?o:i,p=g?i:o,y=g?f:c,m=g?c:f;let v=2047,b=!1;for(let S=0;S<h;S++){const x=d[S],C=x.getTextContentSize();if(O(x)&&C!==0&&!(S===0&&x.__key===y&&_===C||S===h-1&&x.__key===m&&p===0)&&(b=!0,v&=x.getFormat(),v===0))break}l.format=b?v:0}}I(e,Fa,void 0)})}function Er(n,e,t){n.format===e&&n.style===t||(n.format=e,n.style=t,n.dirty=!0)}function Ya(n,e){Er(n,e.getFormat(),e.getStyle())}function Za(n){if(!n.getTargetRanges)return null;const e=n.getTargetRanges();return e.length===0?null:e[0]}function lf(n){const e=n.inputType,t=Za(n),r=q(),i=$();if(e==="deleteContentBackward"){if(i===null){const f=Nn();if(!N(f))return!0;xe(f.clone())}if(N(i)){const f=i.anchor.key===i.focus.key;if(s=n.timeStamp,Ja==="MediaLast"&&s<Xn+30&&r.isComposing()&&f){if(he(null),Xn=0,setTimeout(()=>{tt(r,()=>{he(null)})},30),N(i)){const d=i.anchor.getNode();d.markDirty(),O(d)||F(142),Ya(i,d)}}else{he(null),n.preventDefault();const d=i.anchor.getNode(),h=d.getTextContent(),g=d.canInsertTextAfter(),_=i.anchor.offset===0&&i.focus.offset===h.length;let p=zi&&f&&!_&&g;if(p&&i.isCollapsed()&&(p=!W(as(i.anchor,!0))),!p){I(r,Rt,!0);const y=$();zi&&N(y)&&y.isCollapsed()&&(It=y,setTimeout(()=>It=null))}}return!0}}var s;if(!N(i))return!0;const o=n.data;an!==null&&Js(!1,r,an),i.dirty&&an===null||!i.isCollapsed()||ue(i.anchor.getNode())||t===null||i.applyDOMRange(t),an=null;const l=i.anchor,a=i.focus,u=l.getNode(),c=a.getNode();if(e==="insertText"||e==="insertTranspose"){if(o===`
4
4
  `)n.preventDefault(),I(r,gn,!1);else if(o===ei)n.preventDefault(),I(r,Gn,void 0);else if(o==null&&n.dataTransfer){const f=n.dataTransfer.getData("text/plain");n.preventDefault(),i.insertRawText(f)}else o!=null&&Ga(i,t,o,n.timeStamp,!0)?(n.preventDefault(),I(r,hn,o)):an=o;return Va=n.timeStamp,!0}switch(n.preventDefault(),e){case"insertFromYank":case"insertFromDrop":case"insertReplacementText":I(r,hn,n);break;case"insertFromComposition":he(null),I(r,hn,n);break;case"insertLineBreak":he(null),I(r,gn,!1);break;case"insertParagraph":he(null),Kn&&!rr?(Kn=!1,I(r,gn,!1)):I(r,Gn,void 0);break;case"insertFromPaste":case"insertFromPasteAsQuotation":I(r,Fs,n);break;case"deleteByComposition":(function(f,d){return f!==d||T(f)||T(d)||!Bt(f)||!Bt(d)})(u,c)&&I(r,Gi,n);break;case"deleteByDrag":case"deleteByCut":I(r,Gi,n);break;case"deleteContent":I(r,Rt,!1);break;case"deleteWordBackward":I(r,Yn,!0);break;case"deleteWordForward":I(r,Yn,!1);break;case"deleteHardLineBackward":case"deleteSoftLineBackward":I(r,Zn,!0);break;case"deleteContentForward":case"deleteHardLineForward":case"deleteSoftLineForward":I(r,Zn,!1);break;case"formatStrikeThrough":I(r,ct,"strikethrough");break;case"formatBold":I(r,ct,"bold");break;case"formatItalic":I(r,ct,"italic");break;case"formatUnderline":I(r,ct,"underline");break;case"historyUndo":I(r,Os,void 0);break;case"historyRedo":I(r,$s,void 0)}return!0}function af(n){if(oe(n.target)&&xu(n.target))return!0;const e=q(),t=$(),r=n.data,i=Za(n);if(r!=null&&N(t)&&Ga(t,i,r,n.timeStamp,!1)){Rn&&(Ur(e,r),Rn=!1);const s=t.anchor.getNode(),o=Be(Le(e));if(o===null)return!0;const l=t.isBackward(),a=l?t.anchor.offset:t.focus.offset,u=l?t.focus.offset:t.anchor.offset;$r&&!t.isCollapsed()&&O(s)&&o.anchorNode!==null&&s.getTextContent().slice(0,a)+r+s.getTextContent().slice(a+u)===Au(o.anchorNode)||I(e,hn,r);const c=r.length;kt&&c>1&&n.inputType==="insertCompositionText"&&!e.isComposing()&&(t.anchor.offset-=c),zi&&e.isComposing()&&(Xn=0,he(null))}else Js(!1,e,r!==null?r:void 0),Rn&&(Ur(e,r||void 0),Rn=!1);return(function(){ce();const s=q();ba(s)})(),!0}function uf(n){const e=q(),t=$();if(N(t)&&!e.isComposing()){const r=t.anchor,i=t.anchor.getNode();he(r.key),Gs(tu),(n.timeStamp<Xn+30||r.type==="element"||!t.isCollapsed()||i.getFormat()!==t.format||O(i)&&i.getStyle()!==t.style)&&I(e,hn,Ts)}return!0}function cf(n){return Ur(q(),n.data),Gs(nu),!0}function Ur(n,e){const t=n._compositionKey;if(he(null),t!==null&&e!=null){if(e===""){const r=Q(t),i=xn(n.getElementByKey(t));if(i!==null&&i.nodeValue!==null&&O(r)){const s=Be(Le(n));let o=null,l=null;s!==null&&s.anchorNode===i&&(o=s.anchorOffset,l=s.focusOffset),Vs(r,i.nodeValue,o,l,!0)}return}if(e[e.length-1]===`
@@ -1,2 +1,2 @@
1
- import{_,c as t,a as e,d as s,t as a,v as m,F as v,x as f,b as y,e as g,f as k,y as h,g as x,u as b,z as N,o as n,n as w,A as C}from"./index-Zr9MoxJi.js";import"./mermaid-DUllW9QE.js";const S={key:0},B={class:"error-header"},E={class:"error-message"},V={class:"error-location"},q={class:"error-line-badge"},R={key:0,class:"error-code-block"},z={class:"line-number"},F={key:1},J={__name:"ErrorPage",setup(L){const c=b(),u=N(),o=h(()=>{try{return c.query.data?JSON.parse(c.query.data):null}catch{return null}});async function d(){const i=await C();i.error?u.replace({name:"error",query:{data:JSON.stringify(i.error)}}):(u.push("/"),window.location.reload())}return(i,r)=>{const p=x("router-link");return o.value?(n(),t("div",S,[e("header",null,[e("article",B,[r[1]||(r[1]=e("h3",null,[e("i",{class:"iconoir-warning-triangle"}),s(" Error ")],-1)),e("p",E,a(o.value.error),1),e("p",V,[r[0]||(r[0]=e("i",{class:"iconoir-page"},null,-1)),s(" "+a(o.value.path)+" ",1),e("span",q,"Line "+a(o.value.line_no),1)])]),e("a",{href:"#",class:"reload-btn",onClick:m(d,["prevent"])},[...r[2]||(r[2]=[e("i",{class:"iconoir-refresh"},null,-1),s(" Reload ",-1)])])]),o.value.context?(n(),t("div",R,[e("pre",null,[e("code",null,[(n(!0),t(v,null,f(o.value.context,l=>(n(),t("span",{key:l.line_no,class:w(l.selected?"error-line":"code-line")},[e("span",z,a(String(l.line_no).padStart(4," ")),1),s(a(l.content)+`
1
+ import{_,c as t,a as e,d as s,t as a,v as m,F as v,x as f,b as y,e as g,f as k,y as h,g as x,u as b,z as N,o as n,n as w,A as C}from"./index-BUI400cn.js";import"./mermaid-MmHzOPPB.js";const S={key:0},B={class:"error-header"},E={class:"error-message"},V={class:"error-location"},q={class:"error-line-badge"},R={key:0,class:"error-code-block"},z={class:"line-number"},F={key:1},J={__name:"ErrorPage",setup(L){const c=b(),u=N(),o=h(()=>{try{return c.query.data?JSON.parse(c.query.data):null}catch{return null}});async function d(){const i=await C();i.error?u.replace({name:"error",query:{data:JSON.stringify(i.error)}}):(u.push("/"),window.location.reload())}return(i,r)=>{const p=x("router-link");return o.value?(n(),t("div",S,[e("header",null,[e("article",B,[r[1]||(r[1]=e("h3",null,[e("i",{class:"iconoir-warning-triangle"}),s(" Error ")],-1)),e("p",E,a(o.value.error),1),e("p",V,[r[0]||(r[0]=e("i",{class:"iconoir-page"},null,-1)),s(" "+a(o.value.path)+" ",1),e("span",q,"Line "+a(o.value.line_no),1)])]),e("a",{href:"#",class:"reload-btn",onClick:m(d,["prevent"])},[...r[2]||(r[2]=[e("i",{class:"iconoir-refresh"},null,-1),s(" Reload ",-1)])])]),o.value.context?(n(),t("div",R,[e("pre",null,[e("code",null,[(n(!0),t(v,null,f(o.value.context,l=>(n(),t("span",{key:l.line_no,class:w(l.selected?"error-line":"code-line")},[e("span",z,a(String(l.line_no).padStart(4," ")),1),s(a(l.content)+`
2
2
  `,1)],2))),128))])])])):y("",!0)])):(n(),t("div",F,[r[4]||(r[4]=e("p",null,"No error data available.",-1)),g(p,{to:"/"},{default:k(()=>[...r[3]||(r[3]=[s("Back to home",-1)])]),_:1})]))}}},A=_(J,[["__scopeId","data-v-109cf8ab"]]);export{A as default};
@@ -1 +1 @@
1
- import{_ as p,l as d,m as v,k as m,p as _,c as o,a as n,r,o as s}from"./index-Zr9MoxJi.js";import{r as f}from"./useGraphviz-BN4iwLLN.js";import{i as g}from"./usePanZoom-BEXq_r0S.js";import"./mermaid-DUllW9QE.js";const h={key:0},k={key:1,class:"graph-container graph-expand"},w=["innerHTML"],y={__name:"GraphView",setup(x){const l=r(""),i=r(!0),a=r(null);let u=null;d(async()=>{const e=await v();l.value=e?await f(e):"",i.value=!1,await m(),c()}),_(()=>{u?.destroy()});function c(){if(!a.value)return;const e=a.value.querySelector("svg");e&&(u=g(e,a.value))}return(e,t)=>(s(),o("article",null,[t[1]||(t[1]=n("header",null,[n("h2",null,"Architecture Overview")],-1)),i.value?(s(),o("div",h,[...t[0]||(t[0]=[n("p",null,"Loading graph...",-1)])])):(s(),o("div",k,[n("div",{id:"graphviz",ref_key:"graphEl",ref:a,class:"fullcanvas",innerHTML:l.value},null,8,w)]))]))}},L=p(y,[["__scopeId","data-v-7d4eb553"]]);export{L as default};
1
+ import{_ as p,l as d,m as v,k as m,p as _,c as o,a as n,r,o as s}from"./index-BUI400cn.js";import{r as f}from"./useGraphviz-C5lv_BWF.js";import{i as g}from"./usePanZoom-CgSmFLId.js";import"./mermaid-MmHzOPPB.js";const h={key:0},k={key:1,class:"graph-container graph-expand"},w=["innerHTML"],y={__name:"GraphView",setup(x){const l=r(""),i=r(!0),a=r(null);let u=null;d(async()=>{const e=await v();l.value=e?await f(e):"",i.value=!1,await m(),c()}),_(()=>{u?.destroy()});function c(){if(!a.value)return;const e=a.value.querySelector("svg");e&&(u=g(e,a.value))}return(e,t)=>(s(),o("article",null,[t[1]||(t[1]=n("header",null,[n("h2",null,"Architecture Overview")],-1)),i.value?(s(),o("div",h,[...t[0]||(t[0]=[n("p",null,"Loading graph...",-1)])])):(s(),o("div",k,[n("div",{id:"graphviz",ref_key:"graphEl",ref:a,class:"fullcanvas",innerHTML:l.value},null,8,w)]))]))}},L=p(y,[["__scopeId","data-v-7d4eb553"]]);export{L as default};
@@ -1 +1 @@
1
- .relations-section .relations-grid[data-v-3a1d98d9]{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.relations-section .relations-outgoing[data-v-3a1d98d9]{order:2}.relations-section .relations-incoming[data-v-3a1d98d9]{order:1}@media(max-width:768px){.relations-section .relations-grid[data-v-3a1d98d9]{grid-template-columns:1fr;gap:1rem}.relations-section .relations-outgoing[data-v-3a1d98d9]{order:1}.relations-section .relations-incoming[data-v-3a1d98d9]{order:2}}.relations-section .relations-column h3[data-v-3a1d98d9]{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem;color:var(--muted-color);font-size:1rem;font-weight:600}.relations-section .relation-group[data-v-3a1d98d9]{margin-bottom:.75rem;padding:.5rem .75rem;background-color:var(--card-background-color);border:1px solid var(--muted-border-color);border-radius:.5rem}.relations-section .relation-kind[data-v-3a1d98d9]{display:flex;align-items:center;gap:.5rem;font-weight:600;margin-bottom:.25rem}.relations-section .relation-verb[data-v-3a1d98d9]{font-size:.875rem;color:var(--muted-color);margin-bottom:.5rem}.relations-section .relations-empty[data-v-3a1d98d9]{color:var(--muted-color);font-style:italic}.instance-badges[data-v-3a1d98d9]{display:flex;gap:6px;flex-wrap:wrap}.requirement-status-icon[data-v-1e32a2b6]{font-size:1.2em}.requirement-status-icon.status-implemented[data-v-1e32a2b6]{color:#10b981}.requirement-status-icon.status-partial[data-v-1e32a2b6]{color:#f59e0b}.requirement-status-icon.status-planned[data-v-1e32a2b6]{color:#3b82f6}.requirement-status-icon.status-not-started[data-v-1e32a2b6],.requirement-status-icon.status-unknown[data-v-1e32a2b6]{color:#9ca3af}.git-info[data-v-ae19746e]{display:flex;flex-wrap:wrap;gap:16px;padding:4px 0}.git-item[data-v-ae19746e]{display:flex;align-items:center;gap:6px;padding:6px 12px;background-color:var(--card-background-color);border-radius:6px;border:1px solid var(--muted-border-color)}.git-item i[data-v-ae19746e]{font-size:1.2em;color:var(--primary)}.git-link[data-v-ae19746e]{font-weight:600;color:var(--primary);text-decoration:none}.git-link[data-v-ae19746e]:hover{text-decoration:underline}.git-clone-command[data-v-ae19746e]{color:var(--muted-color);font-size:.9em;font-family:monospace;background-color:var(--code-background-color);padding:2px 6px;border-radius:3px}.copy-button[data-v-ae19746e]{padding:6px;background-color:transparent;color:var(--primary);border:1px solid var(--muted-border-color);border-radius:4px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;min-width:32px;height:32px}.copy-button[data-v-ae19746e]:hover{background-color:var(--card-background-color);border-color:var(--primary);transform:scale(1.1)}.copy-button.copied[data-v-ae19746e]{background-color:#10b981;border-color:#10b981;color:#fff}.copy-button i[data-v-ae19746e]{font-size:1.1em}.language-distribution[data-v-c306da87]{display:flex;flex-direction:column;gap:8px;min-width:200px;padding:8px 12px;background-color:var(--card-background-color);border-radius:6px;border:1px solid var(--muted-border-color)}.language-total[data-v-c306da87]{display:flex;align-items:baseline;gap:6px}.language-total .language-count[data-v-c306da87]{font-size:1.5em;font-weight:600;color:var(--color)}.language-total .language-label[data-v-c306da87]{color:var(--muted-color);font-size:.9em}.language-bar[data-v-c306da87]{display:flex;height:8px;border-radius:4px;overflow:hidden;background-color:var(--muted-border-color)}.language-bar-segment[data-v-c306da87]{height:100%;min-width:2px}.language-bar-segment.lang-0[data-v-c306da87],.language-legend-dot.lang-0[data-v-c306da87]{background-color:#3178c6}.language-bar-segment.lang-1[data-v-c306da87],.language-legend-dot.lang-1[data-v-c306da87]{background-color:#00add8}.language-bar-segment.lang-2[data-v-c306da87],.language-legend-dot.lang-2[data-v-c306da87]{background-color:#f1e05a}.language-bar-segment.lang-3[data-v-c306da87],.language-legend-dot.lang-3[data-v-c306da87]{background-color:#e34c26}.language-bar-segment.lang-4[data-v-c306da87],.language-legend-dot.lang-4[data-v-c306da87]{background-color:#563d7c}.language-bar-segment.lang-5[data-v-c306da87],.language-legend-dot.lang-5[data-v-c306da87]{background-color:#89e051}.language-bar-segment.lang-6[data-v-c306da87],.language-legend-dot.lang-6[data-v-c306da87]{background-color:#f34b7d}.language-bar-segment.lang-7[data-v-c306da87],.language-legend-dot.lang-7[data-v-c306da87]{background-color:#b07219}.language-bar-segment.lang-8[data-v-c306da87],.language-legend-dot.lang-8[data-v-c306da87]{background-color:#4f5d95}.language-bar-segment.lang-9[data-v-c306da87],.language-legend-dot.lang-9[data-v-c306da87]{background-color:#6b7280}.language-bar-segment.lang-other[data-v-c306da87],.language-legend-dot.lang-other[data-v-c306da87]{background-color:#9ca3af}.language-legend[data-v-c306da87]{display:flex;flex-wrap:wrap;gap:12px;font-size:.85em}.language-legend-item[data-v-c306da87]{display:flex;align-items:center;gap:4px}.language-legend-item a[data-v-c306da87]{color:var(--muted-color);text-decoration:none}.language-legend-item a[data-v-c306da87]:hover{color:var(--primary);text-decoration:underline}.language-legend-dot[data-v-c306da87]{width:8px;height:8px;border-radius:50%;flex-shrink:0}.project-estimate[data-v-6cb46a9d]{display:flex;flex-wrap:wrap;gap:16px;padding:4px 0}.estimate-item[data-v-6cb46a9d]{display:flex;align-items:center;gap:6px;padding:6px 12px;background-color:var(--card-background-color);border-radius:6px;border:1px solid var(--muted-border-color)}.estimate-item i[data-v-6cb46a9d]{font-size:1.2em;color:var(--primary)}.estimate-label[data-v-6cb46a9d]{color:var(--muted-color);font-size:.9em}.estimate-value[data-v-6cb46a9d]{font-weight:600;color:var(--color)}.estimate-note[data-v-6cb46a9d]{margin-left:.5rem;color:var(--muted-color);cursor:help}.estimate-note i[data-v-6cb46a9d]{font-size:.875rem}.repository-distribution[data-v-1fbb3e92]{display:flex;flex-direction:column;gap:8px;min-width:200px;padding:8px 12px;background-color:var(--card-background-color);border-radius:6px;border:1px solid var(--muted-border-color)}.repository-total[data-v-1fbb3e92]{display:flex;align-items:baseline;gap:6px}.repository-total .repository-count[data-v-1fbb3e92]{font-size:1.5em;font-weight:600;color:var(--color)}.repository-total .repository-label[data-v-1fbb3e92]{color:var(--muted-color);font-size:.9em}.repository-bar[data-v-1fbb3e92]{display:flex;height:8px;border-radius:4px;overflow:hidden;background-color:var(--muted-border-color)}.repository-bar-segment[data-v-1fbb3e92]{height:100%;min-width:2px}.repository-bar-segment.status-active[data-v-1fbb3e92]{background-color:#10b981}.repository-bar-segment.status-high-bus-factor[data-v-1fbb3e92]{background-color:#f59e0b}.repository-bar-segment.status-abandoned[data-v-1fbb3e92]{background-color:#dc2626}.repository-bar-segment.status-other[data-v-1fbb3e92]{background-color:#6b7280}.repository-bar-segment.status-archived[data-v-1fbb3e92]{background-color:#9ca3af}.repository-legend[data-v-1fbb3e92]{display:flex;flex-wrap:wrap;gap:12px;font-size:.85em}.repository-legend-item[data-v-1fbb3e92]{display:flex;align-items:center;gap:4px;color:var(--muted-color)}.repository-legend-dot[data-v-1fbb3e92]{width:8px;height:8px;border-radius:50%}.repository-legend-dot.status-active[data-v-1fbb3e92]{background-color:#10b981}.repository-legend-dot.status-high-bus-factor[data-v-1fbb3e92]{background-color:#f59e0b}.repository-legend-dot.status-abandoned[data-v-1fbb3e92]{background-color:#dc2626}.repository-legend-dot.status-other[data-v-1fbb3e92]{background-color:#6b7280}.repository-legend-dot.status-archived[data-v-1fbb3e92]{background-color:#9ca3af}@media(prefers-color-scheme:dark){.repository-bar-segment.status-active[data-v-1fbb3e92],.repository-legend-dot.status-active[data-v-1fbb3e92]{background-color:#34d399}.repository-bar-segment.status-high-bus-factor[data-v-1fbb3e92],.repository-legend-dot.status-high-bus-factor[data-v-1fbb3e92]{background-color:#fbbf24}.repository-bar-segment.status-abandoned[data-v-1fbb3e92],.repository-legend-dot.status-abandoned[data-v-1fbb3e92]{background-color:#f87171}.repository-bar-segment.status-other[data-v-1fbb3e92],.repository-legend-dot.status-other[data-v-1fbb3e92]{background-color:#9ca3af}.repository-bar-segment.status-archived[data-v-1fbb3e92],.repository-legend-dot.status-archived[data-v-1fbb3e92]{background-color:#d1d5db}}.activity-sparkline[data-v-c5e6ffa5]{display:inline-flex;align-items:flex-end;gap:1px;height:20px;padding:2px 4px;background-color:var(--card-background-color);border-radius:4px;border:1px solid var(--muted-border-color)}.activity-sparkline-bar[data-v-c5e6ffa5]{width:2px;min-height:2px;background-color:#3178c6;border-radius:1px;transition:background-color .2s ease}.activity-sparkline-bar.empty[data-v-c5e6ffa5]{min-height:0;background-color:transparent}.activity-sparkline-bar[data-v-c5e6ffa5]:hover{background-color:#2563eb}.activity-sparkline-bar.empty[data-v-c5e6ffa5]:hover{background-color:transparent}.contributors-sparkline .activity-sparkline-bar[data-v-c5e6ffa5]{background-color:#10b981}.contributors-sparkline .activity-sparkline-bar[data-v-c5e6ffa5]:hover{background-color:#059669}.jira-created-sparkline .activity-sparkline-bar[data-v-c5e6ffa5]{background-color:#f59e0b}.jira-created-sparkline .activity-sparkline-bar[data-v-c5e6ffa5]:hover{background-color:#d97706}.jira-resolved-sparkline .activity-sparkline-bar[data-v-c5e6ffa5]{background-color:#10b981}.jira-resolved-sparkline .activity-sparkline-bar[data-v-c5e6ffa5]:hover{background-color:#059669}@media(prefers-color-scheme:dark){.jira-created-sparkline .activity-sparkline-bar[data-v-c5e6ffa5]{background-color:#fbbf24}.jira-resolved-sparkline .activity-sparkline-bar[data-v-c5e6ffa5]{background-color:#34d399}}.sparkline-sm[data-v-c5e6ffa5]{height:28px;gap:2px}.sparkline-sm .activity-sparkline-bar[data-v-c5e6ffa5]{width:4px;border-radius:1px}.activity-summary[data-v-c3143572]{display:flex;flex-wrap:wrap;gap:16px;padding:4px 0}.activity-item[data-v-c3143572]{display:flex;align-items:center;gap:6px;padding:6px 12px;background-color:var(--card-background-color);border-radius:6px;border:1px solid var(--muted-border-color)}.activity-item i[data-v-c3143572]{font-size:1.2em;color:var(--primary)}.activity-label[data-v-c3143572]{color:var(--muted-color);font-size:.9em}.activity-value[data-v-c3143572]{font-weight:600;color:var(--color)}.activity-value.status-abandoned[data-v-c3143572]{color:#dc2626;font-weight:700}.activity-value.status-bot-only[data-v-c3143572]{color:#f59e0b;font-style:italic}.activity-value.status-archived[data-v-c3143572]{color:#6b7280;font-weight:600;text-decoration:line-through}.activity-value.bus-factor-high[data-v-c3143572]{color:#dc2626;font-weight:700}.activity-value.bus-factor-medium[data-v-c3143572]{color:#f59e0b;font-weight:600}.sparkline-total[data-v-c3143572]{margin-left:6px;font-size:.85em;color:var(--muted-color)}.contributors-total[data-v-c3143572]{margin-left:4px;font-size:.8em;font-weight:400;color:var(--muted-color);opacity:.8}.team-stats[data-v-4e1ea26f]{display:flex;flex-wrap:wrap;gap:16px;padding:8px 12px;background-color:var(--card-background-color);border-radius:6px;border:1px solid var(--muted-border-color)}.team-stat-item[data-v-4e1ea26f]{display:flex;align-items:baseline;gap:6px}.team-stat-value[data-v-4e1ea26f]{font-size:1.5em;font-weight:600;color:var(--color)}.team-stat-label[data-v-4e1ea26f]{color:var(--muted-color);font-size:.9em}.team-value[data-v-4e1ea26f]{color:var(--color)}a.team-value[data-v-4e1ea26f]{color:var(--primary);text-decoration:none}a.team-value[data-v-4e1ea26f]:hover{text-decoration:underline}.team-members[data-v-4e1ea26f]{display:flex;flex-direction:column;gap:2px}.team-member[data-v-4e1ea26f]{color:var(--color)}a.team-member[data-v-4e1ea26f]{color:var(--primary);text-decoration:none}a.team-member[data-v-4e1ea26f]:hover{text-decoration:underline}.jira-info[data-v-4e1ea26f]{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.jira-metric[data-v-4e1ea26f]{display:flex;align-items:center;gap:6px}.jira-metric-label[data-v-4e1ea26f]{font-size:.85em;color:var(--muted-color)}.jira-metric-total[data-v-4e1ea26f]{font-size:.85em;font-weight:600;color:var(--color)}.jira-trend[data-v-4e1ea26f]{display:flex;align-items:center;gap:4px;font-size:.85em;cursor:help}.jira-trend i[data-v-4e1ea26f]{font-size:1em}.jira-trend-text[data-v-4e1ea26f]{font-weight:600}.jira-trend-positive i[data-v-4e1ea26f],.jira-trend-positive .jira-trend-text[data-v-4e1ea26f]{color:#10b981}.jira-trend-negative i[data-v-4e1ea26f],.jira-trend-negative .jira-trend-text[data-v-4e1ea26f]{color:#ef4444}.jira-trend-neutral i[data-v-4e1ea26f],.jira-trend-neutral .jira-trend-text[data-v-4e1ea26f]{color:var(--muted-color)}@media(prefers-color-scheme:dark){.jira-trend-positive i[data-v-4e1ea26f],.jira-trend-positive .jira-trend-text[data-v-4e1ea26f]{color:#34d399}.jira-trend-negative i[data-v-4e1ea26f],.jira-trend-negative .jira-trend-text[data-v-4e1ea26f]{color:#f87171}}.deployment-types[data-v-7cfa7667]{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}.deployment-item[data-v-7cfa7667]{display:flex;align-items:center;gap:.5rem;padding:.5rem;background-color:var(--card-background-color);border:1px solid var(--muted-border-color);border-radius:6px;text-decoration:none;color:var(--color);transition:border-color .2s ease}.deployment-item[data-v-7cfa7667]:hover{border-color:var(--primary)}.deployment-item i[data-v-7cfa7667]{color:var(--primary);font-size:1.2em;flex-shrink:0}.workflow-platforms[data-v-62c25aa1]{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}.workflow-platform-item[data-v-62c25aa1]{display:flex;align-items:center;gap:.5rem;padding:.5rem;background-color:var(--card-background-color);border:1px solid var(--muted-border-color);border-radius:6px;text-decoration:none;color:var(--color);transition:border-color .2s ease}.workflow-platform-item[data-v-62c25aa1]:hover{border-color:var(--primary)}.workflow-platform-item input[type=checkbox][data-v-62c25aa1]{margin:0;pointer-events:none}.workflow-types ul[data-v-62c25aa1]{list-style:none;padding-left:0;margin:.25rem 0 0}.workflow-types li[data-v-62c25aa1]{display:flex;align-items:center;gap:.5rem}.workflow-types li input[type=checkbox][data-v-62c25aa1]{margin:0;pointer-events:none}.workflow-types li a[data-v-62c25aa1]{text-decoration:none;color:var(--color);transition:color .2s ease}.workflow-types li a[data-v-62c25aa1]:hover{color:var(--primary);text-decoration:underline}.workflow-types li.grayed-out[data-v-62c25aa1]{opacity:.4}.workflow-types[data-v-62c25aa1]{padding-left:1rem;margin-top:.5rem}.workflow-types>div[data-v-62c25aa1]{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.5rem}.workflow-category strong[data-v-62c25aa1]{display:block;margin-bottom:.25rem}.agentic-tools[data-v-9f667c51]{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.tool-item[data-v-9f667c51]{padding:.75rem;background-color:var(--card-background-color);border:1px solid var(--muted-border-color);border-radius:6px;transition:opacity .2s ease,border-color .2s ease;text-decoration:none;color:var(--color);display:block}.tool-item[data-v-9f667c51]:hover{border-color:var(--primary)}.tool-item.not-implemented[data-v-9f667c51]{opacity:.4}.tool-item-header[data-v-9f667c51]{display:flex;align-items:center;gap:.5rem;margin-bottom:.25rem}.tool-item-header input[type=checkbox][data-v-9f667c51]{margin:0;pointer-events:none}.tool-item-header i[data-v-9f667c51]{font-size:1.2em}.tool-item-header i.implemented[data-v-9f667c51]{color:var(--primary)}.tool-item-header i.not-implemented[data-v-9f667c51]{color:var(--muted-color)}.tool-item-description[data-v-9f667c51]{font-size:.85em;color:var(--muted-color)}.activity-summary[data-v-bd573961]{display:flex;flex-wrap:wrap;gap:16px;padding:4px 0}.activity-item[data-v-bd573961]{display:flex;align-items:center;gap:6px;padding:6px 12px;background-color:var(--card-background-color);border-radius:6px;border:1px solid var(--muted-border-color)}.activity-item i[data-v-bd573961]{font-size:1.2em;color:var(--primary)}.activity-label[data-v-bd573961]{color:var(--muted-color);font-size:.9em}.activity-value[data-v-bd573961]{font-weight:600;color:var(--color)}.license-details-inline[data-v-bd573961]{display:inline}.license-details-inline summary[data-v-bd573961]{cursor:pointer;list-style:none}.license-details-inline summary[data-v-bd573961]::-webkit-details-marker{display:none}.license-overflow[data-v-bd573961]{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.instance-title-text[data-v-05b7ea77]{display:flex;flex-direction:column;line-height:1}.instance-kind-subtitle[data-v-05b7ea77]{font-size:.4em;font-weight:400;color:var(--muted-color);opacity:.7;margin-top:.1em}.graph-container[data-v-05b7ea77]{position:relative;overflow:hidden;border:1px solid var(--muted-border-color);border-radius:4px;background-color:var(--card-background-color);height:auto;min-height:150px;max-height:70vh}#graphviz[data-v-05b7ea77]{width:100%;height:100%}[data-v-05b7ea77] #graphviz svg{display:block}.instance-badges[data-v-05b7ea77]{display:flex;gap:6px;flex-wrap:wrap}.btn-header[data-v-05b7ea77]{display:inline-flex;align-items:center;gap:.35rem;padding:.4rem .75rem;font-size:.9rem;color:var(--muted-color);background:transparent;border:1px solid transparent;border-radius:var(--border-radius);text-decoration:none;cursor:pointer;transition:all .15s ease}.btn-header[data-v-05b7ea77]:hover{color:var(--primary);border-color:var(--primary)}.view-header[data-v-f921d1a2]{margin-bottom:.75rem}.view-header h2[data-v-f921d1a2]{display:flex;align-items:center;gap:.5rem}.view-header h2 i[data-v-f921d1a2]{color:var(--primary)}.view-description[data-v-f921d1a2]{margin-top:.75rem;padding:.75rem;background-color:var(--card-background-color);border-radius:8px;border:1px solid var(--muted-border-color)}.view-query-display[data-v-f921d1a2]{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;padding:.5rem 0}.query-item[data-v-f921d1a2]{display:flex;align-items:center;gap:.5rem;margin:0;padding:0}.query-item .label[data-v-f921d1a2]{font-weight:600;color:var(--muted-color);text-transform:uppercase;font-size:.85em}.query-item code[data-v-f921d1a2]{padding:.25rem .5rem;background-color:var(--code-background-color);border-radius:4px}.view-result-meta[data-v-f921d1a2]{font-size:.9em;color:var(--muted-color);margin-left:1rem}.view-empty-state[data-v-f921d1a2]{padding:1.5rem;text-align:center;color:var(--muted-color)}.search-error[data-v-f921d1a2]{padding:1rem;background-color:#fee2e2;border:1px solid #fecaca;border-radius:8px;margin-bottom:1rem}.search-error-header[data-v-f921d1a2]{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem;color:#991b1b;font-weight:600}.search-error-message[data-v-f921d1a2]{font-family:monospace;font-size:.95em;color:#991b1b;background-color:#fef2f2;padding:.75rem;border-radius:4px;overflow-x:auto;white-space:pre-wrap;word-break:break-word}@media(prefers-color-scheme:dark){.search-error[data-v-f921d1a2]{background-color:#450a0a;border-color:#7f1d1d}.search-error-header[data-v-f921d1a2]{color:#fca5a5}.search-error-message[data-v-f921d1a2]{color:#fecaca;background-color:#7f1d1d}}.analysis-heading[data-v-4d3d107a]{font-weight:600;margin:1rem 0 .5rem}.analysis-heading.level-0[data-v-4d3d107a]{font-size:1.25em;border-bottom:1px solid var(--muted-border-color);padding-bottom:.25rem}.analysis-heading.level-1[data-v-4d3d107a]{font-size:1.1em}.analysis-heading.level-2[data-v-4d3d107a]{font-size:1em}.analysis-text[data-v-4d3d107a]{margin:.5rem 0}[data-v-4d3d107a] .analysis-text p{margin:0}.analysis-message[data-v-4d3d107a]{display:flex;align-items:flex-start;gap:.5rem;padding:.5rem .75rem;margin:.5rem 0;border-radius:4px}.analysis-message i[data-v-4d3d107a]{margin-top:.15rem}.analysis-message.message-info[data-v-4d3d107a]{background-color:#3b82f61a;border:1px solid rgba(59,130,246,.3);color:#3b82f6}.analysis-message.message-warning[data-v-4d3d107a]{background-color:#f59e0b1a;border:1px solid rgba(245,158,11,.3);color:#f59e0b}.analysis-message.message-error[data-v-4d3d107a]{background-color:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#ef4444}.analysis-table-wrapper[data-v-4d3d107a]{margin:.75rem 0;overflow-x:auto}.analysis-list[data-v-4d3d107a]{margin:.5rem 0;padding-left:1.5rem}.analysis-list li[data-v-4d3d107a]{margin:.25rem 0}.instance-title-text[data-v-19706829]{display:flex;flex-direction:column;line-height:1}.instance-kind-subtitle[data-v-19706829]{font-size:.4em;font-weight:400;color:var(--muted-color);opacity:.7;margin-top:.1em}.instance-name[data-v-19706829]{font-weight:600;font-size:1em;color:var(--primary);text-decoration:none}.header-actions[data-v-19706829]{display:flex;align-items:center;gap:.5rem}.btn-header[data-v-19706829]{display:inline-flex;align-items:center;gap:.35rem;padding:.4rem .75rem;font-size:.9rem;color:var(--muted-color);background:transparent;border:1px solid transparent;border-radius:var(--border-radius);text-decoration:none;cursor:pointer;transition:all .15s ease}.btn-header[data-v-19706829]:hover{color:var(--primary);border-color:var(--primary)}.analysis-header[data-v-19706829]{margin-bottom:.75rem}.analysis-header h2[data-v-19706829]{display:flex;align-items:center;gap:.5rem}.analysis-description[data-v-19706829]{margin-top:.75rem;padding:.75rem;background-color:var(--card-background-color);border-radius:8px;border:1px solid var(--muted-border-color)}.analysis-metadata[data-v-19706829]{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;padding:.75rem 0;margin-top:.5rem}.analysis-meta-item[data-v-19706829]{display:flex;align-items:center;gap:.35rem;font-size:.9em;color:var(--muted-color);padding:.25rem .5rem;background-color:var(--code-background-color);border-radius:4px}.analysis-meta-item i[data-v-19706829]{font-size:1.1em}.analysis-script pre.code[data-v-19706829]{margin:0;white-space:pre;overflow-x:auto;min-height:300px;max-height:600px;overflow-y:auto}.analysis-script pre.code code[data-v-19706829]{white-space:pre;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;font-size:.9em;line-height:1.5}.analysis-execution header[data-v-19706829]{display:flex;justify-content:space-between;align-items:center}.analysis-execution header h3[data-v-19706829]{display:flex;align-items:center;gap:.5rem;margin:0}.analysis-execute-controls[data-v-19706829]{display:flex;align-items:center;gap:.75rem}.analysis-execute-controls button[data-v-19706829]{display:flex;align-items:center;gap:.35rem;padding:.4rem .75rem;font-size:.85em;margin:0}.analysis-loading[data-v-19706829]{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:2rem;color:var(--muted-color)}@keyframes spin-19706829{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spinning[data-v-19706829]{animation:spin-19706829 1s linear infinite}.analysis-results[data-v-19706829]{min-height:100px;padding:1rem;background-color:var(--card-background-color);border:1px solid var(--muted-border-color);border-radius:8px}.analysis-results-placeholder[data-v-19706829]{display:flex;align-items:center;gap:.5rem;color:var(--muted-color);font-style:italic;margin:0}.analysis-empty-state[data-v-19706829]{display:flex;align-items:center;gap:.5rem;padding:1.5rem;color:var(--muted-color)}.analysis-result-container[data-v-19706829]{padding:0}.analysis-result-header[data-v-19706829]{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;margin:-1rem -1rem 1rem;background-color:var(--code-background-color);border-radius:8px 8px 0 0;border-bottom:1px solid var(--muted-border-color)}.analysis-result-header .status-indicator[data-v-19706829]{display:flex;align-items:center;gap:.5rem;font-weight:600}.analysis-result-header .status-success[data-v-19706829]{color:#10b981}.analysis-result-header .status-findings[data-v-19706829]{color:#f59e0b}.analysis-result-header .status-error[data-v-19706829]{color:#ef4444}.analysis-result-header .duration[data-v-19706829]{display:flex;align-items:center;gap:.35rem;font-size:.9em;color:var(--muted-color)}.analysis-error-details[data-v-19706829]{padding:.75rem 1rem;margin-bottom:1rem;background-color:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:4px;color:#ef4444}.analysis-error-details details[data-v-19706829]{margin-top:.5rem}.analysis-error-details summary[data-v-19706829]{cursor:pointer;color:var(--muted-color);font-size:.9em}.analysis-error-details pre[data-v-19706829]{margin-top:.5rem;font-size:.85em;max-height:200px;overflow:auto}.analysis-output[data-v-19706829]{margin-top:.5rem}.analysis-script-header[data-v-19706829]{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.analysis-script-header .copy-button[data-v-19706829]{padding:.25rem .5rem;font-size:.85em}.copy-button[data-v-19706829]{padding:6px;background-color:transparent;color:var(--primary);border:1px solid var(--muted-border-color);border-radius:4px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;min-width:32px;height:32px}.copy-button[data-v-19706829]:hover{background-color:var(--card-background-color);border-color:var(--primary)}.analysis-details-section[data-v-19706829]{margin-top:1rem;border:1px solid var(--muted-border-color);border-radius:8px;background-color:var(--card-background-color)}.analysis-details-section summary[data-v-19706829]{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;cursor:pointer;font-weight:600;color:var(--muted-color);-webkit-user-select:none;user-select:none}.analysis-details-section summary[data-v-19706829]:hover{color:var(--color)}.analysis-details-section summary[data-v-19706829]::marker,.analysis-details-section summary[data-v-19706829]::-webkit-details-marker{display:none}.analysis-details-section summary[data-v-19706829]:before{content:"▶";font-size:.7em;transition:transform .2s ease}.analysis-details-section[open] summary[data-v-19706829]:before{transform:rotate(90deg)}.analysis-details-section[open][data-v-19706829]{padding-bottom:0}.analysis-details-content[data-v-19706829]{padding:1rem;border-top:1px solid var(--muted-border-color)}.analysis-details-content .analysis-metadata[data-v-19706829]{margin-bottom:1rem}.analysis-details-content .analysis-script[data-v-19706829]{border:none;margin:0}.instance-title-text[data-v-ceaaa6c2]{display:flex;flex-direction:column;line-height:1}.instance-kind-subtitle[data-v-ceaaa6c2]{font-size:.4em;font-weight:400;color:var(--muted-color);opacity:.7;margin-top:.1em}.instance-name[data-v-ceaaa6c2]{font-weight:600;font-size:1em;color:var(--primary);text-decoration:none}.header-actions[data-v-ceaaa6c2]{display:flex;align-items:center;gap:.5rem}.btn-header[data-v-ceaaa6c2]{display:inline-flex;align-items:center;gap:.35rem;padding:.4rem .75rem;font-size:.9rem;color:var(--muted-color);background:transparent;border:1px solid transparent;border-radius:var(--border-radius);text-decoration:none;cursor:pointer;transition:all .15s ease}.btn-header[data-v-ceaaa6c2]:hover{color:var(--primary);border-color:var(--primary)}.import-header[data-v-ceaaa6c2]{margin-bottom:.75rem}.import-header header[data-v-ceaaa6c2]{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.import-header header h2[data-v-ceaaa6c2]{display:flex;align-items:center;gap:.5rem;margin-right:auto}.import-description[data-v-ceaaa6c2]{margin-top:.75rem;padding:.75rem;background-color:var(--card-background-color);border-radius:8px;border:1px solid var(--muted-border-color)}.graph-container[data-v-ceaaa6c2]{position:relative;overflow:hidden;border:1px solid var(--muted-border-color);border-radius:4px;background-color:var(--card-background-color);height:auto;min-height:150px;max-height:70vh}#graphviz[data-v-ceaaa6c2]{width:100%;height:100%}[data-v-ceaaa6c2] #graphviz svg{display:block}.import-metadata[data-v-ceaaa6c2]{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1rem}.import-meta-item[data-v-ceaaa6c2]{display:flex;align-items:center;gap:.35rem;font-size:.9em;color:var(--muted-color);padding:.25rem .5rem;background-color:var(--code-background-color);border-radius:4px}.import-meta-item i[data-v-ceaaa6c2]{font-size:1.1em}.import-meta-item.status-enabled[data-v-ceaaa6c2]{color:#10b981}.import-meta-item.status-disabled[data-v-ceaaa6c2]{color:#ef4444}.import-output-path[data-v-ceaaa6c2]{margin-bottom:1rem;padding:.5rem .75rem;background-color:var(--code-background-color);border-radius:4px}.import-output-path code[data-v-ceaaa6c2]{margin-left:.5rem}.import-config-section[data-v-ceaaa6c2]{margin-top:1rem;border:1px solid var(--muted-border-color);border-radius:8px;background-color:var(--card-background-color)}.import-config-section summary[data-v-ceaaa6c2]{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;cursor:pointer;font-weight:600;color:var(--muted-color);-webkit-user-select:none;user-select:none}.import-config-section summary[data-v-ceaaa6c2]:hover{color:var(--color)}.import-config-section summary[data-v-ceaaa6c2]::marker,.import-config-section summary[data-v-ceaaa6c2]::-webkit-details-marker{display:none}.import-config-section summary[data-v-ceaaa6c2]:before{content:"▶";font-size:.7em;transition:transform .2s ease}.import-config-section[open] summary[data-v-ceaaa6c2]:before{transform:rotate(90deg)}.import-config-table[data-v-ceaaa6c2]{width:100%;margin:0;border-collapse:collapse}.import-config-table th[data-v-ceaaa6c2],.import-config-table td[data-v-ceaaa6c2]{padding:.5rem 1rem;border-top:1px solid var(--muted-border-color)}.import-config-table th[data-v-ceaaa6c2]{width:30%;text-align:left;font-weight:500;color:var(--muted-color)}.import-config-table code[data-v-ceaaa6c2]{word-break:break-all}
1
+ .relations-section .relations-grid[data-v-3a1d98d9]{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.relations-section .relations-outgoing[data-v-3a1d98d9]{order:2}.relations-section .relations-incoming[data-v-3a1d98d9]{order:1}@media(max-width:768px){.relations-section .relations-grid[data-v-3a1d98d9]{grid-template-columns:1fr;gap:1rem}.relations-section .relations-outgoing[data-v-3a1d98d9]{order:1}.relations-section .relations-incoming[data-v-3a1d98d9]{order:2}}.relations-section .relations-column h3[data-v-3a1d98d9]{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem;color:var(--muted-color);font-size:1rem;font-weight:600}.relations-section .relation-group[data-v-3a1d98d9]{margin-bottom:.75rem;padding:.5rem .75rem;background-color:var(--card-background-color);border:1px solid var(--muted-border-color);border-radius:.5rem}.relations-section .relation-kind[data-v-3a1d98d9]{display:flex;align-items:center;gap:.5rem;font-weight:600;margin-bottom:.25rem}.relations-section .relation-verb[data-v-3a1d98d9]{font-size:.875rem;color:var(--muted-color);margin-bottom:.5rem}.relations-section .relations-empty[data-v-3a1d98d9]{color:var(--muted-color);font-style:italic}.instance-badges[data-v-3a1d98d9]{display:flex;gap:6px;flex-wrap:wrap}.requirement-status-icon[data-v-1e32a2b6]{font-size:1.2em}.requirement-status-icon.status-implemented[data-v-1e32a2b6]{color:#10b981}.requirement-status-icon.status-partial[data-v-1e32a2b6]{color:#f59e0b}.requirement-status-icon.status-planned[data-v-1e32a2b6]{color:#3b82f6}.requirement-status-icon.status-not-started[data-v-1e32a2b6],.requirement-status-icon.status-unknown[data-v-1e32a2b6]{color:#9ca3af}.git-info[data-v-ae19746e]{display:flex;flex-wrap:wrap;gap:16px;padding:4px 0}.git-item[data-v-ae19746e]{display:flex;align-items:center;gap:6px;padding:6px 12px;background-color:var(--card-background-color);border-radius:6px;border:1px solid var(--muted-border-color)}.git-item i[data-v-ae19746e]{font-size:1.2em;color:var(--primary)}.git-link[data-v-ae19746e]{font-weight:600;color:var(--primary);text-decoration:none}.git-link[data-v-ae19746e]:hover{text-decoration:underline}.git-clone-command[data-v-ae19746e]{color:var(--muted-color);font-size:.9em;font-family:monospace;background-color:var(--code-background-color);padding:2px 6px;border-radius:3px}.copy-button[data-v-ae19746e]{padding:6px;background-color:transparent;color:var(--primary);border:1px solid var(--muted-border-color);border-radius:4px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;min-width:32px;height:32px}.copy-button[data-v-ae19746e]:hover{background-color:var(--card-background-color);border-color:var(--primary);transform:scale(1.1)}.copy-button.copied[data-v-ae19746e]{background-color:#10b981;border-color:#10b981;color:#fff}.copy-button i[data-v-ae19746e]{font-size:1.1em}.language-distribution[data-v-c306da87]{display:flex;flex-direction:column;gap:8px;min-width:200px;padding:8px 12px;background-color:var(--card-background-color);border-radius:6px;border:1px solid var(--muted-border-color)}.language-total[data-v-c306da87]{display:flex;align-items:baseline;gap:6px}.language-total .language-count[data-v-c306da87]{font-size:1.5em;font-weight:600;color:var(--color)}.language-total .language-label[data-v-c306da87]{color:var(--muted-color);font-size:.9em}.language-bar[data-v-c306da87]{display:flex;height:8px;border-radius:4px;overflow:hidden;background-color:var(--muted-border-color)}.language-bar-segment[data-v-c306da87]{height:100%;min-width:2px}.language-bar-segment.lang-0[data-v-c306da87],.language-legend-dot.lang-0[data-v-c306da87]{background-color:#3178c6}.language-bar-segment.lang-1[data-v-c306da87],.language-legend-dot.lang-1[data-v-c306da87]{background-color:#00add8}.language-bar-segment.lang-2[data-v-c306da87],.language-legend-dot.lang-2[data-v-c306da87]{background-color:#f1e05a}.language-bar-segment.lang-3[data-v-c306da87],.language-legend-dot.lang-3[data-v-c306da87]{background-color:#e34c26}.language-bar-segment.lang-4[data-v-c306da87],.language-legend-dot.lang-4[data-v-c306da87]{background-color:#563d7c}.language-bar-segment.lang-5[data-v-c306da87],.language-legend-dot.lang-5[data-v-c306da87]{background-color:#89e051}.language-bar-segment.lang-6[data-v-c306da87],.language-legend-dot.lang-6[data-v-c306da87]{background-color:#f34b7d}.language-bar-segment.lang-7[data-v-c306da87],.language-legend-dot.lang-7[data-v-c306da87]{background-color:#b07219}.language-bar-segment.lang-8[data-v-c306da87],.language-legend-dot.lang-8[data-v-c306da87]{background-color:#4f5d95}.language-bar-segment.lang-9[data-v-c306da87],.language-legend-dot.lang-9[data-v-c306da87]{background-color:#6b7280}.language-bar-segment.lang-other[data-v-c306da87],.language-legend-dot.lang-other[data-v-c306da87]{background-color:#9ca3af}.language-legend[data-v-c306da87]{display:flex;flex-wrap:wrap;gap:12px;font-size:.85em}.language-legend-item[data-v-c306da87]{display:flex;align-items:center;gap:4px}.language-legend-item a[data-v-c306da87]{color:var(--muted-color);text-decoration:none}.language-legend-item a[data-v-c306da87]:hover{color:var(--primary);text-decoration:underline}.language-legend-dot[data-v-c306da87]{width:8px;height:8px;border-radius:50%;flex-shrink:0}.project-estimate[data-v-6cb46a9d]{display:flex;flex-wrap:wrap;gap:16px;padding:4px 0}.estimate-item[data-v-6cb46a9d]{display:flex;align-items:center;gap:6px;padding:6px 12px;background-color:var(--card-background-color);border-radius:6px;border:1px solid var(--muted-border-color)}.estimate-item i[data-v-6cb46a9d]{font-size:1.2em;color:var(--primary)}.estimate-label[data-v-6cb46a9d]{color:var(--muted-color);font-size:.9em}.estimate-value[data-v-6cb46a9d]{font-weight:600;color:var(--color)}.estimate-note[data-v-6cb46a9d]{margin-left:.5rem;color:var(--muted-color);cursor:help}.estimate-note i[data-v-6cb46a9d]{font-size:.875rem}.repository-distribution[data-v-1fbb3e92]{display:flex;flex-direction:column;gap:8px;min-width:200px;padding:8px 12px;background-color:var(--card-background-color);border-radius:6px;border:1px solid var(--muted-border-color)}.repository-total[data-v-1fbb3e92]{display:flex;align-items:baseline;gap:6px}.repository-total .repository-count[data-v-1fbb3e92]{font-size:1.5em;font-weight:600;color:var(--color)}.repository-total .repository-label[data-v-1fbb3e92]{color:var(--muted-color);font-size:.9em}.repository-bar[data-v-1fbb3e92]{display:flex;height:8px;border-radius:4px;overflow:hidden;background-color:var(--muted-border-color)}.repository-bar-segment[data-v-1fbb3e92]{height:100%;min-width:2px}.repository-bar-segment.status-active[data-v-1fbb3e92]{background-color:#10b981}.repository-bar-segment.status-high-bus-factor[data-v-1fbb3e92]{background-color:#f59e0b}.repository-bar-segment.status-abandoned[data-v-1fbb3e92]{background-color:#dc2626}.repository-bar-segment.status-other[data-v-1fbb3e92]{background-color:#6b7280}.repository-bar-segment.status-archived[data-v-1fbb3e92]{background-color:#9ca3af}.repository-legend[data-v-1fbb3e92]{display:flex;flex-wrap:wrap;gap:12px;font-size:.85em}.repository-legend-item[data-v-1fbb3e92]{display:flex;align-items:center;gap:4px;color:var(--muted-color)}.repository-legend-dot[data-v-1fbb3e92]{width:8px;height:8px;border-radius:50%}.repository-legend-dot.status-active[data-v-1fbb3e92]{background-color:#10b981}.repository-legend-dot.status-high-bus-factor[data-v-1fbb3e92]{background-color:#f59e0b}.repository-legend-dot.status-abandoned[data-v-1fbb3e92]{background-color:#dc2626}.repository-legend-dot.status-other[data-v-1fbb3e92]{background-color:#6b7280}.repository-legend-dot.status-archived[data-v-1fbb3e92]{background-color:#9ca3af}@media(prefers-color-scheme:dark){.repository-bar-segment.status-active[data-v-1fbb3e92],.repository-legend-dot.status-active[data-v-1fbb3e92]{background-color:#34d399}.repository-bar-segment.status-high-bus-factor[data-v-1fbb3e92],.repository-legend-dot.status-high-bus-factor[data-v-1fbb3e92]{background-color:#fbbf24}.repository-bar-segment.status-abandoned[data-v-1fbb3e92],.repository-legend-dot.status-abandoned[data-v-1fbb3e92]{background-color:#f87171}.repository-bar-segment.status-other[data-v-1fbb3e92],.repository-legend-dot.status-other[data-v-1fbb3e92]{background-color:#9ca3af}.repository-bar-segment.status-archived[data-v-1fbb3e92],.repository-legend-dot.status-archived[data-v-1fbb3e92]{background-color:#d1d5db}}.activity-sparkline[data-v-c5e6ffa5]{display:inline-flex;align-items:flex-end;gap:1px;height:20px;padding:2px 4px;background-color:var(--card-background-color);border-radius:4px;border:1px solid var(--muted-border-color)}.activity-sparkline-bar[data-v-c5e6ffa5]{width:2px;min-height:2px;background-color:#3178c6;border-radius:1px;transition:background-color .2s ease}.activity-sparkline-bar.empty[data-v-c5e6ffa5]{min-height:0;background-color:transparent}.activity-sparkline-bar[data-v-c5e6ffa5]:hover{background-color:#2563eb}.activity-sparkline-bar.empty[data-v-c5e6ffa5]:hover{background-color:transparent}.contributors-sparkline .activity-sparkline-bar[data-v-c5e6ffa5]{background-color:#10b981}.contributors-sparkline .activity-sparkline-bar[data-v-c5e6ffa5]:hover{background-color:#059669}.jira-created-sparkline .activity-sparkline-bar[data-v-c5e6ffa5]{background-color:#f59e0b}.jira-created-sparkline .activity-sparkline-bar[data-v-c5e6ffa5]:hover{background-color:#d97706}.jira-resolved-sparkline .activity-sparkline-bar[data-v-c5e6ffa5]{background-color:#10b981}.jira-resolved-sparkline .activity-sparkline-bar[data-v-c5e6ffa5]:hover{background-color:#059669}@media(prefers-color-scheme:dark){.jira-created-sparkline .activity-sparkline-bar[data-v-c5e6ffa5]{background-color:#fbbf24}.jira-resolved-sparkline .activity-sparkline-bar[data-v-c5e6ffa5]{background-color:#34d399}}.sparkline-sm[data-v-c5e6ffa5]{height:28px;gap:2px}.sparkline-sm .activity-sparkline-bar[data-v-c5e6ffa5]{width:4px;border-radius:1px}.activity-summary[data-v-c3143572]{display:flex;flex-wrap:wrap;gap:16px;padding:4px 0}.activity-item[data-v-c3143572]{display:flex;align-items:center;gap:6px;padding:6px 12px;background-color:var(--card-background-color);border-radius:6px;border:1px solid var(--muted-border-color)}.activity-item i[data-v-c3143572]{font-size:1.2em;color:var(--primary)}.activity-label[data-v-c3143572]{color:var(--muted-color);font-size:.9em}.activity-value[data-v-c3143572]{font-weight:600;color:var(--color)}.activity-value.status-abandoned[data-v-c3143572]{color:#dc2626;font-weight:700}.activity-value.status-bot-only[data-v-c3143572]{color:#f59e0b;font-style:italic}.activity-value.status-archived[data-v-c3143572]{color:#6b7280;font-weight:600;text-decoration:line-through}.activity-value.bus-factor-high[data-v-c3143572]{color:#dc2626;font-weight:700}.activity-value.bus-factor-medium[data-v-c3143572]{color:#f59e0b;font-weight:600}.sparkline-total[data-v-c3143572]{margin-left:6px;font-size:.85em;color:var(--muted-color)}.contributors-total[data-v-c3143572]{margin-left:4px;font-size:.8em;font-weight:400;color:var(--muted-color);opacity:.8}.team-stats[data-v-4e1ea26f]{display:flex;flex-wrap:wrap;gap:16px;padding:8px 12px;background-color:var(--card-background-color);border-radius:6px;border:1px solid var(--muted-border-color)}.team-stat-item[data-v-4e1ea26f]{display:flex;align-items:baseline;gap:6px}.team-stat-value[data-v-4e1ea26f]{font-size:1.5em;font-weight:600;color:var(--color)}.team-stat-label[data-v-4e1ea26f]{color:var(--muted-color);font-size:.9em}.team-value[data-v-4e1ea26f]{color:var(--color)}a.team-value[data-v-4e1ea26f]{color:var(--primary);text-decoration:none}a.team-value[data-v-4e1ea26f]:hover{text-decoration:underline}.team-members[data-v-4e1ea26f]{display:flex;flex-direction:column;gap:2px}.team-member[data-v-4e1ea26f]{color:var(--color)}a.team-member[data-v-4e1ea26f]{color:var(--primary);text-decoration:none}a.team-member[data-v-4e1ea26f]:hover{text-decoration:underline}.jira-info[data-v-4e1ea26f]{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.jira-metric[data-v-4e1ea26f]{display:flex;align-items:center;gap:6px}.jira-metric-label[data-v-4e1ea26f]{font-size:.85em;color:var(--muted-color)}.jira-metric-total[data-v-4e1ea26f]{font-size:.85em;font-weight:600;color:var(--color)}.jira-trend[data-v-4e1ea26f]{display:flex;align-items:center;gap:4px;font-size:.85em;cursor:help}.jira-trend i[data-v-4e1ea26f]{font-size:1em}.jira-trend-text[data-v-4e1ea26f]{font-weight:600}.jira-trend-positive i[data-v-4e1ea26f],.jira-trend-positive .jira-trend-text[data-v-4e1ea26f]{color:#10b981}.jira-trend-negative i[data-v-4e1ea26f],.jira-trend-negative .jira-trend-text[data-v-4e1ea26f]{color:#ef4444}.jira-trend-neutral i[data-v-4e1ea26f],.jira-trend-neutral .jira-trend-text[data-v-4e1ea26f]{color:var(--muted-color)}@media(prefers-color-scheme:dark){.jira-trend-positive i[data-v-4e1ea26f],.jira-trend-positive .jira-trend-text[data-v-4e1ea26f]{color:#34d399}.jira-trend-negative i[data-v-4e1ea26f],.jira-trend-negative .jira-trend-text[data-v-4e1ea26f]{color:#f87171}}.deployment-types[data-v-7cfa7667]{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}.deployment-item[data-v-7cfa7667]{display:flex;align-items:center;gap:.5rem;padding:.5rem;background-color:var(--card-background-color);border:1px solid var(--muted-border-color);border-radius:6px;text-decoration:none;color:var(--color);transition:border-color .2s ease}.deployment-item[data-v-7cfa7667]:hover{border-color:var(--primary)}.deployment-item i[data-v-7cfa7667]{color:var(--primary);font-size:1.2em;flex-shrink:0}.workflow-platforms[data-v-62c25aa1]{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}.workflow-platform-item[data-v-62c25aa1]{display:flex;align-items:center;gap:.5rem;padding:.5rem;background-color:var(--card-background-color);border:1px solid var(--muted-border-color);border-radius:6px;text-decoration:none;color:var(--color);transition:border-color .2s ease}.workflow-platform-item[data-v-62c25aa1]:hover{border-color:var(--primary)}.workflow-platform-item input[type=checkbox][data-v-62c25aa1]{margin:0;pointer-events:none}.workflow-types ul[data-v-62c25aa1]{list-style:none;padding-left:0;margin:.25rem 0 0}.workflow-types li[data-v-62c25aa1]{display:flex;align-items:center;gap:.5rem}.workflow-types li input[type=checkbox][data-v-62c25aa1]{margin:0;pointer-events:none}.workflow-types li a[data-v-62c25aa1]{text-decoration:none;color:var(--color);transition:color .2s ease}.workflow-types li a[data-v-62c25aa1]:hover{color:var(--primary);text-decoration:underline}.workflow-types li.grayed-out[data-v-62c25aa1]{opacity:.4}.workflow-types[data-v-62c25aa1]{padding-left:1rem;margin-top:.5rem}.workflow-types>div[data-v-62c25aa1]{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.5rem}.workflow-category strong[data-v-62c25aa1]{display:block;margin-bottom:.25rem}.agentic-tools[data-v-9f667c51]{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.tool-item[data-v-9f667c51]{padding:.75rem;background-color:var(--card-background-color);border:1px solid var(--muted-border-color);border-radius:6px;transition:opacity .2s ease,border-color .2s ease;text-decoration:none;color:var(--color);display:block}.tool-item[data-v-9f667c51]:hover{border-color:var(--primary)}.tool-item.not-implemented[data-v-9f667c51]{opacity:.4}.tool-item-header[data-v-9f667c51]{display:flex;align-items:center;gap:.5rem;margin-bottom:.25rem}.tool-item-header input[type=checkbox][data-v-9f667c51]{margin:0;pointer-events:none}.tool-item-header i[data-v-9f667c51]{font-size:1.2em}.tool-item-header i.implemented[data-v-9f667c51]{color:var(--primary)}.tool-item-header i.not-implemented[data-v-9f667c51]{color:var(--muted-color)}.tool-item-description[data-v-9f667c51]{font-size:.85em;color:var(--muted-color)}.activity-summary[data-v-1b458fa7]{display:flex;flex-wrap:wrap;gap:16px;padding:4px 0}.activity-item[data-v-1b458fa7]{display:flex;align-items:center;gap:6px;padding:6px 12px;background-color:var(--card-background-color);border-radius:6px;border:1px solid var(--muted-border-color)}.activity-item i[data-v-1b458fa7]{font-size:1.2em;color:var(--primary)}.activity-label[data-v-1b458fa7]{color:var(--muted-color);font-size:.9em}.activity-value[data-v-1b458fa7]{font-weight:600;color:var(--color)}.license-details-inline[data-v-1b458fa7]{display:inline}.license-details-inline summary[data-v-1b458fa7]{cursor:pointer;list-style:none}.license-details-inline summary[data-v-1b458fa7]::-webkit-details-marker{display:none}.license-overflow[data-v-1b458fa7]{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.instance-title-text[data-v-05b7ea77]{display:flex;flex-direction:column;line-height:1}.instance-kind-subtitle[data-v-05b7ea77]{font-size:.4em;font-weight:400;color:var(--muted-color);opacity:.7;margin-top:.1em}.graph-container[data-v-05b7ea77]{position:relative;overflow:hidden;border:1px solid var(--muted-border-color);border-radius:4px;background-color:var(--card-background-color);height:auto;min-height:150px;max-height:70vh}#graphviz[data-v-05b7ea77]{width:100%;height:100%}[data-v-05b7ea77] #graphviz svg{display:block}.instance-badges[data-v-05b7ea77]{display:flex;gap:6px;flex-wrap:wrap}.btn-header[data-v-05b7ea77]{display:inline-flex;align-items:center;gap:.35rem;padding:.4rem .75rem;font-size:.9rem;color:var(--muted-color);background:transparent;border:1px solid transparent;border-radius:var(--border-radius);text-decoration:none;cursor:pointer;transition:all .15s ease}.btn-header[data-v-05b7ea77]:hover{color:var(--primary);border-color:var(--primary)}.view-header[data-v-f921d1a2]{margin-bottom:.75rem}.view-header h2[data-v-f921d1a2]{display:flex;align-items:center;gap:.5rem}.view-header h2 i[data-v-f921d1a2]{color:var(--primary)}.view-description[data-v-f921d1a2]{margin-top:.75rem;padding:.75rem;background-color:var(--card-background-color);border-radius:8px;border:1px solid var(--muted-border-color)}.view-query-display[data-v-f921d1a2]{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;padding:.5rem 0}.query-item[data-v-f921d1a2]{display:flex;align-items:center;gap:.5rem;margin:0;padding:0}.query-item .label[data-v-f921d1a2]{font-weight:600;color:var(--muted-color);text-transform:uppercase;font-size:.85em}.query-item code[data-v-f921d1a2]{padding:.25rem .5rem;background-color:var(--code-background-color);border-radius:4px}.view-result-meta[data-v-f921d1a2]{font-size:.9em;color:var(--muted-color);margin-left:1rem}.view-empty-state[data-v-f921d1a2]{padding:1.5rem;text-align:center;color:var(--muted-color)}.search-error[data-v-f921d1a2]{padding:1rem;background-color:#fee2e2;border:1px solid #fecaca;border-radius:8px;margin-bottom:1rem}.search-error-header[data-v-f921d1a2]{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem;color:#991b1b;font-weight:600}.search-error-message[data-v-f921d1a2]{font-family:monospace;font-size:.95em;color:#991b1b;background-color:#fef2f2;padding:.75rem;border-radius:4px;overflow-x:auto;white-space:pre-wrap;word-break:break-word}@media(prefers-color-scheme:dark){.search-error[data-v-f921d1a2]{background-color:#450a0a;border-color:#7f1d1d}.search-error-header[data-v-f921d1a2]{color:#fca5a5}.search-error-message[data-v-f921d1a2]{color:#fecaca;background-color:#7f1d1d}}.analysis-heading[data-v-4d3d107a]{font-weight:600;margin:1rem 0 .5rem}.analysis-heading.level-0[data-v-4d3d107a]{font-size:1.25em;border-bottom:1px solid var(--muted-border-color);padding-bottom:.25rem}.analysis-heading.level-1[data-v-4d3d107a]{font-size:1.1em}.analysis-heading.level-2[data-v-4d3d107a]{font-size:1em}.analysis-text[data-v-4d3d107a]{margin:.5rem 0}[data-v-4d3d107a] .analysis-text p{margin:0}.analysis-message[data-v-4d3d107a]{display:flex;align-items:flex-start;gap:.5rem;padding:.5rem .75rem;margin:.5rem 0;border-radius:4px}.analysis-message i[data-v-4d3d107a]{margin-top:.15rem}.analysis-message.message-info[data-v-4d3d107a]{background-color:#3b82f61a;border:1px solid rgba(59,130,246,.3);color:#3b82f6}.analysis-message.message-warning[data-v-4d3d107a]{background-color:#f59e0b1a;border:1px solid rgba(245,158,11,.3);color:#f59e0b}.analysis-message.message-error[data-v-4d3d107a]{background-color:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#ef4444}.analysis-table-wrapper[data-v-4d3d107a]{margin:.75rem 0;overflow-x:auto}.analysis-list[data-v-4d3d107a]{margin:.5rem 0;padding-left:1.5rem}.analysis-list li[data-v-4d3d107a]{margin:.25rem 0}.instance-title-text[data-v-19706829]{display:flex;flex-direction:column;line-height:1}.instance-kind-subtitle[data-v-19706829]{font-size:.4em;font-weight:400;color:var(--muted-color);opacity:.7;margin-top:.1em}.instance-name[data-v-19706829]{font-weight:600;font-size:1em;color:var(--primary);text-decoration:none}.header-actions[data-v-19706829]{display:flex;align-items:center;gap:.5rem}.btn-header[data-v-19706829]{display:inline-flex;align-items:center;gap:.35rem;padding:.4rem .75rem;font-size:.9rem;color:var(--muted-color);background:transparent;border:1px solid transparent;border-radius:var(--border-radius);text-decoration:none;cursor:pointer;transition:all .15s ease}.btn-header[data-v-19706829]:hover{color:var(--primary);border-color:var(--primary)}.analysis-header[data-v-19706829]{margin-bottom:.75rem}.analysis-header h2[data-v-19706829]{display:flex;align-items:center;gap:.5rem}.analysis-description[data-v-19706829]{margin-top:.75rem;padding:.75rem;background-color:var(--card-background-color);border-radius:8px;border:1px solid var(--muted-border-color)}.analysis-metadata[data-v-19706829]{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;padding:.75rem 0;margin-top:.5rem}.analysis-meta-item[data-v-19706829]{display:flex;align-items:center;gap:.35rem;font-size:.9em;color:var(--muted-color);padding:.25rem .5rem;background-color:var(--code-background-color);border-radius:4px}.analysis-meta-item i[data-v-19706829]{font-size:1.1em}.analysis-script pre.code[data-v-19706829]{margin:0;white-space:pre;overflow-x:auto;min-height:300px;max-height:600px;overflow-y:auto}.analysis-script pre.code code[data-v-19706829]{white-space:pre;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;font-size:.9em;line-height:1.5}.analysis-execution header[data-v-19706829]{display:flex;justify-content:space-between;align-items:center}.analysis-execution header h3[data-v-19706829]{display:flex;align-items:center;gap:.5rem;margin:0}.analysis-execute-controls[data-v-19706829]{display:flex;align-items:center;gap:.75rem}.analysis-execute-controls button[data-v-19706829]{display:flex;align-items:center;gap:.35rem;padding:.4rem .75rem;font-size:.85em;margin:0}.analysis-loading[data-v-19706829]{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:2rem;color:var(--muted-color)}@keyframes spin-19706829{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spinning[data-v-19706829]{animation:spin-19706829 1s linear infinite}.analysis-results[data-v-19706829]{min-height:100px;padding:1rem;background-color:var(--card-background-color);border:1px solid var(--muted-border-color);border-radius:8px}.analysis-results-placeholder[data-v-19706829]{display:flex;align-items:center;gap:.5rem;color:var(--muted-color);font-style:italic;margin:0}.analysis-empty-state[data-v-19706829]{display:flex;align-items:center;gap:.5rem;padding:1.5rem;color:var(--muted-color)}.analysis-result-container[data-v-19706829]{padding:0}.analysis-result-header[data-v-19706829]{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;margin:-1rem -1rem 1rem;background-color:var(--code-background-color);border-radius:8px 8px 0 0;border-bottom:1px solid var(--muted-border-color)}.analysis-result-header .status-indicator[data-v-19706829]{display:flex;align-items:center;gap:.5rem;font-weight:600}.analysis-result-header .status-success[data-v-19706829]{color:#10b981}.analysis-result-header .status-findings[data-v-19706829]{color:#f59e0b}.analysis-result-header .status-error[data-v-19706829]{color:#ef4444}.analysis-result-header .duration[data-v-19706829]{display:flex;align-items:center;gap:.35rem;font-size:.9em;color:var(--muted-color)}.analysis-error-details[data-v-19706829]{padding:.75rem 1rem;margin-bottom:1rem;background-color:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:4px;color:#ef4444}.analysis-error-details details[data-v-19706829]{margin-top:.5rem}.analysis-error-details summary[data-v-19706829]{cursor:pointer;color:var(--muted-color);font-size:.9em}.analysis-error-details pre[data-v-19706829]{margin-top:.5rem;font-size:.85em;max-height:200px;overflow:auto}.analysis-output[data-v-19706829]{margin-top:.5rem}.analysis-script-header[data-v-19706829]{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.analysis-script-header .copy-button[data-v-19706829]{padding:.25rem .5rem;font-size:.85em}.copy-button[data-v-19706829]{padding:6px;background-color:transparent;color:var(--primary);border:1px solid var(--muted-border-color);border-radius:4px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;min-width:32px;height:32px}.copy-button[data-v-19706829]:hover{background-color:var(--card-background-color);border-color:var(--primary)}.analysis-details-section[data-v-19706829]{margin-top:1rem;border:1px solid var(--muted-border-color);border-radius:8px;background-color:var(--card-background-color)}.analysis-details-section summary[data-v-19706829]{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;cursor:pointer;font-weight:600;color:var(--muted-color);-webkit-user-select:none;user-select:none}.analysis-details-section summary[data-v-19706829]:hover{color:var(--color)}.analysis-details-section summary[data-v-19706829]::marker,.analysis-details-section summary[data-v-19706829]::-webkit-details-marker{display:none}.analysis-details-section summary[data-v-19706829]:before{content:"▶";font-size:.7em;transition:transform .2s ease}.analysis-details-section[open] summary[data-v-19706829]:before{transform:rotate(90deg)}.analysis-details-section[open][data-v-19706829]{padding-bottom:0}.analysis-details-content[data-v-19706829]{padding:1rem;border-top:1px solid var(--muted-border-color)}.analysis-details-content .analysis-metadata[data-v-19706829]{margin-bottom:1rem}.analysis-details-content .analysis-script[data-v-19706829]{border:none;margin:0}.instance-title-text[data-v-ceaaa6c2]{display:flex;flex-direction:column;line-height:1}.instance-kind-subtitle[data-v-ceaaa6c2]{font-size:.4em;font-weight:400;color:var(--muted-color);opacity:.7;margin-top:.1em}.instance-name[data-v-ceaaa6c2]{font-weight:600;font-size:1em;color:var(--primary);text-decoration:none}.header-actions[data-v-ceaaa6c2]{display:flex;align-items:center;gap:.5rem}.btn-header[data-v-ceaaa6c2]{display:inline-flex;align-items:center;gap:.35rem;padding:.4rem .75rem;font-size:.9rem;color:var(--muted-color);background:transparent;border:1px solid transparent;border-radius:var(--border-radius);text-decoration:none;cursor:pointer;transition:all .15s ease}.btn-header[data-v-ceaaa6c2]:hover{color:var(--primary);border-color:var(--primary)}.import-header[data-v-ceaaa6c2]{margin-bottom:.75rem}.import-header header[data-v-ceaaa6c2]{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.import-header header h2[data-v-ceaaa6c2]{display:flex;align-items:center;gap:.5rem;margin-right:auto}.import-description[data-v-ceaaa6c2]{margin-top:.75rem;padding:.75rem;background-color:var(--card-background-color);border-radius:8px;border:1px solid var(--muted-border-color)}.graph-container[data-v-ceaaa6c2]{position:relative;overflow:hidden;border:1px solid var(--muted-border-color);border-radius:4px;background-color:var(--card-background-color);height:auto;min-height:150px;max-height:70vh}#graphviz[data-v-ceaaa6c2]{width:100%;height:100%}[data-v-ceaaa6c2] #graphviz svg{display:block}.import-metadata[data-v-ceaaa6c2]{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1rem}.import-meta-item[data-v-ceaaa6c2]{display:flex;align-items:center;gap:.35rem;font-size:.9em;color:var(--muted-color);padding:.25rem .5rem;background-color:var(--code-background-color);border-radius:4px}.import-meta-item i[data-v-ceaaa6c2]{font-size:1.1em}.import-meta-item.status-enabled[data-v-ceaaa6c2]{color:#10b981}.import-meta-item.status-disabled[data-v-ceaaa6c2]{color:#ef4444}.import-output-path[data-v-ceaaa6c2]{margin-bottom:1rem;padding:.5rem .75rem;background-color:var(--code-background-color);border-radius:4px}.import-output-path code[data-v-ceaaa6c2]{margin-left:.5rem}.import-config-section[data-v-ceaaa6c2]{margin-top:1rem;border:1px solid var(--muted-border-color);border-radius:8px;background-color:var(--card-background-color)}.import-config-section summary[data-v-ceaaa6c2]{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;cursor:pointer;font-weight:600;color:var(--muted-color);-webkit-user-select:none;user-select:none}.import-config-section summary[data-v-ceaaa6c2]:hover{color:var(--color)}.import-config-section summary[data-v-ceaaa6c2]::marker,.import-config-section summary[data-v-ceaaa6c2]::-webkit-details-marker{display:none}.import-config-section summary[data-v-ceaaa6c2]:before{content:"▶";font-size:.7em;transition:transform .2s ease}.import-config-section[open] summary[data-v-ceaaa6c2]:before{transform:rotate(90deg)}.import-config-table[data-v-ceaaa6c2]{width:100%;margin:0;border-collapse:collapse}.import-config-table th[data-v-ceaaa6c2],.import-config-table td[data-v-ceaaa6c2]{padding:.5rem 1rem;border-top:1px solid var(--muted-border-color)}.import-config-table th[data-v-ceaaa6c2]{width:30%;text-align:left;font-weight:500;color:var(--muted-color)}.import-config-table code[data-v-ceaaa6c2]{word-break:break-all}