@screenbook/ui 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.astro/content-assets.mjs +1 -0
- package/.astro/content-modules.mjs +1 -0
- package/.astro/content.d.ts +199 -0
- package/.astro/data-store.json +1 -0
- package/.astro/settings.json +5 -0
- package/.astro/types.d.ts +2 -0
- package/.prettierrc +15 -0
- package/.screenbook/coverage.json +37 -0
- package/.screenbook/screens.json +90 -0
- package/LICENSE +21 -0
- package/astro.config.mjs +18 -0
- package/dist/client/_astro/_baseUniq.BGai4mcc.js +1 -0
- package/dist/client/_astro/arc.DUp0dfXj.js +1 -0
- package/dist/client/_astro/architectureDiagram-VXUJARFQ.De_Gt-YC.js +36 -0
- package/dist/client/_astro/blockDiagram-VD42YOAC.BBt_VNhR.js +122 -0
- package/dist/client/_astro/c4Diagram-YG6GDRKO.DfgUlHvt.js +10 -0
- package/dist/client/_astro/channel.CNyr52v1.js +1 -0
- package/dist/client/_astro/chunk-4BX2VUAB.BL0ar6du.js +1 -0
- package/dist/client/_astro/chunk-55IACEB6.CI6SkZkY.js +1 -0
- package/dist/client/_astro/chunk-B4BG7PRW.Z25N80K6.js +165 -0
- package/dist/client/_astro/chunk-DI55MBZ5.BqjPVmi1.js +220 -0
- package/dist/client/_astro/chunk-FMBD7UC4.bZ9DWnFm.js +15 -0
- package/dist/client/_astro/chunk-QN33PNHL.BkzuUgWB.js +1 -0
- package/dist/client/_astro/chunk-QZHKN3VN.C__d68N_.js +1 -0
- package/dist/client/_astro/chunk-TZMSLE5B.BIpu8bMn.js +1 -0
- package/dist/client/_astro/classDiagram-2ON5EDUG.CxT3aW-h.js +1 -0
- package/dist/client/_astro/classDiagram-v2-WZHVMYZB.CxT3aW-h.js +1 -0
- package/dist/client/_astro/clone.U_lSZ6fe.js +1 -0
- package/dist/client/_astro/cose-bilkent-S5V4N54A.D48yfMll.js +1 -0
- package/dist/client/_astro/coverage.CKIVg4LY.css +1 -0
- package/dist/client/_astro/coverage.DDJMzKCq.css +1 -0
- package/dist/client/_astro/cytoscape.esm.DtBltrT8.js +331 -0
- package/dist/client/_astro/dagre-6UL2VRFP.LKVH7b30.js +4 -0
- package/dist/client/_astro/defaultLocale.C4B-KCzX.js +1 -0
- package/dist/client/_astro/diagram-PSM6KHXK.AHgUjH56.js +24 -0
- package/dist/client/_astro/diagram-QEK2KX5R.DvS33xWZ.js +43 -0
- package/dist/client/_astro/diagram-S2PKOQOG.BWisaYrQ.js +24 -0
- package/dist/client/_astro/erDiagram-Q2GNP2WA.B7oID6oT.js +60 -0
- package/dist/client/_astro/flowDiagram-NV44I4VS.Bb1qJLxr.js +162 -0
- package/dist/client/_astro/ganttDiagram-JELNMOA3.3vGHETyo.js +267 -0
- package/dist/client/_astro/gitGraphDiagram-NY62KEGX.Co2SKcif.js +65 -0
- package/dist/client/_astro/graph.B5fevUwB.js +1 -0
- package/dist/client/_astro/graph.astro_astro_type_script_index_0_lang.1HlATQ1g.js +1 -0
- package/dist/client/_astro/impact.Cvhl64u1.css +1 -0
- package/dist/client/_astro/impact.astro_astro_type_script_index_0_lang.D4cAR9AL.js +6 -0
- package/dist/client/_astro/infoDiagram-WHAUD3N6.B6ULtps1.js +2 -0
- package/dist/client/_astro/init.Gi6I4Gst.js +1 -0
- package/dist/client/_astro/journeyDiagram-XKPGCS4Q.BSOCzWmw.js +139 -0
- package/dist/client/_astro/kanban-definition-3W4ZIXB7.D8KKGc1o.js +89 -0
- package/dist/client/_astro/katex.XbL3y5x-.js +261 -0
- package/dist/client/_astro/layout.8vv24qEg.js +1 -0
- package/dist/client/_astro/linear.B6O9ymuK.js +1 -0
- package/dist/client/_astro/mermaid.core.CReXU7YN.js +256 -0
- package/dist/client/_astro/min.CdGMGVU0.js +1 -0
- package/dist/client/_astro/mindmap-definition-VGOIOE7T.G14HgtDw.js +68 -0
- package/dist/client/_astro/ordinal.BYWQX77i.js +1 -0
- package/dist/client/_astro/pieDiagram-ADFJNKIX.bC2VkyoW.js +30 -0
- package/dist/client/_astro/quadrantDiagram-AYHSOK5B.BlLaQQxO.js +7 -0
- package/dist/client/_astro/requirementDiagram-UZGBJVZJ.DHRnMofO.js +64 -0
- package/dist/client/_astro/sankeyDiagram-TZEHDZUN.BMuaJBmt.js +10 -0
- package/dist/client/_astro/sequenceDiagram-WL72ISMW.CnU62wqy.js +145 -0
- package/dist/client/_astro/stateDiagram-FKZM4ZOC.CewI55YO.js +1 -0
- package/dist/client/_astro/stateDiagram-v2-4FDKWEC3.7xUQqoNr.js +1 -0
- package/dist/client/_astro/timeline-definition-IT6M3QCI.D1PLRwss.js +61 -0
- package/dist/client/_astro/treemap-KMMF4GRG.D3VNVvXF.js +128 -0
- package/dist/client/_astro/xychartDiagram-PRI3JC2R.CQex0-ul.js +7 -0
- package/dist/client/logo.svg +5 -0
- package/dist/server/_@astrojs-ssr-adapter.mjs +1 -0
- package/dist/server/_noop-middleware.mjs +3 -0
- package/dist/server/chunks/_@astrojs-ssr-adapter_DgsYudHz.mjs +4385 -0
- package/dist/server/chunks/astro/server_m7yT4wCr.mjs +2787 -0
- package/dist/server/chunks/astro-designed-error-pages_BvPhMmw0.mjs +364 -0
- package/dist/server/chunks/fs-lite_COtHaKzy.mjs +157 -0
- package/dist/server/chunks/impactAnalysis_Bz5lMdmy.mjs +188 -0
- package/dist/server/chunks/loadScreens_DJf-tycc.mjs +39 -0
- package/dist/server/chunks/node_DoTkMCOi.mjs +1673 -0
- package/dist/server/chunks/remote_B3W5fv4r.mjs +188 -0
- package/dist/server/chunks/sharp_DHNfMLYY.mjs +99 -0
- package/dist/server/entry.mjs +47 -0
- package/dist/server/manifest_-V1HEnR8.mjs +101 -0
- package/dist/server/noop-entrypoint.mjs +3 -0
- package/dist/server/pages/_image.astro.mjs +2 -0
- package/dist/server/pages/coverage.astro.mjs +65 -0
- package/dist/server/pages/graph.astro.mjs +107 -0
- package/dist/server/pages/impact.astro.mjs +52 -0
- package/dist/server/pages/index.astro.mjs +28 -0
- package/dist/server/pages/screen/_id_.astro.mjs +52 -0
- package/dist/server/renderers.mjs +3 -0
- package/package.json +42 -0
- package/public/logo.svg +5 -0
- package/src/layouts/Layout.astro +60 -0
- package/src/pages/coverage.astro +399 -0
- package/src/pages/graph.astro +330 -0
- package/src/pages/impact.astro +459 -0
- package/src/pages/index.astro +167 -0
- package/src/pages/screen/[id].astro +186 -0
- package/src/styles/global.css +862 -0
- package/src/utils/impactAnalysis.ts +297 -0
- package/src/utils/loadCoverage.ts +30 -0
- package/src/utils/loadScreens.ts +18 -0
- package/tsconfig.json +9 -0
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
---
|
|
2
|
+
import Layout from "@/layouts/Layout.astro"
|
|
3
|
+
import { loadScreens } from "@/utils/loadScreens"
|
|
4
|
+
import { getApiDependencyCount } from "@/utils/impactAnalysis"
|
|
5
|
+
|
|
6
|
+
const screens = loadScreens()
|
|
7
|
+
const apiCounts = getApiDependencyCount(screens)
|
|
8
|
+
|
|
9
|
+
export function getStaticPaths() {
|
|
10
|
+
const screens = loadScreens()
|
|
11
|
+
return screens.map((screen) => ({
|
|
12
|
+
params: { id: screen.id },
|
|
13
|
+
}))
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
const { id } = Astro.params
|
|
17
|
+
const screen = screens.find((s) => s.id === id)
|
|
18
|
+
|
|
19
|
+
if (!screen) {
|
|
20
|
+
return Astro.redirect("/")
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
// Find related screens
|
|
24
|
+
const entryScreens = screens.filter((s) => screen.entryPoints?.includes(s.id))
|
|
25
|
+
const nextScreens = screens.filter((s) => screen.next?.includes(s.id))
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
<Layout title={screen.title}>
|
|
29
|
+
<div class="container">
|
|
30
|
+
<a href="/" class="back-link">
|
|
31
|
+
<svg fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2">
|
|
32
|
+
<path stroke-linecap="round" stroke-linejoin="round" d="M10.5 19.5L3 12m0 0l7.5-7.5M3 12h18" />
|
|
33
|
+
</svg>
|
|
34
|
+
Back to screens
|
|
35
|
+
</a>
|
|
36
|
+
|
|
37
|
+
<div class="detail-header">
|
|
38
|
+
<h1 class="detail-title">{screen.title}</h1>
|
|
39
|
+
<div class="detail-route">
|
|
40
|
+
<svg fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2">
|
|
41
|
+
<path stroke-linecap="round" stroke-linejoin="round" d="M13.19 8.688a4.5 4.5 0 011.242 7.244l-4.5 4.5a4.5 4.5 0 01-6.364-6.364l1.757-1.757m13.35-.622l1.757-1.757a4.5 4.5 0 00-6.364-6.364l-4.5 4.5a4.5 4.5 0 001.242 7.244" />
|
|
42
|
+
</svg>
|
|
43
|
+
{screen.route}
|
|
44
|
+
</div>
|
|
45
|
+
</div>
|
|
46
|
+
|
|
47
|
+
<div class="detail-content">
|
|
48
|
+
<div>
|
|
49
|
+
<!-- Information -->
|
|
50
|
+
<div class="section">
|
|
51
|
+
<h2 class="section-title">Information</h2>
|
|
52
|
+
<div class="info-list">
|
|
53
|
+
<div class="info-item">
|
|
54
|
+
<span class="info-label">ID</span>
|
|
55
|
+
<span class="info-value"><code>{screen.id}</code></span>
|
|
56
|
+
</div>
|
|
57
|
+
{screen.owner && screen.owner.length > 0 && (
|
|
58
|
+
<div class="info-item">
|
|
59
|
+
<span class="info-label">Owner</span>
|
|
60
|
+
<span class="info-value">{screen.owner.join(", ")}</span>
|
|
61
|
+
</div>
|
|
62
|
+
)}
|
|
63
|
+
{screen.tags && screen.tags.length > 0 && (
|
|
64
|
+
<div class="info-item">
|
|
65
|
+
<span class="info-label">Tags</span>
|
|
66
|
+
<span class="info-value">
|
|
67
|
+
<div class="card-tags">
|
|
68
|
+
{screen.tags.map((tag) => (
|
|
69
|
+
<span class="card-tag">{tag}</span>
|
|
70
|
+
))}
|
|
71
|
+
</div>
|
|
72
|
+
</span>
|
|
73
|
+
</div>
|
|
74
|
+
)}
|
|
75
|
+
{screen.description && (
|
|
76
|
+
<div class="info-item">
|
|
77
|
+
<span class="info-label">Description</span>
|
|
78
|
+
<span class="info-value">{screen.description}</span>
|
|
79
|
+
</div>
|
|
80
|
+
)}
|
|
81
|
+
</div>
|
|
82
|
+
</div>
|
|
83
|
+
|
|
84
|
+
<!-- Dependencies -->
|
|
85
|
+
{screen.dependsOn && screen.dependsOn.length > 0 && (
|
|
86
|
+
<div class="section">
|
|
87
|
+
<h2 class="section-title">Dependencies</h2>
|
|
88
|
+
<div class="dep-list">
|
|
89
|
+
{screen.dependsOn.map((dep) => {
|
|
90
|
+
const count = apiCounts.get(dep) || 1
|
|
91
|
+
const otherCount = count - 1
|
|
92
|
+
return (
|
|
93
|
+
<a href={`/impact?api=${encodeURIComponent(dep)}`} class="dep-item dep-item-link">
|
|
94
|
+
<div class="dep-item-main">
|
|
95
|
+
<svg fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2">
|
|
96
|
+
<path stroke-linecap="round" stroke-linejoin="round" d="M17.25 6.75L22.5 12l-5.25 5.25m-10.5 0L1.5 12l5.25-5.25m7.5-3l-4.5 16.5" />
|
|
97
|
+
</svg>
|
|
98
|
+
<span>{dep}</span>
|
|
99
|
+
</div>
|
|
100
|
+
<div class="dep-item-meta">
|
|
101
|
+
{otherCount > 0 && (
|
|
102
|
+
<span class="dep-count">+{otherCount} other{otherCount > 1 ? "s" : ""}</span>
|
|
103
|
+
)}
|
|
104
|
+
<svg class="dep-arrow" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2">
|
|
105
|
+
<path stroke-linecap="round" stroke-linejoin="round" d="M3.75 13.5l10.5-11.25L12 10.5h8.25L9.75 21.75 12 13.5H3.75z" />
|
|
106
|
+
</svg>
|
|
107
|
+
</div>
|
|
108
|
+
</a>
|
|
109
|
+
)
|
|
110
|
+
})}
|
|
111
|
+
</div>
|
|
112
|
+
</div>
|
|
113
|
+
)}
|
|
114
|
+
|
|
115
|
+
<!-- External Links -->
|
|
116
|
+
{screen.links && screen.links.length > 0 && (
|
|
117
|
+
<div class="section">
|
|
118
|
+
<h2 class="section-title">Links</h2>
|
|
119
|
+
<div class="dep-list">
|
|
120
|
+
{screen.links.map((link) => (
|
|
121
|
+
<a href={link.url} target="_blank" rel="noopener noreferrer" class="dep-item">
|
|
122
|
+
<svg fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2">
|
|
123
|
+
<path stroke-linecap="round" stroke-linejoin="round" d="M13.5 6H5.25A2.25 2.25 0 003 8.25v10.5A2.25 2.25 0 005.25 21h10.5A2.25 2.25 0 0018 18.75V10.5m-10.5 6L21 3m0 0h-5.25M21 3v5.25" />
|
|
124
|
+
</svg>
|
|
125
|
+
{link.label}
|
|
126
|
+
</a>
|
|
127
|
+
))}
|
|
128
|
+
</div>
|
|
129
|
+
</div>
|
|
130
|
+
)}
|
|
131
|
+
</div>
|
|
132
|
+
|
|
133
|
+
<div>
|
|
134
|
+
<!-- Entry Points -->
|
|
135
|
+
{entryScreens.length > 0 && (
|
|
136
|
+
<div class="sidebar-card">
|
|
137
|
+
<h3 class="sidebar-card-title">
|
|
138
|
+
<svg fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2">
|
|
139
|
+
<path stroke-linecap="round" stroke-linejoin="round" d="M9 15L3 9m0 0l6-6M3 9h12a6 6 0 010 12h-3" />
|
|
140
|
+
</svg>
|
|
141
|
+
Entry Points
|
|
142
|
+
</h3>
|
|
143
|
+
<div class="screen-link-list">
|
|
144
|
+
{entryScreens.map((s) => (
|
|
145
|
+
<a href={`/screen/${s.id}`} class="screen-link">
|
|
146
|
+
<div class="screen-link-info">
|
|
147
|
+
<span class="screen-link-title">{s.title}</span>
|
|
148
|
+
<span class="screen-link-id">{s.id}</span>
|
|
149
|
+
</div>
|
|
150
|
+
<svg class="screen-link-arrow" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2">
|
|
151
|
+
<path stroke-linecap="round" stroke-linejoin="round" d="M8.25 4.5l7.5 7.5-7.5 7.5" />
|
|
152
|
+
</svg>
|
|
153
|
+
</a>
|
|
154
|
+
))}
|
|
155
|
+
</div>
|
|
156
|
+
</div>
|
|
157
|
+
)}
|
|
158
|
+
|
|
159
|
+
<!-- Next Screens -->
|
|
160
|
+
{nextScreens.length > 0 && (
|
|
161
|
+
<div class="sidebar-card">
|
|
162
|
+
<h3 class="sidebar-card-title">
|
|
163
|
+
<svg fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2">
|
|
164
|
+
<path stroke-linecap="round" stroke-linejoin="round" d="M13.5 4.5L21 12m0 0l-7.5 7.5M21 12H3" />
|
|
165
|
+
</svg>
|
|
166
|
+
Next Screens
|
|
167
|
+
</h3>
|
|
168
|
+
<div class="screen-link-list">
|
|
169
|
+
{nextScreens.map((s) => (
|
|
170
|
+
<a href={`/screen/${s.id}`} class="screen-link">
|
|
171
|
+
<div class="screen-link-info">
|
|
172
|
+
<span class="screen-link-title">{s.title}</span>
|
|
173
|
+
<span class="screen-link-id">{s.id}</span>
|
|
174
|
+
</div>
|
|
175
|
+
<svg class="screen-link-arrow" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2">
|
|
176
|
+
<path stroke-linecap="round" stroke-linejoin="round" d="M8.25 4.5l7.5 7.5-7.5 7.5" />
|
|
177
|
+
</svg>
|
|
178
|
+
</a>
|
|
179
|
+
))}
|
|
180
|
+
</div>
|
|
181
|
+
</div>
|
|
182
|
+
)}
|
|
183
|
+
</div>
|
|
184
|
+
</div>
|
|
185
|
+
</div>
|
|
186
|
+
</Layout>
|