archyne 0.2.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 (92) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +249 -0
  3. package/THIRD-PARTY-NOTICES.md +302 -0
  4. package/bin/archyne.mjs +179 -0
  5. package/desktop/main.cjs +141 -0
  6. package/dist/assets/_commonjs-dynamic-modules-TDtrdbi3.js +1 -0
  7. package/dist/assets/abnfDiagram-VRR7QNED-DxJn5x30.js +1 -0
  8. package/dist/assets/ar-DHpnjuQB.js +1 -0
  9. package/dist/assets/arc-Bi9nYi75.js +1 -0
  10. package/dist/assets/architectureDiagram-ZJ3FMSHR-CVVsX69f.js +36 -0
  11. package/dist/assets/blockDiagram-677ZJIJ3-CvyOVrtD.js +132 -0
  12. package/dist/assets/c4Diagram-LMCZKHZV-CeTXI2L5.js +10 -0
  13. package/dist/assets/channel-CgQghNFn.js +1 -0
  14. package/dist/assets/chunk-2Q5K7J3B-QWLx0LNh.js +1 -0
  15. package/dist/assets/chunk-32BRIVSS-Cx7PNJc5.js +1 -0
  16. package/dist/assets/chunk-5VM5RSS4-B-JlXrm9.js +15 -0
  17. package/dist/assets/chunk-EX3LRPZG-BZir2lEZ.js +231 -0
  18. package/dist/assets/chunk-JWPE2WC7-Bs6js5ed.js +1 -0
  19. package/dist/assets/chunk-MOJQB5TN-M9vORODQ.js +88 -0
  20. package/dist/assets/chunk-RYQCIY6F-C23BZB1s.js +1 -0
  21. package/dist/assets/chunk-V7JOEXUC-DP9DCEHY.js +206 -0
  22. package/dist/assets/chunk-VR4S4FIN-CXMOwHEw.js +1 -0
  23. package/dist/assets/chunk-XXDRQBXY-C-XBHYFW.js +1 -0
  24. package/dist/assets/classDiagram-OUVF2IWQ-C9iVyfdZ.js +1 -0
  25. package/dist/assets/classDiagram-v2-EOCWNBFH-C9iVyfdZ.js +1 -0
  26. package/dist/assets/cose-bilkent-JH36ORCC-DcImuxgn.js +1 -0
  27. package/dist/assets/cynefin-VYW2F7L2-CKc9sK58.js +178 -0
  28. package/dist/assets/cynefinDiagram-TSTJHNR4-_O9mLQTK.js +62 -0
  29. package/dist/assets/cytoscape.esm-DTSO7Bv0.js +331 -0
  30. package/dist/assets/dagre-VKFMJZFB-CMh1gN_B.js +4 -0
  31. package/dist/assets/de-BbF3ozkg.js +1 -0
  32. package/dist/assets/defaultLocale-DX6XiGOO.js +1 -0
  33. package/dist/assets/diagram-FQU43EPY-Cay_5WYD.js +3 -0
  34. package/dist/assets/diagram-G47NLZAW-DT1H2wTP.js +24 -0
  35. package/dist/assets/diagram-NH7WQ7WH-xuvv_D9N.js +24 -0
  36. package/dist/assets/diagram-OA4YK3LP-Bio-u38F.js +30 -0
  37. package/dist/assets/diagram-WEI45ONY-CD_QL4nf.js +41 -0
  38. package/dist/assets/ebnfDiagram-CCIWWBDH-CkGukNGk.js +1 -0
  39. package/dist/assets/elk-api-CF2Hej0P.js +1 -0
  40. package/dist/assets/elk-worker.min-BENGc9gn.js +22 -0
  41. package/dist/assets/elk-worker.min-D32ngsh5.js +1 -0
  42. package/dist/assets/elk.bundled-ajwJAWsK.js +24 -0
  43. package/dist/assets/erDiagram-Q63AITRT-CQGtCq5E.js +85 -0
  44. package/dist/assets/es-BB-VRPmB.js +1 -0
  45. package/dist/assets/flowDiagram-23GEKE2U-E3_Lcv6A.js +156 -0
  46. package/dist/assets/ganttDiagram-NO4QXBWP-AwojtMZ1.js +292 -0
  47. package/dist/assets/gitGraphDiagram-IHSO6WYX-D0klOOBk.js +106 -0
  48. package/dist/assets/graph-C9eacEi8.js +1 -0
  49. package/dist/assets/icon-names.generated-Ch4zjdI9.js +1 -0
  50. package/dist/assets/index--A4RGzRu.js +277 -0
  51. package/dist/assets/index-B29u660W.js +1 -0
  52. package/dist/assets/index-BDuFgzVF.js +1 -0
  53. package/dist/assets/index-C-tHkbn_.js +1 -0
  54. package/dist/assets/index-C1mNJrF6.js +1 -0
  55. package/dist/assets/index-CbxBfG1v.css +1 -0
  56. package/dist/assets/index-XppXLvIK.js +1 -0
  57. package/dist/assets/infoDiagram-FWYZ7A6U-2op9tD2c.js +2 -0
  58. package/dist/assets/init-Gi6I4Gst.js +1 -0
  59. package/dist/assets/ishikawaDiagram-FXEZZL3T-B1UsYLso.js +70 -0
  60. package/dist/assets/it-z1Rr2vYL.js +1 -0
  61. package/dist/assets/ja-DMZcFTAH.js +1 -0
  62. package/dist/assets/journeyDiagram-5HDEW3XC-CZ1oYiAr.js +139 -0
  63. package/dist/assets/kanban-definition-HUTT4EX6-B-XWcB9M.js +89 -0
  64. package/dist/assets/katex-C5jXJg4s.js +257 -0
  65. package/dist/assets/layout-DEXfKzaS.js +1 -0
  66. package/dist/assets/linear-GMYYDbJv.js +1 -0
  67. package/dist/assets/map-Czzmt4hB.js +1 -0
  68. package/dist/assets/mermaid.core-pPiwjbNO.js +314 -0
  69. package/dist/assets/mindmap-definition-LN4V7U3C-BB4SGbrE.js +96 -0
  70. package/dist/assets/ordinal-Cboi1Yqb.js +1 -0
  71. package/dist/assets/pegDiagram-2B236MQR-3keJbrGj.js +1 -0
  72. package/dist/assets/pieDiagram-ENE6RG2P-CVi3ig0y.js +39 -0
  73. package/dist/assets/quadrantDiagram-ABIIQ3AL-CPp6gXbB.js +7 -0
  74. package/dist/assets/railroadDiagram-RFXS5EU6-BCILT-8k.js +1 -0
  75. package/dist/assets/requirementDiagram-TGXJPOKE-DgmaKLiT.js +84 -0
  76. package/dist/assets/sankeyDiagram-HTMAVEWB-DHGaI0hQ.js +40 -0
  77. package/dist/assets/sequenceDiagram-DBY2YBRQ-3AycEqxZ.js +162 -0
  78. package/dist/assets/sizeCapture-X5ZJPWSS-uS50b7bJ.js +1 -0
  79. package/dist/assets/stateDiagram-2N3HPSRC-DaBzZNwx.js +1 -0
  80. package/dist/assets/stateDiagram-v2-6OUMAXLB-xJOnXuvC.js +1 -0
  81. package/dist/assets/swimlanes-5IMT3BWC-BR44KNOm.js +2 -0
  82. package/dist/assets/swimlanesDiagram-G3AALYLV-B3xqzED0.js +8 -0
  83. package/dist/assets/timeline-definition-FHXFAJF6-Msxd070e.js +120 -0
  84. package/dist/assets/vennDiagram-L72KCM5P-W9VDq1l8.js +34 -0
  85. package/dist/assets/wardleyDiagram-EHGQE667-DfDvmnIe.js +78 -0
  86. package/dist/assets/xychartDiagram-FW5EYKEG-HwKD44hb.js +7 -0
  87. package/dist/assets/zh-B2oIvhee.js +1 -0
  88. package/dist/embed-demo.html +114 -0
  89. package/dist/index.html +102 -0
  90. package/dist/logo.png +0 -0
  91. package/dist/logo.svg +55 -0
  92. package/package.json +123 -0
