@leanspec/ui 0.2.28 → 0.3.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 (194) hide show
  1. package/dist/{_baseUniq-BtJuknnJ.js → _baseUniq-Cfpafgc0.js} +1 -1
  2. package/dist/{arc-O-rE7YCB.js → arc-Ch9WDeqx.js} +1 -1
  3. package/dist/{architecture-U656AL7Q-BeYqAAo7.js → architecture-U656AL7Q-BMkAcamw.js} +1 -1
  4. package/dist/{architectureDiagram-VXUJARFQ-DlDB9-tN.js → architectureDiagram-VXUJARFQ-B2kiuB6l.js} +3 -3
  5. package/dist/assets/ChatSettingsPage-BNkUWXD7.js +1 -0
  6. package/dist/assets/ContextPage-BXFBa390.js +14 -0
  7. package/dist/assets/{DashboardPage-DQH28Es5.js → DashboardPage-DG3o4y5K.js} +1 -1
  8. package/dist/assets/DependenciesPage-CAJX6zmQ.js +2 -0
  9. package/dist/assets/{FilesPage-BBVU37eW.js → FilesPage-E9VTXi3O.js} +3 -3
  10. package/dist/assets/SessionDetailPage-DsFv3UaN.js +4 -0
  11. package/dist/assets/SessionsPage-BJQkApgV.js +1 -0
  12. package/dist/assets/SpecDetailPage-NxlrFJ3X.js +3 -0
  13. package/dist/assets/SpecsPage-D7dH4bxd.js +1 -0
  14. package/dist/assets/StatsPage-DcDN3p4C.js +36 -0
  15. package/dist/assets/{_baseUniq-Dacov6Rp.js → _baseUniq-BLwGRN9T.js} +1 -1
  16. package/dist/assets/{arc-C1vHYpyW.js → arc-D46jVWXL.js} +1 -1
  17. package/dist/assets/architectureDiagram-VXUJARFQ-GKb1fnPC.js +36 -0
  18. package/dist/assets/blockDiagram-VD42YOAC-BAeW8TcZ.js +122 -0
  19. package/dist/assets/c4Diagram-YG6GDRKO-DsCDxNEY.js +10 -0
  20. package/dist/assets/channel-BCohFlQD.js +1 -0
  21. package/dist/assets/chunk-4BX2VUAB--jRtR2Gx.js +1 -0
  22. package/dist/assets/{chunk-55IACEB6-CEO6q7uK.js → chunk-55IACEB6-CK4VujpY.js} +1 -1
  23. package/dist/assets/{chunk-B4BG7PRW-DeXdKUh1.js → chunk-B4BG7PRW-CpmnmzRV.js} +6 -6
  24. package/dist/assets/chunk-DI55MBZ5-g0bpnDBm.js +220 -0
  25. package/dist/assets/{chunk-FMBD7UC4-D6UFHN61.js → chunk-FMBD7UC4-DrlucdFf.js} +1 -1
  26. package/dist/assets/chunk-QN33PNHL-Di9WxIWk.js +1 -0
  27. package/dist/assets/{chunk-QZHKN3VN-XfElTSSy.js → chunk-QZHKN3VN-DQ-Hq4Ek.js} +1 -1
  28. package/dist/assets/{chunk-TZMSLE5B-DAIUJ9YL.js → chunk-TZMSLE5B-Cdg6dOwb.js} +1 -1
  29. package/dist/assets/classDiagram-2ON5EDUG-BB3bs3WS.js +1 -0
  30. package/dist/assets/classDiagram-v2-WZHVMYZB-BB3bs3WS.js +1 -0
  31. package/dist/assets/clone-BFGeeEUV.js +1 -0
  32. package/dist/assets/{code-block-37QAKDTI-B3a0lz6t.js → code-block-37QAKDTI-B_yBCn5T.js} +1 -1
  33. package/dist/assets/cose-bilkent-S5V4N54A-BMhRWD7P.js +1 -0
  34. package/dist/assets/cytoscape.esm-Boq4YasU.js +321 -0
  35. package/dist/assets/dagre-6UL2VRFP-BI8xXpYB.js +4 -0
  36. package/dist/assets/diagram-PSM6KHXK-DqSGGlhJ.js +24 -0
  37. package/dist/assets/diagram-QEK2KX5R-CIjtZbdl.js +43 -0
  38. package/dist/assets/diagram-S2PKOQOG-CKt9XoCU.js +24 -0
  39. package/dist/assets/{erDiagram-Q2GNP2WA-BqqB9yVU.js → erDiagram-Q2GNP2WA-BRSo0yH7.js} +4 -4
  40. package/dist/assets/flowDiagram-NV44I4VS-BthSoz_o.js +162 -0
  41. package/dist/assets/{funnel-x-DD5BpUpW.js → funnel-x-B9PkB_Ch.js} +1 -1
  42. package/dist/assets/{ganttDiagram-JELNMOA3-DXHyY80Y.js → ganttDiagram-JELNMOA3-CNwbRK5k.js} +1 -1
  43. package/dist/assets/gitGraphDiagram-NY62KEGX-BNGeVHTR.js +65 -0
  44. package/dist/assets/{graph-0GUv5NSb.js → graph-DadEESFe.js} +1 -1
  45. package/dist/assets/index-CENAb10b.js +2187 -0
  46. package/dist/assets/index-Dw2Hz3j4.css +1 -0
  47. package/dist/assets/{info-BoE52mzX.js → info-DW259gfi.js} +1 -1
  48. package/dist/assets/{infoDiagram-WHAUD3N6-C_TEtQdE.js → infoDiagram-WHAUD3N6-CeJF3upx.js} +1 -1
  49. package/dist/assets/{journeyDiagram-XKPGCS4Q-JFcsNaoS.js → journeyDiagram-XKPGCS4Q-Dr67Preg.js} +1 -1
  50. package/dist/assets/kanban-definition-3W4ZIXB7-DpwQotp4.js +89 -0
  51. package/dist/assets/{layout-DlGkdPxn.js → layout-4MguctiF.js} +1 -1
  52. package/dist/assets/{linear-DMzKEHWt.js → linear-IgIsApJd.js} +1 -1
  53. package/dist/assets/{min-D9GrKucE.js → min-s8C1gLFb.js} +1 -1
  54. package/dist/assets/mindmap-definition-VGOIOE7T-DFKUH7eJ.js +68 -0
  55. package/dist/assets/{page-transition-BMYHE1EG.js → page-transition-2ToPXqzU.js} +1 -1
  56. package/dist/assets/pieDiagram-ADFJNKIX-BpyrOtAX.js +30 -0
  57. package/dist/assets/quadrantDiagram-AYHSOK5B-CAuPRVrk.js +7 -0
  58. package/dist/assets/{refresh-ccw-CqpLwlfM.js → refresh-ccw-A4xr5yc-.js} +1 -1
  59. package/dist/assets/{requirementDiagram-UZGBJVZJ-DQ1RBDeF.js → requirementDiagram-UZGBJVZJ-eokL0bzi.js} +7 -7
  60. package/dist/assets/sankeyDiagram-TZEHDZUN-B2hHsE_f.js +10 -0
  61. package/dist/assets/{sequenceDiagram-WL72ISMW-ClnYRNdC.js → sequenceDiagram-WL72ISMW-Clj8c0qS.js} +16 -16
  62. package/dist/assets/{session-mode-badge-auIgZbxq.js → session-mode-badge-C89NgahF.js} +1 -1
  63. package/dist/assets/{stat-card-BdyKZs20.js → stat-card-DV-CrlHv.js} +1 -1
  64. package/dist/assets/{stateDiagram-FKZM4ZOC-xdSWJeM-.js → stateDiagram-FKZM4ZOC-B4OFkmnx.js} +1 -1
  65. package/dist/assets/stateDiagram-v2-4FDKWEC3-XElvWSPn.js +1 -0
  66. package/dist/assets/{table-of-contents-B56zI3O0.js → table-of-contents-DXTiOsyr.js} +1 -1
  67. package/dist/assets/{time-BvMRJTpu.js → time-D3zosL_G.js} +1 -1
  68. package/dist/assets/timeline-definition-IT6M3QCI-Y7w9Ot5X.js +61 -0
  69. package/dist/assets/treemap-KMMF4GRG-DS1ewDz-.js +128 -0
  70. package/dist/assets/{trending-up-qrMVjIzR.js → trending-up-D4zFB2hx.js} +1 -1
  71. package/dist/assets/{validation-badge-DKLDRlSe.js → validation-badge-BPbTJ9B4.js} +1 -1
  72. package/dist/assets/{xychartDiagram-PRI3JC2R-LmjJ6LwN.js → xychartDiagram-PRI3JC2R-DTRIkv2x.js} +1 -1
  73. package/dist/{blockDiagram-VD42YOAC-Cvqa8noV.js → blockDiagram-VD42YOAC-BJR0FCnk.js} +5 -5
  74. package/dist/{c4Diagram-YG6GDRKO-D4hwame5.js → c4Diagram-YG6GDRKO-Bt0Epxwp.js} +2 -2
  75. package/dist/{channel-C59vLj3i.js → channel-Dk7mWM0A.js} +1 -1
  76. package/dist/{chunk-4BX2VUAB-BwnJRlDR.js → chunk-4BX2VUAB-ByHqqe_a.js} +1 -1
  77. package/dist/{chunk-55IACEB6-CUvZDifa.js → chunk-55IACEB6-C6Rm-yNH.js} +1 -1
  78. package/dist/{chunk-B4BG7PRW-0lyBGfGe.js → chunk-B4BG7PRW-B7fIUqxs.js} +4 -4
  79. package/dist/{chunk-DI55MBZ5-DzuHPqVn.js → chunk-DI55MBZ5-qLuPk8Gl.js} +3 -3
  80. package/dist/{chunk-FMBD7UC4-CXI1mAvv.js → chunk-FMBD7UC4-Bgxdan8l.js} +1 -1
  81. package/dist/{chunk-QN33PNHL-BX4buhkI.js → chunk-QN33PNHL-BkO_Xn3V.js} +1 -1
  82. package/dist/{chunk-QZHKN3VN-p7skz8XQ.js → chunk-QZHKN3VN-m08GnZpm.js} +1 -1
  83. package/dist/{chunk-TZMSLE5B-BaJuPr6J.js → chunk-TZMSLE5B-DvK9Nkqp.js} +1 -1
  84. package/dist/{classDiagram-v2-WZHVMYZB-Be0dkyy-.js → classDiagram-2ON5EDUG-DCzOVBP6.js} +2 -2
  85. package/dist/{classDiagram-2ON5EDUG-Be0dkyy-.js → classDiagram-v2-WZHVMYZB-DCzOVBP6.js} +2 -2
  86. package/dist/{clone-DDo6Ol2x.js → clone-BpfNWUZj.js} +1 -1
  87. package/dist/{cose-bilkent-S5V4N54A-Bt2GyPMu.js → cose-bilkent-S5V4N54A-BpjQClp_.js} +1 -1
  88. package/dist/{dagre-6UL2VRFP-B4GNvmUo.js → dagre-6UL2VRFP-Br_w0Y4b.js} +5 -5
  89. package/dist/{diagram-PSM6KHXK-CXpX_sN2.js → diagram-PSM6KHXK-reYm7V8l.js} +4 -4
  90. package/dist/{diagram-QEK2KX5R-BTpahbEj.js → diagram-QEK2KX5R-DrEPfuxO.js} +3 -3
  91. package/dist/{diagram-S2PKOQOG-BAp1IJGB.js → diagram-S2PKOQOG-vRL82AgB.js} +3 -3
  92. package/dist/{erDiagram-Q2GNP2WA-RpXtWNOz.js → erDiagram-Q2GNP2WA-DrANUeXv.js} +4 -4
  93. package/dist/{flowDiagram-NV44I4VS-DVAeihFU.js → flowDiagram-NV44I4VS-lzqrgi2-.js} +5 -5
  94. package/dist/{ganttDiagram-JELNMOA3-NnFNN967.js → ganttDiagram-JELNMOA3-Box6Sn7f.js} +2 -2
  95. package/dist/{gitGraph-F6HP7TQM-BA0p69BL.js → gitGraph-F6HP7TQM-ww-U1ysL.js} +1 -1
  96. package/dist/{gitGraphDiagram-NY62KEGX-STAanBwe.js → gitGraphDiagram-NY62KEGX-CtgGW6L9.js} +4 -4
  97. package/dist/{graph-Cl7g8mJo.js → graph-Csrlu3OG.js} +2 -2
  98. package/dist/{index-OMQgmcXQ.js → index-DSZdQoC5.js} +34 -34
  99. package/dist/index.html +13 -3
  100. package/dist/info-NVLQJR56-DdSoNNwK.js +5 -0
  101. package/dist/{infoDiagram-WHAUD3N6-Ch5c_x3A.js → infoDiagram-WHAUD3N6-B4cHYKqw.js} +2 -2
  102. package/dist/{journeyDiagram-XKPGCS4Q-BT3WQmRa.js → journeyDiagram-XKPGCS4Q-CNZRK4ng.js} +4 -4
  103. package/dist/{kanban-definition-3W4ZIXB7-CiJoVHr_.js → kanban-definition-3W4ZIXB7-DVYPrMkR.js} +2 -2
  104. package/dist/{layout-BsDPuqRL.js → layout-qhjDJGCt.js} +4 -4
  105. package/dist/lib/components/projects/create-project-dialog.d.ts +2 -1
  106. package/dist/lib/components/projects/git-import-dialog.d.ts +6 -0
  107. package/dist/lib/components/projects/git-import-form.d.ts +6 -0
  108. package/dist/lib/components/root-redirect.d.ts +1 -1
  109. package/dist/lib/hooks/useCapabilities.d.ts +180 -0
  110. package/dist/lib/index.js +1 -1
  111. package/dist/lib/lib/api.d.ts +4 -6
  112. package/dist/lib/lib/backend-adapter/core.d.ts +6 -8
  113. package/dist/lib/lib/backend-adapter/http.d.ts +5 -7
  114. package/dist/lib/lib/backend-adapter/tauri.d.ts +5 -7
  115. package/dist/lib/locales/en/common.json.d.ts +2 -2
  116. package/dist/lib/locales/zh-CN/common.json.d.ts +2 -2
  117. package/dist/lib/types/api.d.ts +7 -15
  118. package/dist/lib/types/generated/AdapterCapabilities.d.ts +18 -0
  119. package/dist/lib/types/generated/CompletableItem.d.ts +15 -0
  120. package/dist/lib/types/generated/EnumOption.d.ts +16 -0
  121. package/dist/lib/types/generated/FieldDef.d.ts +28 -0
  122. package/dist/lib/types/generated/FieldDisplay.d.ts +4 -0
  123. package/dist/lib/types/generated/FieldKind.d.ts +46 -0
  124. package/dist/lib/types/generated/FieldValue.d.ts +32 -0
  125. package/dist/lib/types/generated/ItemLink.d.ts +17 -0
  126. package/dist/lib/types/generated/LinkTypeDef.d.ts +11 -0
  127. package/dist/lib/types/generated/MetadataFieldSpec.d.ts +28 -0
  128. package/dist/lib/types/generated/MetadataKind.d.ts +17 -0
  129. package/dist/lib/types/generated/MetadataValue.d.ts +26 -0
  130. package/dist/lib/types/generated/Reference.d.ts +8 -0
  131. package/dist/lib/types/generated/SearchHit.d.ts +8 -0
  132. package/dist/lib/types/generated/SemanticHint.d.ts +4 -0
  133. package/dist/lib/types/generated/SpecDoc.d.ts +30 -0
  134. package/dist/lib/types/generated/SpecItem.d.ts +48 -0
  135. package/dist/lib/types/generated/SpecSchema.d.ts +25 -0
  136. package/dist/{linear-mOFrDt-p.js → linear-BEsG2XDl.js} +1 -1
  137. package/dist/{mermaid-parser.core-BKozsbnK.js → mermaid-parser.core-DI0P4xje.js} +10 -10
  138. package/dist/{min-BiKl7Djw.js → min-BrWJCoG9.js} +2 -2
  139. package/dist/{mindmap-definition-VGOIOE7T-BD-DdVQV.js → mindmap-definition-VGOIOE7T-BG1ZbSXN.js} +3 -3
  140. package/dist/{packet-BFZMPI3H-BCwLzQdp.js → packet-BFZMPI3H-0R4cyXFa.js} +1 -1
  141. package/dist/pie-7BOR55EZ-CBC6Vnp9.js +5 -0
  142. package/dist/{pieDiagram-ADFJNKIX-Bu8RN200.js → pieDiagram-ADFJNKIX-Bq3pEiUt.js} +4 -4
  143. package/dist/{quadrantDiagram-AYHSOK5B-DI1Je7Nn.js → quadrantDiagram-AYHSOK5B-CJCCPwac.js} +2 -2
  144. package/dist/radar-NHE76QYJ-R7FbU2R0.js +5 -0
  145. package/dist/{requirementDiagram-UZGBJVZJ-Ddx_vMRb.js → requirementDiagram-UZGBJVZJ-CEFnCGpg.js} +3 -3
  146. package/dist/{sankeyDiagram-TZEHDZUN-iAFyjtkY.js → sankeyDiagram-TZEHDZUN-vRgejrr7.js} +1 -1
  147. package/dist/{sequenceDiagram-WL72ISMW-NRQcqxnw.js → sequenceDiagram-WL72ISMW-Bn_-xqGS.js} +3 -3
  148. package/dist/{stateDiagram-FKZM4ZOC-3S1hbbmf.js → stateDiagram-FKZM4ZOC-D1wpTHL-.js} +4 -4
  149. package/dist/{stateDiagram-v2-4FDKWEC3-E5a40kZz.js → stateDiagram-v2-4FDKWEC3-DZ6_hPx3.js} +2 -2
  150. package/dist/{timeline-definition-IT6M3QCI-BCFa3ZrF.js → timeline-definition-IT6M3QCI-sxhKRCeY.js} +2 -2
  151. package/dist/{treemap-KMMF4GRG-BGlzeb2l.js → treemap-KMMF4GRG-BAGKypyB.js} +1 -1
  152. package/dist/ui.css +1 -1
  153. package/dist/{xychartDiagram-PRI3JC2R-CopvajdE.js → xychartDiagram-PRI3JC2R-BvZs2fIv.js} +2 -2
  154. package/package.json +2 -2
  155. package/dist/assets/ChatSettingsPage-DftRMMtU.js +0 -1
  156. package/dist/assets/ContextPage-CbK7ew6E.js +0 -14
  157. package/dist/assets/DependenciesPage-E93gHx4A.js +0 -2
  158. package/dist/assets/SessionDetailPage-7Nyk2Vvu.js +0 -4
  159. package/dist/assets/SessionsPage-aHydkWMy.js +0 -1
  160. package/dist/assets/SpecDetailPage-C2P-OlXI.js +0 -3
  161. package/dist/assets/SpecsPage-CYIBmjhJ.js +0 -1
  162. package/dist/assets/StatsPage-BE2SnGB_.js +0 -36
  163. package/dist/assets/architectureDiagram-VXUJARFQ-CJuppwvY.js +0 -36
  164. package/dist/assets/blockDiagram-VD42YOAC-JKuFC2tB.js +0 -122
  165. package/dist/assets/c4Diagram-YG6GDRKO-BGNHTjgV.js +0 -10
  166. package/dist/assets/channel-BBhsr-rR.js +0 -1
  167. package/dist/assets/chunk-4BX2VUAB-Dn9K_Ir6.js +0 -1
  168. package/dist/assets/chunk-DI55MBZ5-CoaAvDwo.js +0 -220
  169. package/dist/assets/chunk-QN33PNHL-BhFNOvzX.js +0 -1
  170. package/dist/assets/classDiagram-2ON5EDUG-DWsZgeAJ.js +0 -1
  171. package/dist/assets/classDiagram-v2-WZHVMYZB-DWsZgeAJ.js +0 -1
  172. package/dist/assets/clone-C2afIJUs.js +0 -1
  173. package/dist/assets/cose-bilkent-S5V4N54A-BMI_fEV7.js +0 -1
  174. package/dist/assets/cytoscape.esm-5J0xJHOV.js +0 -321
  175. package/dist/assets/dagre-6UL2VRFP-Llr-yTYV.js +0 -4
  176. package/dist/assets/diagram-PSM6KHXK-DwgNF44T.js +0 -24
  177. package/dist/assets/diagram-QEK2KX5R-ITZ8Vmt3.js +0 -43
  178. package/dist/assets/diagram-S2PKOQOG-BIRpYLio.js +0 -24
  179. package/dist/assets/flowDiagram-NV44I4VS-BNAcE_z4.js +0 -162
  180. package/dist/assets/gitGraphDiagram-NY62KEGX-BgdesX0s.js +0 -65
  181. package/dist/assets/index-C5tD8lpO.css +0 -1
  182. package/dist/assets/index-DSWQaVP_.js +0 -2187
  183. package/dist/assets/kanban-definition-3W4ZIXB7-D74EewjL.js +0 -89
  184. package/dist/assets/mindmap-definition-VGOIOE7T-bEmI6QdX.js +0 -68
  185. package/dist/assets/pieDiagram-ADFJNKIX-LrgsuoFm.js +0 -30
  186. package/dist/assets/quadrantDiagram-AYHSOK5B-XAEnrTcF.js +0 -7
  187. package/dist/assets/sankeyDiagram-TZEHDZUN-4LprtsUC.js +0 -10
  188. package/dist/assets/stateDiagram-v2-4FDKWEC3-DyupCcgD.js +0 -1
  189. package/dist/assets/timeline-definition-IT6M3QCI-BMCplyxv.js +0 -61
  190. package/dist/assets/treemap-KMMF4GRG-DXswoz8b.js +0 -128
  191. package/dist/info-NVLQJR56-iVvUDnHs.js +0 -5
  192. package/dist/lib/components/projects/github-import-dialog.d.ts +0 -6
  193. package/dist/pie-7BOR55EZ-0JoXf6-u.js +0 -5
  194. package/dist/radar-NHE76QYJ-FdQK6UPP.js +0 -5
