@zettelgeist/cli 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (189) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +64 -0
  3. package/dist/bin.js +2211 -0
  4. package/dist/bin.js.map +7 -0
  5. package/dist/templates/export.html +27 -0
  6. package/dist/templates/skill/SKILL.md +220 -0
  7. package/dist/viewer-bundle/architecture-YZFGNWBL-W2K3EQOM.js +14 -0
  8. package/dist/viewer-bundle/architecture-YZFGNWBL-W2K3EQOM.js.map +7 -0
  9. package/dist/viewer-bundle/architectureDiagram-Q4EWVU46-LCGRUEWT.js +8884 -0
  10. package/dist/viewer-bundle/architectureDiagram-Q4EWVU46-LCGRUEWT.js.map +7 -0
  11. package/dist/viewer-bundle/base.css +248 -0
  12. package/dist/viewer-bundle/blockDiagram-DXYQGD6D-KAM7BOAP.js +3777 -0
  13. package/dist/viewer-bundle/blockDiagram-DXYQGD6D-KAM7BOAP.js.map +7 -0
  14. package/dist/viewer-bundle/board.css +370 -0
  15. package/dist/viewer-bundle/c4Diagram-AHTNJAMY-C3FIQYXA.js +2596 -0
  16. package/dist/viewer-bundle/c4Diagram-AHTNJAMY-C3FIQYXA.js.map +7 -0
  17. package/dist/viewer-bundle/chunk-2QXGXAO5.js +68 -0
  18. package/dist/viewer-bundle/chunk-2QXGXAO5.js.map +7 -0
  19. package/dist/viewer-bundle/chunk-5PZT7VUU.js +67 -0
  20. package/dist/viewer-bundle/chunk-5PZT7VUU.js.map +7 -0
  21. package/dist/viewer-bundle/chunk-5YJCJF2C.js +112 -0
  22. package/dist/viewer-bundle/chunk-5YJCJF2C.js.map +7 -0
  23. package/dist/viewer-bundle/chunk-6LYV7PBV.js +1011 -0
  24. package/dist/viewer-bundle/chunk-6LYV7PBV.js.map +7 -0
  25. package/dist/viewer-bundle/chunk-6VW7D5WX.js +48 -0
  26. package/dist/viewer-bundle/chunk-6VW7D5WX.js.map +7 -0
  27. package/dist/viewer-bundle/chunk-76C5OSD4.js +2048 -0
  28. package/dist/viewer-bundle/chunk-76C5OSD4.js.map +7 -0
  29. package/dist/viewer-bundle/chunk-7NZMPQDX.js +6957 -0
  30. package/dist/viewer-bundle/chunk-7NZMPQDX.js.map +7 -0
  31. package/dist/viewer-bundle/chunk-A634GTZN.js +122 -0
  32. package/dist/viewer-bundle/chunk-A634GTZN.js.map +7 -0
  33. package/dist/viewer-bundle/chunk-AJQJUKMU.js +133 -0
  34. package/dist/viewer-bundle/chunk-AJQJUKMU.js.map +7 -0
  35. package/dist/viewer-bundle/chunk-BM2KPNFW.js +5556 -0
  36. package/dist/viewer-bundle/chunk-BM2KPNFW.js.map +7 -0
  37. package/dist/viewer-bundle/chunk-CIDUOCCG.js +25 -0
  38. package/dist/viewer-bundle/chunk-CIDUOCCG.js.map +7 -0
  39. package/dist/viewer-bundle/chunk-CZHJHAOR.js +6397 -0
  40. package/dist/viewer-bundle/chunk-CZHJHAOR.js.map +7 -0
  41. package/dist/viewer-bundle/chunk-D5RLIWY4.js +125 -0
  42. package/dist/viewer-bundle/chunk-D5RLIWY4.js.map +7 -0
  43. package/dist/viewer-bundle/chunk-DI52DQAC.js +44 -0
  44. package/dist/viewer-bundle/chunk-DI52DQAC.js.map +7 -0
  45. package/dist/viewer-bundle/chunk-EXJQLTIV.js +51 -0
  46. package/dist/viewer-bundle/chunk-EXJQLTIV.js.map +7 -0
  47. package/dist/viewer-bundle/chunk-G3PPZWPW.js +96 -0
  48. package/dist/viewer-bundle/chunk-G3PPZWPW.js.map +7 -0
  49. package/dist/viewer-bundle/chunk-GTW4IDD4.js +30297 -0
  50. package/dist/viewer-bundle/chunk-GTW4IDD4.js.map +7 -0
  51. package/dist/viewer-bundle/chunk-GVE7OA3Z.js +59 -0
  52. package/dist/viewer-bundle/chunk-GVE7OA3Z.js.map +7 -0
  53. package/dist/viewer-bundle/chunk-JBUVKVPY.js +2042 -0
  54. package/dist/viewer-bundle/chunk-JBUVKVPY.js.map +7 -0
  55. package/dist/viewer-bundle/chunk-JQLVOAQB.js +20 -0
  56. package/dist/viewer-bundle/chunk-JQLVOAQB.js.map +7 -0
  57. package/dist/viewer-bundle/chunk-LQMQSYLO.js +101 -0
  58. package/dist/viewer-bundle/chunk-LQMQSYLO.js.map +7 -0
  59. package/dist/viewer-bundle/chunk-MBFAQ3IK.js +34 -0
  60. package/dist/viewer-bundle/chunk-MBFAQ3IK.js.map +7 -0
  61. package/dist/viewer-bundle/chunk-N7G7IIKG.js +25 -0
  62. package/dist/viewer-bundle/chunk-N7G7IIKG.js.map +7 -0
  63. package/dist/viewer-bundle/chunk-NW4YG3NS.js +171 -0
  64. package/dist/viewer-bundle/chunk-NW4YG3NS.js.map +7 -0
  65. package/dist/viewer-bundle/chunk-ODEP5TKB.js +61 -0
  66. package/dist/viewer-bundle/chunk-ODEP5TKB.js.map +7 -0
  67. package/dist/viewer-bundle/chunk-OGKINV23.js +1050 -0
  68. package/dist/viewer-bundle/chunk-OGKINV23.js.map +7 -0
  69. package/dist/viewer-bundle/chunk-OGMSNDVH.js +1994 -0
  70. package/dist/viewer-bundle/chunk-OGMSNDVH.js.map +7 -0
  71. package/dist/viewer-bundle/chunk-QJVSDNAW.js +25 -0
  72. package/dist/viewer-bundle/chunk-QJVSDNAW.js.map +7 -0
  73. package/dist/viewer-bundle/chunk-RBTT26R4.js +2721 -0
  74. package/dist/viewer-bundle/chunk-RBTT26R4.js.map +7 -0
  75. package/dist/viewer-bundle/chunk-RQIPIIE2.js +48 -0
  76. package/dist/viewer-bundle/chunk-RQIPIIE2.js.map +7 -0
  77. package/dist/viewer-bundle/chunk-SRTYTXTX.js +22 -0
  78. package/dist/viewer-bundle/chunk-SRTYTXTX.js.map +7 -0
  79. package/dist/viewer-bundle/chunk-TRL7YIZG.js +1663 -0
  80. package/dist/viewer-bundle/chunk-TRL7YIZG.js.map +7 -0
  81. package/dist/viewer-bundle/chunk-U5T7X4BV.js +172 -0
  82. package/dist/viewer-bundle/chunk-U5T7X4BV.js.map +7 -0
  83. package/dist/viewer-bundle/chunk-UCAW6C6C.js +48 -0
  84. package/dist/viewer-bundle/chunk-UCAW6C6C.js.map +7 -0
  85. package/dist/viewer-bundle/chunk-UEAG4BJQ.js +93 -0
  86. package/dist/viewer-bundle/chunk-UEAG4BJQ.js.map +7 -0
  87. package/dist/viewer-bundle/chunk-UVRE3R6A.js +1039 -0
  88. package/dist/viewer-bundle/chunk-UVRE3R6A.js.map +7 -0
  89. package/dist/viewer-bundle/chunk-VODO7SV4.js +25029 -0
  90. package/dist/viewer-bundle/chunk-VODO7SV4.js.map +7 -0
  91. package/dist/viewer-bundle/chunk-YEU62MVS.js +682 -0
  92. package/dist/viewer-bundle/chunk-YEU62MVS.js.map +7 -0
  93. package/dist/viewer-bundle/chunk-YFQT7PPW.js +987 -0
  94. package/dist/viewer-bundle/chunk-YFQT7PPW.js.map +7 -0
  95. package/dist/viewer-bundle/chunk-Z4G7FG27.js +48 -0
  96. package/dist/viewer-bundle/chunk-Z4G7FG27.js.map +7 -0
  97. package/dist/viewer-bundle/chunk-ZW4Y7DIF.js +2044 -0
  98. package/dist/viewer-bundle/chunk-ZW4Y7DIF.js.map +7 -0
  99. package/dist/viewer-bundle/classDiagram-6PBFFD2Q-7VKYXLUX.js +46 -0
  100. package/dist/viewer-bundle/classDiagram-6PBFFD2Q-7VKYXLUX.js.map +7 -0
  101. package/dist/viewer-bundle/classDiagram-v2-HSJHXN6E-ACCNN7EN.js +46 -0
  102. package/dist/viewer-bundle/classDiagram-v2-HSJHXN6E-ACCNN7EN.js.map +7 -0
  103. package/dist/viewer-bundle/cose-bilkent-S5V4N54A-MUJHAA34.js +5009 -0
  104. package/dist/viewer-bundle/cose-bilkent-S5V4N54A-MUJHAA34.js.map +7 -0
  105. package/dist/viewer-bundle/dagre-KV5264BT-YC5VV3WF.js +739 -0
  106. package/dist/viewer-bundle/dagre-KV5264BT-YC5VV3WF.js.map +7 -0
  107. package/dist/viewer-bundle/dark.css +13 -0
  108. package/dist/viewer-bundle/detail.css +539 -0
  109. package/dist/viewer-bundle/diagram-5BDNPKRD-RXFPVFYK.js +214 -0
  110. package/dist/viewer-bundle/diagram-5BDNPKRD-RXFPVFYK.js.map +7 -0
  111. package/dist/viewer-bundle/diagram-G4DWMVQ6-KN7CBNBQ.js +578 -0
  112. package/dist/viewer-bundle/diagram-G4DWMVQ6-KN7CBNBQ.js.map +7 -0
  113. package/dist/viewer-bundle/diagram-MMDJMWI5-ZN6TQ7ZC.js +345 -0
  114. package/dist/viewer-bundle/diagram-MMDJMWI5-ZN6TQ7ZC.js.map +7 -0
  115. package/dist/viewer-bundle/diagram-TYMM5635-MMTUJ4KA.js +255 -0
  116. package/dist/viewer-bundle/diagram-TYMM5635-MMTUJ4KA.js.map +7 -0
  117. package/dist/viewer-bundle/docs.css +88 -0
  118. package/dist/viewer-bundle/edit-modal-BEGC2AO6.js +176 -0
  119. package/dist/viewer-bundle/edit-modal-BEGC2AO6.js.map +7 -0
  120. package/dist/viewer-bundle/erDiagram-SMLLAGMA-TBHMLD2E.js +1349 -0
  121. package/dist/viewer-bundle/erDiagram-SMLLAGMA-TBHMLD2E.js.map +7 -0
  122. package/dist/viewer-bundle/flowDiagram-DWJPFMVM-BZHLK6QB.js +2501 -0
  123. package/dist/viewer-bundle/flowDiagram-DWJPFMVM-BZHLK6QB.js.map +7 -0
  124. package/dist/viewer-bundle/ganttDiagram-T4ZO3ILL-YBARPTQR.js +2654 -0
  125. package/dist/viewer-bundle/ganttDiagram-T4ZO3ILL-YBARPTQR.js.map +7 -0
  126. package/dist/viewer-bundle/gitGraph-7Q5UKJZL-HENKIQDX.js +14 -0
  127. package/dist/viewer-bundle/gitGraph-7Q5UKJZL-HENKIQDX.js.map +7 -0
  128. package/dist/viewer-bundle/gitGraphDiagram-UUTBAWPF-M4VV3YVA.js +1946 -0
  129. package/dist/viewer-bundle/gitGraphDiagram-UUTBAWPF-M4VV3YVA.js.map +7 -0
  130. package/dist/viewer-bundle/index.html +28 -0
  131. package/dist/viewer-bundle/info-OMHHGYJF-E773USRS.js +14 -0
  132. package/dist/viewer-bundle/info-OMHHGYJF-E773USRS.js.map +7 -0
  133. package/dist/viewer-bundle/infoDiagram-42DDH7IO-C7JGUXKK.js +59 -0
  134. package/dist/viewer-bundle/infoDiagram-42DDH7IO-C7JGUXKK.js.map +7 -0
  135. package/dist/viewer-bundle/ishikawaDiagram-UXIWVN3A-YBC4X4VB.js +1012 -0
  136. package/dist/viewer-bundle/ishikawaDiagram-UXIWVN3A-YBC4X4VB.js.map +7 -0
  137. package/dist/viewer-bundle/journeyDiagram-VCZTEJTY-6WKVEOOO.js +1303 -0
  138. package/dist/viewer-bundle/journeyDiagram-VCZTEJTY-6WKVEOOO.js.map +7 -0
  139. package/dist/viewer-bundle/kanban-definition-6JOO6SKY-URTTHHO4.js +1131 -0
  140. package/dist/viewer-bundle/kanban-definition-6JOO6SKY-URTTHHO4.js.map +7 -0
  141. package/dist/viewer-bundle/katex-QN5266ZE.js +14318 -0
  142. package/dist/viewer-bundle/katex-QN5266ZE.js.map +7 -0
  143. package/dist/viewer-bundle/light.css +15 -0
  144. package/dist/viewer-bundle/main.js +4816 -0
  145. package/dist/viewer-bundle/main.js.map +7 -0
  146. package/dist/viewer-bundle/mermaid.core-AEBXU2JK.js +1708 -0
  147. package/dist/viewer-bundle/mermaid.core-AEBXU2JK.js.map +7 -0
  148. package/dist/viewer-bundle/mindmap-definition-QFDTVHPH-KUMAMRSF.js +1277 -0
  149. package/dist/viewer-bundle/mindmap-definition-QFDTVHPH-KUMAMRSF.js.map +7 -0
  150. package/dist/viewer-bundle/packet-4T2RLAQJ-IRYWWA66.js +14 -0
  151. package/dist/viewer-bundle/packet-4T2RLAQJ-IRYWWA66.js.map +7 -0
  152. package/dist/viewer-bundle/pico.classless.min.css +4 -0
  153. package/dist/viewer-bundle/pie-ZZUOXDRM-JYO4VL5N.js +14 -0
  154. package/dist/viewer-bundle/pie-ZZUOXDRM-JYO4VL5N.js.map +7 -0
  155. package/dist/viewer-bundle/pieDiagram-DEJITSTG-QOEHQN3N.js +238 -0
  156. package/dist/viewer-bundle/pieDiagram-DEJITSTG-QOEHQN3N.js.map +7 -0
  157. package/dist/viewer-bundle/prompt-modal-C4LHI7BS.js +12 -0
  158. package/dist/viewer-bundle/prompt-modal-C4LHI7BS.js.map +7 -0
  159. package/dist/viewer-bundle/quadrantDiagram-34T5L4WZ-SJNPUU5N.js +1409 -0
  160. package/dist/viewer-bundle/quadrantDiagram-34T5L4WZ-SJNPUU5N.js.map +7 -0
  161. package/dist/viewer-bundle/radar-PYXPWWZC-45BRYQSB.js +14 -0
  162. package/dist/viewer-bundle/radar-PYXPWWZC-45BRYQSB.js.map +7 -0
  163. package/dist/viewer-bundle/reason-modal-MK34MQ73.js +68 -0
  164. package/dist/viewer-bundle/reason-modal-MK34MQ73.js.map +7 -0
  165. package/dist/viewer-bundle/requirementDiagram-MS252O5E-UOMT3FCC.js +1311 -0
  166. package/dist/viewer-bundle/requirementDiagram-MS252O5E-UOMT3FCC.js.map +7 -0
  167. package/dist/viewer-bundle/sankeyDiagram-XADWPNL6-LAVJ5C6A.js +1263 -0
  168. package/dist/viewer-bundle/sankeyDiagram-XADWPNL6-LAVJ5C6A.js.map +7 -0
  169. package/dist/viewer-bundle/sequenceDiagram-FGHM5R23-3IWTOUNQ.js +4655 -0
  170. package/dist/viewer-bundle/sequenceDiagram-FGHM5R23-3IWTOUNQ.js.map +7 -0
  171. package/dist/viewer-bundle/stateDiagram-FHFEXIEX-S2OVQQON.js +495 -0
  172. package/dist/viewer-bundle/stateDiagram-FHFEXIEX-S2OVQQON.js.map +7 -0
  173. package/dist/viewer-bundle/stateDiagram-v2-QKLJ7IA2-XNZ3XXSV.js +44 -0
  174. package/dist/viewer-bundle/stateDiagram-v2-QKLJ7IA2-XNZ3XXSV.js.map +7 -0
  175. package/dist/viewer-bundle/timeline-definition-GMOUNBTQ-FHVZ7MHE.js +1646 -0
  176. package/dist/viewer-bundle/timeline-definition-GMOUNBTQ-FHVZ7MHE.js.map +7 -0
  177. package/dist/viewer-bundle/treeView-SZITEDCU-RXZXNYAM.js +14 -0
  178. package/dist/viewer-bundle/treeView-SZITEDCU-RXZXNYAM.js.map +7 -0
  179. package/dist/viewer-bundle/treemap-W4RFUUIX-2IGOFSJM.js +14 -0
  180. package/dist/viewer-bundle/treemap-W4RFUUIX-2IGOFSJM.js.map +7 -0
  181. package/dist/viewer-bundle/vennDiagram-DHZGUBPP-HEAOEXEZ.js +2544 -0
  182. package/dist/viewer-bundle/vennDiagram-DHZGUBPP-HEAOEXEZ.js.map +7 -0
  183. package/dist/viewer-bundle/wardley-RL74JXVD-VSPCLOX2.js +14 -0
  184. package/dist/viewer-bundle/wardley-RL74JXVD-VSPCLOX2.js.map +7 -0
  185. package/dist/viewer-bundle/wardleyDiagram-NUSXRM2D-EBY4FG3X.js +938 -0
  186. package/dist/viewer-bundle/wardleyDiagram-NUSXRM2D-EBY4FG3X.js.map +7 -0
  187. package/dist/viewer-bundle/xychartDiagram-5P7HB3ND-SSMUQEXK.js +1952 -0
  188. package/dist/viewer-bundle/xychartDiagram-5P7HB3ND-SSMUQEXK.js.map +7 -0
  189. package/package.json +51 -0
