pi-outpost 0.8.0 → 0.9.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.
- package/dist/contract/conformance/index.json +31 -0
- package/dist/contract/conformance/invalid/container-as-endpoint.json +26 -0
- package/dist/contract/conformance/invalid/container-duplicate-id.json +24 -0
- package/dist/contract/conformance/invalid/container-unknown-membership.json +20 -0
- package/dist/contract/conformance/invalid/containers-over-the-ceiling.json +220 -0
- package/dist/contract/conformance/valid/graph-containers-at-the-ceiling.json +216 -0
- package/dist/contract/conformance/valid/graph-proposal-moves-a-member.json +28 -0
- package/dist/contract/conformance/valid/graph-with-containers.json +55 -0
- package/dist/contract/conformance/valid/graph-with-empty-container.json +24 -0
- package/dist/contract/conformance/valid/sequence-with-containers.json +45 -0
- package/dist/contract/schemas/structured-exchange-1.json +40 -0
- package/dist/contract/validate-structured-exchange.mjs +68 -0
- package/dist/pi-outpost.mjs +199 -80
- package/dist/pi-outpost.sea.mjs +265 -146
- package/dist/sea-prep.blob +0 -0
- package/dist/skills/structured-exchange/SKILL.md +40 -0
- package/dist/skills/structured-exchange/structured-exchange-1.json +40 -0
- package/dist/web/assets/{PdfViewer-x2xiBxe4.js → PdfViewer-CEAp6biY.js} +2 -2
- package/dist/web/assets/{abnfDiagram-N423BO3Z-kee00MEd.js → abnfDiagram-N423BO3Z-BE4AMXSH.js} +1 -1
- package/dist/web/assets/architecture-TIHT7OUA-DgTbwInB.js +1 -0
- package/dist/web/assets/{architectureDiagram-T3A2C74G-FQrRA7W5.js → architectureDiagram-T3A2C74G-tjG-eidb.js} +1 -1
- package/dist/web/assets/{blockDiagram-VBNYF7ZC-DvskKqA0.js → blockDiagram-VBNYF7ZC-Bwzla1cD.js} +1 -1
- package/dist/web/assets/{c4Diagram-5PPSVZJV-BZRDgGhx.js → c4Diagram-5PPSVZJV-BbNH9mqH.js} +1 -1
- package/dist/web/assets/channel-CXbqHDJA.js +1 -0
- package/dist/web/assets/{chunk-2GRJ4B5K-BKAhH8lI.js → chunk-2GRJ4B5K-BTjPaaWT.js} +1 -1
- package/dist/web/assets/{chunk-3NCLNEKW-CDW_UFrj.js → chunk-3NCLNEKW-DfGGO5Az.js} +1 -1
- package/dist/web/assets/{chunk-4I5QYGJK-DexlHym3.js → chunk-4I5QYGJK-Bajr_p-3.js} +1 -1
- package/dist/web/assets/{chunk-5RXB4S5H-Dy5vrF_c.js → chunk-5RXB4S5H-CbDXtSwX.js} +1 -1
- package/dist/web/assets/{chunk-6Q2QTUOP-CgZiYapq.js → chunk-6Q2QTUOP-Cj5IB9-q.js} +1 -1
- package/dist/web/assets/{chunk-7Z6QIM7H-CJnQz0bE.js → chunk-7Z6QIM7H-BIsTfYEd.js} +1 -1
- package/dist/web/assets/{chunk-GF5L2VYU-CNU1cTmN.js → chunk-GF5L2VYU-CYLPBeKA.js} +1 -1
- package/dist/web/assets/{chunk-I66GZJ75-CAg8Cp7h.js → chunk-I66GZJ75-BjZt7BZl.js} +3 -3
- package/dist/web/assets/{chunk-J7OUQ5F2-DPUu4PC3.js → chunk-J7OUQ5F2-B3gViRUp.js} +2 -2
- package/dist/web/assets/{chunk-JQJVKLGR-BvvzMzOD.js → chunk-JQJVKLGR-Dg177seh.js} +1 -1
- package/dist/web/assets/{chunk-KBJHAD2P-CU234oZY.js → chunk-KBJHAD2P-B_2jByMg.js} +1 -1
- package/dist/web/assets/{chunk-NSK5VX7P-DC9AvBMO.js → chunk-NSK5VX7P-B5w-3_Ed.js} +1 -1
- package/dist/web/assets/{chunk-QR6OTTB3-NGKRGHT-.js → chunk-QR6OTTB3-DCJRxmQT.js} +1 -1
- package/dist/web/assets/{chunk-UBXNYLIW-BdEuaF2V.js → chunk-UBXNYLIW-DBuIxFzr.js} +1 -1
- package/dist/web/assets/{chunk-W5SLKNZC-DI52N2zG.js → chunk-W5SLKNZC-B-cGIOQF.js} +1 -1
- package/dist/web/assets/{chunk-WRU74C26-Z4jYNWlA.js → chunk-WRU74C26-CLOxZV1w.js} +1 -1
- package/dist/web/assets/classDiagram-JCYQIIEL-lv93WkUc.js +1 -0
- package/dist/web/assets/classDiagram-v2-OCEON4UE-lv93WkUc.js +1 -0
- package/dist/web/assets/{cynefin-VYW2F7L2-pqhisvct.js → cynefin-VYW2F7L2-Bk96SN7L.js} +1 -1
- package/dist/web/assets/{cynefinDiagram-MW4NZA55-dph1hMaU.js → cynefinDiagram-MW4NZA55-ooeswKGp.js} +1 -1
- package/dist/web/assets/{dagre-VZM6K2ZE-dkUSGnsd.js → dagre-VZM6K2ZE-CSwH_rTA.js} +1 -1
- package/dist/web/assets/{diagram-7IWD3JNH-Dr227O8k.js → diagram-7IWD3JNH-DVtrh_uV.js} +1 -1
- package/dist/web/assets/{diagram-B4RE2ZJO-ntl1e6sh.js → diagram-B4RE2ZJO-CYE5VmiD.js} +1 -1
- package/dist/web/assets/{diagram-LBJQPF4R-DOjM-sZd.js → diagram-LBJQPF4R-BYOlHlmg.js} +1 -1
- package/dist/web/assets/{diagram-Q27KOJAE-B-MjzCeJ.js → diagram-Q27KOJAE-DJWxpvu9.js} +1 -1
- package/dist/web/assets/{diagram-UB23O5K3-DC7MbtQl.js → diagram-UB23O5K3-B1g-vwj0.js} +1 -1
- package/dist/web/assets/{ebnfDiagram-BXEA7PRR-y-LOEsHH.js → ebnfDiagram-BXEA7PRR-BX8Jv2Vd.js} +1 -1
- package/dist/web/assets/{erDiagram-JOGREHBK-k8AoIy3Q.js → erDiagram-JOGREHBK-9hxklGu2.js} +1 -1
- package/dist/web/assets/eventmodeling-45OFAUF4-CSvMsqcO.js +1 -0
- package/dist/web/assets/flowDiagram-UKHOOZJN-CPmAOaGQ.js +1 -0
- package/dist/web/assets/{ganttDiagram-PKOTCBZU-BzS1g8HQ.js → ganttDiagram-PKOTCBZU-D0kAnvoM.js} +1 -1
- package/dist/web/assets/{gitGraph-TEB2WS4Q-Dc63nekB.js → gitGraph-TEB2WS4Q-C9UMPCgj.js} +1 -1
- package/dist/web/assets/{gitGraphDiagram-DS77QQ5N-BTWw_ecn.js → gitGraphDiagram-DS77QQ5N-6tPgqwE6.js} +1 -1
- package/dist/web/assets/index-CZwzQTfU.css +2 -0
- package/dist/web/assets/index-De86t3J_.js +323 -0
- package/dist/web/assets/{info-DKCQHKI2-D_28_vN7.js → info-DKCQHKI2-BBV4qqmE.js} +1 -1
- package/dist/web/assets/{infoDiagram-6WML65LV-77gNLZvi.js → infoDiagram-6WML65LV-Bmhc86CN.js} +1 -1
- package/dist/web/assets/{ishikawaDiagram-WSZJBQD7-7XDMgYt5.js → ishikawaDiagram-WSZJBQD7-5wn4Yv2C.js} +1 -1
- package/dist/web/assets/{journeyDiagram-NVQOT4AX-vsyfZeiY.js → journeyDiagram-NVQOT4AX-DJLLpQlS.js} +1 -1
- package/dist/web/assets/{kanban-definition-27J2QSJJ-DQ5g-1NC.js → kanban-definition-27J2QSJJ-7h9EMbUW.js} +1 -1
- package/dist/web/assets/{line-DtXn_0p6.js → line-Uu7s3CmK.js} +1 -1
- package/dist/web/assets/{mermaid-parser.core-Dyx1WWw_.js → mermaid-parser.core-DwpLoctN.js} +3 -3
- package/dist/web/assets/{mermaid.core-uKmrA7tr.js → mermaid.core-CRSZr8Y7.js} +3 -3
- package/dist/web/assets/{mindmap-definition-FAOFIHXS-BYgTwh7C.js → mindmap-definition-FAOFIHXS-DPic1KLK.js} +1 -1
- package/dist/web/assets/{packet-7NZHBO7P-BZKnuEXR.js → packet-7NZHBO7P-CMRjleUu.js} +1 -1
- package/dist/web/assets/{pdf-pU3WmOmo.js → pdf-DGJrgWix.js} +1 -1
- package/dist/web/assets/{pegDiagram-VL7TDLO6-CBsL2dth.js → pegDiagram-VL7TDLO6-CdECC4cs.js} +1 -1
- package/dist/web/assets/{pie-RZYD4A2V-DGE1bbOE.js → pie-RZYD4A2V-C5X4oGn0.js} +1 -1
- package/dist/web/assets/{pieDiagram-7S7Q4E2Y-BwURarOq.js → pieDiagram-7S7Q4E2Y-Bvs4Q2O-.js} +1 -1
- package/dist/web/assets/{quadrantDiagram-CIZ2JOQS-BqFQ2trs.js → quadrantDiagram-CIZ2JOQS-FsUrYDg7.js} +1 -1
- package/dist/web/assets/{radar-I7S5WNFK-Bg6p9yp7.js → radar-I7S5WNFK-tvx7HrZO.js} +1 -1
- package/dist/web/assets/{railroad-3IZDKUUU-DNI6o4Em.js → railroad-3IZDKUUU-DBks1QD-.js} +1 -1
- package/dist/web/assets/railroad-abnf-AHOZXSZD-BnvB29Nv.js +1 -0
- package/dist/web/assets/railroad-ebnf-EBAXGLYW-BUSDQ0vn.js +1 -0
- package/dist/web/assets/railroad-peg-LSFZ7HO6-CZV0givf.js +1 -0
- package/dist/web/assets/{railroadDiagram-AXF67PYL-oEpcqk-W.js → railroadDiagram-AXF67PYL-CBvFYCmN.js} +1 -1
- package/dist/web/assets/{requirementDiagram-LRYGKXZP-BKxgubC8.js → requirementDiagram-LRYGKXZP-C-rumttI.js} +1 -1
- package/dist/web/assets/{sankeyDiagram-W5VNT64P-DR5jQRd_.js → sankeyDiagram-W5VNT64P-ClOK2cdj.js} +1 -1
- package/dist/web/assets/{sequenceDiagram-SI44F4Z6-C7L40Nsa.js → sequenceDiagram-SI44F4Z6-B0pKllVj.js} +1 -1
- package/dist/web/assets/{stateDiagram-OKZ733FA-D3mb8r39.js → stateDiagram-OKZ733FA-BoAWywzk.js} +1 -1
- package/dist/web/assets/stateDiagram-v2-UEYNNEHI-CHrsco-w.js +1 -0
- package/dist/web/assets/{swimlanes-SLNWSIFB-BEeA1QZ_.js → swimlanes-SLNWSIFB-cdgjeXSf.js} +1 -1
- package/dist/web/assets/swimlanesDiagram-ULZ7WXOC-DPjAUQdL.js +8 -0
- package/dist/web/assets/{timeline-definition-Z64GVDOM-DJzDXvxa.js → timeline-definition-Z64GVDOM-ByMPGIEh.js} +1 -1
- package/dist/web/assets/{treeView-QDETBFTQ-C7Ygr33N.js → treeView-QDETBFTQ-zBqwQF47.js} +1 -1
- package/dist/web/assets/{treemap-6X3UGDF4-Cvo79BWQ.js → treemap-6X3UGDF4-C2U9S2di.js} +1 -1
- package/dist/web/assets/{vennDiagram-T6HMQDX7-K4-0i3bx.js → vennDiagram-T6HMQDX7-CyJfOcB0.js} +1 -1
- package/dist/web/assets/{wardley-OPB4EBWU-vPJ7z6yC.js → wardley-OPB4EBWU-CDxzQuvF.js} +1 -1
- package/dist/web/assets/{wardleyDiagram-T6FBY63Y-ZMc27dHf.js → wardleyDiagram-T6FBY63Y-IO8_CDTG.js} +1 -1
- package/dist/web/assets/{xychartDiagram-ELKLHX3M-CC9smjjw.js → xychartDiagram-ELKLHX3M-UUfxFEDc.js} +1 -1
- package/dist/web/index.html +2 -2
- package/package.json +1 -1
- package/dist/web/assets/architecture-TIHT7OUA-s5QlE0U9.js +0 -1
- package/dist/web/assets/channel-Ca0hg8PC.js +0 -1
- package/dist/web/assets/classDiagram-JCYQIIEL-D6TSE_k7.js +0 -1
- package/dist/web/assets/classDiagram-v2-OCEON4UE-D6TSE_k7.js +0 -1
- package/dist/web/assets/eventmodeling-45OFAUF4-CtFKjGJF.js +0 -1
- package/dist/web/assets/flowDiagram-UKHOOZJN-j1XVLSIh.js +0 -1
- package/dist/web/assets/index-BWflhMWc.js +0 -323
- package/dist/web/assets/index-DpjN669x.css +0 -2
- package/dist/web/assets/railroad-abnf-AHOZXSZD-BNrH9Ci1.js +0 -1
- package/dist/web/assets/railroad-ebnf-EBAXGLYW-Dz3SvEbQ.js +0 -1
- package/dist/web/assets/railroad-peg-LSFZ7HO6-DTIkD36f.js +0 -1
- package/dist/web/assets/stateDiagram-v2-UEYNNEHI-Dmyli1R9.js +0 -1
- package/dist/web/assets/swimlanesDiagram-ULZ7WXOC-CGGlb8e_.js +0 -8
package/dist/sea-prep.blob
CHANGED
|
Binary file
|
|
@@ -71,6 +71,42 @@ Each carries its own `data`:
|
|
|
71
71
|
A message declares a `label` and no `kind` — the label *is* what is being sent.
|
|
72
72
|
Message order is the order you write them in; nothing sorts them for you.
|
|
73
73
|
|
|
74
|
+
## Grouping: containers
|
|
75
|
+
|
|
76
|
+
A graph or a sequence may declare **containers** — subsystems, layers, teams,
|
|
77
|
+
whatever the domain groups things into — and each element or participant may say
|
|
78
|
+
which one it belongs to.
|
|
79
|
+
|
|
80
|
+
```jsonc
|
|
81
|
+
"data": {
|
|
82
|
+
"containers": [{ "id": "electrical", "label": "Electrical system" }],
|
|
83
|
+
"nodes": [{ "id": "battery", "label": "Battery", "container": "electrical" },
|
|
84
|
+
{ "id": "driver", "label": "Driver" }], // in no container
|
|
85
|
+
"edges": [{ "from": "driver", "to": "battery", "kind": "operates" }]
|
|
86
|
+
}
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Four things to know:
|
|
90
|
+
|
|
91
|
+
- **Membership goes on the member**, never as a list of members on the container.
|
|
92
|
+
An element belongs to one container or to none.
|
|
93
|
+
- **Relationships ignore grouping entirely.** They connect elements, they cross
|
|
94
|
+
container boundaries freely, and an endpoint is never a container id. Naming a
|
|
95
|
+
container as `from` or `to` is refused.
|
|
96
|
+
- **Containers do not nest.** A member names a container, never a chain of them.
|
|
97
|
+
- **A container nobody joins is fine.** Declare the group first and fill it later
|
|
98
|
+
if that is what you mean; it is drawn as an empty box.
|
|
99
|
+
|
|
100
|
+
Naming a container the document does not declare is refused rather than quietly
|
|
101
|
+
ungrouped — an element shown outside a group it belongs to would misstate the
|
|
102
|
+
system you are describing.
|
|
103
|
+
|
|
104
|
+
In a sequence, the view puts a container's columns next to each other so its
|
|
105
|
+
header spans them. If you interleave two containers, the columns are reordered:
|
|
106
|
+
the first member of a container met brings the rest of that container with it,
|
|
107
|
+
and anything belonging to no container keeps its place. Declare participants in
|
|
108
|
+
the order you want them read.
|
|
109
|
+
|
|
74
110
|
## Two identities, never confused
|
|
75
111
|
|
|
76
112
|
Every element carries an `id`, and may carry a `ref`.
|
|
@@ -197,6 +233,10 @@ is refused rather than resolved — decide which you meant.
|
|
|
197
233
|
endpoints are its identity, not something you patch. To re-attach a relationship,
|
|
198
234
|
remove it and declare a new one.
|
|
199
235
|
|
|
236
|
+
**Moving something between containers is an ordinary change**: `"set": { "container":
|
|
237
|
+
"electrical" }` on an element that carries a `ref`, like any other field you change.
|
|
238
|
+
Containers themselves are not patched — they are declared afresh in every document.
|
|
239
|
+
|
|
200
240
|
## What the reader sees, and what the model sees
|
|
201
241
|
|
|
202
242
|
The structured document is rendered for the human and **does not reach the model** —
|
|
@@ -24,6 +24,26 @@
|
|
|
24
24
|
"type": "string",
|
|
25
25
|
"maxLength": 500
|
|
26
26
|
},
|
|
27
|
+
"container": {
|
|
28
|
+
"description": "A named group of elements or participants. Grouping only: relationships connect elements and cross container boundaries freely, and a container carries no relationship of its own.",
|
|
29
|
+
"type": "object",
|
|
30
|
+
"additionalProperties": false,
|
|
31
|
+
"required": [
|
|
32
|
+
"id",
|
|
33
|
+
"label"
|
|
34
|
+
],
|
|
35
|
+
"properties": {
|
|
36
|
+
"id": {
|
|
37
|
+
"$ref": "#/$defs/localId"
|
|
38
|
+
},
|
|
39
|
+
"label": {
|
|
40
|
+
"$ref": "#/$defs/label"
|
|
41
|
+
},
|
|
42
|
+
"kind": {
|
|
43
|
+
"$ref": "#/$defs/kind"
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
},
|
|
27
47
|
"kind": {
|
|
28
48
|
"description": "The producing tool's type or stereotype for this thing \u2014 'block', 'sensor', 'power', 'thermal'. Free text, because the vocabulary belongs to the domain and not to this contract. Carries meaning, not presentation: a reader may colour by it, and a consumer may map it back to its own type system.",
|
|
29
49
|
"type": "string",
|
|
@@ -51,6 +71,9 @@
|
|
|
51
71
|
},
|
|
52
72
|
"set": {
|
|
53
73
|
"$ref": "#/$defs/elementChange"
|
|
74
|
+
},
|
|
75
|
+
"container": {
|
|
76
|
+
"$ref": "#/$defs/localId"
|
|
54
77
|
}
|
|
55
78
|
},
|
|
56
79
|
"if": {
|
|
@@ -185,6 +208,9 @@
|
|
|
185
208
|
},
|
|
186
209
|
"kind": {
|
|
187
210
|
"$ref": "#/$defs/kind"
|
|
211
|
+
},
|
|
212
|
+
"container": {
|
|
213
|
+
"$ref": "#/$defs/localId"
|
|
188
214
|
}
|
|
189
215
|
}
|
|
190
216
|
},
|
|
@@ -257,6 +283,13 @@
|
|
|
257
283
|
"items": {
|
|
258
284
|
"$ref": "#/$defs/edge"
|
|
259
285
|
}
|
|
286
|
+
},
|
|
287
|
+
"containers": {
|
|
288
|
+
"type": "array",
|
|
289
|
+
"maxItems": 50,
|
|
290
|
+
"items": {
|
|
291
|
+
"$ref": "#/$defs/container"
|
|
292
|
+
}
|
|
260
293
|
}
|
|
261
294
|
}
|
|
262
295
|
},
|
|
@@ -282,6 +315,13 @@
|
|
|
282
315
|
"items": {
|
|
283
316
|
"$ref": "#/$defs/message"
|
|
284
317
|
}
|
|
318
|
+
},
|
|
319
|
+
"containers": {
|
|
320
|
+
"type": "array",
|
|
321
|
+
"maxItems": 50,
|
|
322
|
+
"items": {
|
|
323
|
+
"$ref": "#/$defs/container"
|
|
324
|
+
}
|
|
285
325
|
}
|
|
286
326
|
}
|
|
287
327
|
},
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/pdf-
|
|
2
|
-
import{a as e,i as t,n,r}from"./index-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/pdf-DGJrgWix.js","assets/index-De86t3J_.js","assets/rolldown-runtime-QTnfLwEv.js","assets/index-CZwzQTfU.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{a as e,i as t,n,r}from"./index-De86t3J_.js";var i=e(),a=r(),o=[.5,.75,1,1.25,1.5,2,3];function s(e){return e>=1024*1024?`${Math.round(e/(1024*1024))} MB`:`${Math.round(e/1024)} KB`}function c(e){switch(e.kind){case`too-large`:return e.limitBytes===void 0?`This PDF is larger than the server's PDF limit.`:`This PDF is larger than the ${s(e.limitBytes)} limit the server allows.`;case`encrypted`:return`This PDF is password-protected, so it cannot be displayed.`;case`not-found`:return`This file no longer exists.`;case`unauthorized`:return`This session is not authorized to read this file.`;case`unreadable`:return`This file could not be read as a PDF.`}}async function l(e,n,r){let i=await fetch(t(e,n,null),{headers:r?{Authorization:`Bearer ${r}`}:{}});if(!i.ok){if(i.status===413){let e=await i.json().catch(()=>({}));throw{kind:`too-large`,...typeof e.limit==`number`?{limitBytes:e.limit}:{}}}throw i.status===401||i.status===403?{kind:`unauthorized`}:i.status===404?{kind:`not-found`}:{kind:`unreadable`}}return new Uint8Array(await i.arrayBuffer())}async function u(e){let t=await n(()=>import(`./pdf-DGJrgWix.js`),__vite__mapDeps([0,1,2,3]));t.GlobalWorkerOptions.workerSrc=new URL(`/assets/pdf.worker.min-CHFwMXne.mjs`,``+import.meta.url).toString();let r=t.getDocument({data:e,useWorkerFetch:!1,isOffscreenCanvasSupported:!1});try{return{doc:await r.promise,task:r}}catch(e){throw await r.destroy().catch(()=>{}),{kind:(e instanceof Error?e.name:``)===`PasswordException`?`encrypted`:`unreadable`}}}async function d(e,t,r,i){if(!(r===null||e.streamTextContent===void 0)){r.replaceChildren();try{let a=await n(()=>import(`./pdf-DGJrgWix.js`),__vite__mapDeps([0,1,2,3]));r.style.setProperty(`--total-scale-factor`,String(i)),await new a.TextLayer({textContentSource:await e.streamTextContent(),container:r,viewport:t}).render()}catch{r.replaceChildren()}}}function f(e){try{e?.cancel()}catch{}}function p(e){return typeof e==`object`&&!!e&&typeof e.kind==`string`}var m=1;function h({doc:e,pageNumber:t,scale:n,baseSize:r,active:o,registerSlot:s}){let c=(0,i.useRef)(null),l=(0,i.useRef)(null),u=(0,i.useRef)(null),[p,m]=(0,i.useState)(!1),[h,g]=(0,i.useState)({width:r.width*n,height:r.height*n});return(0,i.useEffect)(()=>{g({width:r.width*n,height:r.height*n})},[r.width,r.height,n]),(0,i.useEffect)(()=>{if(!o)return;let r=!1,i=u.current;return f(i),(async()=>{try{let a=await e.getPage(t),o=a.getViewport({scale:n}),s=c.current;if(r||s===null||(await i?.promise.catch(()=>{}),r))return;g({width:o.width,height:o.height}),s.width=Math.floor(o.width),s.height=Math.floor(o.height);let f=a.render({canvas:s,viewport:o,annotationMode:0});if(u.current=f,await f.promise,r)return;await d(a,o,l.current,n),r||m(!1)}catch(e){let t=e instanceof Error?e.name:``;!r&&t!==`RenderingCancelledException`&&m(!0)}})(),()=>{r=!0,f(u.current)}},[e,t,n,o]),(0,a.jsx)(`div`,{ref:e=>s(t,e),"data-page":t,className:`relative mx-auto mb-4 bg-white shadow last:mb-0`,style:{width:h.width,height:h.height},children:p?(0,a.jsxs)(`p`,{className:`absolute inset-0 flex items-center justify-center p-4 text-center text-xs text-red-600 dark:text-red-400`,children:[`Page `,t,` could not be rendered.`]}):o?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(`canvas`,{ref:c,className:`block h-full w-full`}),(0,a.jsx)(`div`,{ref:l,className:`pdf-text-layer`,"aria-hidden":!0})]}):null})}function g({path:e,serverUrl:t=``,token:n=null,onLoaded:r}){let[s,d]=(0,i.useState)(null),[f,g]=(0,i.useState)(null),[_,v]=(0,i.useState)(1),[y,b]=(0,i.useState)(2),[x,S]=(0,i.useState)(null),C=(0,i.useRef)(null),w=(0,i.useRef)(new Map);(0,i.useEffect)(()=>{let i=!1,a=null;return d(null),g(null),v(1),S(null),(async()=>{try{let{doc:o,task:s}=await u(await l(t,e,n));if(a=s,i){await s.destroy().catch(()=>{});return}try{let e=(await o.getPage(1)).getViewport({scale:1});i||S({width:e.width,height:e.height})}catch{i||S({width:612,height:792})}if(i)return;d(o),r?.(e)}catch(e){i||g(p(e)?e:{kind:`unreadable`})}})(),()=>{i=!0,a?.destroy().catch(()=>{})}},[e,t,n]);let T=s?.numPages??0,E=(0,i.useCallback)((e,t)=>{t===null?w.current.delete(e):w.current.set(e,t)},[]);(0,i.useEffect)(()=>{if(s===null||typeof IntersectionObserver>`u`)return;let e=C.current;if(e===null)return;let t=new IntersectionObserver(e=>{for(let t of e){if(!t.isIntersecting)continue;let e=Number(t.target.dataset.page);Number.isFinite(e)&&v(e)}},{root:e,rootMargin:`-45% 0px -45% 0px`,threshold:0});for(let e of w.current.values())t.observe(e);return()=>t.disconnect()},[s,T]);let D=(0,i.useCallback)(e=>{e<1||e>T||(v(e),w.current.get(e)?.scrollIntoView({block:`start`}))},[T]);return f===null?s===null?(0,a.jsx)(`div`,{className:`flex h-full items-center justify-center p-6`,children:(0,a.jsx)(`p`,{className:`text-sm text-zinc-500`,children:`Loading PDF…`})}):(0,a.jsxs)(`div`,{className:`flex h-full flex-col`,onKeyDown:e=>{if(e.key===`PageDown`||e.key===`ArrowRight`)D(_+1);else if(e.key===`PageUp`||e.key===`ArrowLeft`)D(_-1);else return;e.preventDefault()},children:[(0,a.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 border-b border-zinc-200 px-3 py-2 text-xs dark:border-zinc-800`,children:[(0,a.jsx)(`button`,{type:`button`,onClick:()=>D(_-1),disabled:_<=1,"aria-label":`Previous page`,className:`rounded px-2 py-1 hover:bg-zinc-100 disabled:opacity-40 dark:hover:bg-zinc-800`,children:`‹`}),(0,a.jsxs)(`span`,{className:`tabular-nums text-zinc-600 dark:text-zinc-400`,children:[`Page `,_,` / `,T]}),(0,a.jsx)(`button`,{type:`button`,onClick:()=>D(_+1),disabled:_>=T,"aria-label":`Next page`,className:`rounded px-2 py-1 hover:bg-zinc-100 disabled:opacity-40 dark:hover:bg-zinc-800`,children:`›`}),(0,a.jsxs)(`span`,{className:`ml-auto flex items-center gap-1`,children:[(0,a.jsx)(`button`,{type:`button`,onClick:()=>b(e=>Math.max(0,e-1)),disabled:y===0,"aria-label":`Zoom out`,className:`rounded px-2 py-1 hover:bg-zinc-100 disabled:opacity-40 dark:hover:bg-zinc-800`,children:`−`}),(0,a.jsxs)(`span`,{className:`tabular-nums text-zinc-500`,children:[Math.round(o[y]*100),`%`]}),(0,a.jsx)(`button`,{type:`button`,onClick:()=>b(e=>Math.min(o.length-1,e+1)),disabled:y===o.length-1,"aria-label":`Zoom in`,className:`rounded px-2 py-1 hover:bg-zinc-100 disabled:opacity-40 dark:hover:bg-zinc-800`,children:`+`})]})]}),(0,a.jsx)(`div`,{ref:C,className:`flex-1 overflow-auto bg-zinc-100 p-4 dark:bg-zinc-950`,children:x!==null&&Array.from({length:T},(e,t)=>t+1).map(e=>(0,a.jsx)(h,{doc:s,pageNumber:e,scale:o[y],baseSize:x,active:Math.abs(e-_)<=m,registerSlot:E},e))})]}):(0,a.jsx)(`div`,{className:`flex h-full items-center justify-center p-6`,children:(0,a.jsx)(`p`,{className:`max-w-md text-center text-sm text-zinc-600 dark:text-zinc-400`,children:c(f)})})}export{g as PdfViewer,g as default};
|
package/dist/web/assets/{abnfDiagram-N423BO3Z-kee00MEd.js → abnfDiagram-N423BO3Z-BE4AMXSH.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{m as e,t}from"./mermaid-parser.core-
|
|
1
|
+
import{m as e,t}from"./mermaid-parser.core-DwpLoctN.js";import{n}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import{m as r}from"./src-_wZywoZs.js";import"./chunk-I66GZJ75-BjZt7BZl.js";import"./chunk-3NCLNEKW-DfGGO5Az.js";import{n as i,r as a,t as o}from"./chunk-6Q2QTUOP-Cj5IB9-q.js";import{t as s}from"./chunk-JWPE2WC7-DVXcaiue.js";var c=e().RailroadAbnf.parser.LangiumParser,l=n(e=>{let t=e.alternatives.map(u);return t.length===1?t[0]:{type:`choice`,alternatives:t}},`transformAlternation`),u=n(e=>{let t=e.elements.map(f);return t.length===1?t[0]:{type:`sequence`,elements:t}},`transformConcatenation`),d=n(e=>{if(e.includes(`*`)){let[t,n]=e.split(`*`);return{min:t?parseInt(t,10):0,max:n?parseInt(n,10):1/0}}let t=parseInt(e,10);return{min:t,max:t}},`parseRepeat`),f=n(e=>{let t=p(e.primary);if(!e.repeat)return t;let{min:n,max:r}=d(e.repeat);return n===0&&r===1?{type:`optional`,element:t}:{type:`repetition`,element:t,min:n,max:r}},`transformElement`),p=n(e=>{switch(e.$type){case`AbnfStringLiteral`:return{type:`terminal`,value:e.value};case`AbnfNumVal`:return{type:`terminal`,value:e.value};case`AbnfRuleName`:return{type:`nonterminal`,name:e.name};case`AbnfGroup`:return l(e.element);case`AbnfOptionalGroup`:return{type:`optional`,element:l(e.element)};default:throw Error(`Unsupported ABNF primary node: ${e.$type}`)}},`transformPrimary`),m=n(e=>({name:e.name,definition:l(e.definition)}),`transformRule`),h=n(e=>{s(e,o),e.title&&o.setTitle(e.title),e.rules.map(e=>o.addRule(m(e)))},`populateDb`),g={parser:{parse:n(e=>{o.clear(),r.debug(`[ABNF Parser] Starting Langium parse`);let n=c.parse(e);if(n.lexerErrors.length>0||n.parserErrors.length>0)throw new t(n);let i=n.value;r.debug(`[ABNF Parser] Parsed rules:`,i.rules.length),h(i),r.debug(`[ABNF Parser] Parse complete`)},`parse`),parser:{yy:o}},db:o,renderer:a,styles:i};export{g as diagram};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./chunk-KEIR6QF5-BfrZ3jm6.js";import{M as e}from"./mermaid-parser.core-DwpLoctN.js";export{e as createArchitectureServices};
|