@@ -0,0 +1,102 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <!--
7
+ Archyne makes no network requests of its own: everything, including the
8
+ icon packs and mermaid's renderers, is bundled. `connect-src 'self'`
9
+ therefore states a real invariant rather than a hope, and a violation
10
+ means something went wrong.
11
+
12
+ Notes on the loosenings:
13
+ style-src 'unsafe-inline' mermaid injects a <style> per render, and
14
+ the splash below is inline on purpose
15
+ img-src data: blob: exports are produced as data URLs, and the
16
+ preview rasterizes SVG through blobs
17
+ font-src data: html-to-image inlines fonts as data URLs
18
+
19
+ `frame-ancestors` is deliberately absent: it is ignored in a meta tag,
20
+ and Archyne supports being embedded. Operators who want to restrict who
21
+ may frame their deployment should send it as an HTTP header — see the
22
+ self-hosting notes in CONTRIBUTING.md.
23
+ -->
24
+ <meta
25
+ http-equiv="Content-Security-Policy"
26
+ content="
27
+ default-src 'self';
28
+ script-src 'self';
29
+ style-src 'self' 'unsafe-inline';
30
+ img-src 'self' data: blob:;
31
+ font-src 'self' data:;
32
+ connect-src 'self';
33
+ worker-src 'self' blob:;
34
+ object-src 'none';
35
+ base-uri 'none';
36
+ form-action 'none'
37
+ "
38
+ />
39
+ <!-- SVG where supported; the raster stays for engines that ignore it. -->
40
+ <link rel="icon" type="image/svg+xml" href="./logo.svg" />
41
+ <link rel="alternate icon" type="image/png" href="./logo.png" />
42
+ <title>Archyne — a visual editor for Mermaid diagrams</title>
43
+ <style>
44
+ /* static splash, shown until React mounts (styles inline on purpose) */
45
+ #root:empty::after {
46
+ content: "";
47
+ }
48
+ .splash {
49
+ position: fixed;
50
+ inset: 0;
51
+ z-index: 3000;
52
+ display: flex;
53
+ flex-direction: column;
54
+ align-items: center;
55
+ justify-content: center;
56
+ gap: 14px;
57
+ background: #0f1014;
58
+ color: #ebebf0;
59
+ font-family: "Segoe UI", system-ui, sans-serif;
60
+ }
61
+ .splash-mark {
62
+ width: 92px;
63
+ height: 92px;
64
+ animation: splash-bob 1.6s ease-in-out infinite;
65
+ }
66
+ .splash-name {
67
+ font-size: 24px;
68
+ font-weight: 600;
69
+ letter-spacing: -0.01em;
70
+ }
71
+ .splash-sub {
72
+ font-size: 12px;
73
+ color: #999ba8;
74
+ }
75
+ /* The bob is decoration; respect the OS setting. */
76
+ @media (prefers-reduced-motion: reduce) {
77
+ .splash-mark {
78
+ animation: none;
79
+ }
80
+ }
81
+ @keyframes splash-bob {
82
+ 0%,
83
+ 100% {
84
+ transform: translateY(0);
85
+ }
86
+ 50% {
87
+ transform: translateY(-8px);
88
+ }
89
+ }
90
+ </style>
91
+ <script type="module" crossorigin src="./assets/index--A4RGzRu.js"></script>
92
+ <link rel="stylesheet" crossorigin href="./assets/index-CbxBfG1v.css">
93
+ </head>
94
+ <body>
95
+ <div id="root">
96
+ <div class="splash">
97
+ <img class="splash-mark" src="./logo.svg" alt="" />
98
+ <div class="splash-name">Archyne</div>
99
+ </div>
100
+ </div>
101
+ </body>
102
+ </html>
package/dist/logo.png ADDED
Binary file
package/dist/logo.svg ADDED
@@ -0,0 +1,55 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 240 240" role="img" aria-label="Archyne">
2
+ <title>Archyne</title>
3
+ <defs>
4
+ <linearGradient id="arch" x1="24" y1="216" x2="220" y2="28" gradientUnits="userSpaceOnUse">
5
+ <stop offset="0" stop-color="#8B5CF6" />
6
+ <stop offset="0.5" stop-color="#5F6BF2" />
7
+ <stop offset="1" stop-color="#2B93FF" />
8
+ </linearGradient>
9
+ <linearGradient id="cubeTop" x1="0" y1="0" x2="0.4" y2="1">
10
+ <stop offset="0" stop-color="#7B95FF" />
11
+ <stop offset="1" stop-color="#5470F2" />
12
+ </linearGradient>
13
+ <linearGradient id="cubeLeft" x1="0" y1="0" x2="1" y2="1">
14
+ <stop offset="0" stop-color="#3B4CD4" />
15
+ <stop offset="1" stop-color="#2F3CB4" />
16
+ </linearGradient>
17
+ <linearGradient id="cubeRight" x1="0" y1="0" x2="1" y2="1">
18
+ <stop offset="0" stop-color="#5480F0" />
19
+ <stop offset="1" stop-color="#3F63DA" />
20
+ </linearGradient>
21
+ </defs>
22
+
23
+ <!-- The A as a gateway: vertical legs, a broad rounded shoulder, open at
24
+ the foot. Outer contour up and over, inner contour back down — a
25
+ single closed path, so the counter is the arch's own opening. -->
26
+ <path
27
+ fill="url(#arch)"
28
+ d="M22 212
29
+ L22 118
30
+ Q22 108 29 100
31
+ L107 23
32
+ Q120 11 133 23
33
+ L211 100
34
+ Q218 108 218 118
35
+ L218 212
36
+ Q218 220 210 220
37
+ L178 220
38
+ Q170 220 170 212
39
+ L170 128
40
+ Q170 122 165 117
41
+ L126 79
42
+ Q120 73 114 79
43
+ L75 117
44
+ Q70 122 70 128
45
+ L70 212
46
+ Q70 220 62 220
47
+ L30 220
48
+ Q22 220 22 212
49
+ Z" />
50
+
51
+ <!-- Module: an isometric cube seated in the opening. -->
52
+ <path fill="url(#cubeTop)" d="M120 150 L147 165 L120 180 L93 165 Z" />
53
+ <path fill="url(#cubeLeft)" d="M93 165 L120 180 L120 212 L93 197 Z" />
54
+ <path fill="url(#cubeRight)" d="M147 165 L120 180 L120 212 L147 197 Z" />
55
+ </svg>
package/package.json ADDED
@@ -0,0 +1,123 @@
1
+ {
2
+ "name": "archyne",
3
+ "version": "0.2.0",
4
+ "license": "MIT",
5
+ "type": "module",
6
+ "bin": {
7
+ "archyne": "bin/archyne.mjs"
8
+ },
9
+ "files": [
10
+ "bin",
11
+ "dist",
12
+ "LICENSE",
13
+ "README.md",
14
+ "THIRD-PARTY-NOTICES.md"
15
+ ],
16
+ "engines": {
17
+ "node": ">=22"
18
+ },
19
+ "repository": {
20
+ "type": "git",
21
+ "url": "git+https://github.com/dariodd/archyne.git"
22
+ },
23
+ "bugs": {
24
+ "url": "https://github.com/dariodd/archyne/issues"
25
+ },
26
+ "homepage": "https://dariodd.github.io/archyne/",
27
+ "keywords": [
28
+ "mermaid",
29
+ "diagram",
30
+ "diagram-editor",
31
+ "flowchart",
32
+ "uml",
33
+ "erd",
34
+ "c4-model",
35
+ "sequence-diagram",
36
+ "architecture-diagram",
37
+ "local-first",
38
+ "mcp",
39
+ "editor"
40
+ ],
41
+ "scripts": {
42
+ "dev": "vite",
43
+ "build": "npm run typecheck && vite build",
44
+ "preview": "vite preview",
45
+ "test": "vitest run",
46
+ "typecheck": "tsc -p tsconfig.json && tsc -p tsconfig.node.json",
47
+ "lint": "eslint .",
48
+ "lint:fix": "eslint . --fix",
49
+ "format": "prettier --write .",
50
+ "format:check": "prettier --check .",
51
+ "size": "node scripts/check-bundle-size.mjs",
52
+ "icons:index": "node scripts/build-icon-index.mjs",
53
+ "audit": "node scripts/audit-gate.mjs",
54
+ "sbom": "node scripts/sbom.mjs",
55
+ "notices:check": "node scripts/sbom.mjs && node scripts/check-notices.mjs",
56
+ "notices:update": "node scripts/sbom.mjs && node scripts/update-notices.mjs",
57
+ "mcp": "tsx mcp/server.ts",
58
+ "mcp:smoke": "tsx mcp/smoke.ts",
59
+ "test:e2e:export": "tsx tests/e2e-export.mts",
60
+ "test:e2e:i18n": "tsx tests/e2e-i18n-export.mts",
61
+ "test:e2e:a11y": "tsx tests/e2e-a11y.mts",
62
+ "test:e2e:rtl": "tsx tests/e2e-rtl.mts",
63
+ "test:e2e:csp": "tsx tests/e2e-csp.mts",
64
+ "start": "node bin/archyne.mjs",
65
+ "prepublishOnly": "npm run build",
66
+ "desktop": "electron .",
67
+ "desktop:build": "npm run build && electron-builder --win"
68
+ },
69
+ "dependencies": {
70
+ "@codemirror/theme-one-dark": "^6.1.3",
71
+ "@iconify-json/carbon": "^1.2.24",
72
+ "@iconify-json/devicon": "^1.2.62",
73
+ "@iconify-json/logos": "^1.2.11",
74
+ "@iconify-json/simple-icons": "^1.2.92",
75
+ "@iconify-json/tabler": "^1.2.38",
76
+ "@iconify/utils": "^3.1.4",
77
+ "@modelcontextprotocol/sdk": "^1.30.0",
78
+ "@xyflow/react": "^12.8.0",
79
+ "codemirror": "^6.0.2",
80
+ "codemirror-lang-mermaid": "^0.5.0",
81
+ "elkjs": "^0.12.0",
82
+ "html-to-image": "^1.11.13",
83
+ "mermaid": "^11.9.0",
84
+ "react": "^19.1.0",
85
+ "react-dom": "^19.1.0",
86
+ "tsx": "^4.23.1",
87
+ "zod": "^4.4.3",
88
+ "zustand": "^5.0.0"
89
+ },
90
+ "devDependencies": {
91
+ "@eslint/js": "^9.39.5",
92
+ "@testing-library/react": "^16.3.2",
93
+ "@testing-library/user-event": "^14.6.1",
94
+ "@types/jsdom": "^28.0.3",
95
+ "@types/node": "^26.1.2",
96
+ "@types/react": "^19.1.0",
97
+ "@types/react-dom": "^19.1.0",
98
+ "@vitejs/plugin-react": "^4.5.0",
99
+ "axe-core": "^4.12.1",
100
+ "electron": "^43.2.0",
101
+ "electron-builder": "^26.15.3",
102
+ "eslint": "^9.39.5",
103
+ "eslint-config-prettier": "^10.1.8",
104
+ "eslint-plugin-jsx-a11y": "^6.10.2",
105
+ "eslint-plugin-react-hooks": "^7.1.1",
106
+ "eslint-plugin-react-refresh": "^0.5.3",
107
+ "globals": "^17.8.0",
108
+ "jsdom": "^30.0.1",
109
+ "playwright": "^1.62.1",
110
+ "prettier": "^3.9.6",
111
+ "typescript": "~5.8.0",
112
+ "typescript-eslint": "^8.65.0",
113
+ "vite": "^6.3.0",
114
+ "vitest": "^4.1.10"
115
+ },
116
+ "main": "desktop/main.cjs",
117
+ "description": "A visual editor for Mermaid diagrams — draw, and get Mermaid code",
118
+ "author": {
119
+ "name": "dariodd",
120
+ "email": "57635667+dariodd@users.noreply.github.com",
121
+ "url": "https://github.com/dariodd"
122
+ }
123
+ }