@@ -0,0 +1,46 @@
1
+ import { EnumOption } from './EnumOption';
2
+ /**
3
+ * The primitive type of a field's value.
4
+ *
5
+ * Carries no semantic meaning — semantics live in [`FieldDef::semantic`] and
6
+ * in YAML schema bundles. This is the Rust type vocabulary, kept minimal so
7
+ * new field shapes can be added without changing the enum.
8
+ */
9
+ export type FieldKind = {
10
+ "kind": "text";
11
+ } | {
12
+ "kind": "long_text";
13
+ } | {
14
+ "kind": "number";
15
+ } | {
16
+ "kind": "bool";
17
+ } | {
18
+ "kind": "timestamp";
19
+ } | {
20
+ "kind": "enum";
21
+ /**
22
+ * Static options defined in the schema.
23
+ */
24
+ options: Array<EnumOption>;
25
+ /**
26
+ * `true` → multi-select, `false` → single-select.
27
+ */
28
+ multi: boolean;
29
+ /**
30
+ * Allows values outside `options` (free-form labels / tags).
31
+ */
32
+ allow_custom: boolean;
33
+ /**
34
+ * Options are resolved at runtime via `Adapter::resolve_schema`.
35
+ */
36
+ dynamic: boolean;
37
+ } | {
38
+ "kind": "checklist";
39
+ /**
40
+ * Items carry stable `id` and `ref_id` linking to Duhem VDs.
41
+ */
42
+ traced: boolean;
43
+ } | {
44
+ "kind": "references";
45
+ multi: boolean;
46
+ };
@@ -0,0 +1,32 @@
1
+ import { CompletableItem } from './CompletableItem';
2
+ import { Reference } from './Reference';
3
+ /**
4
+ * A field value stored inside a [`SpecDoc`].
5
+ *
6
+ * [`FieldValue::Strings`] covers single-select (len 1), multi-select (len N),
7
+ * and free-form string lists (tags). There is no `Null` variant: an absent
8
+ * key in [`SpecDoc::fields`] means the field is not set. Use
9
+ * [`UpdateRequest::clear`] to explicitly remove a field.
10
+ */
11
+ export type FieldValue = {
12
+ "kind": "string";
13
+ "value": string;
14
+ } | {
15
+ "kind": "number";
16
+ "value": number;
17
+ } | {
18
+ "kind": "bool";
19
+ "value": boolean;
20
+ } | {
21
+ "kind": "timestamp";
22
+ "value": string;
23
+ } | {
24
+ "kind": "strings";
25
+ "value": Array<string>;
26
+ } | {
27
+ "kind": "checklist";
28
+ "value": Array<CompletableItem>;
29
+ } | {
30
+ "kind": "references";
31
+ "value": Array<Reference>;
32
+ };
@@ -0,0 +1,17 @@
1
+ /**
2
+ * A relationship between two spec items.
3
+ */
4
+ export type ItemLink = {
5
+ /**
6
+ * Link type key as declared in [`SpecSchema::link_types`].
7
+ */
8
+ link_type: string;
9
+ /**
10
+ * Adapter-native id of the linked item.
11
+ */
12
+ target_id: string;
13
+ /**
14
+ * Cached title of the target (populated at read time, not stored on disk).
15
+ */
16
+ target_title: string | null;
17
+ };
@@ -0,0 +1,11 @@
1
+ /**
2
+ * A directed or undirected link type between spec items.
3
+ *
4
+ * Directedness is inferred: `inverse_key.is_some()` ⇒ directed.
5
+ */
6
+ export type LinkTypeDef = {
7
+ key: string;
8
+ label: string;
9
+ inverse_key: string | null;
10
+ inverse_label: string | null;
11
+ };
@@ -0,0 +1,28 @@
1
+ import { MetadataKind } from './MetadataKind';
2
+ import { SemanticHint } from './SemanticHint';
3
+ /**
4
+ * Declaration of one metadata field an adapter supports.
5
+ */
6
+ export type MetadataFieldSpec = {
7
+ /**
8
+ * The field key as stored in [`SpecItem::metadata`].
9
+ */
10
+ key: string;
11
+ /**
12
+ * A short human-readable label.
13
+ */
14
+ label: string;
15
+ /**
16
+ * The value shape.
17
+ */
18
+ kind: MetadataKind;
19
+ /**
20
+ * Whether the adapter requires this field on create.
21
+ */
22
+ required: boolean;
23
+ /**
24
+ * Optional semantic tag that lets generic commands locate the field
25
+ * without hard-coding `key`.
26
+ */
27
+ semantic: SemanticHint | null;
28
+ };
@@ -0,0 +1,17 @@
1
+ /**
2
+ * What kind of data a metadata field accepts.
3
+ */
4
+ export type MetadataKind = {
5
+ "kind": "text";
6
+ } | {
7
+ "kind": "enum";
8
+ values: Array<string>;
9
+ } | {
10
+ "kind": "string_list";
11
+ } | {
12
+ "kind": "bool";
13
+ } | {
14
+ "kind": "number";
15
+ } | {
16
+ "kind": "timestamp";
17
+ };
@@ -0,0 +1,26 @@
1
+ /**
2
+ * A value carried in a [`SpecItem`]'s `metadata` map.
3
+ *
4
+ * Adjacently tagged (`{"kind": "...", "value": ...}`) so the JSON wire
5
+ * format round-trips unambiguously — otherwise a `Timestamp` (serialized
6
+ * as an ISO-8601 string) would be indistinguishable from a plain `String`
7
+ * on deserialize.
8
+ */
9
+ export type MetadataValue = {
10
+ "kind": "null";
11
+ } | {
12
+ "kind": "string";
13
+ "value": string;
14
+ } | {
15
+ "kind": "bool";
16
+ "value": boolean;
17
+ } | {
18
+ "kind": "number";
19
+ "value": number;
20
+ } | {
21
+ "kind": "string_list";
22
+ "value": Array<string>;
23
+ } | {
24
+ "kind": "timestamp";
25
+ "value": string;
26
+ };
@@ -0,0 +1,8 @@
1
+ /**
2
+ * A typed reference to another spec item or external resource.
3
+ */
4
+ export type Reference = {
5
+ id: string;
6
+ title: string | null;
7
+ url: string | null;
8
+ };
@@ -0,0 +1,8 @@
1
+ /**
2
+ * A search result pointing back to a [`SpecDoc`].
3
+ */
4
+ export type SearchHit = {
5
+ id: string;
6
+ score: number;
7
+ snippet: string | null;
8
+ };
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Semantic tag that lets generic commands find adapter-specific fields.
3
+ */
4
+ export type SemanticHint = "status" | "priority" | "tags" | "assignee" | "due_date";
@@ -0,0 +1,30 @@
1
+ import { FieldValue } from './FieldValue';
2
+ import { ItemLink } from './ItemLink';
3
+ /**
4
+ * The canonical document type returned by any adapter.
5
+ *
6
+ * Both metadata panel fields and body sections live in `fields`, keyed by
7
+ * their [`FieldDef::key`]. There is no separate `body` string.
8
+ */
9
+ export type SpecDoc = {
10
+ /**
11
+ * Adapter-native identifier.
12
+ */
13
+ id: string;
14
+ title: string;
15
+ /**
16
+ * Schema id this document conforms to.
17
+ */
18
+ schema_id: string;
19
+ /**
20
+ * All field values, keyed by [`FieldDef::key`].
21
+ */
22
+ fields: {
23
+ [key in string]?: FieldValue;
24
+ };
25
+ links: Array<ItemLink>;
26
+ created_at: string | null;
27
+ updated_at: string | null;
28
+ url: string | null;
29
+ raw: unknown | null;
30
+ };
@@ -0,0 +1,48 @@
1
+ import { ItemLink } from './ItemLink';
2
+ import { MetadataValue } from './MetadataValue';
3
+ /**
4
+ * The canonical shape for a work item exposed by any adapter.
5
+ *
6
+ * Only `id`, `title`, and `body` are universal. Every other field is optional
7
+ * or dynamic. Consumers that need semantic access (the `board` command
8
+ * grouping by status, for instance) should look up the relevant metadata key
9
+ * from [`AdapterCapabilities::field_with_semantic`].
10
+ */
11
+ export type SpecItem = {
12
+ /**
13
+ * The adapter-native identifier. Markdown adapters use the directory name
14
+ * (`"001-my-spec"`); GitHub uses the issue number (`"42"`); ADO uses the
15
+ * work item id.
16
+ */
17
+ id: string;
18
+ /**
19
+ * The human-readable title.
20
+ */
21
+ title: string;
22
+ /**
23
+ * The primary body/description content, typically markdown.
24
+ */
25
+ body: string;
26
+ /**
27
+ * Canonical URL on the backend, if one exists.
28
+ */
29
+ url: string | null;
30
+ created_at: string | null;
31
+ updated_at: string | null;
32
+ /**
33
+ * Adapter-declared metadata. Keys are defined by the adapter's
34
+ * [`AdapterCapabilities::metadata_fields`].
35
+ */
36
+ metadata: {
37
+ [key in string]?: MetadataValue;
38
+ };
39
+ /**
40
+ * Native links to other items.
41
+ */
42
+ links: Array<ItemLink>;
43
+ /**
44
+ * Opaque raw payload from the backend, preserved for adapter-specific
45
+ * commands that need it. Other adapters ignore this field.
46
+ */
47
+ raw: unknown | null;
48
+ };
@@ -0,0 +1,25 @@
1
+ import { FieldDef } from './FieldDef';
2
+ import { LinkTypeDef } from './LinkTypeDef';
3
+ /**
4
+ * A complete spec schema: field declarations and link types.
5
+ *
6
+ * Schemas are identified by string keys (`"leanspec:feature"`, `"acme:epic"`)
7
+ * and loaded from built-in YAML bundles or team `.leanspec/schemas/` files.
8
+ * Use `extends` to inherit and override a parent schema.
9
+ */
10
+ export type SpecSchema = {
11
+ /**
12
+ * Stable identifier, e.g. `"leanspec:feature"`.
13
+ */
14
+ id: string;
15
+ name: string;
16
+ /**
17
+ * Parent schema id for `extends`-based inheritance (write only the delta).
18
+ */
19
+ extends: string | null;
20
+ /**
21
+ * All fields in display order.
22
+ */
23
+ fields: Array<FieldDef>;
24
+ link_types: Array<LinkTypeDef>;
25
+ };
@@ -1,4 +1,4 @@
1
- import { aK as j, aL as p, aM as w, aN as q, aO as k } from "./index-OMQgmcXQ.js";
1
+ import { aK as j, aL as p, aM as w, aN as q, aO as k } from "./index-DSZdQoC5.js";
2
2
  import { i as D } from "./init-DjUOC4st.js";
