chalkbridge 1.0.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 (308) hide show
  1. package/LICENSE +27 -0
  2. package/README.md +66 -0
  3. package/THIRD-PARTY-NOTICES.md +438 -0
  4. package/dist/ar-SA-G6X2FPQ2-IHRIDPR4.js +20 -0
  5. package/dist/az-AZ-76LH7QW2-FWR3DD2C.js +20 -0
  6. package/dist/bg-BG-XCXSNQG7-IJ7WAACU.js +20 -0
  7. package/dist/bn-BD-2XOGV67Q-QYVETSYP.js +20 -0
  8. package/dist/ca-ES-6MX7JW3Y-SOBVUEZY.js +20 -0
  9. package/dist/canvas-roundrect-polyfill-H6Z5O4YN.js +20 -0
  10. package/dist/chunk-7D4SUZUM.js +35 -0
  11. package/dist/chunk-EAE6IZ6E.js +17692 -0
  12. package/dist/chunk-HFKCLTVU.js +1494 -0
  13. package/dist/chunk-OSMXI5VA.js +1638 -0
  14. package/dist/chunk-QGOK75XS.js +31 -0
  15. package/dist/cli.js +6159 -0
  16. package/dist/cs-CZ-2BRQDIVT-WY37XCXG.js +20 -0
  17. package/dist/da-DK-5WZEPLOC-OEXDYHXX.js +20 -0
  18. package/dist/de-DE-XR44H4JA-CHYMDV52.js +20 -0
  19. package/dist/directory-open-01563666-QRZ2F5WT.js +18 -0
  20. package/dist/directory-open-4ed118d0-YYFT6KAI.js +59 -0
  21. package/dist/el-GR-BZB4AONW-PFUEAYDI.js +20 -0
  22. package/dist/en-B4ZKOASM-RQVXIIF2.js +20 -0
  23. package/dist/es-ES-U4NZUMDT-U4COLEPD.js +20 -0
  24. package/dist/eu-ES-A7QVB2H4-2A3YPN4B.js +20 -0
  25. package/dist/fa-IR-HGAKTJCU-K3A3VMB3.js +20 -0
  26. package/dist/fi-FI-Z5N7JZ37-OAX5327W.js +20 -0
  27. package/dist/file-open-002ab408-3W4GHKWC.js +22 -0
  28. package/dist/file-open-7c801643-GAYNVN2D.js +19 -0
  29. package/dist/file-save-3189631c-N4WBRA7X.js +27 -0
  30. package/dist/file-save-745eba88-76KHW454.js +29 -0
  31. package/dist/fr-FR-RHASNOE6-VN34DFEI.js +20 -0
  32. package/dist/gl-ES-HMX3MZ6V-ZKLDSE57.js +20 -0
  33. package/dist/he-IL-6SHJWFNN-DVWDKP5N.js +20 -0
  34. package/dist/hi-IN-IWLTKZ5I-MXIXSFZQ.js +20 -0
  35. package/dist/hu-HU-A5ZG7DT2-UUR52ECU.js +20 -0
  36. package/dist/id-ID-SAP4L64H-DHYFFGCD.js +20 -0
  37. package/dist/image-GAAHSSAO-CFWZUGEZ.js +5 -0
  38. package/dist/image-blob-reduce-ZKP25K2R.js +20 -0
  39. package/dist/index.js +4 -0
  40. package/dist/it-IT-JPQ66NNP-FHS6FPFA.js +20 -0
  41. package/dist/ja-JP-DBVTYXUO-AMIMDPTA.js +20 -0
  42. package/dist/kaa-6HZHGXH3-BH4ZWU4H.js +20 -0
  43. package/dist/kab-KAB-ZGHBKWFO-HM6Q2QFU.js +20 -0
  44. package/dist/kk-KZ-P5N5QNE5-ZMSMI2MP.js +20 -0
  45. package/dist/km-KH-HSX4SM5Z-7WSA4RPS.js +20 -0
  46. package/dist/ko-KR-MTYHY66A-7D3G6L2U.js +20 -0
  47. package/dist/ku-TR-6OUDTVRD-OEGBBNNA.js +20 -0
  48. package/dist/lt-LT-XHIRWOB4-2IXXZF7J.js +20 -0
  49. package/dist/lv-LV-5QDEKY6T-54IAHK7L.js +20 -0
  50. package/dist/mermaid-to-excalidraw-F5UABDGX.js +20 -0
  51. package/dist/mr-IN-CRQNXWMA-Z54WQJ7P.js +20 -0
  52. package/dist/my-MM-5M5IBNSE-7NVT6WZR.js +20 -0
  53. package/dist/nb-NO-T6EIAALU-Y47L7MXQ.js +20 -0
  54. package/dist/nl-NL-IS3SIHDZ-SVJTPE6M.js +20 -0
  55. package/dist/nn-NO-6E72VCQL-IATBYLUX.js +20 -0
  56. package/dist/oc-FR-POXYY2M6-T6O6NZ6A.js +20 -0
  57. package/dist/pa-IN-N4M65BXN-CQTFKR27.js +20 -0
  58. package/dist/percentages-BXMCSKIN-F5SZRLIW.js +20 -0
  59. package/dist/pica-OHNN3T33.js +20 -0
  60. package/dist/pl-PL-T2D74RX3-H62G547Q.js +20 -0
  61. package/dist/prod-KHI2WQT3.js +43228 -0
  62. package/dist/pt-BR-5N22H2LF-IOFFSIBR.js +20 -0
  63. package/dist/pt-PT-UZXXM6DQ-Z3JYHPJA.js +20 -0
  64. package/dist/ro-RO-JPDTUUEW-TNJOBCBY.js +20 -0
  65. package/dist/ru-RU-B4JR7IUQ-LQHFF6I5.js +20 -0
  66. package/dist/si-LK-N5RQ5JYF-7AJ6QJ6S.js +20 -0
  67. package/dist/sk-SK-C5VTKIMK-UOMPMDMS.js +20 -0
  68. package/dist/sl-SI-NN7IZMDC-GCLRUNU3.js +20 -0
  69. package/dist/subset-shared.chunk-RYC3QF4F.js +5 -0
  70. package/dist/subset-worker.chunk-TIUZJQSN.js +18 -0
  71. package/dist/sv-SE-XGPEYMSR-3B5GU363.js +20 -0
  72. package/dist/ta-IN-2NMHFXQM-53HPRXR6.js +20 -0
  73. package/dist/th-TH-HPSO5L25-QHD7HILB.js +20 -0
  74. package/dist/tr-TR-DEFEU3FU-Q22C3NWC.js +20 -0
  75. package/dist/uk-UA-QMV73CPH-LREVZK2B.js +20 -0
  76. package/dist/vi-VN-M7AON7JQ-2CB5FIZH.js +20 -0
  77. package/dist/zh-CN-LNUGB5OW-A3VGS2O7.js +20 -0
  78. package/dist/zh-HK-E62DVLB3-3PKQ62NI.js +20 -0
  79. package/dist/zh-TW-RAJ6MFWO-2XI3I7Z6.js +20 -0
  80. package/guides/arrows.md +85 -0
  81. package/guides/elements.md +92 -0
  82. package/guides/icons.md +111 -0
  83. package/guides/layout.md +75 -0
  84. package/guides/styling.md +85 -0
  85. package/package.json +56 -0
  86. package/packs/generic/LICENSE +26 -0
  87. package/packs/generic/chalk-pack.json +115 -0
  88. package/packs/generic/svg/alert.svg +1 -0
  89. package/packs/generic/svg/api.svg +1 -0
  90. package/packs/generic/svg/browser.svg +1 -0
  91. package/packs/generic/svg/bucket.svg +1 -0
  92. package/packs/generic/svg/cache.svg +1 -0
  93. package/packs/generic/svg/cloud.svg +1 -0
  94. package/packs/generic/svg/cron.svg +1 -0
  95. package/packs/generic/svg/database.svg +1 -0
  96. package/packs/generic/svg/file.svg +1 -0
  97. package/packs/generic/svg/folder.svg +1 -0
  98. package/packs/generic/svg/globe.svg +1 -0
  99. package/packs/generic/svg/key.svg +1 -0
  100. package/packs/generic/svg/load-balancer.svg +1 -0
  101. package/packs/generic/svg/lock.svg +1 -0
  102. package/packs/generic/svg/metrics.svg +1 -0
  103. package/packs/generic/svg/mobile.svg +1 -0
  104. package/packs/generic/svg/queue.svg +1 -0
  105. package/packs/generic/svg/server.svg +1 -0
  106. package/packs/generic/svg/user.svg +1 -0
  107. package/packs/generic/svg/users.svg +1 -0
  108. package/packs/generic/svg/worker.svg +1 -0
  109. package/packs/recipes/aws.yml +63 -0
  110. package/packs/recipes/azure.yml +49 -0
  111. package/packs/recipes/devicon.yml +54 -0
  112. package/packs/recipes/gcp.yml +48 -0
  113. package/packs/recipes/simple-icons.yml +31 -0
  114. package/ui-dist/assets/Assistant-Bold-gm-uSS1B.woff2 +0 -0
  115. package/ui-dist/assets/Assistant-Medium-DrcxCXg3.woff2 +0 -0
  116. package/ui-dist/assets/Assistant-Regular-DVxZuzxb.woff2 +0 -0
  117. package/ui-dist/assets/Assistant-SemiBold-SCI4bEL9.woff2 +0 -0
  118. package/ui-dist/assets/abnfDiagram-VCTEODGH-BJtEDuNS.js +1 -0
  119. package/ui-dist/assets/ar-SA-G6X2FPQ2-B6obDqD5.js +10 -0
  120. package/ui-dist/assets/arc-DgcGdgmL.js +1 -0
  121. package/ui-dist/assets/architecture-7GRP2DOG-8nO9N-PA.js +1 -0
  122. package/ui-dist/assets/architectureDiagram-5GKGNRK7-CvbQe1_v.js +36 -0
  123. package/ui-dist/assets/array-BifhSqXX.js +1 -0
  124. package/ui-dist/assets/az-AZ-76LH7QW2-CfV9ZZWy.js +1 -0
  125. package/ui-dist/assets/bg-BG-XCXSNQG7-DUA8YPCl.js +5 -0
  126. package/ui-dist/assets/blockDiagram-NRAW4CY4-DocsEmiD.js +129 -0
  127. package/ui-dist/assets/bn-BD-2XOGV67Q-DvE_tajm.js +5 -0
  128. package/ui-dist/assets/c4Diagram-UCG6FXSJ-Tx_g_cO9.js +38 -0
  129. package/ui-dist/assets/ca-ES-6MX7JW3Y-DHdtT9lh.js +8 -0
  130. package/ui-dist/assets/channel-uzdT5KPV.js +1 -0
  131. package/ui-dist/assets/chunk-2Q5K7J3B-C1jixKkw.js +1 -0
  132. package/ui-dist/assets/chunk-5VM5RSS4-ZNzvKenW.js +15 -0
  133. package/ui-dist/assets/chunk-75Z2AOVW-LAZTrfqO.js +2 -0
  134. package/ui-dist/assets/chunk-DU6HZSFF-DYQVLGqe.js +127 -0
  135. package/ui-dist/assets/chunk-EIO257PC-B41AYx2_.js +22 -0
  136. package/ui-dist/assets/chunk-F27PBJKO-BTHkH7Vo.js +1 -0
  137. package/ui-dist/assets/chunk-FOHPRMQF-DHwB1DNv.js +161 -0
  138. package/ui-dist/assets/chunk-G27WJ6UU-BBBWLXXO.js +231 -0
  139. package/ui-dist/assets/chunk-GMAD6QVW-BkvPd3CL.js +72 -0
  140. package/ui-dist/assets/chunk-JQ64N6SF-CKrtUr61.js +1 -0
  141. package/ui-dist/assets/chunk-JWPE2WC7-DVXcaiue.js +1 -0
  142. package/ui-dist/assets/chunk-LCL6LL3I-B4K72jRj.js +206 -0
  143. package/ui-dist/assets/chunk-OBVCFTLP-CMCEQnr_.js +1 -0
  144. package/ui-dist/assets/chunk-P2QGCYS3-BNpg6XHk.js +1 -0
  145. package/ui-dist/assets/chunk-POPQ4Y6H-BaAoqHUX.js +1 -0
  146. package/ui-dist/assets/chunk-PWAF6VOD-CGQ4p70E.js +1 -0
  147. package/ui-dist/assets/chunk-R7TYR2AO-B2S7-r2z.js +10 -0
  148. package/ui-dist/assets/chunk-RHFEMEQ7-C_ziruXk.js +168 -0
  149. package/ui-dist/assets/chunk-SVP7TREG-FJEPEsgF.js +88 -0
  150. package/ui-dist/assets/chunk-TEH6E4GO-BvKV-yBX.js +62 -0
  151. package/ui-dist/assets/chunk-XXDRQBXY-BvKO0v-W.js +1 -0
  152. package/ui-dist/assets/chunk-Y2CYZVJY-DsF7k-Jl.js +1 -0
  153. package/ui-dist/assets/classDiagram-DTDB5LWJ-CodHh4yt.js +1 -0
  154. package/ui-dist/assets/classDiagram-v2-JRS7N3AN-CodHh4yt.js +1 -0
  155. package/ui-dist/assets/cose-bilkent-JH36ORCC-Ch8c5TQK.js +1 -0
  156. package/ui-dist/assets/cs-CZ-2BRQDIVT-BamYs5wC.js +11 -0
  157. package/ui-dist/assets/cynefin-OW5HDTMX-Cj_nyyy3.js +1 -0
  158. package/ui-dist/assets/cynefinDiagram-5FMLGOSQ-B3Rm8-dE.js +62 -0
  159. package/ui-dist/assets/cytoscape.esm-C2x7inlt.js +321 -0
  160. package/ui-dist/assets/da-DK-5WZEPLOC-B8baJSus.js +5 -0
  161. package/ui-dist/assets/dagre-3AP2YEHR-BesdyiUo.js +4 -0
  162. package/ui-dist/assets/dagre-PrKaheQc.js +1 -0
  163. package/ui-dist/assets/de-DE-XR44H4JA-DKPtPOlk.js +8 -0
  164. package/ui-dist/assets/defaultLocale-BFoDCU3G.js +1 -0
  165. package/ui-dist/assets/diagram-S7CK7UJ4-jeIUYTnQ.js +30 -0
  166. package/ui-dist/assets/diagram-UQ7AKVKN-BmAlHtLI.js +41 -0
  167. package/ui-dist/assets/diagram-VSXAHHWV-B-S5XoGb.js +3 -0
  168. package/ui-dist/assets/diagram-VX7I27RA--KrWarId.js +24 -0
  169. package/ui-dist/assets/diagram-Z3DM3KII-B7MnKinD.js +24 -0
  170. package/ui-dist/assets/directory-open-01563666-D4xXyWb_.js +1 -0
  171. package/ui-dist/assets/directory-open-4ed118d0-1i309Asm.js +1 -0
  172. package/ui-dist/assets/dist-B_J_HbC0.js +1 -0
  173. package/ui-dist/assets/dist-C2o0r0se.js +62 -0
  174. package/ui-dist/assets/ebnfDiagram-PWID7BFC-C20WACav.js +1 -0
  175. package/ui-dist/assets/el-GR-BZB4AONW-FSgeiYUW.js +10 -0
  176. package/ui-dist/assets/en-B4ZKOASM-BAWBMIE-.js +1 -0
  177. package/ui-dist/assets/erDiagram-SSCWMZ5O-DU4Qz6qu.js +99 -0
  178. package/ui-dist/assets/es-ES-U4NZUMDT-CZ9XqqCk.js +9 -0
  179. package/ui-dist/assets/eu-ES-A7QVB2H4-CNagAo_o.js +11 -0
  180. package/ui-dist/assets/eventmodeling-NTZA5JFV-CLxW34Y6.js +1 -0
  181. package/ui-dist/assets/fa-IR-HGAKTJCU-CGpX3K56.js +8 -0
  182. package/ui-dist/assets/fi-FI-Z5N7JZ37-D8ErPXQZ.js +6 -0
  183. package/ui-dist/assets/file-open-002ab408-BHUWm0Sh.js +1 -0
  184. package/ui-dist/assets/file-open-7c801643-DZtJT5zp.js +1 -0
  185. package/ui-dist/assets/file-save-3189631c-CO9S4HFW.js +1 -0
  186. package/ui-dist/assets/file-save-745eba88-Bwdfz6OZ.js +1 -0
  187. package/ui-dist/assets/flowDiagram-A5DVABFB-mMONVpxe.js +1 -0
  188. package/ui-dist/assets/fr-FR-RHASNOE6-CgP9qmF-.js +9 -0
  189. package/ui-dist/assets/ganttDiagram-EL5Y4UJY-CNqGfKGy.js +292 -0
  190. package/ui-dist/assets/gitGraph-4MIJSDKK-Cjg2l4tr.js +1 -0
  191. package/ui-dist/assets/gitGraphDiagram-WWUBYQGX-C1RblGyv.js +106 -0
  192. package/ui-dist/assets/gl-ES-HMX3MZ6V-D64w31ga.js +10 -0
  193. package/ui-dist/assets/graphlib-DS17s2tU.js +1 -0
  194. package/ui-dist/assets/he-IL-6SHJWFNN-prTy1rRE.js +10 -0
  195. package/ui-dist/assets/hi-IN-IWLTKZ5I-uvdg8ovV.js +4 -0
  196. package/ui-dist/assets/hu-HU-A5ZG7DT2-OIhzhh7g.js +7 -0
  197. package/ui-dist/assets/id-ID-SAP4L64H-Bs8DbFR5.js +10 -0
  198. package/ui-dist/assets/image-GAAHSSAO-D1P4Y62B.js +1 -0
  199. package/ui-dist/assets/image-blob-reduce.esm-Dj7YBvMv.js +2 -0
  200. package/ui-dist/assets/index-4BcZoMTG.css +1 -0
  201. package/ui-dist/assets/index-CknJbzCM.js +269 -0
  202. package/ui-dist/assets/info-A6RAGUB7-DdLeprH9.js +1 -0
  203. package/ui-dist/assets/infoDiagram-RXCK75RN-B1aPG_BB.js +2 -0
  204. package/ui-dist/assets/init-C-OQMol4.js +1 -0
  205. package/ui-dist/assets/ishikawaDiagram-5VMMS53U-ChG5EVuT.js +70 -0
  206. package/ui-dist/assets/it-IT-JPQ66NNP-CVy3c_Ht.js +11 -0
  207. package/ui-dist/assets/ja-JP-DBVTYXUO-EcX4mq4z.js +8 -0
  208. package/ui-dist/assets/journeyDiagram-EYS64GPL-BZ4Ytc1U.js +139 -0
  209. package/ui-dist/assets/kaa-6HZHGXH3-BwP9az-p.js +1 -0
  210. package/ui-dist/assets/kab-KAB-ZGHBKWFO-By-AIEWs.js +8 -0
  211. package/ui-dist/assets/kanban-definition-3QL26DDD-Dm8bYrkM.js +89 -0
  212. package/ui-dist/assets/katex-CXMH3UgJ.js +257 -0
  213. package/ui-dist/assets/kk-KZ-P5N5QNE5-DYNjxBd-.js +1 -0
  214. package/ui-dist/assets/km-KH-HSX4SM5Z-DS2ZYG-3.js +11 -0
  215. package/ui-dist/assets/ko-KR-MTYHY66A-DOz4vl1z.js +9 -0
  216. package/ui-dist/assets/ku-TR-6OUDTVRD-CxEEWxJq.js +9 -0
  217. package/ui-dist/assets/line-B65qaCJb.js +1 -0
  218. package/ui-dist/assets/linear-n-3HSMUF.js +1 -0
  219. package/ui-dist/assets/lt-LT-XHIRWOB4-CkgB2O8i.js +3 -0
  220. package/ui-dist/assets/lv-LV-5QDEKY6T-BUDeq4Hb.js +7 -0
  221. package/ui-dist/assets/mermaid-parser.core-C60rNywA.js +7 -0
  222. package/ui-dist/assets/mindmap-definition-FBJOCRG2-DAu41qFN.js +96 -0
  223. package/ui-dist/assets/mr-IN-CRQNXWMA-DtuuryqC.js +13 -0
  224. package/ui-dist/assets/my-MM-5M5IBNSE-CC79-XBH.js +1 -0
  225. package/ui-dist/assets/nb-NO-T6EIAALU-CKNIbK-0.js +10 -0
  226. package/ui-dist/assets/nl-NL-IS3SIHDZ-B3dYZhvS.js +8 -0
  227. package/ui-dist/assets/nn-NO-6E72VCQL-CdPrOnP4.js +8 -0
  228. package/ui-dist/assets/oc-FR-POXYY2M6-DUmzGjKc.js +8 -0
  229. package/ui-dist/assets/ordinal-BDEzSJ7C.js +1 -0
  230. package/ui-dist/assets/pa-IN-N4M65BXN-DH39ZTHj.js +4 -0
  231. package/ui-dist/assets/packet-AYTQ26CC-DdR4jEOZ.js +1 -0
  232. package/ui-dist/assets/path-fybaL0A-.js +1 -0
  233. package/ui-dist/assets/pegDiagram-XKGWAZYB-Dx1lj8MV.js +1 -0
  234. package/ui-dist/assets/percentages-BXMCSKIN-d5p7s-wT.js +1 -0
  235. package/ui-dist/assets/pica-xkWDouSg.js +2 -0
  236. package/ui-dist/assets/pie-WAS4IAKB-cVrV21tR.js +1 -0
  237. package/ui-dist/assets/pieDiagram-E7YTZNPT-CcvgLYQz.js +39 -0
  238. package/ui-dist/assets/pl-PL-T2D74RX3-BNYpL8df.js +9 -0
  239. package/ui-dist/assets/pt-BR-5N22H2LF-RWmGHl_8.js +9 -0
  240. package/ui-dist/assets/pt-PT-UZXXM6DQ-smq6YmTY.js +9 -0
  241. package/ui-dist/assets/quadrantDiagram-AXDQQJYC-C4xDsL0E.js +7 -0
  242. package/ui-dist/assets/radar-RG4KPBEZ-DYaemlGZ.js +1 -0
  243. package/ui-dist/assets/railroad-74A4TZTK-BbRg5RPZ.js +1 -0
  244. package/ui-dist/assets/railroad-abnf-HS5TGJTU-BoiCOpxv.js +1 -0
  245. package/ui-dist/assets/railroad-ebnf-LZEXJU2U-ArFqgLSZ.js +1 -0
  246. package/ui-dist/assets/railroad-peg-WCYAUIDC-BAks8GCx.js +1 -0
  247. package/ui-dist/assets/railroadDiagram-O6MQD6OU-CR1fbGhX.js +1 -0
  248. package/ui-dist/assets/requirementDiagram-EFPCY7ZU-CFp52i96.js +84 -0
  249. package/ui-dist/assets/ro-RO-JPDTUUEW-BOjKaxCz.js +11 -0
  250. package/ui-dist/assets/rolldown-runtime-Dd_uD5pT.js +1 -0
  251. package/ui-dist/assets/rough.esm-Dy-Kn_BL.js +1 -0
  252. package/ui-dist/assets/roundRect-D01gJrlt.js +1 -0
  253. package/ui-dist/assets/ru-RU-B4JR7IUQ-DOK2ZlyX.js +9 -0
  254. package/ui-dist/assets/sankeyDiagram-P5KCCOFB-CZWdGNnS.js +40 -0
  255. package/ui-dist/assets/sequenceDiagram-WJ2MYXX4-D4X03yFA.js +162 -0
  256. package/ui-dist/assets/si-LK-N5RQ5JYF-BtKkEPfN.js +1 -0
  257. package/ui-dist/assets/sizeCapture-X5ZJPWSS-B0uUizjq.js +1 -0
  258. package/ui-dist/assets/sk-SK-C5VTKIMK-DehBWGkI.js +6 -0
  259. package/ui-dist/assets/sl-SI-NN7IZMDC-ClR46UYx.js +6 -0
  260. package/ui-dist/assets/src-oBChb5qS.js +1 -0
  261. package/ui-dist/assets/stateDiagram-HBIQ2CUA-Bg1Uy2K-.js +1 -0
  262. package/ui-dist/assets/stateDiagram-v2-4QOOHH4V-Ci4MD4Pt.js +1 -0
  263. package/ui-dist/assets/subset-shared.chunk-DQ-JqEaX.js +1 -0
  264. package/ui-dist/assets/subset-worker.chunk-BLppPGco.js +1 -0
  265. package/ui-dist/assets/sv-SE-XGPEYMSR-Cq54FLpH.js +10 -0
  266. package/ui-dist/assets/swimlanes-XN3QIQJK-Ca4vLBMp.js +1 -0
  267. package/ui-dist/assets/swimlanesDiagram-VK2B7HYN-BKiafpMh.js +8 -0
  268. package/ui-dist/assets/ta-IN-2NMHFXQM-SCh3n0lB.js +9 -0
  269. package/ui-dist/assets/th-TH-HPSO5L25-BotlAjVv.js +2 -0
  270. package/ui-dist/assets/timeline-definition-24CTP7MA-CjHCKN4P.js +120 -0
  271. package/ui-dist/assets/tr-TR-DEFEU3FU-B4u6Au2y.js +7 -0
  272. package/ui-dist/assets/treeView-Q6P3EWNA-CKMtikLc.js +1 -0
  273. package/ui-dist/assets/treemap-WGGIJYW6-B51xYeX7.js +1 -0
  274. package/ui-dist/assets/uk-UA-QMV73CPH-CtQkKgv_.js +6 -0
  275. package/ui-dist/assets/vennDiagram-4TSXK5OY-CSH3IvAD.js +34 -0
  276. package/ui-dist/assets/vi-VN-M7AON7JQ-CjZyv0HH.js +5 -0
  277. package/ui-dist/assets/wardley-WFR3VGLG-wnJkewtF.js +1 -0
  278. package/ui-dist/assets/wardleyDiagram-VM6X3IG4-BJuisjH-.js +78 -0
  279. package/ui-dist/assets/xychartDiagram-S5SC5T6Z-hiDu0XBA.js +7 -0
  280. package/ui-dist/assets/zh-CN-LNUGB5OW-DyyyDDxj.js +10 -0
  281. package/ui-dist/assets/zh-HK-E62DVLB3-Ch2pxiFR.js +1 -0
  282. package/ui-dist/assets/zh-TW-RAJ6MFWO-CSf1_B6H.js +9 -0
  283. package/ui-dist/fonts/Assistant/Assistant-Bold.woff2 +0 -0
  284. package/ui-dist/fonts/Assistant/Assistant-Medium.woff2 +0 -0
  285. package/ui-dist/fonts/Assistant/Assistant-Regular.woff2 +0 -0
  286. package/ui-dist/fonts/Assistant/Assistant-SemiBold.woff2 +0 -0
  287. package/ui-dist/fonts/Cascadia/CascadiaCode-Regular.woff2 +0 -0
  288. package/ui-dist/fonts/ComicShanns/ComicShanns-Regular-279a7b317d12eb88de06167bd672b4b4.woff2 +0 -0
  289. package/ui-dist/fonts/ComicShanns/ComicShanns-Regular-6e066e8de2ac57ea9283adb9c24d7f0c.woff2 +0 -0
  290. package/ui-dist/fonts/ComicShanns/ComicShanns-Regular-dc6a8806fa96795d7b3be5026f989a17.woff2 +0 -0
  291. package/ui-dist/fonts/ComicShanns/ComicShanns-Regular-fcb0fc02dcbee4c9846b3e2508668039.woff2 +0 -0
  292. package/ui-dist/fonts/Excalifont/Excalifont-Regular-349fac6ca4700ffec595a7150a0d1e1d.woff2 +0 -0
  293. package/ui-dist/fonts/Excalifont/Excalifont-Regular-3f2c5db56cc93c5a6873b1361d730c16.woff2 +0 -0
  294. package/ui-dist/fonts/Excalifont/Excalifont-Regular-41b173a47b57366892116a575a43e2b6.woff2 +0 -0
  295. package/ui-dist/fonts/Excalifont/Excalifont-Regular-623ccf21b21ef6b3a0d87738f77eb071.woff2 +0 -0
  296. package/ui-dist/fonts/Excalifont/Excalifont-Regular-a88b72a24fb54c9f94e3b5fdaa7481c9.woff2 +0 -0
  297. package/ui-dist/fonts/Excalifont/Excalifont-Regular-b9dcf9d2e50a1eaf42fc664b50a3fd0d.woff2 +0 -0
  298. package/ui-dist/fonts/Excalifont/Excalifont-Regular-be310b9bcd4f1a43f571c46df7809174.woff2 +0 -0
  299. package/ui-dist/fonts/Liberation/LiberationSans-Regular.woff2 +0 -0
  300. package/ui-dist/fonts/Lilita/Lilita-Regular-i7dPIFZ9Zz-WBtRtedDbYE98RXi4EwSsbg.woff2 +0 -0
  301. package/ui-dist/fonts/Lilita/Lilita-Regular-i7dPIFZ9Zz-WBtRtedDbYEF8RXi4EwQ.woff2 +0 -0
  302. package/ui-dist/fonts/Nunito/Nunito-Regular-XRXI3I6Li01BKofiOc5wtlZ2di8HDIkhdTA3j6zbXWjgevT5.woff2 +0 -0
  303. package/ui-dist/fonts/Nunito/Nunito-Regular-XRXI3I6Li01BKofiOc5wtlZ2di8HDIkhdTQ3j6zbXWjgeg.woff2 +0 -0
  304. package/ui-dist/fonts/Nunito/Nunito-Regular-XRXI3I6Li01BKofiOc5wtlZ2di8HDIkhdTk3j6zbXWjgevT5.woff2 +0 -0
  305. package/ui-dist/fonts/Nunito/Nunito-Regular-XRXI3I6Li01BKofiOc5wtlZ2di8HDIkhdTo3j6zbXWjgevT5.woff2 +0 -0
  306. package/ui-dist/fonts/Nunito/Nunito-Regular-XRXI3I6Li01BKofiOc5wtlZ2di8HDIkhdTs3j6zbXWjgevT5.woff2 +0 -0
  307. package/ui-dist/fonts/Virgil/Virgil-Regular.woff2 +0 -0
  308. package/ui-dist/index.html +14 -0
