docmedown 0.1.0 → 0.1.2

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 (233) hide show
  1. package/README.md +69 -20
  2. package/dist/abnfDiagram-VCTEODGH-CtQBp0Qv.mjs +89 -0
  3. package/dist/abnfDiagram-VCTEODGH-mccrzlD_.js +1 -0
  4. package/dist/arc-DgPKXEdT.mjs +82 -0
  5. package/dist/arc-n7TW7Bis.js +1 -0
  6. package/dist/architecture-7GRP2DOG-B7myQ46f.js +1 -0
  7. package/dist/architecture-7GRP2DOG-Cxj1ussQ.mjs +3 -0
  8. package/dist/architectureDiagram-5GKGNRK7-BdTCu5T3.js +36 -0
  9. package/dist/architectureDiagram-5GKGNRK7-CkgZa-G1.mjs +4154 -0
  10. package/dist/array-CApNbSU9.mjs +6 -0
  11. package/dist/array-DZSRzHA_.js +1 -0
  12. package/dist/blockDiagram-I7D4REHJ-CSYvpxQw.js +129 -0
  13. package/dist/blockDiagram-I7D4REHJ-CYngfPD9.mjs +1922 -0
  14. package/dist/c4Diagram-7LVT6UL2-B-sz5MUK.js +38 -0
  15. package/dist/c4Diagram-7LVT6UL2-DEzxFf2b.mjs +3010 -0
  16. package/dist/channel-LgHproiI.mjs +5 -0
  17. package/dist/channel-yqu0m4cl.js +1 -0
  18. package/dist/chunk-2E4U76K2-BOyeRQsI.js +1 -0
  19. package/dist/chunk-2E4U76K2-CoTrgtfg.mjs +348 -0
  20. package/dist/chunk-2Q5K7J3B-D4EgYPOq.mjs +15 -0
  21. package/dist/chunk-2Q5K7J3B-DhjCNjaM.js +1 -0
  22. package/dist/chunk-4HAMMTFA-GFyfmcSO.js +62 -0
  23. package/dist/chunk-4HAMMTFA-VgWPe1ng.mjs +4188 -0
  24. package/dist/chunk-5VM5RSS4-GINalzIv.js +15 -0
  25. package/dist/chunk-5VM5RSS4-TqxtqrwE.mjs +5 -0
  26. package/dist/chunk-75Z2AOVW-DYouz5MZ.js +2 -0
  27. package/dist/chunk-75Z2AOVW-Dz0Sko9Y.mjs +1330 -0
  28. package/dist/chunk-CLGD4ZFX-C5J-e2io.js +1 -0
  29. package/dist/chunk-CLGD4ZFX-DBkwyMMv.mjs +14 -0
  30. package/dist/chunk-DU6HZSFF-BEQZSmUu.mjs +3836 -0
  31. package/dist/chunk-DU6HZSFF-CWc5ewtb.js +127 -0
  32. package/dist/chunk-F27PBJKO-8jvY_jJK.js +1 -0
  33. package/dist/chunk-F27PBJKO-DFH3sRZG.mjs +61 -0
  34. package/dist/chunk-FOHPRMQF-LRqOLsSw.mjs +21456 -0
  35. package/dist/chunk-FOHPRMQF-tmTlwTeH.js +161 -0
  36. package/dist/chunk-GMAD6QVW-BZeZ4fdb.mjs +1863 -0
  37. package/dist/chunk-GMAD6QVW-DEQiTa0c.js +72 -0
  38. package/dist/chunk-GVQU2GXP-B1D3J05J.mjs +37 -0
  39. package/dist/chunk-GVQU2GXP-CdJIWN41.js +1 -0
  40. package/dist/chunk-IMKFNOWR-BmZb9U1f.mjs +2042 -0
  41. package/dist/chunk-IMKFNOWR-CPJsszGN.js +231 -0
  42. package/dist/chunk-JWPE2WC7-DIKiF5cm.mjs +8 -0
  43. package/dist/chunk-JWPE2WC7-p1fYVdYc.js +1 -0
  44. package/dist/chunk-L3NEJ4N5-TzDiVs78.js +1 -0
  45. package/dist/chunk-L3NEJ4N5-lal8wUID.mjs +245 -0
  46. package/dist/chunk-LNGE3PJU-BQX75wkM.js +34 -0
  47. package/dist/chunk-LNGE3PJU-DJ9JuXV6.mjs +1521 -0
  48. package/dist/chunk-OSK3NFVY-9AWK88m1.mjs +672 -0
  49. package/dist/chunk-OSK3NFVY-CHzvVe8m.js +10 -0
  50. package/dist/chunk-P2QGCYS3-6q3AXPt5.mjs +67 -0
  51. package/dist/chunk-P2QGCYS3-DKZzpRQW.js +1 -0
  52. package/dist/chunk-POPQ4Y6H-Dd7J9tx3.mjs +26 -0
  53. package/dist/chunk-POPQ4Y6H-T5C7wpjf.js +1 -0
  54. package/dist/chunk-PWAF6VOD-BYG76tEe.mjs +275 -0
  55. package/dist/chunk-PWAF6VOD-DxZLuCEw.js +1 -0
  56. package/dist/chunk-SHT3W25Y-B2Wes8jn.mjs +4183 -0
  57. package/dist/chunk-SHT3W25Y-BQjHSn5K.js +168 -0
  58. package/dist/chunk-SVP7TREG-BFMd615E.js +88 -0
  59. package/dist/chunk-SVP7TREG-CynckzeF.mjs +490 -0
  60. package/dist/chunk-TICWLB2K-BfCuoR1V.mjs +3357 -0
  61. package/dist/chunk-TICWLB2K-agcyBfUp.js +206 -0
  62. package/dist/chunk-TLUHSLCS-CUrWaKDG.mjs +59 -0
  63. package/dist/chunk-TLUHSLCS-Drx_a7am.js +1 -0
  64. package/dist/chunk-XXDRQBXY-AAk1-Cyg.js +1 -0
  65. package/dist/chunk-XXDRQBXY-DpR8eYzz.mjs +9 -0
  66. package/dist/chunk-Y2CYZVJY-CnmLqFtv.js +1 -0
  67. package/dist/chunk-Y2CYZVJY-i11wjrBe.mjs +12 -0
  68. package/dist/classDiagram-ZZMXUADV-B7IN9zcX.js +1 -0
  69. package/dist/classDiagram-ZZMXUADV-tcy6gxSB.mjs +30 -0
  70. package/dist/classDiagram-v2-VYDZK3BY-B7IN9zcX.js +1 -0
  71. package/dist/classDiagram-v2-VYDZK3BY-D5wM6Acp.mjs +30 -0
  72. package/dist/cli.js +719 -532
  73. package/dist/cose-bilkent-JH36ORCC-DBUPO3qJ.js +1 -0
  74. package/dist/cose-bilkent-JH36ORCC-Slpx4WIt.mjs +2253 -0
  75. package/dist/cynefin-OW5HDTMX--QVnfGi1.mjs +3 -0
  76. package/dist/cynefin-OW5HDTMX-lNKysi7S.js +1 -0
  77. package/dist/cynefinDiagram-5FMLGOSQ-CsFONYqx.js +62 -0
  78. package/dist/cynefinDiagram-5FMLGOSQ-DsrxYBcg.mjs +355 -0
  79. package/dist/cytoscape.esm-C5TvPYYm.mjs +18148 -0
  80. package/dist/cytoscape.esm-CBmWJr5M.js +321 -0
  81. package/dist/dagre-CZ6P9L_h.js +1 -0
  82. package/dist/dagre-GXQ25YYZ-CQszk-7P.js +4 -0
  83. package/dist/dagre-GXQ25YYZ-ecYByRSn.mjs +425 -0
  84. package/dist/dagre-J_1oH0eY.mjs +1934 -0
  85. package/dist/defaultLocale-N-0uLSyg.mjs +198 -0
  86. package/dist/defaultLocale-ybN1Vtvg.js +1 -0
  87. package/dist/diagram-S7CK7UJ4-CTMvxX__.js +30 -0
  88. package/dist/diagram-S7CK7UJ4-DxCghfa-.mjs +301 -0
  89. package/dist/diagram-UQ7AKVKN-1viEkqlG.js +41 -0
  90. package/dist/diagram-UQ7AKVKN-BA7Z_oB7.mjs +214 -0
  91. package/dist/diagram-VSXAHHWV-DgVT19mq.js +3 -0
  92. package/dist/diagram-VSXAHHWV-Dtqo03M5.mjs +432 -0
  93. package/dist/diagram-VX7I27RA-CNw0pOX_.js +24 -0
  94. package/dist/diagram-VX7I27RA-GMPRt8Zh.mjs +527 -0
  95. package/dist/diagram-Z3DM3KII-C6XdQK_Q.mjs +134 -0
  96. package/dist/diagram-Z3DM3KII-CPkBr3FT.js +24 -0
  97. package/dist/dist-CXWJafG_.js +1 -0
  98. package/dist/dist-DNdLIC8h.mjs +59 -0
  99. package/dist/docmedown.cjs +125 -44
  100. package/dist/docmedown.iife.js +3477 -72
  101. package/dist/docmedown.mjs +10003 -4807
  102. package/dist/ebnfDiagram-PWID7BFC-CseVsyL3.js +1 -0
  103. package/dist/ebnfDiagram-PWID7BFC-D_dBDXWC.mjs +100 -0
  104. package/dist/erDiagram-RLTQ6QDP-DFwfQTRS.js +99 -0
  105. package/dist/erDiagram-RLTQ6QDP-DP7ddGMH.mjs +1966 -0
  106. package/dist/eventmodeling-NTZA5JFV-CzxVg0l5.js +1 -0
  107. package/dist/eventmodeling-NTZA5JFV-Djsy__5n.mjs +3 -0
  108. package/dist/flowDiagram-HODETNUW-7hSJfI3W.js +1 -0
  109. package/dist/flowDiagram-HODETNUW-Dqu5Lr19.mjs +17 -0
  110. package/dist/ganttDiagram-EL5Y4UJY-KNL3tzTD.mjs +3072 -0
  111. package/dist/ganttDiagram-EL5Y4UJY-aiLqNWgi.js +292 -0
  112. package/dist/gitGraph-4MIJSDKK-DnElfqX7.js +1 -0
  113. package/dist/gitGraph-4MIJSDKK-xuKJBT2e.mjs +3 -0
  114. package/dist/gitGraphDiagram-WWUBYQGX-D4gSo_-e.js +106 -0
  115. package/dist/gitGraphDiagram-WWUBYQGX-Dooss5fG.mjs +733 -0
  116. package/dist/graphlib-BaETKKSa.js +1 -0
  117. package/dist/graphlib-XW-Jr8pF.mjs +1267 -0
  118. package/dist/info-A6RAGUB7-ClYskpn6.mjs +3 -0
  119. package/dist/info-A6RAGUB7-DDvvt-fW.js +1 -0
  120. package/dist/infoDiagram-27XIBGKW-B2-y2mdQ.mjs +20 -0
  121. package/dist/infoDiagram-27XIBGKW-DYQ9NzfL.js +2 -0
  122. package/dist/init-BJdqMO10.js +1 -0
  123. package/dist/init-CsQUQz36.mjs +13 -0
  124. package/dist/ishikawaDiagram-5VMMS53U-ULIhoYO5.js +70 -0
  125. package/dist/ishikawaDiagram-5VMMS53U-xAArNh-1.mjs +719 -0
  126. package/dist/journeyDiagram-3NMN7TZE-BBMYNZRL.js +139 -0
  127. package/dist/journeyDiagram-3NMN7TZE-BH-uKqP7.mjs +884 -0
  128. package/dist/kanban-definition-UXKFOSKX-Be49llXr.mjs +976 -0
  129. package/dist/kanban-definition-UXKFOSKX-CDL5yJkq.js +89 -0
  130. package/dist/line-BEwhHSLl.js +1 -0
  131. package/dist/line-CiXRog8O.mjs +34 -0
  132. package/dist/linear-75tfjrny.js +1 -0
  133. package/dist/linear-Ncx_RuON.mjs +288 -0
  134. package/dist/mermaid-parser.core-BBApyu_y.js +6 -0
  135. package/dist/mermaid-parser.core-BRHibdUE.mjs +638 -0
  136. package/dist/mindmap-definition-YA3MSWOX-Chy7XP_5.mjs +1006 -0
  137. package/dist/mindmap-definition-YA3MSWOX-DOda-fkL.js +96 -0
  138. package/dist/ordinal-B1BNQwUR.mjs +65 -0
  139. package/dist/ordinal-B9aFWmF9.js +1 -0
  140. package/dist/packet-AYTQ26CC-CorIy9Ul.js +1 -0
  141. package/dist/packet-AYTQ26CC-DWH8gXJK.mjs +3 -0
  142. package/dist/path-CnWkkRiY.mjs +84 -0
  143. package/dist/path-DIS6ck99.js +1 -0
  144. package/dist/pegDiagram-XKGWAZYB-Cdw6MeON.js +1 -0
  145. package/dist/pegDiagram-XKGWAZYB-uNfxRaq1.mjs +94 -0
  146. package/dist/pie-WAS4IAKB-Cn5eK-5P.mjs +3 -0
  147. package/dist/pie-WAS4IAKB-D84xrSoY.js +1 -0
  148. package/dist/pieDiagram-E7YTZNPT-Bd6mvpJw.js +39 -0
  149. package/dist/pieDiagram-E7YTZNPT-Cczo96a2.mjs +203 -0
  150. package/dist/quadrantDiagram-AXDQQJYC-BPfgvMsS.js +7 -0
  151. package/dist/quadrantDiagram-AXDQQJYC-eqRNtVRl.mjs +2001 -0
  152. package/dist/radar-RG4KPBEZ-DvkxGdO6.mjs +3 -0
  153. package/dist/radar-RG4KPBEZ-R2sQOLL9.js +1 -0
  154. package/dist/railroad-74A4TZTK-BOZIf6ts.js +1 -0
  155. package/dist/railroad-74A4TZTK-CrQzn8Nm.mjs +3 -0
  156. package/dist/railroad-abnf-HS5TGJTU-BZYetxLz.mjs +3 -0
  157. package/dist/railroad-abnf-HS5TGJTU-CXU1aC4B.js +1 -0
  158. package/dist/railroad-ebnf-LZEXJU2U-D29kI3YW.js +1 -0
  159. package/dist/railroad-ebnf-LZEXJU2U-qgzTOmN6.mjs +3 -0
  160. package/dist/railroad-peg-WCYAUIDC-Bjs9Ws3P.mjs +3 -0
  161. package/dist/railroad-peg-WCYAUIDC-CXviP0hz.js +1 -0
  162. package/dist/railroadDiagram-O6MQD6OU-58kvwt7H.mjs +76 -0
  163. package/dist/railroadDiagram-O6MQD6OU-CKY3uzTc.js +1 -0
  164. package/dist/requirementDiagram-BXWQKSXE-0hZ04Q6h.js +84 -0
  165. package/dist/requirementDiagram-BXWQKSXE-CS673B5n.mjs +2224 -0
  166. package/dist/rough.esm-ChRLLRha.js +1 -0
  167. package/dist/rough.esm-DXYGHN3m.mjs +1361 -0
  168. package/dist/sankeyDiagram-P5KCCOFB-D1D6HfAM.mjs +972 -0
  169. package/dist/sankeyDiagram-P5KCCOFB-ciJb9Zr8.js +40 -0
  170. package/dist/sequenceDiagram-WJ2MYXX4-BXEznuI6.js +162 -0
  171. package/dist/sequenceDiagram-WJ2MYXX4-CI1VT8AG.mjs +4156 -0
  172. package/dist/sizeCapture-INFHLROL-BihkCH-7.js +1 -0
  173. package/dist/sizeCapture-INFHLROL-BmxqyOLj.mjs +46 -0
  174. package/dist/src-B4mN2BMl.js +1 -0
  175. package/dist/src-D_hsMyeP.mjs +2154 -0
  176. package/dist/stateDiagram-D77RDMKH-BQrSs72W.mjs +220 -0
  177. package/dist/stateDiagram-D77RDMKH-D2PtkW2U.js +1 -0
  178. package/dist/stateDiagram-v2-MP3YSRHH-CCbvNfk-.mjs +30 -0
  179. package/dist/stateDiagram-v2-MP3YSRHH-Dq1QuPeN.js +1 -0
  180. package/dist/swimlanes-42K2YHIH-CA316NPm.mjs +4979 -0
  181. package/dist/swimlanes-42K2YHIH-DlggBCTy.js +1 -0
  182. package/dist/swimlanesDiagram-VR7AAH4N-BV9PEIoG.js +8 -0
  183. package/dist/swimlanesDiagram-VR7AAH4N-BfrOCfdf.mjs +31 -0
  184. package/dist/timeline-definition-24CTP7MA-Bkd8rWNJ.js +120 -0
  185. package/dist/timeline-definition-24CTP7MA-BvkqNYt1.mjs +1069 -0
  186. package/dist/treeView-Q6P3EWNA-Aof3Cp1M.mjs +3 -0
  187. package/dist/treeView-Q6P3EWNA-BTzvdwbb.js +1 -0
  188. package/dist/treemap-WGGIJYW6-BNXGg99p.mjs +3 -0
  189. package/dist/treemap-WGGIJYW6-DfR4P2Hh.js +1 -0
  190. package/dist/types/runtime/app.d.ts +3 -3
  191. package/dist/types/runtime/components/AppearanceMenu.d.ts +2 -0
  192. package/dist/types/runtime/components/Builtins.d.ts +3 -3
  193. package/dist/types/runtime/components/Content.d.ts +1 -1
  194. package/dist/types/runtime/components/DmdRegistry.d.ts +4 -2
  195. package/dist/types/runtime/components/Layout.d.ts +1 -1
  196. package/dist/types/runtime/components/MermaidDiagram.d.ts +16 -0
  197. package/dist/types/runtime/components/Navbar.d.ts +1 -1
  198. package/dist/types/runtime/components/OfflineDownloadButton.d.ts +2 -0
  199. package/dist/types/runtime/components/Sidebar.d.ts +1 -1
  200. package/dist/types/runtime/components/TableOfContents.d.ts +2 -2
  201. package/dist/types/runtime/config-schema.d.ts +386 -0
  202. package/dist/types/runtime/config.d.ts +10 -3
  203. package/dist/types/runtime/index.d.ts +7 -5
  204. package/dist/types/runtime/loader/auto-indexer.d.ts +1 -1
  205. package/dist/types/runtime/loader/local-loader.d.ts +1 -1
  206. package/dist/types/runtime/loader/remote-github.d.ts +2 -2
  207. package/dist/types/runtime/loader/remote-gitlab.d.ts +2 -2
  208. package/dist/types/runtime/markdown/callouts.d.ts +1 -1
  209. package/dist/types/runtime/markdown/highlighter.d.ts +16 -16
  210. package/dist/types/runtime/markdown/mermaid.d.ts +82 -1
  211. package/dist/types/runtime/markdown/parser.d.ts +1 -1
  212. package/dist/types/runtime/markdown/renderer.d.ts +1 -1
  213. package/dist/types/runtime/offline-export.d.ts +26 -0
  214. package/dist/types/runtime/provider/DocProvider.d.ts +5 -5
  215. package/dist/types/runtime/provider/ThemeProvider.d.ts +13 -6
  216. package/dist/types/runtime/search/SearchModal.d.ts +2 -2
  217. package/dist/types/runtime/search/search-index.d.ts +1 -1
  218. package/dist/types/runtime/types.d.ts +28 -99
  219. package/dist/vennDiagram-4TSXK5OY-BOUFXjso.js +34 -0
  220. package/dist/vennDiagram-4TSXK5OY-CeOg3-hU.mjs +1880 -0
  221. package/dist/wardley-WFR3VGLG-BOYcSLd1.mjs +3 -0
  222. package/dist/wardley-WFR3VGLG-DWDqJSgm.js +1 -0
  223. package/dist/wardleyDiagram-VM6X3IG4-BhWgMjFr.js +78 -0
  224. package/dist/wardleyDiagram-VM6X3IG4-C31KoRmF.mjs +645 -0
  225. package/dist/xychartDiagram-S5SC5T6Z-1yU8zz6I.js +7 -0
  226. package/dist/xychartDiagram-S5SC5T6Z-BK7upFom.mjs +2210 -0
  227. package/package.json +15 -4
  228. package/schemas/docs.schema.json +166 -0
  229. package/templates/README.md +4 -4
  230. package/templates/docs.json +5 -2
  231. package/templates/getting-started.md +1 -1
  232. package/templates/guides/custom-components.md +2 -0
  233. package/templates/index.html +2 -4