3
3
  import { e as M, f as F, a as z, b as B } from "./defaultLocale-D7EN2tov.js";
4
4
  function g(n, r) {
@@ -1,6 +1,6 @@
1
- import { m as st, f as Sd, d as kd } from "./min-BiKl7Djw.js";
2
- import { b as Id, l as Cd, d as wd, m as Nd, r as Co, n as Rs } from "./_baseUniq-BtJuknnJ.js";
3
- import { b8 as _d } from "./index-OMQgmcXQ.js";
1
+ import { m as st, f as Sd, d as kd } from "./min-BrWJCoG9.js";
2
+ import { b as Id, l as Cd, d as wd, m as Nd, r as Co, n as Rs } from "./_baseUniq-Cfpafgc0.js";
3
+ import { b8 as _d } from "./index-DSZdQoC5.js";
4
4
  function bd(t, e) {
5
5
  return Id(st(t, e));
6
6
  }
@@ -14111,31 +14111,31 @@ function Mx(t = St) {
14111
14111
  A(Mx, "createTreemapServices");
14112
14112
  var nt = {}, Dx = {
14113
14113
  info: /* @__PURE__ */ A(async () => {
14114
- const { createInfoServices: t } = await import("./info-NVLQJR56-iVvUDnHs.js"), e = t().Info.parser.LangiumParser;
14114
+ const { createInfoServices: t } = await import("./info-NVLQJR56-DdSoNNwK.js"), e = t().Info.parser.LangiumParser;
14115
14115
  nt.info = e;
14116
14116
  }, "info"),
14117
14117
  packet: /* @__PURE__ */ A(async () => {
14118
- const { createPacketServices: t } = await import("./packet-BFZMPI3H-BCwLzQdp.js"), e = t().Packet.parser.LangiumParser;
14118
+ const { createPacketServices: t } = await import("./packet-BFZMPI3H-0R4cyXFa.js"), e = t().Packet.parser.LangiumParser;
14119
14119
  nt.packet = e;
14120
14120
  }, "packet"),
14121
14121
  pie: /* @__PURE__ */ A(async () => {
14122
- const { createPieServices: t } = await import("./pie-7BOR55EZ-0JoXf6-u.js"), e = t().Pie.parser.LangiumParser;
14122
+ const { createPieServices: t } = await import("./pie-7BOR55EZ-CBC6Vnp9.js"), e = t().Pie.parser.LangiumParser;
14123
14123
  nt.pie = e;
14124
14124
  }, "pie"),
14125
14125
  architecture: /* @__PURE__ */ A(async () => {
14126
- const { createArchitectureServices: t } = await import("./architecture-U656AL7Q-BeYqAAo7.js"), e = t().Architecture.parser.LangiumParser;
14126
+ const { createArchitectureServices: t } = await import("./architecture-U656AL7Q-BMkAcamw.js"), e = t().Architecture.parser.LangiumParser;
14127
14127
  nt.architecture = e;
14128
14128
  }, "architecture"),
14129
14129
  gitGraph: /* @__PURE__ */ A(async () => {
14130
- const { createGitGraphServices: t } = await import("./gitGraph-F6HP7TQM-BA0p69BL.js"), e = t().GitGraph.parser.LangiumParser;
14130
+ const { createGitGraphServices: t } = await import("./gitGraph-F6HP7TQM-ww-U1ysL.js"), e = t().GitGraph.parser.LangiumParser;
14131
14131
  nt.gitGraph = e;
14132
14132
  }, "gitGraph"),
14133
14133
  radar: /* @__PURE__ */ A(async () => {
14134
- const { createRadarServices: t } = await import("./radar-NHE76QYJ-FdQK6UPP.js"), e = t().Radar.parser.LangiumParser;
14134
+ const { createRadarServices: t } = await import("./radar-NHE76QYJ-R7FbU2R0.js"), e = t().Radar.parser.LangiumParser;
14135
14135
  nt.radar = e;
14136
14136
  }, "radar"),
14137
14137
  treemap: /* @__PURE__ */ A(async () => {
14138
- const { createTreemapServices: t } = await import("./treemap-KMMF4GRG-BGlzeb2l.js"), e = t().Treemap.parser.LangiumParser;
14138
+ const { createTreemapServices: t } = await import("./treemap-KMMF4GRG-BAGKypyB.js"), e = t().Treemap.parser.LangiumParser;
14139
14139
  nt.treemap = e;
14140
14140
  }, "treemap")
14141
14141
  };
@@ -1,5 +1,5 @@
1
- import { b, a as m, c as d, d as h, i as l } from "./_baseUniq-BtJuknnJ.js";
2
- import { aD as g, aE as o, aF as p } from "./index-OMQgmcXQ.js";
1
+ import { b, a as m, c as d, d as h, i as l } from "./_baseUniq-Cfpafgc0.js";
2
+ import { aD as g, aE as o, aF as p } from "./index-DSZdQoC5.js";
3
3
  function L(a) {
4
4
  var n = a == null ? 0 : a.length;
5
5
  return n ? b(a) : [];
@@ -1,6 +1,6 @@
1
- import { g as le } from "./chunk-55IACEB6-CUvZDifa.js";
2
- import { s as he } from "./chunk-QN33PNHL-BX4buhkI.js";
3
- import { _ as l, l as C, o as de, r as ge, F, c as W, i as V, aC as ue, W as pe, X as fe, Y as ye } from "./index-OMQgmcXQ.js";
1
+ import { g as le } from "./chunk-55IACEB6-C6Rm-yNH.js";
2
+ import { s as he } from "./chunk-QN33PNHL-BkO_Xn3V.js";
3
+ import { _ as l, l as C, o as de, r as ge, F, c as W, i as V, aC as ue, W as pe, X as fe, Y as ye } from "./index-DSZdQoC5.js";
4
4
  const E = [];
5
5
  for (let t = 0; t < 256; ++t)
6
6
  E.push((t + 256).toString(16).slice(1));
@@ -1,4 +1,4 @@
1
- import { P as c, a as r } from "./mermaid-parser.core-BKozsbnK.js";
1
+ import { P as c, a as r } from "./mermaid-parser.core-DI0P4xje.js";
2
2
  export {
3
3
  c as PacketModule,
4
4
  r as createPacketServices
@@ -0,0 +1,5 @@
1
+ import { b as a, d as i } from "./mermaid-parser.core-DI0P4xje.js";
2
+ export {
3
+ a as PieModule,
4
+ i as createPieServices
5
+ };
@@ -1,7 +1,7 @@
1
- import { a8 as S, a3 as F, aB as j, _ as p, g as q, s as H, a as Z, b as J, q as K, p as Q, l as z, c as X, D as Y, H as ee, N as te, e as ae, y as re, F as ne } from "./index-OMQgmcXQ.js";
2
- import { p as ie } from "./chunk-4BX2VUAB-BwnJRlDR.js";
3
- import { p as se } from "./mermaid-parser.core-BKozsbnK.js";
4
- import { d as I } from "./arc-O-rE7YCB.js";
1
+ import { a8 as S, a3 as F, aB as j, _ as p, g as q, s as H, a as Z, b as J, q as K, p as Q, l as z, c as X, D as Y, H as ee, N as te, e as ae, y as re, F as ne } from "./index-DSZdQoC5.js";
2
+ import { p as ie } from "./chunk-4BX2VUAB-ByHqqe_a.js";
3
+ import { p as se } from "./mermaid-parser.core-DI0P4xje.js";
4
+ import { d as I } from "./arc-Ch9WDeqx.js";
5
5
  import { o as le } from "./ordinal-B6-f3MAq.js";
6
6
  function oe(e, a) {
7
7
  return a < e ? -1 : a > e ? 1 : a >= e ? 0 : NaN;
@@ -1,5 +1,5 @@
1
- import { _ as o, s as _e, g as Ae, q as ie, p as ke, a as Fe, b as Pe, c as zt, l as bt, d as Lt, e as ve, y as Ce, F as D, K as Le, i as Ee } from "./index-OMQgmcXQ.js";
2
- import { l as ee } from "./linear-mOFrDt-p.js";
1
+ import { _ as o, s as _e, g as Ae, q as ie, p as ke, a as Fe, b as Pe, c as zt, l as bt, d as Lt, e as ve, y as Ce, F as D, K as Le, i as Ee } from "./index-DSZdQoC5.js";
2
+ import { l as ee } from "./linear-BEsG2XDl.js";
3
3
  var Et = (function() {
4
4
  var t = /* @__PURE__ */ o(function(M, r, l, x) {
5
5
  for (l = l || {}, x = M.length; x--; l[M[x]] = r) ;
@@ -0,0 +1,5 @@
1
+ import { R as r, g as d } from "./mermaid-parser.core-DI0P4xje.js";
2
+ export {
3
+ r as RadarModule,
4
+ d as createRadarServices
5
+ };
@@ -1,6 +1,6 @@
1
- import { g as Ge } from "./chunk-55IACEB6-CUvZDifa.js";
2
- import { s as ze } from "./chunk-QN33PNHL-BX4buhkI.js";
3
- import { _ as f, b as Xe, a as Je, s as Ze, g as et, p as tt, q as st, c as Ne, l as qe, y as it, B as rt, o as nt, r as at, u as lt } from "./index-OMQgmcXQ.js";
1
+ import { g as Ge } from "./chunk-55IACEB6-C6Rm-yNH.js";
2
+ import { s as ze } from "./chunk-QN33PNHL-BkO_Xn3V.js";
3
+ import { _ as f, b as Xe, a as Je, s as Ze, g as et, p as tt, q as st, c as Ne, l as qe, y as it, B as rt, o as nt, r as at, u as lt } from "./index-DSZdQoC5.js";
4
4
  var Ae = (function() {
5
5
  var e = /* @__PURE__ */ f(function(P, i, n, c) {
6
6
  for (n = n || {}, c = P.length; c--; n[P[c]] = i) ;
@@ -1,4 +1,4 @@
1
- import { _ as g, p as _t, q as xt, s as vt, g as bt, b as wt, a as St, c as lt, z as Lt, d as H, V as Et, y as At, k as Tt } from "./index-OMQgmcXQ.js";
1
+ import { _ as g, p as _t, q as xt, s as vt, g as bt, b as wt, a as St, c as lt, z as Lt, d as H, V as Et, y as At, k as Tt } from "./index-DSZdQoC5.js";
2
2
  import { o as Mt } from "./ordinal-B6-f3MAq.js";
3
3
  function Nt(t) {
4
4
  for (var e = t.length / 6 | 0, i = new Array(e), a = 0; a < e; ) i[a] = "#" + t.slice(a * 6, ++a * 6);
@@ -1,6 +1,6 @@
1
- import { a as we, b as Xt, g as ct, d as ve, c as Jt, e as Qt } from "./chunk-TZMSLE5B-BaJuPr6J.js";
2
- import { _ as f, n as Ie, c as st, d as St, l as Q, j as re, e as Le, f as _e, k as I, b as se, s as Ae, p as ke, a as Pe, g as Ne, q as Se, t as Me, J as Re, y as De, i as Mt, u as W, L as z, M as _t, N as ie, Z as Ce, O as Oe, P as ne, E as Ht } from "./index-OMQgmcXQ.js";
3
- import { I as Be } from "./chunk-QZHKN3VN-p7skz8XQ.js";
1
+ import { a as we, b as Xt, g as ct, d as ve, c as Jt, e as Qt } from "./chunk-TZMSLE5B-DvK9Nkqp.js";
2
+ import { _ as f, n as Ie, c as st, d as St, l as Q, j as re, e as Le, f as _e, k as I, b as se, s as Ae, p as ke, a as Pe, g as Ne, q as Se, t as Me, J as Re, y as De, i as Mt, u as W, L as z, M as _t, N as ie, Z as Ce, O as Oe, P as ne, E as Ht } from "./index-DSZdQoC5.js";
3
+ import { I as Be } from "./chunk-QZHKN3VN-m08GnZpm.js";
4
4
  var Ut = (function() {
5
5
  var e = /* @__PURE__ */ f(function(pt, v, A, L) {
6
6
  for (A = A || {}, L = pt.length; L--; A[pt[L]] = v) ;
@@ -1,7 +1,7 @@
1
- import { s as G, a as W, S as N } from "./chunk-DI55MBZ5-DzuHPqVn.js";
2
- import { _ as f, c as t, d as H, l as S, e as P, k as z, R as _, S as U, O as C, u as F } from "./index-OMQgmcXQ.js";
3
- import { G as O } from "./graph-Cl7g8mJo.js";
4
- import { l as J } from "./layout-BsDPuqRL.js";
1
+ import { s as G, a as W, S as N } from "./chunk-DI55MBZ5-qLuPk8Gl.js";
2
+ import { _ as f, c as t, d as H, l as S, e as P, k as z, R as _, S as U, O as C, u as F } from "./index-DSZdQoC5.js";
3
+ import { G as O } from "./graph-Csrlu3OG.js";
4
+ import { l as J } from "./layout-qhjDJGCt.js";
5
5
  var X = /* @__PURE__ */ f((e) => e.append("circle").attr("class", "start-state").attr("r", t().state.sizeUnit).attr("cx", t().state.padding + t().state.sizeUnit).attr("cy", t().state.padding + t().state.sizeUnit), "drawStartState"), D = /* @__PURE__ */ f((e) => e.append("line").style("stroke", "grey").style("stroke-dasharray", "3").attr("x1", t().state.textHeight).attr("class", "divider").attr("x2", t().state.textHeight * 2).attr("y1", 0).attr("y2", 0), "drawDivider"), Y = /* @__PURE__ */ f((e, i) => {
6
6
  const d = e.append("text").attr("x", 2 * t().state.padding).attr("y", t().state.textHeight + 2 * t().state.padding).attr("font-size", t().state.fontSize).attr("class", "state-title").text(i.id), c = d.node().getBBox();
7
7
  return e.insert("rect", ":first-child").attr("x", t().state.padding).attr("y", t().state.padding).attr("width", c.width + 2 * t().state.padding).attr("height", c.height + 2 * t().state.padding).attr("rx", t().state.radius), d;
@@ -1,5 +1,5 @@
1
- import { s as a, b as t, a as r, S as s } from "./chunk-DI55MBZ5-DzuHPqVn.js";
2
- import { _ as i } from "./index-OMQgmcXQ.js";
1
+ import { s as a, b as t, a as r, S as s } from "./chunk-DI55MBZ5-qLuPk8Gl.js";
2
+ import { _ as i } from "./index-DSZdQoC5.js";
3
3
  var _ = {
4
4
  parser: r,
5
5
  get db() {
@@ -1,5 +1,5 @@
1
- import { _ as s, c as xt, l as E, d as j, V as kt, W as vt, X as _t, Y as bt, B as wt, $ as St, y as Et } from "./index-OMQgmcXQ.js";
2
- import { d as nt } from "./arc-O-rE7YCB.js";
1
+ import { _ as s, c as xt, l as E, d as j, V as kt, W as vt, X as _t, Y as bt, B as wt, $ as St, y as Et } from "./index-DSZdQoC5.js";
2
+ import { d as nt } from "./arc-Ch9WDeqx.js";
3
3
  var Q = (function() {
4
4
  var n = /* @__PURE__ */ s(function(x, r, a, c) {
5
5
  for (a = a || {}, c = x.length; c--; a[x[c]] = r) ;
@@ -1,4 +1,4 @@
1
- import { T as a, h as m } from "./mermaid-parser.core-BKozsbnK.js";
1
+ import { T as a, h as m } from "./mermaid-parser.core-DI0P4xje.js";
2
2
  export {
3
3
  a as TreemapModule,
4
4
  m as createTreemapServices