@@ -0,0 +1,248 @@
1
+ :root {
2
+ --zg-spacing: 1rem;
3
+ --zg-color-blocked: #c0392b;
4
+ --zg-color-cancelled: #7f8c8d;
5
+ }
6
+
7
+ #app {
8
+ max-width: 1400px;
9
+ margin: 0 auto;
10
+ padding: var(--zg-spacing);
11
+ }
12
+
13
+ [data-theme='dark'] {
14
+ color-scheme: dark;
15
+ }
16
+
17
+ [data-theme='light'] {
18
+ color-scheme: light;
19
+ }
20
+
21
+ .zg-nav {
22
+ display: flex;
23
+ gap: 1rem;
24
+ padding: 0.5rem 1rem;
25
+ background: var(--pico-card-background-color, #f5f5f5);
26
+ border-bottom: 1px solid var(--pico-muted-border-color, #ddd);
27
+ align-items: center;
28
+ }
29
+ .zg-nav a {
30
+ text-decoration: none;
31
+ font-size: 0.9rem;
32
+ }
33
+
34
+ button.zg-theme-toggle {
35
+ margin-left: auto;
36
+ background: var(--zg-btn-bg, #ffffff);
37
+ border: 1px solid var(--zg-btn-border, #d0d7de);
38
+ border-radius: 0.375rem;
39
+ width: 2rem;
40
+ height: 2rem;
41
+ padding: 0;
42
+ cursor: pointer;
43
+ font-size: 1rem;
44
+ line-height: 1;
45
+ color: var(--zg-btn-fg, #57606a);
46
+ display: inline-flex;
47
+ align-items: center;
48
+ justify-content: center;
49
+ transition: border-color 0.15s, color 0.15s;
50
+ }
51
+ button.zg-theme-toggle:hover,
52
+ button.zg-theme-toggle:focus-visible {
53
+ border-color: var(--zg-btn-fg-hover, #1095c1);
54
+ color: var(--zg-btn-fg-hover, #1095c1);
55
+ }
56
+
57
+ .zg-graph-container {
58
+ margin: 1rem 0;
59
+ text-align: center;
60
+ overflow-x: auto;
61
+ }
62
+
63
+ .zg-graph-header {
64
+ margin-bottom: 0.5rem;
65
+ }
66
+ .zg-graph-header h2 {
67
+ margin: 0 0 0.25rem 0;
68
+ }
69
+ .zg-graph-subtitle {
70
+ margin: 0;
71
+ font-size: 0.85rem;
72
+ color: var(--pico-muted-color, #666);
73
+ max-width: 60ch;
74
+ }
75
+
76
+ .zg-graph-legend {
77
+ display: flex;
78
+ flex-wrap: wrap;
79
+ gap: 0.5rem 1rem;
80
+ padding: 0.5rem 0.75rem;
81
+ margin: 0.75rem 0;
82
+ background: var(--pico-card-background-color, #f5f5f5);
83
+ border: 1px solid var(--pico-muted-border-color, #ddd);
84
+ border-radius: 0.375rem;
85
+ font-size: 0.8rem;
86
+ }
87
+ .zg-legend-item {
88
+ display: inline-flex;
89
+ align-items: center;
90
+ gap: 0.35rem;
91
+ color: var(--pico-color, #1a1a1a);
92
+ }
93
+ .zg-legend-swatch {
94
+ display: inline-block;
95
+ width: 0.9rem;
96
+ height: 0.9rem;
97
+ border-radius: 0.2rem;
98
+ border: 1px solid;
99
+ }
100
+ /* Legend swatch colors mirror the Mermaid classDef palette so the legend
101
+ actually predicts what users see in the graph. */
102
+ .zg-legend-swatch.zg-legend-draft { background: #f3f4f6; border-color: #9ca3af; }
103
+ .zg-legend-swatch.zg-legend-planned { background: #dbeafe; border-color: #60a5fa; }
104
+ .zg-legend-swatch.zg-legend-in-progress { background: #fef3c7; border-color: #f59e0b; }
105
+ .zg-legend-swatch.zg-legend-in-review { background: #ede9fe; border-color: #8b5cf6; }
106
+ .zg-legend-swatch.zg-legend-done { background: #d1fae5; border-color: #10b981; }
107
+ .zg-legend-swatch.zg-legend-blocked { background: #fee2e2; border-color: #c0392b; }
108
+ .zg-legend-swatch.zg-legend-cancelled { background: #f3f4f6; border-color: #7f8c8d; }
109
+
110
+ /* Subgraph titles. Cluster fill/stroke is driven per-cluster by the Mermaid
111
+ `style sg_<n>` directives in graph.ts (deterministic palette per part_of). */
112
+ .zg-graph-container .cluster-label .nodeLabel,
113
+ .zg-graph-container .cluster-label text {
114
+ font-weight: 600;
115
+ font-size: 0.9rem;
116
+ }
117
+
118
+ .zg-graph-fallback {
119
+ background: var(--pico-card-background-color, #f5f5f5);
120
+ padding: 1rem;
121
+ border-radius: 0.375rem;
122
+ text-align: left;
123
+ overflow-x: auto;
124
+ }
125
+
126
+ .zg-empty-state {
127
+ max-width: 640px;
128
+ margin: 4rem auto;
129
+ padding: 2rem;
130
+ text-align: center;
131
+ border: 2px dashed var(--pico-muted-border-color, #ddd);
132
+ border-radius: 0.75rem;
133
+ background: var(--pico-card-background-color, #fafafa);
134
+ }
135
+ .zg-empty-state h2,
136
+ .zg-empty-state h3 {
137
+ margin: 0 0 0.5rem 0;
138
+ font-weight: 600;
139
+ }
140
+ .zg-empty-state p {
141
+ color: var(--pico-muted-color, #666);
142
+ margin: 0.5rem 0;
143
+ }
144
+ .zg-empty-example {
145
+ text-align: left;
146
+ font-family: var(--pico-font-family-monospace, ui-monospace, monospace);
147
+ font-size: 0.8rem;
148
+ background: var(--pico-background-color, #fff);
149
+ border: 1px solid var(--pico-muted-border-color, #e5e7eb);
150
+ border-radius: 0.375rem;
151
+ padding: 0.75rem 1rem;
152
+ margin: 1rem 0;
153
+ overflow-x: auto;
154
+ }
155
+ .zg-empty-hint {
156
+ font-size: 0.85rem;
157
+ font-style: italic;
158
+ }
159
+
160
+ /* Validation banner — surfaced above board / graph when validate_repo
161
+ reports any errors. Defaults to expanded so users see what's wrong. */
162
+ .zg-validation-banner {
163
+ margin: 0 0 1rem 0;
164
+ padding: 0.5rem 0.75rem;
165
+ background: rgba(245, 158, 11, 0.12);
166
+ border: 1px solid rgba(245, 158, 11, 0.4);
167
+ border-radius: 0.375rem;
168
+ font-size: 0.85rem;
169
+ }
170
+ .zg-validation-summary {
171
+ cursor: pointer;
172
+ display: flex;
173
+ align-items: center;
174
+ gap: 0.5rem;
175
+ font-weight: 500;
176
+ color: #b45309;
177
+ list-style: none;
178
+ }
179
+ .zg-validation-summary::-webkit-details-marker { display: none; }
180
+ .zg-validation-icon {
181
+ font-size: 1rem;
182
+ line-height: 1;
183
+ }
184
+ .zg-validation-list {
185
+ margin: 0.5rem 0 0 0;
186
+ padding: 0;
187
+ list-style: none;
188
+ display: flex;
189
+ flex-direction: column;
190
+ gap: 0.25rem;
191
+ }
192
+ .zg-validation-item {
193
+ padding: 0.35rem 0.5rem;
194
+ background: var(--pico-background-color, #fff);
195
+ border-radius: 0.25rem;
196
+ font-size: 0.8rem;
197
+ }
198
+ .zg-validation-item code {
199
+ font-size: 0.75rem;
200
+ background: rgba(0,0,0,0.05);
201
+ padding: 0.05rem 0.3rem;
202
+ border-radius: 0.2rem;
203
+ }
204
+
205
+ /* Wiki-style links: [[spec-name]] inside any markdown body. The "exists"
206
+ variant uses the primary accent — already-clickable to the spec detail.
207
+ The "missing" variant is amber + a dashed underline so the user can tell
208
+ the target doesn't exist yet. Clicking still navigates (you can write the
209
+ spec by visiting its URL). */
210
+ .zg-markdown a.zg-wikilink {
211
+ color: var(--pico-primary, #1095c1);
212
+ text-decoration: none;
213
+ border-bottom: 1px dotted currentColor;
214
+ }
215
+ .zg-markdown a.zg-wikilink:hover {
216
+ text-decoration: underline;
217
+ }
218
+ .zg-markdown a.zg-wikilink-missing {
219
+ color: #b45309;
220
+ border-bottom-style: dashed;
221
+ }
222
+ .zg-markdown a.zg-wikilink-missing:hover {
223
+ color: #92400e;
224
+ }
225
+
226
+ /* Markdown GFM task-list rendering: marked v14 emits
227
+ <ul><li><input type="checkbox" disabled> text</li>...</ul>
228
+ without a task-list-item class. We target via :has() instead so the styling
229
+ actually attaches. (The Tasks tab gets its own interactive checkboxes via
230
+ the task-list component; these are display-only.) */
231
+ .zg-markdown ul:has(> li > input[type="checkbox"]) {
232
+ list-style: none;
233
+ padding-left: 0;
234
+ }
235
+ .zg-markdown li:has(> input[type="checkbox"]) {
236
+ list-style: none;
237
+ display: flex;
238
+ align-items: flex-start;
239
+ gap: 0.5rem;
240
+ margin: 0.25rem 0;
241
+ }
242
+ .zg-markdown li > input[type="checkbox"] {
243
+ margin: 0.25rem 0 0 0;
244
+ flex-shrink: 0;
245
+ width: 1rem;
246
+ height: 1rem;
247
+ accent-color: var(--pico-primary, #1095c1);
248
+ }