package/README.md CHANGED
@@ -10,7 +10,7 @@
10
10
 
11
11
  Source code, issues, and releases live at [github.com/gabrielmsilva00/docmedown](https://github.com/gabrielmsilva00/docmedown).
12
12
 
13
- Drop a single `index.html` file into any directory of `.md` files, and you have a blazing fast, glassmorphic documentation website.
13
+ Drop a single `index.html` file into any directory of `.md` files, and you have a fast, responsive documentation website with a complete reading interface.
14
14
 
15
15
  ---
16
16
 
@@ -21,11 +21,11 @@ Drop a single `index.html` file into any directory of `.md` files, and you have
21
21
  - Run via single-line CLI: `npx docmedown ./docs`
22
22
  - Or drop `<script src="docmedown.js"></script>` into an `index.html` on any static host.
23
23
  - ⚡ **Dynamic Remote GitHub / GitLab Mode**: Document any GitHub or GitLab repository *live* without hosting markdown files statically! Changes pushed to your repo dynamically update the documentation website immediately.
24
- - 📦 **100% Offline Single-File Bundler**: Generate a self-contained `index.html` with all markdown content and scripts inlined, ready to be double-clicked (`file:///`) offline anywhere without a web server.
25
- - 🎨 **Glassmorphic Modern Design**: Dark & Light modes, customizable themes (**Indigo, Emerald, Sunset, Violet, Rose, Slate, Cyberpunk**), reading progress bar, breadcrumbs, and TOC scrollspy.
24
+ - 📦 **Compressed Offline Copies**: Generate or download a minified, self-extracting `index.html` containing the complete documentation corpus, custom components, Mermaid renderer, styles, and runtime. Double-click it under `file:///` without a web server.
25
+ - 🎨 **Four Complete Theme Families**: Atlas, Blueprint, Terminal, and Editorial each redefine surfaces, geometry, typography, spacing, and diagram palettes—not merely the accent color. Every family supports light, dark, automatic mode, and comfortable or compact density.
26
26
  - 🔍 **Instant Fuzzy Search**: Keyboard-driven command palette (`⌘K` / `Ctrl+K`) with real-time in-browser indexing.
27
27
  - ⚛️ **React Custom Components (.dmd)**: Support for custom React components inside `.dmd/` or built-in components (`<Tabs>`, `<CardGrid>`, `<Badge>`, `<Steps>`).
28
- - 📊 **Mermaid Diagrams & KaTeX Math**: Render interactive architecture diagrams and LaTeX equations natively.
28
+ - 📊 **Mermaid Diagrams & KaTeX Math**: Theme-aware diagrams with automatic Fit, zoom, 1:1 view, SVG export, expanded review, and offline parity, plus native LaTeX equations.
29
29
  - 💡 **GitHub-Style Callouts**: Full support for `[!NOTE]`, `[!TIP]`, `[!IMPORTANT]`, `[!WARNING]`, and `[!CAUTION]`.
30
30
 
31
31
  ---
@@ -90,7 +90,7 @@ Then mount it into a specific element. `init` resolves to an instance with a `de
90
90
  basePath: '/help',
91
91
  config: {
92
92
  name: 'Project help',
93
- theme: { preset: 'emerald', defaultMode: 'auto' }
93
+ theme: { family: 'terminal', density: 'compact', defaultMode: 'auto' }
94
94
  }
95
95
  });
96
96
 
@@ -121,7 +121,8 @@ Simply create `docs.json`:
121
121
  "docsDir": "docs"
122
122
  },
123
123
  "theme": {
124
- "preset": "indigo",
124
+ "family": "blueprint",
125
+ "density": "comfortable",
125
126
  "defaultMode": "auto"
126
127
  }
127
128
  }
@@ -139,7 +140,9 @@ Every standard build produces both your serveable documentation files and a **10
139
140
  npx docmedown build ./docs
140
141
  ```
141
142
 
142
- The serveable manifest and runtime remain in `./docs`. The offline artifact is written to `./docs/.dist/index.html`; dot-prefixed directories are excluded from document discovery. Open that file directly in a browser (`file:///.../.dist/index.html`) on air-gapped machines, send it via email, or distribute it with offline desktop applications. Use `--no-single-file` to skip the offline artifact, or `--out-dir <path>` to place it elsewhere.
143
+ The serveable manifest and runtime remain in `./docs`. The offline artifact is written to `./docs/.dist/index.html`; dot-prefixed directories are excluded from document discovery. The artifact stores compact JSON and the production runtime in a gzip-compressed, base64-encoded envelope with a minified self-extractor. Open that file directly in a browser (`file:///.../.dist/index.html`) on air-gapped machines, send it via email, or distribute it with offline desktop applications. Use `--no-single-file` to skip the offline artifact, or `--out-dir <path>` to place it elsewhere.
144
+
145
+ Serveable DocMeDown sites also include a **Download** action in the navbar. It reads the already-loaded documentation corpus and current runtime, compresses them locally with the browser's native gzip stream, and downloads the same self-contained format without requesting `.dist/index.html`. In a downloaded or CLI-built offline copy, the control is greyed out as **Offline copy** because the page is already portable.
143
146
 
144
147
  `docmedown serve ./docs` and `docmedown dev ./docs` also run this standard build at startup. While the server is running, Markdown and `docs.json` changes are debounced, then rebuild the serveable artifacts and `./docs/.dist/index.html` before the browser reloads.
145
148
 
@@ -153,6 +156,20 @@ Within this repository, the equivalent command is `npm run build:docs:watch`.
153
156
 
154
157
  ---
155
158
 
159
+ ## 🚢 GitHub Pages Hosting
160
+
161
+ The repository includes `.github/workflows/pages.yml`, which builds the production runtime and generated documentation assets before publishing `./docs/` through GitHub Pages. This is required because `_docs.js`, `_manifest.json`, and `docmedown.iife.js` are generated files and intentionally ignored by Git.
162
+
163
+ To enable it for a repository fork or project site:
164
+
165
+ 1. Push the workflow to the `main` branch.
166
+ 2. In **Settings → Pages**, set the source to **GitHub Actions**.
167
+ 3. Push documentation or runtime changes; the workflow runs `npm ci`, `npm run build`, and `npm run build:docs`, then uploads the complete `docs/` directory.
168
+
169
+ The generated entrypoint uses same-directory relative URLs (`./_docs.js` and `./docmedown.iife.js`), so it works at both a custom domain and a project URL such as `/repository-name/`. The Pages workflow verifies those generated files before upload and includes `.nojekyll` for direct static-file compatibility. Hash routing keeps document navigation client-side without requiring server rewrites.
170
+
171
+ ---
172
+
156
173
  ## ⚛️ Custom React Components (.dmd)
157
174
 
158
175
  Define global React components in a browser-loadable `.dmd/components.js` module. React is available as `window.React` in that module:
@@ -197,8 +214,8 @@ The standard build embeds `.dmd/components.js` in `docs/.dist/index.html`, so th
197
214
  badgeType="success"
198
215
  />
199
216
  <Card
200
- title="Glassmorphic Theme"
201
- description="Sleek dark and light modes."
217
+ title="Complete Theme Families"
218
+ description="Atlas, Blueprint, Terminal, and Editorial change the entire reading system."
202
219
  badge="New"
203
220
  badgeType="new"
204
221
  />
@@ -216,15 +233,20 @@ The standard build embeds `.dmd/components.js` in `docs/.dist/index.html`, so th
216
233
 
217
234
  ## ⚙️ Configuration Reference (`docs.json`)
218
235
 
236
+ DocMeDown validates configuration from `docs.json`, `dmd.json`, inline `#dmd-config` JSON, and embedded manifests before applying defaults. Add the published JSON Schema reference for editor completion and immediate feedback:
237
+
219
238
  ```json
220
239
  {
240
+ "$schema": "https://raw.githubusercontent.com/gabrielmsilva00/docmedown/main/schemas/docs.schema.json",
221
241
  "name": "My Documentation",
222
242
  "tagline": "The simplest Markdown documenter yet",
223
243
  "version": "1.0.0",
224
244
  "rootDoc": "README.md",
225
245
  "theme": {
226
- "preset": "indigo",
227
- "defaultMode": "auto"
246
+ "family": "atlas",
247
+ "density": "comfortable",
248
+ "defaultMode": "auto",
249
+ "codeTheme": "github"
228
250
  },
229
251
  "nav": [
230
252
  { "label": "Overview", "href": "#/README" },
@@ -245,17 +267,18 @@ The standard build embeds `.dmd/components.js` in `docs/.dist/index.html`, so th
245
267
  }
246
268
  ```
247
269
 
248
- ### Color Presets Available
270
+ Unknown keys are rejected. The npm package also ships the portable schema at `schemas/docs.schema.json`; TypeScript consumers can import `docConfigSchema` and `parseDocConfig` from `docmedown`. See the full [configuration reference](./docs/configuration.md) for every field and validation rule.
249
271
 
250
- | Preset | Accent Color | Vibe |
272
+ ### Theme Families
273
+
274
+ | Family | Best suited for | Visual system |
251
275
  | :--- | :--- | :--- |
252
- | `indigo` *(default)* | `#6366f1` | Clean, modern, developer-focused |
253
- | `emerald` | `#10b981` | Fresh, high-tech, eco |
254
- | `sunset` | `#f59e0b` | Warm amber and energy |
255
- | `violet` | `#8b5cf6` | Vibrant, creative |
256
- | `rose` | `#f43f5e` | Bold, stylish quartz |
257
- | `slate` | `#64748b` | Minimalist monochrome |
258
- | `cyberpunk` | `#00f0ff` | Glowing neon aesthetic |
276
+ | `atlas` *(default)* | General product and API documentation | Neutral mineral canvas, cobalt actions, balanced spacing |
277
+ | `blueprint` | Architecture and technical specifications | Squared geometry, drafting rules, coral signals |
278
+ | `terminal` | CLI, operations, and infrastructure manuals | Dark-first console character, compact rhythm, monospace utilities |
279
+ | `editorial` | Guides, handbooks, and long-form reading | Warm paper surfaces, serif display type, generous article rhythm |
280
+
281
+ Use the **Appearance** menu to switch family, color mode, and reading density at runtime. Set `accentColor` and `accentColorDark` only when a brand color must override the family default. Legacy accent-only presets remain accepted temporarily for migration but should not be used in new configurations.
259
282
 
260
283
  ---
261
284
 
@@ -275,3 +298,29 @@ The standard build embeds `.dmd/components.js` in `docs/.dist/index.html`, so th
275
298
  ## 📄 License
276
299
 
277
300
  MIT © DocMeDown Contributors
301
+
302
+ ---
303
+
304
+ ## 🚀 Maintainer release command
305
+
306
+ Maintainers publish a prepared version with one command:
307
+
308
+ ```bash
309
+ npm run deploy
310
+ ```
311
+
312
+ It validates the release, pushes `main` and `v<version>` to GitHub, publishes to npm, and verifies the npm registry. Run `npm run deploy:dry-run` to validate without changing GitHub or npm.
313
+
314
+ ## 🧹 Quality checks
315
+
316
+ DocMeDown uses [Biome](https://biomejs.dev/) for formatting, import organization, and linting, and Zod for runtime configuration validation.
317
+
318
+ ```bash
319
+ npm run lint # check formatting, imports, and lint rules
320
+ npm run lint:fix # apply Biome fixes
321
+ npm run format # format maintained source files
322
+ npm run typecheck
323
+ npm test
324
+ ```
325
+
326
+ `npm run test:release` runs all of these checks plus production, documentation, and package smoke builds.
@@ -0,0 +1,89 @@
1
+ import { m as e } from "./src-D_hsMyeP.mjs";
2
+ import { n as t } from "./chunk-Y2CYZVJY-i11wjrBe.mjs";
3
+ import "./chunk-DU6HZSFF-BEQZSmUu.mjs";
4
+ import "./chunk-CLGD4ZFX-DBkwyMMv.mjs";
5
+ import { m as n, t as r } from "./mermaid-parser.core-BRHibdUE.mjs";
6
+ import { n as i, r as a, t as o } from "./chunk-SVP7TREG-CynckzeF.mjs";
7
+ import { t as s } from "./chunk-JWPE2WC7-DIKiF5cm.mjs";
8
+ //#region node_modules/mermaid/dist/chunks/mermaid.core/abnfDiagram-VCTEODGH.mjs
9
+ var c = n().RailroadAbnf.parser.LangiumParser, l = /* @__PURE__ */ t((e) => {
10
+ let t = e.alternatives.map(u);
11
+ return t.length === 1 ? t[0] : {
12
+ type: "choice",
13
+ alternatives: t
14
+ };
15
+ }, "transformAlternation"), u = /* @__PURE__ */ t((e) => {
16
+ let t = e.elements.map(f);
17
+ return t.length === 1 ? t[0] : {
18
+ type: "sequence",
19
+ elements: t
20
+ };
21
+ }, "transformConcatenation"), d = /* @__PURE__ */ t((e) => {
22
+ if (e.includes("*")) {
23
+ let [t, n] = e.split("*");
24
+ return {
25
+ min: t ? parseInt(t, 10) : 0,
26
+ max: n ? parseInt(n, 10) : Infinity
27
+ };
28
+ }
29
+ let t = parseInt(e, 10);
30
+ return {
31
+ min: t,
32
+ max: t
33
+ };
34
+ }, "parseRepeat"), f = /* @__PURE__ */ t((e) => {
35
+ let t = p(e.primary);
36
+ if (!e.repeat) return t;
37
+ let { min: n, max: r } = d(e.repeat);
38
+ return n === 0 && r === 1 ? {
39
+ type: "optional",
40
+ element: t
41
+ } : {
42
+ type: "repetition",
43
+ element: t,
44
+ min: n,
45
+ max: r
46
+ };
47
+ }, "transformElement"), p = /* @__PURE__ */ t((e) => {
48
+ switch (e.$type) {
49
+ case "AbnfStringLiteral": return {
50
+ type: "terminal",
51
+ value: e.value
52
+ };
53
+ case "AbnfNumVal": return {
54
+ type: "terminal",
55
+ value: e.value
56
+ };
57
+ case "AbnfRuleName": return {
58
+ type: "nonterminal",
59
+ name: e.name
60
+ };
61
+ case "AbnfGroup": return l(e.element);
62
+ case "AbnfOptionalGroup": return {
63
+ type: "optional",
64
+ element: l(e.element)
65
+ };
66
+ default: throw Error(`Unsupported ABNF primary node: ${e.$type}`);
67
+ }
68
+ }, "transformPrimary"), m = /* @__PURE__ */ t((e) => ({
69
+ name: e.name,
70
+ definition: l(e.definition)
71
+ }), "transformRule"), h = /* @__PURE__ */ t((e) => {
72
+ s(e, o), e.title && o.setTitle(e.title), e.rules.map((e) => o.addRule(m(e)));
73
+ }, "populateDb"), g = {
74
+ parser: {
75
+ parse: /* @__PURE__ */ t((t) => {
76
+ o.clear(), e.debug("[ABNF Parser] Starting Langium parse");
77
+ let n = c.parse(t);
78
+ if (n.lexerErrors.length > 0 || n.parserErrors.length > 0) throw new r(n);
79
+ let i = n.value;
80
+ e.debug("[ABNF Parser] Parsed rules:", i.rules.length), h(i), e.debug("[ABNF Parser] Parse complete");
81
+ }, "parse"),
82
+ parser: { yy: o }
83
+ },
84
+ db: o,
85
+ renderer: a,
86
+ styles: i
87
+ };
88
+ //#endregion
89
+ export { g as diagram };
@@ -0,0 +1 @@
1
+ const e=require("./src-B4mN2BMl.js"),t=require("./chunk-Y2CYZVJY-CnmLqFtv.js");require("./chunk-DU6HZSFF-CWc5ewtb.js"),require("./chunk-CLGD4ZFX-C5J-e2io.js");const n=require("./mermaid-parser.core-BBApyu_y.js"),r=require("./chunk-SVP7TREG-BFMd615E.js"),i=require("./chunk-JWPE2WC7-p1fYVdYc.js");var a=n.m().RailroadAbnf.parser.LangiumParser,o=t.n(e=>{let t=e.alternatives.map(s);return t.length===1?t[0]:{type:`choice`,alternatives:t}},`transformAlternation`),s=t.n(e=>{let t=e.elements.map(l);return t.length===1?t[0]:{type:`sequence`,elements:t}},`transformConcatenation`),c=t.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`),l=t.n(e=>{let t=u(e.primary);if(!e.repeat)return t;let{min:n,max:r}=c(e.repeat);return n===0&&r===1?{type:`optional`,element:t}:{type:`repetition`,element:t,min:n,max:r}},`transformElement`),u=t.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 o(e.element);case`AbnfOptionalGroup`:return{type:`optional`,element:o(e.element)};default:throw Error(`Unsupported ABNF primary node: ${e.$type}`)}},`transformPrimary`),d=t.n(e=>({name:e.name,definition:o(e.definition)}),`transformRule`),f=t.n(e=>{i.t(e,r.t),e.title&&r.t.setTitle(e.title),e.rules.map(e=>r.t.addRule(d(e)))},`populateDb`),p={parser:{parse:t.n(t=>{r.t.clear(),e.m.debug(`[ABNF Parser] Starting Langium parse`);let i=a.parse(t);if(i.lexerErrors.length>0||i.parserErrors.length>0)throw new n.t(i);let o=i.value;e.m.debug(`[ABNF Parser] Parsed rules:`,o.rules.length),f(o),e.m.debug(`[ABNF Parser] Parse complete`)},`parse`),parser:{yy:r.t}},db:r.t,renderer:r.r,styles:r.n};exports.diagram=p;
@@ -0,0 +1,82 @@
1
+ import { n as e, t } from "./path-CnWkkRiY.mjs";
2
+ import { a as n, c as r, d as i, f as a, i as o, l as s, m as c, n as l, o as u, p as d, r as f, u as p } from "./dist-DNdLIC8h.mjs";
3
+ //#region node_modules/d3-shape/src/arc.js
4
+ function m(e) {
5
+ return e.innerRadius;
6
+ }
7
+ function h(e) {
8
+ return e.outerRadius;
9
+ }
10
+ function g(e) {
11
+ return e.startAngle;
12
+ }
13
+ function _(e) {
14
+ return e.endAngle;
15
+ }
16
+ function v(e) {
17
+ return e && e.padAngle;
18
+ }
19
+ function y(e, t, n, r, i, a, o, s) {
20
+ var c = n - e, l = r - t, u = o - i, d = s - a, f = d * c - u * l;
21
+ if (!(f * f < 1e-12)) return f = (u * (t - a) - d * (e - i)) / f, [e + f * c, t + f * l];
22
+ }
23
+ function b(e, t, n, r, i, a, o) {
24
+ var c = e - n, l = t - r, u = (o ? a : -a) / d(c * c + l * l), f = u * l, p = -u * c, m = e + f, h = t + p, g = n + f, _ = r + p, v = (m + g) / 2, y = (h + _) / 2, b = g - m, x = _ - h, S = b * b + x * x, C = i - a, w = m * _ - g * h, T = (x < 0 ? -1 : 1) * d(s(0, C * C * S - w * w)), E = (w * x - b * T) / S, D = (-w * b - x * T) / S, O = (w * x + b * T) / S, k = (-w * b + x * T) / S, A = E - v, j = D - y, M = O - v, N = k - y;
25
+ return A * A + j * j > M * M + N * N && (E = O, D = k), {
26
+ cx: E,
27
+ cy: D,
28
+ x01: -f,
29
+ y01: -p,
30
+ x11: E * (i / C - 1),
31
+ y11: D * (i / C - 1)
32
+ };
33
+ }
34
+ function x() {
35
+ var s = m, x = h, S = e(0), C = null, w = g, T = _, E = v, D = null, O = t(k);
36
+ function k() {
37
+ var e, t, m = +s.apply(this, arguments), h = +x.apply(this, arguments), g = w.apply(this, arguments) - r, _ = T.apply(this, arguments) - r, v = l(_ - g), k = _ > g;
38
+ if (D ||= e = O(), h < m && (t = h, h = m, m = t), !(h > 1e-12)) D.moveTo(0, 0);
39
+ else if (v > c - 1e-12) D.moveTo(h * u(g), h * a(g)), D.arc(0, 0, h, g, _, !k), m > 1e-12 && (D.moveTo(m * u(_), m * a(_)), D.arc(0, 0, m, _, g, k));
40
+ else {
41
+ var A = g, j = _, M = g, N = _, P = v, F = v, I = E.apply(this, arguments) / 2, L = I > 1e-12 && (C ? +C.apply(this, arguments) : d(m * m + h * h)), R = p(l(h - m) / 2, +S.apply(this, arguments)), z = R, B = R, V, H;
42
+ if (L > 1e-12) {
43
+ var U = o(L / m * a(I)), W = o(L / h * a(I));
44
+ (P -= U * 2) > 1e-12 ? (U *= k ? 1 : -1, M += U, N -= U) : (P = 0, M = N = (g + _) / 2), (F -= W * 2) > 1e-12 ? (W *= k ? 1 : -1, A += W, j -= W) : (F = 0, A = j = (g + _) / 2);
45
+ }
46
+ var G = h * u(A), K = h * a(A), q = m * u(N), J = m * a(N);
47
+ if (R > 1e-12) {
48
+ var Y = h * u(j), X = h * a(j), Z = m * u(M), Q = m * a(M), $;
49
+ if (v < i) {
50
+ if ($ = y(G, K, Z, Q, Y, X, q, J)) {
51
+ var ee = G - $[0], te = K - $[1], ne = Y - $[0], re = X - $[1], ie = 1 / a(f((ee * ne + te * re) / (d(ee * ee + te * te) * d(ne * ne + re * re))) / 2), ae = d($[0] * $[0] + $[1] * $[1]);
52
+ z = p(R, (m - ae) / (ie - 1)), B = p(R, (h - ae) / (ie + 1));
53
+ } else z = B = 0;
54
+ }
55
+ }
56
+ F > 1e-12 ? B > 1e-12 ? (V = b(Z, Q, G, K, h, B, k), H = b(Y, X, q, J, h, B, k), D.moveTo(V.cx + V.x01, V.cy + V.y01), B < R ? D.arc(V.cx, V.cy, B, n(V.y01, V.x01), n(H.y01, H.x01), !k) : (D.arc(V.cx, V.cy, B, n(V.y01, V.x01), n(V.y11, V.x11), !k), D.arc(0, 0, h, n(V.cy + V.y11, V.cx + V.x11), n(H.cy + H.y11, H.cx + H.x11), !k), D.arc(H.cx, H.cy, B, n(H.y11, H.x11), n(H.y01, H.x01), !k))) : (D.moveTo(G, K), D.arc(0, 0, h, A, j, !k)) : D.moveTo(G, K), !(m > 1e-12) || !(P > 1e-12) ? D.lineTo(q, J) : z > 1e-12 ? (V = b(q, J, Y, X, m, -z, k), H = b(G, K, Z, Q, m, -z, k), D.lineTo(V.cx + V.x01, V.cy + V.y01), z < R ? D.arc(V.cx, V.cy, z, n(V.y01, V.x01), n(H.y01, H.x01), !k) : (D.arc(V.cx, V.cy, z, n(V.y01, V.x01), n(V.y11, V.x11), !k), D.arc(0, 0, m, n(V.cy + V.y11, V.cx + V.x11), n(H.cy + H.y11, H.cx + H.x11), k), D.arc(H.cx, H.cy, z, n(H.y11, H.x11), n(H.y01, H.x01), !k))) : D.arc(0, 0, m, N, M, k);
57
+ }
58
+ if (D.closePath(), e) return D = null, e + "" || null;
59
+ }
60
+ return k.centroid = function() {
61
+ var e = (+s.apply(this, arguments) + +x.apply(this, arguments)) / 2, t = (+w.apply(this, arguments) + +T.apply(this, arguments)) / 2 - i / 2;
62
+ return [u(t) * e, a(t) * e];
63
+ }, k.innerRadius = function(t) {
64
+ return arguments.length ? (s = typeof t == "function" ? t : e(+t), k) : s;
65
+ }, k.outerRadius = function(t) {
66
+ return arguments.length ? (x = typeof t == "function" ? t : e(+t), k) : x;
67
+ }, k.cornerRadius = function(t) {
68
+ return arguments.length ? (S = typeof t == "function" ? t : e(+t), k) : S;
69
+ }, k.padRadius = function(t) {
70
+ return arguments.length ? (C = t == null ? null : typeof t == "function" ? t : e(+t), k) : C;
71
+ }, k.startAngle = function(t) {
72
+ return arguments.length ? (w = typeof t == "function" ? t : e(+t), k) : w;
73
+ }, k.endAngle = function(t) {
74
+ return arguments.length ? (T = typeof t == "function" ? t : e(+t), k) : T;
75
+ }, k.padAngle = function(t) {
76
+ return arguments.length ? (E = typeof t == "function" ? t : e(+t), k) : E;
77
+ }, k.context = function(e) {
78
+ return arguments.length ? (D = e ?? null, k) : D;
79
+ }, k;
80
+ }
81
+ //#endregion
82
+ export { x as t };
@@ -0,0 +1 @@
1
+ const e=require("./path-DIS6ck99.js"),t=require("./dist-CXWJafG_.js");function n(e){return e.innerRadius}function r(e){return e.outerRadius}function i(e){return e.startAngle}function a(e){return e.endAngle}function o(e){return e&&e.padAngle}function s(e,t,n,r,i,a,o,s){var c=n-e,l=r-t,u=o-i,d=s-a,f=d*c-u*l;if(!(f*f<1e-12))return f=(u*(t-a)-d*(e-i))/f,[e+f*c,t+f*l]}function c(e,n,r,i,a,o,s){var c=e-r,l=n-i,u=(s?o:-o)/t.p(c*c+l*l),d=u*l,f=-u*c,p=e+d,m=n+f,h=r+d,g=i+f,_=(p+h)/2,v=(m+g)/2,y=h-p,b=g-m,x=y*y+b*b,S=a-o,C=p*g-h*m,w=(b<0?-1:1)*t.p(t.l(0,S*S*x-C*C)),T=(C*b-y*w)/x,E=(-C*y-b*w)/x,D=(C*b+y*w)/x,O=(-C*y+b*w)/x,k=T-_,A=E-v,j=D-_,M=O-v;return k*k+A*A>j*j+M*M&&(T=D,E=O),{cx:T,cy:E,x01:-d,y01:-f,x11:T*(a/S-1),y11:E*(a/S-1)}}function l(){var l=n,u=r,d=e.n(0),f=null,p=i,m=a,h=o,g=null,_=e.t(v);function v(){var e,n,r=+l.apply(this,arguments),i=+u.apply(this,arguments),a=p.apply(this,arguments)-t.c,o=m.apply(this,arguments)-t.c,v=t.n(o-a),y=o>a;if(g||=e=_(),i<r&&(n=i,i=r,r=n),!(i>1e-12))g.moveTo(0,0);else if(v>t.m-1e-12)g.moveTo(i*t.o(a),i*t.f(a)),g.arc(0,0,i,a,o,!y),r>1e-12&&(g.moveTo(r*t.o(o),r*t.f(o)),g.arc(0,0,r,o,a,y));else{var b=a,x=o,S=a,C=o,w=v,T=v,E=h.apply(this,arguments)/2,D=E>1e-12&&(f?+f.apply(this,arguments):t.p(r*r+i*i)),O=t.u(t.n(i-r)/2,+d.apply(this,arguments)),k=O,A=O,j,M;if(D>1e-12){var N=t.i(D/r*t.f(E)),P=t.i(D/i*t.f(E));(w-=N*2)>1e-12?(N*=y?1:-1,S+=N,C-=N):(w=0,S=C=(a+o)/2),(T-=P*2)>1e-12?(P*=y?1:-1,b+=P,x-=P):(T=0,b=x=(a+o)/2)}var F=i*t.o(b),I=i*t.f(b),L=r*t.o(C),R=r*t.f(C);if(O>1e-12){var z=i*t.o(x),B=i*t.f(x),V=r*t.o(S),H=r*t.f(S),U;if(v<t.d){if(U=s(F,I,V,H,z,B,L,R)){var W=F-U[0],G=I-U[1],K=z-U[0],q=B-U[1],J=1/t.f(t.r((W*K+G*q)/(t.p(W*W+G*G)*t.p(K*K+q*q)))/2),Y=t.p(U[0]*U[0]+U[1]*U[1]);k=t.u(O,(r-Y)/(J-1)),A=t.u(O,(i-Y)/(J+1))}else k=A=0}}T>1e-12?A>1e-12?(j=c(V,H,F,I,i,A,y),M=c(z,B,L,R,i,A,y),g.moveTo(j.cx+j.x01,j.cy+j.y01),A<O?g.arc(j.cx,j.cy,A,t.a(j.y01,j.x01),t.a(M.y01,M.x01),!y):(g.arc(j.cx,j.cy,A,t.a(j.y01,j.x01),t.a(j.y11,j.x11),!y),g.arc(0,0,i,t.a(j.cy+j.y11,j.cx+j.x11),t.a(M.cy+M.y11,M.cx+M.x11),!y),g.arc(M.cx,M.cy,A,t.a(M.y11,M.x11),t.a(M.y01,M.x01),!y))):(g.moveTo(F,I),g.arc(0,0,i,b,x,!y)):g.moveTo(F,I),!(r>1e-12)||!(w>1e-12)?g.lineTo(L,R):k>1e-12?(j=c(L,R,z,B,r,-k,y),M=c(F,I,V,H,r,-k,y),g.lineTo(j.cx+j.x01,j.cy+j.y01),k<O?g.arc(j.cx,j.cy,k,t.a(j.y01,j.x01),t.a(M.y01,M.x01),!y):(g.arc(j.cx,j.cy,k,t.a(j.y01,j.x01),t.a(j.y11,j.x11),!y),g.arc(0,0,r,t.a(j.cy+j.y11,j.cx+j.x11),t.a(M.cy+M.y11,M.cx+M.x11),y),g.arc(M.cx,M.cy,k,t.a(M.y11,M.x11),t.a(M.y01,M.x01),!y))):g.arc(0,0,r,C,S,y)}if(g.closePath(),e)return g=null,e+``||null}return v.centroid=function(){var e=(+l.apply(this,arguments)+ +u.apply(this,arguments))/2,n=(+p.apply(this,arguments)+ +m.apply(this,arguments))/2-t.d/2;return[t.o(n)*e,t.f(n)*e]},v.innerRadius=function(t){return arguments.length?(l=typeof t==`function`?t:e.n(+t),v):l},v.outerRadius=function(t){return arguments.length?(u=typeof t==`function`?t:e.n(+t),v):u},v.cornerRadius=function(t){return arguments.length?(d=typeof t==`function`?t:e.n(+t),v):d},v.padRadius=function(t){return arguments.length?(f=t==null?null:typeof t==`function`?t:e.n(+t),v):f},v.startAngle=function(t){return arguments.length?(p=typeof t==`function`?t:e.n(+t),v):p},v.endAngle=function(t){return arguments.length?(m=typeof t==`function`?t:e.n(+t),v):m},v.padAngle=function(t){return arguments.length?(h=typeof t==`function`?t:e.n(+t),v):h},v.context=function(e){return arguments.length?(g=e??null,v):g},v}Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return l}});
@@ -0,0 +1 @@
1
+ require("./chunk-FOHPRMQF-tmTlwTeH.js");const e=require("./mermaid-parser.core-BBApyu_y.js");exports.createArchitectureServices=e.M;
@@ -0,0 +1,3 @@
1
+ import "./chunk-FOHPRMQF-LRqOLsSw.mjs";
2
+ import { M as e } from "./mermaid-parser.core-BRHibdUE.mjs";
3
+ export { e as createArchitectureServices };