@@ -0,0 +1,75 @@
1
+ # Layout
2
+
3
+ **Describe the graph. Let the bridge place it.**
4
+
5
+ Placing twenty boxes by hand means choosing twenty pairs of coordinates one at a
6
+ time, and it comes out looking like it: near-misses, drifting baselines, arrows
7
+ crossing for no reason. You cannot see the canvas, so you cannot see it happen.
8
+
9
+ ## The shape of the work
10
+
11
+ 1. Create the elements with `role` and `label`. Give them ids you can refer to.
12
+ Coordinates can be anything — put them all at the origin if you like.
13
+ 2. Connect them with `chalk_connect`.
14
+ 3. Call `chalk_arrange` with `op: "layout-layered"` and the ids.
15
+
16
+ The layout takes ranks from the direction of the arrows, orders within a rank to
17
+ reduce crossings, and spaces from the house metrics. It is deterministic: the
18
+ same graph lands the same way twice, so a re-run does not shuffle a diagram the
19
+ user has started reading.
20
+
21
+ Above roughly eight nodes, hand-placement is worse than this in every case. Below
22
+ that it is a coin toss, and the layout is still less work.
23
+
24
+ ## Placing by hand
25
+
26
+ Sometimes the position *is* the meaning — a timeline, a layered stack, a
27
+ deliberate before/after pair. Then place explicitly, and keep to the grid the
28
+ house style uses: 60 px between columns, 100 px between rows. Coordinates that
29
+ are multiples of 20 stay aligned when the user nudges something.
30
+
31
+ Two things worth knowing:
32
+
33
+ - **x grows right, y grows down.** A box at `y: 40` is *above* one at `y: 300`.
34
+ - **The origin is not special.** Negative coordinates are fine, and are often the
35
+ tidiest way to extend a diagram leftwards without moving what is already there.
36
+
37
+ ## Arranging what already exists
38
+
39
+ `chalk_arrange` also does the small tidying jobs, on the elements you name:
40
+
41
+ | Want | Op |
42
+ |---|---|
43
+ | a ragged column straightened | `align-left`, `align-center-v` |
44
+ | a row levelled | `align-top`, `align-center-h` |
45
+ | even gaps | `distribute-h`, `distribute-v` |
46
+ | a set of similar things laid out | `grid` |
47
+ | something brought out from behind | `bring-to-front`, `send-to-back` |
48
+
49
+ These are the calls to reach for after the user says "this is a mess". They
50
+ change nothing but geometry, so they are safe on elements the user drew — but
51
+ they *will* move things the user positioned deliberately, so say what you are
52
+ about to straighten.
53
+
54
+ ## Frames and groups
55
+
56
+ - A **frame** is a labelled region a reader sees. Use it to split a diagram into
57
+ parts that can be understood one at a time.
58
+ - A **group** is elements that move together. The reader never sees it.
59
+
60
+ If you are adding a frame so that things move together, you want a group. If you
61
+ are adding a group so the reader understands a boundary, you want a frame.
62
+
63
+ ## Adding to a diagram that already exists
64
+
65
+ Read it first — `chalk_describe_scene` gives you every element's bounds. Then put
66
+ new work in empty space rather than on top of something, and connect it. Running
67
+ a layout over a diagram the user has already arranged will move their work; if
68
+ the result needs one, arrange only the elements you added.
69
+
70
+ ## Do not use Mermaid
71
+
72
+ Chalkbridge has no Mermaid import, deliberately. The conversion works by
73
+ rendering Mermaid to SVG and reading the geometry back, so what you would get is
74
+ Mermaid's layout — the flat, evenly-spaced look this canvas exists to avoid.
75
+ Describe the graph and arrange it.
@@ -0,0 +1,85 @@
1
+ # Styling
2
+
3
+ The short version: **say what a thing is, not what colour it should be.**
4
+
5
+ ## Roles, not hex
6
+
7
+ ```json
8
+ { "type": "rectangle", "x": 120, "y": 140, "role": "compute",
9
+ "label": "Distiller" }
10
+ ```
11
+
12
+ | Role | Means | Reads as |
13
+ |---|---|---|
14
+ | `compute` | it runs code — services, workers, functions | blue |
15
+ | `storage` | it holds state — databases, buckets, caches | green |
16
+ | `edge` | it moves things — queues, gateways, load balancers | amber |
17
+ | `external` | not yours — third-party APIs, the user, another team's system | plain outline |
18
+ | `hotspot` | the thing under discussion — the bug, the bottleneck, the risk | red |
19
+
20
+ A role sets stroke, fill, weight, roughness and corner radius together, so
21
+ everything you draw looks like it came from the same hand as everything the user
22
+ drew. Passing raw colours instead gets you a diagram that is *your* colours, and
23
+ the next diagram will be slightly different ones.
24
+
25
+ `hotspot` is worth using sparingly and deliberately. If three things are red,
26
+ nothing is.
27
+
28
+ ## When to override
29
+
30
+ Every Excalidraw property is accepted on the same element object, and an explicit
31
+ value always beats what the role implies. Override when the *deviation carries
32
+ meaning*:
33
+
34
+ ```json
35
+ { "type": "rectangle", "x": 120, "y": 140, "role": "compute",
36
+ "label": "Legacy sync worker", "strokeStyle": "dashed", "opacity": 60,
37
+ "link": "https://github.com/you/nexus/blob/main/src/legacy/sync.ts" }
38
+ ```
39
+
40
+ Conventions that read the same way to everyone:
41
+
42
+ - **`strokeStyle: "dashed"`** — planned, deprecated, or not really there yet.
43
+ - **`opacity: 60`** — deliberately in the background. Faded means "context", not
44
+ "less important to me personally".
45
+ - **`strokeWidth: 4`** — the spine of the diagram, the path the reader should
46
+ follow first.
47
+ - **`backgroundColor: "transparent"`** — a container, not a thing.
48
+
49
+ Override for decoration and you have spent the diagram's whole vocabulary on
50
+ nothing, and the next real distinction has nothing left to say it with.
51
+
52
+ ## Links are the best thing here
53
+
54
+ `link` on any element turns it into a jump to a file, a PR, a dashboard, a doc:
55
+
56
+ ```json
57
+ { "link": "https://github.com/you/nexus/blob/main/src/distiller/index.ts" }
58
+ ```
59
+
60
+ A box labelled "Distiller" is a claim. A box labelled "Distiller" that opens the
61
+ file is a diagram someone can still trust in six months. Link generously — repo
62
+ files especially. Linked elements are flagged `↗link` in `chalk_describe_scene`,
63
+ so you can see at a glance which parts of a diagram are anchored to the code and
64
+ which are just assertions.
65
+
66
+ ## Text
67
+
68
+ Font, size and face come from the house style; you rarely need to set them. When
69
+ you do:
70
+
71
+ - `fontSize: 16` for a note that should not compete with the labels.
72
+ - `fontSize: 28` for a heading over a region.
73
+
74
+ Do not use font size for emphasis inside a diagram — use `role: "hotspot"` or
75
+ `strokeWidth`, which stay legible when the canvas is zoomed out.
76
+
77
+ ## Locked and dark mode
78
+
79
+ `locked: true` stops an element being dragged. Use it for backdrops and legends —
80
+ things a user will click by accident and never mean to move. It is not a
81
+ permission system; the user can unlock anything.
82
+
83
+ Colours are chosen from the palette Excalidraw itself uses, so they hold up in
84
+ both themes. `chalk_scene_settings` can switch the scene between them, but that
85
+ is the user's preference to change — ask before you flip it.
package/package.json ADDED
@@ -0,0 +1,56 @@
1
+ {
2
+ "name": "chalkbridge",
3
+ "version": "1.0.0",
4
+ "type": "module",
5
+ "description": "Self-hosted Excalidraw canvas for Claude Code to draw and reason on architecture diagrams.",
6
+ "license": "MIT",
7
+ "keywords": [
8
+ "excalidraw",
9
+ "mcp",
10
+ "claude",
11
+ "diagram",
12
+ "architecture",
13
+ "whiteboard",
14
+ "model-context-protocol"
15
+ ],
16
+ "engines": {
17
+ "node": ">=22"
18
+ },
19
+ "files": [
20
+ "dist",
21
+ "!dist/**/*.map",
22
+ "ui-dist",
23
+ "guides",
24
+ "packs",
25
+ "THIRD-PARTY-NOTICES.md"
26
+ ],
27
+ "bin": {
28
+ "chalkbridge": "./dist/cli.js"
29
+ },
30
+ "scripts": {
31
+ "build": "node ../../packaging/copy-guides.mjs && node ../../packaging/copy-packs.mjs && tsup",
32
+ "typecheck": "tsc -p tsconfig.json",
33
+ "clean": "node -e \"for (const d of ['dist','guides','packs']) require('node:fs').rmSync(d,{recursive:true,force:true})\""
34
+ },
35
+ "dependencies": {
36
+ "@fastify/static": "^10.1.3",
37
+ "@fastify/websocket": "^11.3.0",
38
+ "@modelcontextprotocol/sdk": "^1.30.0",
39
+ "chokidar": "^5.0.0",
40
+ "commander": "^15.0.0",
41
+ "fastify": "^5.12.1",
42
+ "fractional-indexing": "3.2.0",
43
+ "open": "^11.0.1",
44
+ "yaml": "^2.9.0",
45
+ "zod": "^4.4.3"
46
+ },
47
+ "devDependencies": {
48
+ "@chalkbridge/pack-toolkit": "workspace:*",
49
+ "@chalkbridge/shared": "workspace:*",
50
+ "@excalidraw/excalidraw": "0.18.1",
51
+ "react": "^18.3.1",
52
+ "react-dom": "^18.3.1",
53
+ "tsup": "^8.5.1",
54
+ "typescript": "^7.0.2"
55
+ }
56
+ }
@@ -0,0 +1,26 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Chalkbridge contributors
4
+
5
+ The SVG files in this directory were drawn for Chalkbridge and are released under the
6
+ same licence as the project itself. They are bundled into the `chalkbridge` npm package
7
+ (DISTRIBUTION.md §1) rather than published separately, because a diagram tool that can
8
+ draw nothing on the day it is installed has not finished installing.
9
+
10
+ Permission is hereby granted, free of charge, to any person obtaining a copy
11
+ of this software and associated documentation files (the "Software"), to deal
12
+ in the Software without restriction, including without limitation the rights
13
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
14
+ copies of the Software, and to permit persons to whom the Software is
15
+ furnished to do so, subject to the following conditions:
16
+
17
+ The above copyright notice and this permission notice shall be included in all
18
+ copies or substantial portions of the Software.
19
+
20
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
23
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
25
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
26
+ SOFTWARE.
@@ -0,0 +1,115 @@
1
+ {
2
+ "name": "generic",
3
+ "kind": "bundled",
4
+ "version": "1.0.0",
5
+ "license": "MIT",
6
+ "source": "bundled with chalkbridge",
7
+ "description": "The hand-drawn set that ships inside chalkbridge. Enough to draw a system on day one without installing anything (DISTRIBUTION.md §1).",
8
+ "svgDir": "svg",
9
+ "tagRules": { "fromPathSegments": false, "strip": [] },
10
+ "synonyms": {
11
+ "user": ["person", "customer", "actor", "human", "account", "client", "visitor"],
12
+ "users": ["team", "group", "people", "actors", "customers", "audience"],
13
+ "database": [
14
+ "db",
15
+ "sql",
16
+ "postgres",
17
+ "mysql",
18
+ "sqlite",
19
+ "store",
20
+ "table",
21
+ "persistence",
22
+ "rdbms"
23
+ ],
24
+ "cache": ["redis", "memcached", "memory", "hot", "ttl", "lookaside"],
25
+ "queue": [
26
+ "sqs",
27
+ "messaging",
28
+ "message",
29
+ "broker",
30
+ "kafka",
31
+ "pubsub",
32
+ "buffer",
33
+ "async",
34
+ "topic",
35
+ "backlog"
36
+ ],
37
+ "bucket": ["s3", "blob", "object", "archive", "storage", "cold"],
38
+ "server": [
39
+ "host",
40
+ "vm",
41
+ "machine",
42
+ "node",
43
+ "backend",
44
+ "service",
45
+ "compute",
46
+ "instance",
47
+ "daemon"
48
+ ],
49
+ "worker": [
50
+ "job",
51
+ "background",
52
+ "processor",
53
+ "serverless",
54
+ "lambda",
55
+ "function",
56
+ "faas",
57
+ "task",
58
+ "consumer",
59
+ "gear"
60
+ ],
61
+ "load-balancer": [
62
+ "lb",
63
+ "nginx",
64
+ "ingress",
65
+ "proxy",
66
+ "router",
67
+ "fanout",
68
+ "distribute",
69
+ "haproxy",
70
+ "envoy"
71
+ ],
72
+ "cron": ["schedule", "scheduled", "timer", "clock", "periodic", "nightly", "batch", "interval"],
73
+ "browser": ["web", "client", "frontend", "ui", "page", "spa", "dashboard"],
74
+ "mobile": ["phone", "app", "ios", "android", "device", "handset"],
75
+ "globe": ["internet", "external", "public", "world", "dns", "cdn", "network", "edge"],
76
+ "cloud": [
77
+ "saas",
78
+ "provider",
79
+ "hosted",
80
+ "external",
81
+ "aws",
82
+ "gcp",
83
+ "azure",
84
+ "vendor",
85
+ "thirdparty"
86
+ ],
87
+ "api": [
88
+ "endpoint",
89
+ "rest",
90
+ "graphql",
91
+ "gateway",
92
+ "http",
93
+ "interface",
94
+ "contract",
95
+ "rpc",
96
+ "grpc"
97
+ ],
98
+ "lock": ["auth", "security", "secure", "private", "encrypted", "permission", "acl"],
99
+ "key": ["credential", "token", "secret", "apikey", "access", "signing", "kms"],
100
+ "file": ["document", "doc", "artifact", "log", "report", "csv", "payload"],
101
+ "folder": ["directory", "repo", "namespace", "group", "package", "module"],
102
+ "alert": ["warning", "error", "incident", "alarm", "oncall", "hotspot", "failure", "pager"],
103
+ "metrics": [
104
+ "dashboard",
105
+ "chart",
106
+ "telemetry",
107
+ "observability",
108
+ "monitoring",
109
+ "analytics",
110
+ "grafana",
111
+ "stats"
112
+ ]
113
+ },
114
+ "icons": {}
115
+ }
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" fill="none" stroke="#1e1e1e" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M24 7L44 40H4z"/><path d="M24 20v9"/><path d="M24 34h.01"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" fill="none" stroke="#1e1e1e" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M17 11c-5 0-6 3-6 6.5S9.5 22 6.5 24c3 2 4.5 3 4.5 6.5S12 37 17 37"/><path d="M31 11c5 0 6 3 6 6.5s1.5 4.5 4.5 6.5c-3 2-4.5 3-4.5 6.5S36 37 31 37"/><path d="M22 19.5h.01M26 24h.01M22 28.5h.01"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" fill="none" stroke="#1e1e1e" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="5" y="9" width="38" height="30" rx="3"/><path d="M5 18h38"/><path d="M11 13.5h.01M16 13.5h.01M21 13.5h.01"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" fill="none" stroke="#1e1e1e" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M9 13h30l-3.5 26.5c-.2 1.4-1.4 2.5-2.9 2.5H15.4c-1.5 0-2.7-1.1-2.9-2.5z"/><ellipse cx="24" cy="12" rx="15" ry="5"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" fill="none" stroke="#1e1e1e" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="7" y="11" width="34" height="26" rx="4"/><path d="M25 16l-6 9h6l-3 8 9-11h-6z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" fill="none" stroke="#1e1e1e" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M15.5 37C10.3 37 6 32.9 6 27.9c0-4.6 3.6-8.4 8.3-9 1.6-5.5 6.8-9.4 12.9-9.4 7.2 0 13.1 5.5 13.4 12.4 3.2 1 5.4 3.9 5.4 7.2 0 4.3-3.6 7.9-8.1 7.9z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" fill="none" stroke="#1e1e1e" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="24" cy="24" r="17"/><path d="M24 13.5V24l7 4.5"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" fill="none" stroke="#1e1e1e" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><ellipse cx="24" cy="12" rx="14" ry="5.5"/><path d="M10 12v24c0 3 6.3 5.5 14 5.5s14-2.5 14-5.5V12"/><path d="M10 24c0 3 6.3 5.5 14 5.5s14-2.5 14-5.5"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" fill="none" stroke="#1e1e1e" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 5h16l9 9v29H12z"/><path d="M28 5v9h9"/><path d="M18 25h12M18 32h12"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" fill="none" stroke="#1e1e1e" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12a3 3 0 0 1 3-3h10l4 5h17a3 3 0 0 1 3 3v20a3 3 0 0 1-3 3H8a3 3 0 0 1-3-3z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" fill="none" stroke="#1e1e1e" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="24" cy="24" r="17"/><path d="M7 24h34"/><path d="M24 7c4.6 4.9 7 10.6 7 17s-2.4 12.1-7 17c-4.6-4.9-7-10.6-7-17s2.4-12.1 7-17z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" fill="none" stroke="#1e1e1e" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="16" cy="20" r="9"/><path d="M22.4 26.4L40 44"/><path d="M35 39l4-4M30 34l4-4"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" fill="none" stroke="#1e1e1e" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="17" y="4" width="14" height="10" rx="2"/><rect x="3" y="34" width="12" height="10" rx="2"/><rect x="18" y="34" width="12" height="10" rx="2"/><rect x="33" y="34" width="12" height="10" rx="2"/><path d="M24 14v8M9 34v-4h30v4M24 26v8"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" fill="none" stroke="#1e1e1e" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="21" width="30" height="21" rx="4"/><path d="M16 21v-6a8 8 0 0 1 16 0v6"/><path d="M24 29v5"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" fill="none" stroke="#1e1e1e" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M6 41h36"/><path d="M13 41V26M22 41V14M31 41V31M40 41V20"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" fill="none" stroke="#1e1e1e" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="14" y="4" width="20" height="40" rx="4"/><path d="M21 8.5h6"/><path d="M24 38.5h.01"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" fill="none" stroke="#1e1e1e" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="6" y="12" width="9" height="24" rx="2"/><rect x="19.5" y="12" width="9" height="24" rx="2"/><rect x="33" y="12" width="9" height="24" rx="2"/><path d="M15.5 24h3.5M29 24h3.5"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" fill="none" stroke="#1e1e1e" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="7" y="9" width="34" height="13" rx="3"/><rect x="7" y="26" width="34" height="13" rx="3"/><path d="M13 15.5h.01M13 32.5h.01"/><path d="M20 15.5h14M20 32.5h14"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" fill="none" stroke="#1e1e1e" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="24" cy="17" r="7"/><path d="M10 40c1.5-8 7-12 14-12s12.5 4 14 12"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" fill="none" stroke="#1e1e1e" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="19" cy="17" r="6.5"/><path d="M6 40c1.4-7.4 6.4-11 13-11s11.6 3.6 13 11"/><path d="M32 12.5a6.5 6.5 0 0 1 .3 12.4"/><path d="M35 30c4.4 1.2 7.2 4.5 8 10"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" fill="none" stroke="#1e1e1e" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="24" cy="24" r="6"/><path d="M24 5.5v5M24 37.5v5M42.5 24h-5M10.5 24h-5M37.1 10.9l-3.5 3.5M14.4 33.6l-3.5 3.5M37.1 37.1l-3.5-3.5M14.4 14.4l-3.5-3.5"/></svg>
@@ -0,0 +1,63 @@
1
+ # AWS Architecture Icons — a RECIPE, not content. There are no SVGs in this file and
2
+ # there never will be (CLAUDE.md invariant 36, CLAUDE.ARCHITECTURE.md L5).
3
+ #
4
+ # The terms permit using these icons *in* architecture diagrams while restricting
5
+ # redistribution and modification. Chalkbridge therefore ships the knowledge of how to
6
+ # ingest the set and asks the user to download it themselves — one extra step for them,
7
+ # zero licensing exposure for this project.
8
+ name: aws
9
+ license: "AWS Architecture Icons — see the AWS trademark and asset terms at the source URL"
10
+ source: https://aws.amazon.com/architecture/icons/
11
+ instructions:
12
+ - "AWS Architecture Icons are not auto-installable: the vendor terms do not permit Chalkbridge to redistribute or fetch them for you."
13
+ - "1. Download the Asset Package from https://aws.amazon.com/architecture/icons/ and accept the terms there."
14
+ - "2. Unzip it anywhere you like."
15
+ - "3. Run: chalkbridge icons install aws --from <path-to-the-unzipped-folder>"
16
+ - "Or call chalk_install_pack again with `from` set to that path once the user has downloaded it."
17
+ tagRules:
18
+ # Arch_Compute/Arch_AWS-Lambda_48.svg → name "lambda", tags including "compute"
19
+ fromPathSegments: true
20
+ strip:
21
+ - "Arch_"
22
+ - "Arch-Category_"
23
+ - "Res_"
24
+ - "_48"
25
+ - "_64"
26
+ - "_32"
27
+ - "_16"
28
+ - "AWS-"
29
+ - "Amazon-"
30
+ - "-Light"
31
+ - "-Dark"
32
+ - "_Light"
33
+ - "_Dark"
34
+ synonyms:
35
+ lambda: [serverless, function, faas, worker, job]
36
+ sqs: [queue, messaging, broker, async, buffer]
37
+ sns: [pubsub, topic, notification, fanout]
38
+ eventbridge: [events, bus, routing, trigger]
39
+ s3: [bucket, object, blob, storage, archive]
40
+ dynamodb: [database, nosql, keyvalue, table, store]
41
+ rds: [database, sql, postgres, mysql, relational]
42
+ aurora: [database, sql, relational, cluster]
43
+ elasticache: [cache, redis, memcached, memory]
44
+ ec2: [server, vm, instance, compute, host]
45
+ ecs: [container, docker, cluster, orchestration]
46
+ eks: [kubernetes, container, cluster, orchestration]
47
+ fargate: [container, serverless, compute]
48
+ cloudfront: [cdn, edge, cache, distribution]
49
+ route-53: [dns, routing, domain, resolver]
50
+ api-gateway: [api, endpoint, rest, http, gateway]
51
+ elastic-load-balancing: [lb, "load-balancer", proxy, ingress, alb, nlb]
52
+ cognito: [auth, identity, login, users, oidc]
53
+ iam: [auth, permission, policy, role, security]
54
+ kms: [key, secret, encryption, crypto]
55
+ secrets-manager: [secret, credential, token, vault]
56
+ cloudwatch: [metrics, monitoring, logs, observability, alarm]
57
+ step-functions: [workflow, orchestration, "state-machine", saga]
58
+ kinesis: [stream, streaming, events, ingest]
59
+ glue: [etl, pipeline, transform, catalog]
60
+ athena: [query, analytics, sql, adhoc]
61
+ redshift: [warehouse, analytics, olap, database]
62
+ sagemaker: [ml, model, training, inference, ai]
63
+ bedrock: [ai, llm, model, inference, genai]
@@ -0,0 +1,49 @@
1
+ # Microsoft Azure architecture icons — a RECIPE, not content. No SVGs here, ever
2
+ # (CLAUDE.md invariant 36, CLAUDE.ARCHITECTURE.md L5).
3
+ #
4
+ # Microsoft permits the icons in architecture diagrams and explicitly forbids
5
+ # redistributing them as an icon set, which is precisely the line a package manager
6
+ # would cross on the user's behalf if this file contained artwork.
7
+ name: azure
8
+ license: "Microsoft Azure architecture icons — permitted in architecture diagrams, redistribution not permitted; see the source URL"
9
+ source: https://learn.microsoft.com/en-us/azure/architecture/icons/
10
+ instructions:
11
+ - "Azure architecture icons are not auto-installable: Microsoft permits them in diagrams but not as a redistributed icon set."
12
+ - "1. Download the icon package from https://learn.microsoft.com/en-us/azure/architecture/icons/ and accept the terms there."
13
+ - "2. Unzip it anywhere you like."
14
+ - "3. Run: chalkbridge icons install azure --from <path-to-the-unzipped-folder>"
15
+ - "Or call chalk_install_pack again with `from` set to that path once the user has downloaded it."
16
+ tagRules:
17
+ # icons/compute/10021-icon-service-Function-Apps.svg → name "function-apps"
18
+ fromPathSegments: true
19
+ strip:
20
+ - "icon-service-"
21
+ - "-icon-service-"
22
+ - "Azure-"
23
+ - "_Light"
24
+ - "_Dark"
25
+ synonyms:
26
+ function-apps: [serverless, function, faas, lambda, worker]
27
+ service-bus: [queue, messaging, broker, topic, async]
28
+ event-grid: [events, bus, routing, pubsub, trigger]
29
+ event-hubs: [stream, streaming, ingest, kafka]
30
+ storage-accounts: [bucket, blob, object, storage, archive]
31
+ sql-database: [database, sql, relational, store]
32
+ cosmos-db: [database, nosql, document, global, store]
33
+ cache-for-redis: [cache, redis, memory, hot]
34
+ virtual-machine: [server, vm, instance, compute, host]
35
+ kubernetes-services: [kubernetes, aks, container, cluster, orchestration]
36
+ container-instances: [container, docker, compute]
37
+ app-services: [webapp, server, host, backend]
38
+ front-door: [cdn, edge, "load-balancer", routing, waf]
39
+ application-gateway: [lb, "load-balancer", proxy, ingress, waf]
40
+ dns-zones: [dns, routing, domain, resolver]
41
+ api-management: [api, gateway, endpoint, rest, throttling]
42
+ active-directory: [auth, identity, login, sso, entra]
43
+ key-vault: [key, secret, credential, encryption, vault]
44
+ monitor: [metrics, monitoring, logs, observability, alerts]
45
+ logic-apps: [workflow, orchestration, integration, automation]
46
+ data-factory: [etl, pipeline, transform, ingest]
47
+ synapse-analytics: [warehouse, analytics, olap, database]
48
+ machine-learning: [ml, model, training, inference, ai]
49
+ openai: [ai, llm, model, inference, genai]
@@ -0,0 +1,54 @@
1
+ # Devicon — MIT, and therefore fully automatic (DISTRIBUTION.md §2.1).
2
+ #
3
+ # `npmPackage` names the upstream project's own package rather than an
4
+ # `@chalkbridge/pack-devicon` republish. Devicon already ships its SVGs to npm under a
5
+ # permissive licence; forking that to put our scope on it would be a copy to keep in
6
+ # step for no benefit to anyone.
7
+ name: devicon
8
+ kind: npm
9
+ license: MIT
10
+ source: https://github.com/devicons/devicon
11
+ npmPackage: devicon
12
+ svgDir: icons
13
+ # Devicon ships up to five renderings of every technology — original, plain, line,
14
+ # wordmark, and the -colored variants of each. Without this filter they all normalise to
15
+ # one name, four are skipped as duplicates, and *which* one survives depends on the order
16
+ # readdir happened to return. The original mark is the one people mean.
17
+ include:
18
+ - "-original.svg"
19
+ tagRules:
20
+ # icons/postgresql/postgresql-original.svg → name "postgresql", tag "postgresql"
21
+ fromPathSegments: true
22
+ strip:
23
+ - "-original"
24
+ - "-plain"
25
+ - "-line"
26
+ - "-wordmark"
27
+ - "-colored"
28
+ synonyms:
29
+ postgresql: [database, sql, postgres, relational, store]
30
+ mysql: [database, sql, relational, store]
31
+ sqlite: [database, sql, embedded, file]
32
+ mongodb: [database, nosql, document, store]
33
+ redis: [cache, memory, keyvalue, queue]
34
+ kafka: [queue, stream, broker, messaging, events]
35
+ rabbitmq: [queue, broker, messaging, amqp]
36
+ elasticsearch: [search, index, query, logs]
37
+ docker: [container, image, runtime, build]
38
+ kubernetes: [container, cluster, orchestration, k8s]
39
+ nginx: ["load-balancer", proxy, ingress, webserver]
40
+ terraform: [infrastructure, iac, provisioning]
41
+ github: [repo, ci, source, vcs]
42
+ gitlab: [repo, ci, source, vcs]
43
+ jenkins: [ci, build, pipeline]
44
+ grafana: [metrics, dashboard, observability, monitoring]
45
+ prometheus: [metrics, monitoring, alerting, timeseries]
46
+ react: [frontend, ui, spa, client]
47
+ nodejs: [backend, server, javascript, runtime]
48
+ python: [backend, script, service]
49
+ go: [backend, service, golang]
50
+ rust: [backend, service, systems]
51
+ typescript: [frontend, backend, language]
52
+ amazonwebservices: [aws, cloud, provider]
53
+ googlecloud: [gcp, cloud, provider]
54
+ azure: [cloud, provider, microsoft]