@terra-symposium/docs 0.1.17 → 0.1.72

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 (565) hide show
  1. package/README.md +26 -7
  2. package/bin/terra-docs.mjs +187 -0
  3. package/lib-dist/assets/fonts/AUTHENTICSans-130.woff +0 -0
  4. package/lib-dist/assets/fonts/AUTHENTICSans-130.woff2 +0 -0
  5. package/lib-dist/assets/fonts/AUTHENTICSans-150.woff +0 -0
  6. package/lib-dist/assets/fonts/AUTHENTICSans-150.woff2 +0 -0
  7. package/lib-dist/assets/fonts/AUTHENTICSans-90.woff +0 -0
  8. package/lib-dist/assets/fonts/AUTHENTICSans-90.woff2 +0 -0
  9. package/lib-dist/assets/fonts/Avara-Bold.woff +0 -0
  10. package/lib-dist/assets/fonts/Avara-BoldItalic.woff +0 -0
  11. package/lib-dist/assets/fonts/InterVariable-Italic-latin-20260728.woff2 +0 -0
  12. package/lib-dist/assets/fonts/InterVariable-latin-20260728.woff2 +0 -0
  13. package/lib-dist/assets/fonts/README.md +7 -0
  14. package/lib-dist/assets/fonts/licenses/Inter-OFL-1.1.txt +92 -0
  15. package/lib-dist/assets/fonts/licenses/OFL-1.1.txt +93 -0
  16. package/lib-dist/{Docs.d.ts → components/Docs.d.ts} +1 -1
  17. package/lib-dist/components/Docs.d.ts.map +1 -0
  18. package/lib-dist/components/Docs.js +9 -0
  19. package/lib-dist/components/Docs.js.map +1 -0
  20. package/lib-dist/{LocalDocsWorkspace.d.ts → components/LocalDocsWorkspace.d.ts} +9 -2
  21. package/lib-dist/components/LocalDocsWorkspace.d.ts.map +1 -0
  22. package/lib-dist/{LocalDocsWorkspace.js → components/LocalDocsWorkspace.js} +83 -24
  23. package/lib-dist/components/LocalDocsWorkspace.js.map +1 -0
  24. package/lib-dist/components/NotFound.d.ts +8 -0
  25. package/lib-dist/components/NotFound.d.ts.map +1 -0
  26. package/lib-dist/components/NotFound.js +6 -0
  27. package/lib-dist/components/NotFound.js.map +1 -0
  28. package/lib-dist/components/SiteLayout.d.ts +25 -0
  29. package/lib-dist/components/SiteLayout.d.ts.map +1 -0
  30. package/lib-dist/components/SiteLayout.js +12 -0
  31. package/lib-dist/components/SiteLayout.js.map +1 -0
  32. package/lib-dist/{StaticWorkspace.d.ts → components/StaticWorkspace.d.ts} +7 -3
  33. package/lib-dist/components/StaticWorkspace.d.ts.map +1 -0
  34. package/lib-dist/{StaticWorkspace.js → components/StaticWorkspace.js} +106 -34
  35. package/lib-dist/components/StaticWorkspace.js.map +1 -0
  36. package/lib-dist/components/StrictLocalWorkspaceHarness.d.ts +10 -0
  37. package/lib-dist/components/StrictLocalWorkspaceHarness.d.ts.map +1 -0
  38. package/lib-dist/components/StrictLocalWorkspaceHarness.js +12 -0
  39. package/lib-dist/components/StrictLocalWorkspaceHarness.js.map +1 -0
  40. package/lib-dist/components/blocks.d.ts.map +1 -0
  41. package/lib-dist/{blocks.js → components/blocks.js} +88 -13
  42. package/lib-dist/components/blocks.js.map +1 -0
  43. package/lib-dist/{navigation.d.ts → components/navigation.d.ts} +3 -1
  44. package/lib-dist/components/navigation.d.ts.map +1 -0
  45. package/lib-dist/components/navigation.js.map +1 -0
  46. package/lib-dist/{terra → components/terra}/Workspace.d.ts +1 -1
  47. package/lib-dist/components/terra/Workspace.d.ts.map +1 -0
  48. package/lib-dist/components/terra/Workspace.js +190 -0
  49. package/lib-dist/components/terra/Workspace.js.map +1 -0
  50. package/lib-dist/components/terra/editor/TerraContentEditor.d.ts +16 -0
  51. package/lib-dist/components/terra/editor/TerraContentEditor.d.ts.map +1 -0
  52. package/lib-dist/components/terra/editor/TerraContentEditor.js +358 -0
  53. package/lib-dist/components/terra/editor/TerraContentEditor.js.map +1 -0
  54. package/lib-dist/{terra → components/terra}/editor/_blocks.d.ts +3 -4
  55. package/lib-dist/components/terra/editor/_blocks.d.ts.map +1 -0
  56. package/lib-dist/components/terra/editor/_blocks.js +120 -0
  57. package/lib-dist/components/terra/editor/_blocks.js.map +1 -0
  58. package/lib-dist/components/terra/editor/docs/BlockContext.d.ts +7 -0
  59. package/lib-dist/components/terra/editor/docs/BlockContext.d.ts.map +1 -0
  60. package/lib-dist/components/terra/editor/docs/BlockContext.js +60 -0
  61. package/lib-dist/components/terra/editor/docs/BlockContext.js.map +1 -0
  62. package/lib-dist/components/terra/editor/docs/DocsAttachmentPicker.d.ts +12 -0
  63. package/lib-dist/components/terra/editor/docs/DocsAttachmentPicker.d.ts.map +1 -0
  64. package/lib-dist/components/terra/editor/docs/DocsAttachmentPicker.js +66 -0
  65. package/lib-dist/components/terra/editor/docs/DocsAttachmentPicker.js.map +1 -0
  66. package/lib-dist/components/terra/editor/docs/TerraToolbar.d.ts +12 -0
  67. package/lib-dist/components/terra/editor/docs/TerraToolbar.d.ts.map +1 -0
  68. package/lib-dist/components/terra/editor/docs/TerraToolbar.js +169 -0
  69. package/lib-dist/components/terra/editor/docs/TerraToolbar.js.map +1 -0
  70. package/lib-dist/{terra → components/terra}/editor/docs/_Callout.d.ts +1 -1
  71. package/lib-dist/components/terra/editor/docs/_Callout.d.ts.map +1 -0
  72. package/lib-dist/{terra → components/terra}/editor/docs/_Callout.js +11 -7
  73. package/lib-dist/components/terra/editor/docs/_Callout.js.map +1 -0
  74. package/lib-dist/components/terra/editor/docs/_CodeBlock.d.ts.map +1 -0
  75. package/lib-dist/{terra → components/terra}/editor/docs/_CodeBlock.js +111 -46
  76. package/lib-dist/components/terra/editor/docs/_CodeBlock.js.map +1 -0
  77. package/lib-dist/{terra → components/terra}/editor/docs/_DocsCode.d.ts +1 -1
  78. package/lib-dist/components/terra/editor/docs/_DocsCode.d.ts.map +1 -0
  79. package/lib-dist/{terra → components/terra}/editor/docs/_DocsCode.js +47 -14
  80. package/lib-dist/components/terra/editor/docs/_DocsCode.js.map +1 -0
  81. package/lib-dist/{terra → components/terra}/editor/docs/_DocsImage.d.ts +1 -1
  82. package/lib-dist/components/terra/editor/docs/_DocsImage.d.ts.map +1 -0
  83. package/lib-dist/components/terra/editor/docs/_DocsImage.js +62 -0
  84. package/lib-dist/components/terra/editor/docs/_DocsImage.js.map +1 -0
  85. package/lib-dist/{terra → components/terra}/editor/docs/_Embed.d.ts +3 -1
  86. package/lib-dist/components/terra/editor/docs/_Embed.d.ts.map +1 -0
  87. package/lib-dist/components/terra/editor/docs/_Embed.js +73 -0
  88. package/lib-dist/components/terra/editor/docs/_Embed.js.map +1 -0
  89. package/lib-dist/{terra → components/terra}/editor/docs/_Math.d.ts +2 -2
  90. package/lib-dist/components/terra/editor/docs/_Math.d.ts.map +1 -0
  91. package/lib-dist/{terra → components/terra}/editor/docs/_Math.js +29 -17
  92. package/lib-dist/components/terra/editor/docs/_Math.js.map +1 -0
  93. package/lib-dist/{terra → components/terra}/editor/docs/_Nodes.d.ts +1 -1
  94. package/lib-dist/components/terra/editor/docs/_Nodes.d.ts.map +1 -0
  95. package/lib-dist/components/terra/editor/docs/_Nodes.js +62 -0
  96. package/lib-dist/components/terra/editor/docs/_Nodes.js.map +1 -0
  97. package/lib-dist/{terra → components/terra}/editor/docs/_Raw.d.ts +1 -1
  98. package/lib-dist/components/terra/editor/docs/_Raw.d.ts.map +1 -0
  99. package/lib-dist/{terra → components/terra}/editor/docs/_Raw.js +8 -3
  100. package/lib-dist/components/terra/editor/docs/_Raw.js.map +1 -0
  101. package/lib-dist/{terra → components/terra}/editor/docs/_Table.d.ts +1 -1
  102. package/lib-dist/components/terra/editor/docs/_Table.d.ts.map +1 -0
  103. package/lib-dist/components/terra/editor/docs/_Table.js +99 -0
  104. package/lib-dist/components/terra/editor/docs/_Table.js.map +1 -0
  105. package/lib-dist/{terra → components/terra}/editor/docs/_Tabs.d.ts +1 -1
  106. package/lib-dist/components/terra/editor/docs/_Tabs.d.ts.map +1 -0
  107. package/lib-dist/{terra → components/terra}/editor/docs/_Tabs.js +36 -15
  108. package/lib-dist/components/terra/editor/docs/_Tabs.js.map +1 -0
  109. package/lib-dist/{terra → components/terra}/editor/docs/_TsDocs.d.ts +1 -1
  110. package/lib-dist/components/terra/editor/docs/_TsDocs.d.ts.map +1 -0
  111. package/lib-dist/{terra → components/terra}/editor/docs/_TsDocs.js +16 -14
  112. package/lib-dist/components/terra/editor/docs/_TsDocs.js.map +1 -0
  113. package/lib-dist/{terra → components/terra}/editor/docs/_math_inline.d.ts +1 -1
  114. package/lib-dist/components/terra/editor/docs/_math_inline.d.ts.map +1 -0
  115. package/lib-dist/{terra → components/terra}/editor/docs/_math_inline.js +2 -2
  116. package/lib-dist/components/terra/editor/docs/_math_inline.js.map +1 -0
  117. package/lib-dist/{terra → components/terra}/editor/docs/heading.d.ts +1 -1
  118. package/lib-dist/components/terra/editor/docs/heading.d.ts.map +1 -0
  119. package/lib-dist/{terra → components/terra}/editor/docs/heading.js +8 -5
  120. package/lib-dist/components/terra/editor/docs/heading.js.map +1 -0
  121. package/lib-dist/components/terra/editor/docs/index.d.ts.map +1 -0
  122. package/lib-dist/components/terra/editor/docs/index.js.map +1 -0
  123. package/lib-dist/components/terra/editor/terra-content.styles.d.ts +3 -0
  124. package/lib-dist/components/terra/editor/terra-content.styles.d.ts.map +1 -0
  125. package/lib-dist/components/terra/editor/terra-content.styles.js +3 -0
  126. package/lib-dist/components/terra/editor/terra-content.styles.js.map +1 -0
  127. package/lib-dist/{terra → components/terra}/editor/types.d.ts +2 -2
  128. package/lib-dist/components/terra/editor/types.d.ts.map +1 -0
  129. package/lib-dist/{terra → components/terra}/editor/types.js +1 -1
  130. package/lib-dist/components/terra/editor/types.js.map +1 -0
  131. package/lib-dist/{terra → components/terra}/flow/Nodes.d.ts +2 -3
  132. package/lib-dist/components/terra/flow/Nodes.d.ts.map +1 -0
  133. package/lib-dist/{terra → components/terra}/flow/Nodes.js +213 -106
  134. package/lib-dist/components/terra/flow/Nodes.js.map +1 -0
  135. package/lib-dist/{terra → components/terra}/flow/_chrome.d.ts +7 -9
  136. package/lib-dist/components/terra/flow/_chrome.d.ts.map +1 -0
  137. package/lib-dist/{terra → components/terra}/flow/_chrome.js +329 -118
  138. package/lib-dist/components/terra/flow/_chrome.js.map +1 -0
  139. package/lib-dist/components/terra/flow/menuContext.d.ts.map +1 -0
  140. package/lib-dist/components/terra/flow/menuContext.js.map +1 -0
  141. package/lib-dist/{terra → components/terra}/pages/docs/_attachments.d.ts +1 -1
  142. package/lib-dist/components/terra/pages/docs/_attachments.d.ts.map +1 -0
  143. package/lib-dist/{terra → components/terra}/pages/docs/_attachments.js +375 -131
  144. package/lib-dist/components/terra/pages/docs/_attachments.js.map +1 -0
  145. package/lib-dist/components/terra/pages/docs/_blocks.d.ts.map +1 -0
  146. package/lib-dist/{terra → components/terra}/pages/docs/_blocks.js +42 -31
  147. package/lib-dist/components/terra/pages/docs/_blocks.js.map +1 -0
  148. package/lib-dist/{terra → components/terra}/pages/docs/_editable.d.ts +2 -3
  149. package/lib-dist/components/terra/pages/docs/_editable.d.ts.map +1 -0
  150. package/lib-dist/{terra → components/terra}/pages/docs/_editable.js +82 -44
  151. package/lib-dist/components/terra/pages/docs/_editable.js.map +1 -0
  152. package/lib-dist/{terra → components/terra}/pages/docs/_export-dialog.d.ts +1 -1
  153. package/lib-dist/components/terra/pages/docs/_export-dialog.d.ts.map +1 -0
  154. package/lib-dist/{terra → components/terra}/pages/docs/_export-dialog.js +17 -17
  155. package/lib-dist/components/terra/pages/docs/_export-dialog.js.map +1 -0
  156. package/lib-dist/components/terra/pages/docs/_icons.d.ts.map +1 -0
  157. package/lib-dist/components/terra/pages/docs/_icons.js.map +1 -0
  158. package/lib-dist/{terra → components/terra}/pages/docs/_main.d.ts +10 -7
  159. package/lib-dist/components/terra/pages/docs/_main.d.ts.map +1 -0
  160. package/lib-dist/components/terra/pages/docs/_main.js +710 -0
  161. package/lib-dist/components/terra/pages/docs/_main.js.map +1 -0
  162. package/lib-dist/components/terra/pages/docs/_manage-attachments-dialog.d.ts +10 -0
  163. package/lib-dist/components/terra/pages/docs/_manage-attachments-dialog.d.ts.map +1 -0
  164. package/lib-dist/components/terra/pages/docs/_manage-attachments-dialog.js +597 -0
  165. package/lib-dist/components/terra/pages/docs/_manage-attachments-dialog.js.map +1 -0
  166. package/lib-dist/{terra → components/terra}/pages/docs/_sidebar.d.ts +3 -12
  167. package/lib-dist/components/terra/pages/docs/_sidebar.d.ts.map +1 -0
  168. package/lib-dist/components/terra/pages/docs/_sidebar.js +1437 -0
  169. package/lib-dist/components/terra/pages/docs/_sidebar.js.map +1 -0
  170. package/lib-dist/components/terra/pages/docs/_toc.d.ts +4 -0
  171. package/lib-dist/components/terra/pages/docs/_toc.d.ts.map +1 -0
  172. package/lib-dist/components/terra/pages/docs/_toc.js +212 -0
  173. package/lib-dist/components/terra/pages/docs/_toc.js.map +1 -0
  174. package/lib-dist/components/terra/pages/docs/_toolbar-find-replace.d.ts +15 -0
  175. package/lib-dist/components/terra/pages/docs/_toolbar-find-replace.d.ts.map +1 -0
  176. package/lib-dist/components/terra/pages/docs/_toolbar-find-replace.js +207 -0
  177. package/lib-dist/components/terra/pages/docs/_toolbar-find-replace.js.map +1 -0
  178. package/lib-dist/{terra → components/terra}/pages/docs/_toolbar.d.ts +3 -5
  179. package/lib-dist/components/terra/pages/docs/_toolbar.d.ts.map +1 -0
  180. package/lib-dist/{terra → components/terra}/pages/docs/_toolbar.js +318 -350
  181. package/lib-dist/components/terra/pages/docs/_toolbar.js.map +1 -0
  182. package/lib-dist/{terra → components/terra}/pages/docs/_tree.d.ts +1 -4
  183. package/lib-dist/components/terra/pages/docs/_tree.d.ts.map +1 -0
  184. package/lib-dist/{terra → components/terra}/pages/docs/_tree.js +219 -264
  185. package/lib-dist/components/terra/pages/docs/_tree.js.map +1 -0
  186. package/lib-dist/components/terra/pages/docs/use-block-nav.d.ts +5 -0
  187. package/lib-dist/components/terra/pages/docs/use-block-nav.d.ts.map +1 -0
  188. package/lib-dist/components/terra/pages/docs/use-block-nav.js +1306 -0
  189. package/lib-dist/components/terra/pages/docs/use-block-nav.js.map +1 -0
  190. package/lib-dist/components/terra/pages/docs/use-media-paste.d.ts +5 -0
  191. package/lib-dist/components/terra/pages/docs/use-media-paste.d.ts.map +1 -0
  192. package/lib-dist/components/terra/pages/docs/use-media-paste.js +391 -0
  193. package/lib-dist/components/terra/pages/docs/use-media-paste.js.map +1 -0
  194. package/lib-dist/components/terra/pages/docs/use-render-tripwire.d.ts +2 -0
  195. package/lib-dist/components/terra/pages/docs/use-render-tripwire.d.ts.map +1 -0
  196. package/lib-dist/components/terra/pages/docs/use-render-tripwire.js +25 -0
  197. package/lib-dist/components/terra/pages/docs/use-render-tripwire.js.map +1 -0
  198. package/lib-dist/{terra/runtime → components/terra}/ui.d.ts +2 -5
  199. package/lib-dist/components/terra/ui.d.ts.map +1 -0
  200. package/lib-dist/components/terra/ui.js +20 -0
  201. package/lib-dist/components/terra/ui.js.map +1 -0
  202. package/lib-dist/components/workspace-demo-fixture.d.ts +35 -0
  203. package/lib-dist/components/workspace-demo-fixture.d.ts.map +1 -0
  204. package/lib-dist/components/workspace-demo-fixture.js +820 -0
  205. package/lib-dist/components/workspace-demo-fixture.js.map +1 -0
  206. package/lib-dist/fonts/KaTeX_AMS-Regular.ttf +0 -0
  207. package/lib-dist/fonts/KaTeX_AMS-Regular.woff +0 -0
  208. package/lib-dist/fonts/KaTeX_AMS-Regular.woff2 +0 -0
  209. package/lib-dist/fonts/KaTeX_Caligraphic-Bold.ttf +0 -0
  210. package/lib-dist/fonts/KaTeX_Caligraphic-Bold.woff +0 -0
  211. package/lib-dist/fonts/KaTeX_Caligraphic-Bold.woff2 +0 -0
  212. package/lib-dist/fonts/KaTeX_Caligraphic-Regular.ttf +0 -0
  213. package/lib-dist/fonts/KaTeX_Caligraphic-Regular.woff +0 -0
  214. package/lib-dist/fonts/KaTeX_Caligraphic-Regular.woff2 +0 -0
  215. package/lib-dist/fonts/KaTeX_Fraktur-Bold.ttf +0 -0
  216. package/lib-dist/fonts/KaTeX_Fraktur-Bold.woff +0 -0
  217. package/lib-dist/fonts/KaTeX_Fraktur-Bold.woff2 +0 -0
  218. package/lib-dist/fonts/KaTeX_Fraktur-Regular.ttf +0 -0
  219. package/lib-dist/fonts/KaTeX_Fraktur-Regular.woff +0 -0
  220. package/lib-dist/fonts/KaTeX_Fraktur-Regular.woff2 +0 -0
  221. package/lib-dist/fonts/KaTeX_Main-Bold.ttf +0 -0
  222. package/lib-dist/fonts/KaTeX_Main-Bold.woff +0 -0
  223. package/lib-dist/fonts/KaTeX_Main-Bold.woff2 +0 -0
  224. package/lib-dist/fonts/KaTeX_Main-BoldItalic.ttf +0 -0
  225. package/lib-dist/fonts/KaTeX_Main-BoldItalic.woff +0 -0
  226. package/lib-dist/fonts/KaTeX_Main-BoldItalic.woff2 +0 -0
  227. package/lib-dist/fonts/KaTeX_Main-Italic.ttf +0 -0
  228. package/lib-dist/fonts/KaTeX_Main-Italic.woff +0 -0
  229. package/lib-dist/fonts/KaTeX_Main-Italic.woff2 +0 -0
  230. package/lib-dist/fonts/KaTeX_Main-Regular.ttf +0 -0
  231. package/lib-dist/fonts/KaTeX_Main-Regular.woff +0 -0
  232. package/lib-dist/fonts/KaTeX_Main-Regular.woff2 +0 -0
  233. package/lib-dist/fonts/KaTeX_Math-BoldItalic.ttf +0 -0
  234. package/lib-dist/fonts/KaTeX_Math-BoldItalic.woff +0 -0
  235. package/lib-dist/fonts/KaTeX_Math-BoldItalic.woff2 +0 -0
  236. package/lib-dist/fonts/KaTeX_Math-Italic.ttf +0 -0
  237. package/lib-dist/fonts/KaTeX_Math-Italic.woff +0 -0
  238. package/lib-dist/fonts/KaTeX_Math-Italic.woff2 +0 -0
  239. package/lib-dist/fonts/KaTeX_SansSerif-Bold.ttf +0 -0
  240. package/lib-dist/fonts/KaTeX_SansSerif-Bold.woff +0 -0
  241. package/lib-dist/fonts/KaTeX_SansSerif-Bold.woff2 +0 -0
  242. package/lib-dist/fonts/KaTeX_SansSerif-Italic.ttf +0 -0
  243. package/lib-dist/fonts/KaTeX_SansSerif-Italic.woff +0 -0
  244. package/lib-dist/fonts/KaTeX_SansSerif-Italic.woff2 +0 -0
  245. package/lib-dist/fonts/KaTeX_SansSerif-Regular.ttf +0 -0
  246. package/lib-dist/fonts/KaTeX_SansSerif-Regular.woff +0 -0
  247. package/lib-dist/fonts/KaTeX_SansSerif-Regular.woff2 +0 -0
  248. package/lib-dist/fonts/KaTeX_Script-Regular.ttf +0 -0
  249. package/lib-dist/fonts/KaTeX_Script-Regular.woff +0 -0
  250. package/lib-dist/fonts/KaTeX_Script-Regular.woff2 +0 -0
  251. package/lib-dist/fonts/KaTeX_Size1-Regular.ttf +0 -0
  252. package/lib-dist/fonts/KaTeX_Size1-Regular.woff +0 -0
  253. package/lib-dist/fonts/KaTeX_Size1-Regular.woff2 +0 -0
  254. package/lib-dist/fonts/KaTeX_Size2-Regular.ttf +0 -0
  255. package/lib-dist/fonts/KaTeX_Size2-Regular.woff +0 -0
  256. package/lib-dist/fonts/KaTeX_Size2-Regular.woff2 +0 -0
  257. package/lib-dist/fonts/KaTeX_Size3-Regular.ttf +0 -0
  258. package/lib-dist/fonts/KaTeX_Size3-Regular.woff +0 -0
  259. package/lib-dist/fonts/KaTeX_Size3-Regular.woff2 +0 -0
  260. package/lib-dist/fonts/KaTeX_Size4-Regular.ttf +0 -0
  261. package/lib-dist/fonts/KaTeX_Size4-Regular.woff +0 -0
  262. package/lib-dist/fonts/KaTeX_Size4-Regular.woff2 +0 -0
  263. package/lib-dist/fonts/KaTeX_Typewriter-Regular.ttf +0 -0
  264. package/lib-dist/fonts/KaTeX_Typewriter-Regular.woff +0 -0
  265. package/lib-dist/fonts/KaTeX_Typewriter-Regular.woff2 +0 -0
  266. package/lib-dist/lib/astro.d.ts +8 -0
  267. package/lib-dist/lib/astro.d.ts.map +1 -0
  268. package/lib-dist/lib/astro.js +27 -0
  269. package/lib-dist/lib/astro.js.map +1 -0
  270. package/lib-dist/lib/docs-theme.d.ts +7 -0
  271. package/lib-dist/lib/docs-theme.d.ts.map +1 -0
  272. package/lib-dist/lib/docs-theme.js +51 -0
  273. package/lib-dist/lib/docs-theme.js.map +1 -0
  274. package/lib-dist/lib/host-runtime.d.ts.map +1 -0
  275. package/lib-dist/{host-runtime.js → lib/host-runtime.js} +4 -2
  276. package/lib-dist/lib/host-runtime.js.map +1 -0
  277. package/lib-dist/{host.d.ts → lib/host.d.ts} +20 -0
  278. package/lib-dist/lib/host.d.ts.map +1 -0
  279. package/lib-dist/lib/host.js.map +1 -0
  280. package/lib-dist/lib/index.d.ts +34 -0
  281. package/lib-dist/lib/index.d.ts.map +1 -0
  282. package/lib-dist/lib/index.js +27 -0
  283. package/lib-dist/lib/index.js.map +1 -0
  284. package/lib-dist/{markdown-model.d.ts → lib/markdown-model.d.ts} +3 -3
  285. package/lib-dist/lib/markdown-model.d.ts.map +1 -0
  286. package/lib-dist/lib/markdown-model.js +2030 -0
  287. package/lib-dist/lib/markdown-model.js.map +1 -0
  288. package/lib-dist/lib/markdown.d.ts +3 -0
  289. package/lib-dist/lib/markdown.d.ts.map +1 -0
  290. package/lib-dist/lib/markdown.js +222 -0
  291. package/lib-dist/lib/markdown.js.map +1 -0
  292. package/lib-dist/{schema.d.ts → lib/schema.d.ts} +55 -23
  293. package/lib-dist/lib/schema.d.ts.map +1 -0
  294. package/lib-dist/{schema.js → lib/schema.js} +26 -18
  295. package/lib-dist/lib/schema.js.map +1 -0
  296. package/lib-dist/{terra/pages/docs/_custom.d.ts → lib/terra/custom-components.d.ts} +2 -2
  297. package/lib-dist/lib/terra/custom-components.d.ts.map +1 -0
  298. package/lib-dist/{terra/pages/docs/_custom.js → lib/terra/custom-components.js} +1 -1
  299. package/lib-dist/lib/terra/custom-components.js.map +1 -0
  300. package/lib-dist/lib/terra/docs/archive.d.ts +3 -0
  301. package/lib-dist/lib/terra/docs/archive.d.ts.map +1 -0
  302. package/lib-dist/lib/terra/docs/archive.js +654 -0
  303. package/lib-dist/lib/terra/docs/archive.js.map +1 -0
  304. package/lib-dist/lib/terra/docs/assets.d.ts +26 -0
  305. package/lib-dist/lib/terra/docs/assets.d.ts.map +1 -0
  306. package/lib-dist/lib/terra/docs/assets.js +74 -0
  307. package/lib-dist/lib/terra/docs/assets.js.map +1 -0
  308. package/lib-dist/lib/terra/docs/attachments.d.ts +4 -0
  309. package/lib-dist/lib/terra/docs/attachments.d.ts.map +1 -0
  310. package/lib-dist/lib/terra/docs/attachments.js +5 -0
  311. package/lib-dist/lib/terra/docs/attachments.js.map +1 -0
  312. package/lib-dist/lib/terra/docs/editor-dom.d.ts +50 -0
  313. package/lib-dist/lib/terra/docs/editor-dom.d.ts.map +1 -0
  314. package/lib-dist/lib/terra/docs/editor-dom.js +236 -0
  315. package/lib-dist/lib/terra/docs/editor-dom.js.map +1 -0
  316. package/lib-dist/lib/terra/docs/mutations.d.ts +10 -0
  317. package/lib-dist/lib/terra/docs/mutations.d.ts.map +1 -0
  318. package/lib-dist/lib/terra/docs/mutations.js +105 -0
  319. package/lib-dist/lib/terra/docs/mutations.js.map +1 -0
  320. package/lib-dist/lib/terra/docs/navigation.d.ts +6 -0
  321. package/lib-dist/lib/terra/docs/navigation.d.ts.map +1 -0
  322. package/lib-dist/lib/terra/docs/navigation.js +21 -0
  323. package/lib-dist/lib/terra/docs/navigation.js.map +1 -0
  324. package/lib-dist/lib/terra/docs/state.d.ts +185 -0
  325. package/lib-dist/lib/terra/docs/state.d.ts.map +1 -0
  326. package/lib-dist/lib/terra/docs/state.js +254 -0
  327. package/lib-dist/lib/terra/docs/state.js.map +1 -0
  328. package/lib-dist/lib/terra/docs/toolbar.d.ts +11 -0
  329. package/lib-dist/lib/terra/docs/toolbar.d.ts.map +1 -0
  330. package/lib-dist/lib/terra/docs/toolbar.js +41 -0
  331. package/lib-dist/lib/terra/docs/toolbar.js.map +1 -0
  332. package/lib-dist/lib/terra/docs/tree.d.ts +15 -0
  333. package/lib-dist/lib/terra/docs/tree.d.ts.map +1 -0
  334. package/lib-dist/lib/terra/docs/tree.js +61 -0
  335. package/lib-dist/lib/terra/docs/tree.js.map +1 -0
  336. package/lib-dist/{terra/pages/docs/_helpers.d.ts → lib/terra/docs/workspace.d.ts} +6 -8
  337. package/lib-dist/lib/terra/docs/workspace.d.ts.map +1 -0
  338. package/lib-dist/{terra/pages/docs/_helpers.js → lib/terra/docs/workspace.js} +39 -28
  339. package/lib-dist/lib/terra/docs/workspace.js.map +1 -0
  340. package/lib-dist/lib/terra/flow/_layout.d.ts.map +1 -0
  341. package/lib-dist/{terra → lib/terra}/flow/_layout.js +16 -6
  342. package/lib-dist/lib/terra/flow/_layout.js.map +1 -0
  343. package/lib-dist/{terra → lib/terra}/flow/powerSource.d.ts +1 -2
  344. package/lib-dist/lib/terra/flow/powerSource.d.ts.map +1 -0
  345. package/lib-dist/{terra → lib/terra}/flow/powerSource.js +10 -4
  346. package/lib-dist/lib/terra/flow/powerSource.js.map +1 -0
  347. package/lib-dist/{terra → lib/terra}/regex.mjs +11 -6
  348. package/lib-dist/lib/terra/runtime/action-proxy.d.ts +45 -0
  349. package/lib-dist/lib/terra/runtime/action-proxy.d.ts.map +1 -0
  350. package/lib-dist/{terra → lib/terra}/runtime/action-proxy.js +1 -1
  351. package/lib-dist/lib/terra/runtime/action-proxy.js.map +1 -0
  352. package/lib-dist/lib/terra/runtime/content/block-jsx.d.ts +23 -0
  353. package/lib-dist/lib/terra/runtime/content/block-jsx.d.ts.map +1 -0
  354. package/lib-dist/lib/terra/runtime/content/block-jsx.js +225 -0
  355. package/lib-dist/lib/terra/runtime/content/block-jsx.js.map +1 -0
  356. package/lib-dist/lib/terra/runtime/content/document-markdown.d.ts +41 -0
  357. package/lib-dist/lib/terra/runtime/content/document-markdown.d.ts.map +1 -0
  358. package/lib-dist/lib/terra/runtime/content/document-markdown.js +536 -0
  359. package/lib-dist/lib/terra/runtime/content/document-markdown.js.map +1 -0
  360. package/lib-dist/lib/terra/runtime/content/markdown.d.ts +109 -0
  361. package/lib-dist/lib/terra/runtime/content/markdown.d.ts.map +1 -0
  362. package/lib-dist/lib/terra/runtime/content/markdown.js +428 -0
  363. package/lib-dist/lib/terra/runtime/content/markdown.js.map +1 -0
  364. package/lib-dist/lib/terra/runtime/content.d.ts.map +1 -0
  365. package/lib-dist/{terra → lib/terra}/runtime/content.js +147 -62
  366. package/lib-dist/lib/terra/runtime/content.js.map +1 -0
  367. package/lib-dist/lib/terra/runtime/leaf.d.ts.map +1 -0
  368. package/lib-dist/{terra → lib/terra}/runtime/leaf.js +1 -1
  369. package/lib-dist/lib/terra/runtime/leaf.js.map +1 -0
  370. package/lib-dist/lib/terra/runtime/nodes.d.ts.map +1 -0
  371. package/lib-dist/{terra → lib/terra}/runtime/nodes.js +103 -31
  372. package/lib-dist/lib/terra/runtime/nodes.js.map +1 -0
  373. package/lib-dist/{terra → lib/terra}/runtime/runtime.d.ts +8 -2
  374. package/lib-dist/lib/terra/runtime/runtime.d.ts.map +1 -0
  375. package/lib-dist/lib/terra/runtime/runtime.js +86 -0
  376. package/lib-dist/lib/terra/runtime/runtime.js.map +1 -0
  377. package/lib-dist/lib/terra/runtime/shared.d.ts.map +1 -0
  378. package/lib-dist/{terra → lib/terra}/runtime/shared.js +56 -11
  379. package/lib-dist/lib/terra/runtime/shared.js.map +1 -0
  380. package/lib-dist/lib/terra/runtime/types.d.ts +529 -0
  381. package/lib-dist/lib/terra/runtime/types.d.ts.map +1 -0
  382. package/lib-dist/{terra → lib/terra}/runtime/types.js +28 -2
  383. package/lib-dist/lib/terra/runtime/types.js.map +1 -0
  384. package/lib-dist/lib/workspace-types.d.ts +32 -0
  385. package/lib-dist/lib/workspace-types.d.ts.map +1 -0
  386. package/lib-dist/lib/workspace-types.js +2 -0
  387. package/lib-dist/lib/workspace-types.js.map +1 -0
  388. package/lib-dist/style.css +237 -1
  389. package/package.json +63 -38
  390. package/site/astro.config.mjs +67 -0
  391. package/site/docs-content-plugin.mjs +62 -0
  392. package/site/src/components/DocsSiteSearch.tsx +108 -0
  393. package/site/src/lib/catalog.ts +151 -0
  394. package/site/src/pages/404.astro +38 -0
  395. package/site/src/pages/[...slug].astro +49 -0
  396. package/site/src/styles/search.css +56 -0
  397. package/src/components/NotFound.astro +6 -0
  398. package/src/components/NotFound.tsx +48 -0
  399. package/src/{SiteLayout.astro → components/SiteLayout.astro} +17 -5
  400. package/src/{navigation.tsx → components/navigation.tsx} +3 -1
  401. package/lib-dist/Docs.d.ts.map +0 -1
  402. package/lib-dist/Docs.js +0 -60
  403. package/lib-dist/Docs.js.map +0 -1
  404. package/lib-dist/LocalDocsWorkspace.d.ts.map +0 -1
  405. package/lib-dist/LocalDocsWorkspace.js.map +0 -1
  406. package/lib-dist/SiteLayout.d.ts +0 -30
  407. package/lib-dist/SiteLayout.d.ts.map +0 -1
  408. package/lib-dist/SiteLayout.js +0 -34
  409. package/lib-dist/SiteLayout.js.map +0 -1
  410. package/lib-dist/StaticWorkspace.d.ts.map +0 -1
  411. package/lib-dist/StaticWorkspace.js.map +0 -1
  412. package/lib-dist/_Toolbar.d.ts +0 -7
  413. package/lib-dist/_Toolbar.d.ts.map +0 -1
  414. package/lib-dist/_Toolbar.js +0 -85
  415. package/lib-dist/_Toolbar.js.map +0 -1
  416. package/lib-dist/blocks.d.ts.map +0 -1
  417. package/lib-dist/blocks.js.map +0 -1
  418. package/lib-dist/docs-catalog.d.ts +0 -5
  419. package/lib-dist/docs-catalog.d.ts.map +0 -1
  420. package/lib-dist/docs-catalog.js +0 -38
  421. package/lib-dist/docs-catalog.js.map +0 -1
  422. package/lib-dist/docs-style.css +0 -31
  423. package/lib-dist/fonts/README.md +0 -5
  424. package/lib-dist/host-runtime.d.ts.map +0 -1
  425. package/lib-dist/host-runtime.js.map +0 -1
  426. package/lib-dist/host.d.ts.map +0 -1
  427. package/lib-dist/host.js.map +0 -1
  428. package/lib-dist/index.d.ts +0 -35
  429. package/lib-dist/index.d.ts.map +0 -1
  430. package/lib-dist/index.js +0 -28
  431. package/lib-dist/index.js.map +0 -1
  432. package/lib-dist/markdown-model.d.ts.map +0 -1
  433. package/lib-dist/markdown-model.js +0 -181
  434. package/lib-dist/markdown-model.js.map +0 -1
  435. package/lib-dist/markdown.d.ts +0 -3
  436. package/lib-dist/markdown.d.ts.map +0 -1
  437. package/lib-dist/markdown.js +0 -83
  438. package/lib-dist/markdown.js.map +0 -1
  439. package/lib-dist/navigation.d.ts.map +0 -1
  440. package/lib-dist/navigation.js.map +0 -1
  441. package/lib-dist/schema.d.ts.map +0 -1
  442. package/lib-dist/schema.js.map +0 -1
  443. package/lib-dist/terra/Workspace.d.ts.map +0 -1
  444. package/lib-dist/terra/Workspace.js +0 -9
  445. package/lib-dist/terra/Workspace.js.map +0 -1
  446. package/lib-dist/terra/editor/TerraContentEditor.d.ts +0 -10
  447. package/lib-dist/terra/editor/TerraContentEditor.d.ts.map +0 -1
  448. package/lib-dist/terra/editor/TerraContentEditor.js +0 -47
  449. package/lib-dist/terra/editor/TerraContentEditor.js.map +0 -1
  450. package/lib-dist/terra/editor/_blocks.d.ts.map +0 -1
  451. package/lib-dist/terra/editor/_blocks.js +0 -110
  452. package/lib-dist/terra/editor/_blocks.js.map +0 -1
  453. package/lib-dist/terra/editor/docs/_Callout.d.ts.map +0 -1
  454. package/lib-dist/terra/editor/docs/_Callout.js.map +0 -1
  455. package/lib-dist/terra/editor/docs/_CodeBlock.d.ts.map +0 -1
  456. package/lib-dist/terra/editor/docs/_CodeBlock.js.map +0 -1
  457. package/lib-dist/terra/editor/docs/_DocsCode.d.ts.map +0 -1
  458. package/lib-dist/terra/editor/docs/_DocsCode.js.map +0 -1
  459. package/lib-dist/terra/editor/docs/_DocsImage.d.ts.map +0 -1
  460. package/lib-dist/terra/editor/docs/_DocsImage.js +0 -62
  461. package/lib-dist/terra/editor/docs/_DocsImage.js.map +0 -1
  462. package/lib-dist/terra/editor/docs/_Embed.d.ts.map +0 -1
  463. package/lib-dist/terra/editor/docs/_Embed.js +0 -27
  464. package/lib-dist/terra/editor/docs/_Embed.js.map +0 -1
  465. package/lib-dist/terra/editor/docs/_Math.d.ts.map +0 -1
  466. package/lib-dist/terra/editor/docs/_Math.js.map +0 -1
  467. package/lib-dist/terra/editor/docs/_Nodes.d.ts.map +0 -1
  468. package/lib-dist/terra/editor/docs/_Nodes.js +0 -52
  469. package/lib-dist/terra/editor/docs/_Nodes.js.map +0 -1
  470. package/lib-dist/terra/editor/docs/_Raw.d.ts.map +0 -1
  471. package/lib-dist/terra/editor/docs/_Raw.js.map +0 -1
  472. package/lib-dist/terra/editor/docs/_Table.d.ts.map +0 -1
  473. package/lib-dist/terra/editor/docs/_Table.js +0 -71
  474. package/lib-dist/terra/editor/docs/_Table.js.map +0 -1
  475. package/lib-dist/terra/editor/docs/_Tabs.d.ts.map +0 -1
  476. package/lib-dist/terra/editor/docs/_Tabs.js.map +0 -1
  477. package/lib-dist/terra/editor/docs/_TsDocs.d.ts.map +0 -1
  478. package/lib-dist/terra/editor/docs/_TsDocs.js.map +0 -1
  479. package/lib-dist/terra/editor/docs/_math_inline.d.ts.map +0 -1
  480. package/lib-dist/terra/editor/docs/_math_inline.js.map +0 -1
  481. package/lib-dist/terra/editor/docs/heading.d.ts.map +0 -1
  482. package/lib-dist/terra/editor/docs/heading.js.map +0 -1
  483. package/lib-dist/terra/editor/docs/index.d.ts.map +0 -1
  484. package/lib-dist/terra/editor/docs/index.js.map +0 -1
  485. package/lib-dist/terra/editor/types.d.ts.map +0 -1
  486. package/lib-dist/terra/editor/types.js.map +0 -1
  487. package/lib-dist/terra/flow/Nodes.d.ts.map +0 -1
  488. package/lib-dist/terra/flow/Nodes.js.map +0 -1
  489. package/lib-dist/terra/flow/_chrome.d.ts.map +0 -1
  490. package/lib-dist/terra/flow/_chrome.js.map +0 -1
  491. package/lib-dist/terra/flow/_layout.d.ts.map +0 -1
  492. package/lib-dist/terra/flow/_layout.js.map +0 -1
  493. package/lib-dist/terra/flow/menuContext.d.ts.map +0 -1
  494. package/lib-dist/terra/flow/menuContext.js.map +0 -1
  495. package/lib-dist/terra/flow/powerSource.d.ts.map +0 -1
  496. package/lib-dist/terra/flow/powerSource.js.map +0 -1
  497. package/lib-dist/terra/pages/docs/_attachments.d.ts.map +0 -1
  498. package/lib-dist/terra/pages/docs/_attachments.js.map +0 -1
  499. package/lib-dist/terra/pages/docs/_blocks.d.ts.map +0 -1
  500. package/lib-dist/terra/pages/docs/_blocks.js.map +0 -1
  501. package/lib-dist/terra/pages/docs/_custom.d.ts.map +0 -1
  502. package/lib-dist/terra/pages/docs/_custom.js.map +0 -1
  503. package/lib-dist/terra/pages/docs/_editable.d.ts.map +0 -1
  504. package/lib-dist/terra/pages/docs/_editable.js.map +0 -1
  505. package/lib-dist/terra/pages/docs/_export-dialog.d.ts.map +0 -1
  506. package/lib-dist/terra/pages/docs/_export-dialog.js.map +0 -1
  507. package/lib-dist/terra/pages/docs/_helpers.d.ts.map +0 -1
  508. package/lib-dist/terra/pages/docs/_helpers.js.map +0 -1
  509. package/lib-dist/terra/pages/docs/_icons.d.ts.map +0 -1
  510. package/lib-dist/terra/pages/docs/_icons.js.map +0 -1
  511. package/lib-dist/terra/pages/docs/_main.d.ts.map +0 -1
  512. package/lib-dist/terra/pages/docs/_main.js +0 -1959
  513. package/lib-dist/terra/pages/docs/_main.js.map +0 -1
  514. package/lib-dist/terra/pages/docs/_sidebar.d.ts.map +0 -1
  515. package/lib-dist/terra/pages/docs/_sidebar.js +0 -2450
  516. package/lib-dist/terra/pages/docs/_sidebar.js.map +0 -1
  517. package/lib-dist/terra/pages/docs/_toolbar.d.ts.map +0 -1
  518. package/lib-dist/terra/pages/docs/_toolbar.js.map +0 -1
  519. package/lib-dist/terra/pages/docs/_tree.d.ts.map +0 -1
  520. package/lib-dist/terra/pages/docs/_tree.js.map +0 -1
  521. package/lib-dist/terra/runtime/action-proxy.d.ts +0 -5
  522. package/lib-dist/terra/runtime/action-proxy.d.ts.map +0 -1
  523. package/lib-dist/terra/runtime/action-proxy.js.map +0 -1
  524. package/lib-dist/terra/runtime/content.d.ts.map +0 -1
  525. package/lib-dist/terra/runtime/content.js.map +0 -1
  526. package/lib-dist/terra/runtime/leaf.d.ts.map +0 -1
  527. package/lib-dist/terra/runtime/leaf.js.map +0 -1
  528. package/lib-dist/terra/runtime/nodes.d.ts.map +0 -1
  529. package/lib-dist/terra/runtime/nodes.js.map +0 -1
  530. package/lib-dist/terra/runtime/runtime.d.ts.map +0 -1
  531. package/lib-dist/terra/runtime/runtime.js +0 -50
  532. package/lib-dist/terra/runtime/runtime.js.map +0 -1
  533. package/lib-dist/terra/runtime/shared.d.ts.map +0 -1
  534. package/lib-dist/terra/runtime/shared.js.map +0 -1
  535. package/lib-dist/terra/runtime/types.d.ts +0 -266
  536. package/lib-dist/terra/runtime/types.d.ts.map +0 -1
  537. package/lib-dist/terra/runtime/types.js.map +0 -1
  538. package/lib-dist/terra/runtime/ui.d.ts.map +0 -1
  539. package/lib-dist/terra/runtime/ui.js +0 -16
  540. package/lib-dist/terra/runtime/ui.js.map +0 -1
  541. package/lib-dist/workspace.d.ts +0 -78
  542. package/lib-dist/workspace.d.ts.map +0 -1
  543. package/lib-dist/workspace.js +0 -151
  544. package/lib-dist/workspace.js.map +0 -1
  545. package/src/style.css +0 -733
  546. /package/lib-dist/{fonts → assets/fonts}/Avara-Bold.woff2 +0 -0
  547. /package/lib-dist/{fonts → assets/fonts}/Avara-BoldItalic.woff2 +0 -0
  548. /package/lib-dist/{fonts → assets/fonts}/OFL-1.1.txt +0 -0
  549. /package/lib-dist/{blocks.d.ts → components/blocks.d.ts} +0 -0
  550. /package/lib-dist/{navigation.js → components/navigation.js} +0 -0
  551. /package/lib-dist/{terra → components/terra}/editor/docs/_CodeBlock.d.ts +0 -0
  552. /package/lib-dist/{terra → components/terra}/editor/docs/index.d.ts +0 -0
  553. /package/lib-dist/{terra → components/terra}/editor/docs/index.js +0 -0
  554. /package/lib-dist/{terra → components/terra}/flow/menuContext.d.ts +0 -0
  555. /package/lib-dist/{terra → components/terra}/flow/menuContext.js +0 -0
  556. /package/lib-dist/{terra → components/terra}/pages/docs/_blocks.d.ts +0 -0
  557. /package/lib-dist/{terra → components/terra}/pages/docs/_icons.d.ts +0 -0
  558. /package/lib-dist/{terra → components/terra}/pages/docs/_icons.js +0 -0
  559. /package/lib-dist/{host-runtime.d.ts → lib/host-runtime.d.ts} +0 -0
  560. /package/lib-dist/{host.js → lib/host.js} +0 -0
  561. /package/lib-dist/{terra → lib/terra}/flow/_layout.d.ts +0 -0
  562. /package/lib-dist/{terra → lib/terra}/runtime/content.d.ts +0 -0
  563. /package/lib-dist/{terra → lib/terra}/runtime/leaf.d.ts +0 -0
  564. /package/lib-dist/{terra → lib/terra}/runtime/nodes.d.ts +0 -0
  565. /package/lib-dist/{terra → lib/terra}/runtime/shared.d.ts +0 -0
@@ -8,18 +8,18 @@ IMPORTS
8
8
  //////////////////////////////////////////////////*/
9
9
  // API
10
10
  import katex from 'katex';
11
- import { applyEdgeChanges, applyNodeChanges, useNodesInitialized, useReactFlow } from '@xyflow/react';
12
- import { cn, createTrace, errorLog, isRec, validateType, warn as logWarn } from '../runtime/runtime.js';
11
+ import { applyEdgeChanges, applyNodeChanges, useNodesInitialized, useReactFlow, } from '@xyflow/react';
12
+ import { cn, createTrace, errorLog, isRec, validateType, warn as logWarn, } from '../../../lib/terra/runtime/runtime.js';
13
13
  import { getCustomPos, getGroupId, getNodeSize, layoutGraph, useEditor } from './_chrome.js';
14
14
  import { useCallback, useEffect, useRef, useState } from 'react';
15
15
  // COMPONENTS
16
16
  import React from 'react';
17
17
  import { AlignHorizontalCenter as AlignHorizontalCenterIcon, AlignHorizontalLeft as AlignHorizontalLeftIcon, AlignHorizontalRight as AlignHorizontalRightIcon, AlignVerticalBottom as AlignVerticalBottomIcon, AlignVerticalCenter as AlignVerticalCenterIcon, AlignVerticalTop as AlignVerticalTopIcon, Choices as DecisionIcon, DataCategorical as TypeIcon, DataStructured as DataIcon, DistributeHorizontalCenter as DistributeHorizontalCenterIcon, DistributeHorizontalLeft as DistributeHorizontalLeftIcon, DistributeHorizontalRight as DistributeHorizontalRightIcon, DistributeVerticalBottom as DistributeVerticalBottomIcon, DistributeVerticalCenter as DistributeVerticalCenterIcon, DistributeVerticalTop as DistributeVerticalTopIcon, Document as NoteIcon, Edit as EditIcon, MagicWand as WandIcon, Maximize as MaximizeIcon, ObjectStorage as GroupIcon, PlayOutline as OriginIcon, RadioButton as TerminatorIcon, Redo as RedoIcon, StopOutline as TerminalIcon, Table as ErdIcon, Task as ProcessIcon, TrashCan as TrashIcon, Undo as UndoIcon, } from '@carbon/icons-react';
18
- import { Background, ControlButton, Controls, MarkerType, NodeResizer, ReactFlow, ReactFlowProvider } from '@xyflow/react';
19
- import { Button } from '@terra-symposium/styling/ui/terra-original';
20
- import { ButtonGroup } from '@terra-symposium/styling/ui/terra-original';
21
- import { ContextMenu, ContextMenuContent, ContextMenuItem, ContextMenuSeparator, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger } from '@terra-symposium/styling/ui/terra-original';
22
- import { ErrorBoundary } from '../runtime/ui.js';
18
+ import { Background, ControlButton, Controls, MarkerType, NodeResizer, ReactFlow, ReactFlowProvider, } from '@xyflow/react';
19
+ import { Button } from '@terra-symposium/styling/ui';
20
+ import { ButtonGroup } from '@terra-symposium/styling/ui';
21
+ import { ContextMenu, ContextMenuContent, ContextMenuItem, ContextMenuSeparator, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, } from '@terra-symposium/styling/ui';
22
+ import { ErrorBoundary } from '../ui.js';
23
23
  import { Handles, SkeletonCard, ZoomControls } from './_chrome.js';
24
24
  /*//////////////////////////////////////////////////
25
25
  CONFIG
@@ -96,10 +96,10 @@ NODE TYPES
96
96
  * @return Resizable group frame, title bar, and group handles.
97
97
  */
98
98
  export function GroupNode({ data, selected }) {
99
- return (_jsxs(ErrorBoundary, { name: 'GroupNode', children: [_jsx(NodeResizer, { color: '#ef4444', isVisible: selected && data.editable === true, minWidth: 160, minHeight: 100, onResizeEnd: (_e, p) => {
99
+ return (_jsxs(ErrorBoundary, { name: "GroupNode", children: [_jsx(NodeResizer, { color: "#ef4444", isVisible: selected && data.editable === true, minWidth: 160, minHeight: 100, onResizeEnd: (_e, p) => {
100
100
  if (data.id)
101
101
  data.onResizeEnd?.(data.id, p);
102
- } }), _jsxs("div", { className: cn('size-full text-primary-11 transition-all', selected && `rounded-lg ${NODE_CLASS.selected}`, data.isDragTarget && 'ring-dashed rounded-lg bg-primary-3/20 ring-2 ring-primary-6'), children: [_jsx("div", { className: 'border-b border-primary-6 pb-2 text-lg font-bold text-primary-12', children: data.title }), _jsx(Handles, { editable: data.editable === true, ...data.requiredHandles })] })] }));
102
+ } }), _jsxs("div", { className: cn('size-full text-primary-11 transition-all', selected && `rounded-lg ${NODE_CLASS.selected}`, data.isDragTarget && 'ring-dashed rounded-lg bg-primary-3/20 ring-2 ring-primary-6'), children: [_jsx("div", { className: "border-b border-primary-6 pb-2 text-lg font-bold text-primary-12", children: data.title }), _jsx(Handles, { editable: data.editable === true, ...data.requiredHandles })] })] }));
103
103
  }
104
104
  /**
105
105
  * Creates a higher-order flowchart node renderer with specified styling.
@@ -112,7 +112,7 @@ export function GroupNode({ data, selected }) {
112
112
  function createNode(className, inner) {
113
113
  return function NodeCard({ data, selected }) {
114
114
  const Element = data.onClick ? 'button' : data.href ? 'a' : 'div';
115
- return (_jsxs(Element, { ...(Element === 'button' ? { type: 'button' } : {}), ...(Element === 'a' ? { href: data.href } : {}), onClick: data.onClick, className: cn('relative block min-w-40 text-pretty p-2 text-center text-sm font-normal !no-underline shadow-md transition-shadow', selected && 'ring-2 ring-red-500 ring-offset-2 ring-offset-transparent', className), children: [_jsx(Handles, { editable: data.editable === true, sources: data.requiredHandles?.sources ?? [], tgts: data.requiredHandles?.tgts ?? [] }), _jsx("span", { className: inner, children: data.title })] }));
115
+ return (_jsxs(Element, { ...(Element === 'button' ? { type: 'button' } : {}), ...(Element === 'a' ? { href: data.href } : {}), ...(Element === 'a' ? { 'data-docs-flow-node-link': '' } : {}), onClick: data.onClick, className: cn('relative block min-w-40 text-pretty p-2 text-center text-sm font-normal !no-underline shadow-md transition-shadow', selected && 'ring-2 ring-red-500 ring-offset-2 ring-offset-transparent', className), children: [_jsx(Handles, { editable: data.editable === true, sources: data.requiredHandles?.sources ?? [], tgts: data.requiredHandles?.tgts ?? [] }), _jsx("span", { className: inner, children: data.title })] }));
116
116
  };
117
117
  }
118
118
  /**
@@ -125,17 +125,17 @@ function createNode(className, inner) {
125
125
  *
126
126
  * @return Sticky note styled container.
127
127
  */
128
- export function NoteNode({ id, data, selected }) {
129
- return (_jsxs(ErrorBoundary, { name: 'NoteNode', children: [_jsx(NodeResizer, { color: '#ef4444', isVisible: selected && data.editable === true, minWidth: 128, minHeight: 128, onResizeEnd: (_e, p) => {
128
+ export function NoteNode({ id, data, selected, }) {
129
+ return (_jsxs(ErrorBoundary, { name: "NoteNode", children: [_jsx(NodeResizer, { color: "#ef4444", isVisible: selected && data.editable === true, minWidth: 128, minHeight: 128, onResizeEnd: (_e, p) => {
130
130
  if (data.id)
131
131
  data.onResizeEnd?.(data.id, p);
132
- } }), _jsxs("div", { className: cn("relative size-full min-h-32 min-w-32 before:absolute before:left-[5px] before:top-[30%] before:h-3/4 before:w-[90%] before:bg-black/25 before:shadow-[rgba(0,0,0,0.5)_-2px_2px_15px] before:content-['']", selected && NODE_CLASS.selected), children: [_jsx("svg", { width: '0', height: '0', className: 'absolute', children: _jsx("defs", { children: _jsx("clipPath", { id: `sticky-${id}`, clipPathUnits: 'objectBoundingBox', children: _jsx("path", { d: 'M 1 0 Q 1 0.69, 0.97 0.96 0.97 0.96, 0 0.96 Q 0.04 0.69, 0.04 0 0.04 0, 1 0' }) }) }) }), _jsx("div", { className: 'relative flex size-full min-h-32 min-w-32 items-center justify-center bg-yellow-300 p-5 pt-3 text-center text-sm font-normal text-yellow-950 shadow-md', style: { clipPath: `url(#sticky-${id})` }, children: data.title })] })] }));
132
+ } }), _jsxs("div", { className: cn("relative size-full min-h-32 min-w-32 before:absolute before:left-[5px] before:top-[30%] before:h-3/4 before:w-[90%] before:bg-black/25 before:shadow-[rgba(0,0,0,0.5)_-2px_2px_15px] before:content-['']", selected && NODE_CLASS.selected), children: [_jsx(Handles, { editable: data.editable === true, sources: data.requiredHandles?.sources ?? [], tgts: data.requiredHandles?.tgts ?? [] }), _jsx("svg", { width: "0", height: "0", className: "absolute", children: _jsx("defs", { children: _jsx("clipPath", { id: `sticky-${id}`, clipPathUnits: "objectBoundingBox", children: _jsx("path", { d: "M 1 0 Q 1 0.69, 0.97 0.96 0.97 0.96, 0 0.96 Q 0.04 0.69, 0.04 0 0.04 0, 1 0" }) }) }) }), _jsx("div", { className: "relative flex size-full min-h-32 min-w-32 items-center justify-center bg-yellow-300 p-5 pt-3 text-center text-sm font-normal text-yellow-950 shadow-md", style: { clipPath: `url(#sticky-${id})` }, children: data.title })] })] }));
133
133
  }
134
134
  export const NODE_TYPES = {
135
135
  erd: function ErdNode({ data, selected }) {
136
136
  const compact = data.compact === true;
137
137
  const Element = data.onClick ? 'button' : data.href ? 'a' : 'div';
138
- return (_jsxs(Element, { type: Element === 'button' ? 'button' : undefined, href: Element === 'a' ? data.href : undefined, onClick: data.onClick, className: cn('block max-h-96 w-full overflow-y-scroll rounded-md border-2 border-primary-6 bg-primary-2 text-primary-12 !no-underline shadow-lg transition-shadow', compact ? 'text-xs' : 'text-sm', selected && NODE_CLASS.selected), children: [_jsx("div", { className: cn('border-b-2 border-primary-6 bg-primary-3 text-center font-bold text-primary-12', compact ? 'px-2 py-0.5 text-sm' : 'px-3 py-2 text-lg'), children: data.title }), data.attributes && data.attributes.length > 0 && (_jsx("ul", { className: cn('my-0', compact ? 'gap-y-0.5 p-0.5 px-1.5' : 'p-2'), children: data.attributes.map(a => (_jsxs("li", { className: cn('grid grid-cols-[auto,1fr] font-mono', compact ? 'my-0 gap-x-2 leading-tight' : 'gap-x-3 gap-y-0'), children: [_jsx("span", { className: 'shrink-0', children: a.name }), (() => {
138
+ return (_jsxs(Element, { type: Element === 'button' ? 'button' : undefined, href: Element === 'a' ? data.href : undefined, "data-docs-flow-node-link": Element === 'a' ? '' : undefined, onClick: data.onClick, className: cn('block max-h-96 w-full overflow-y-scroll rounded-md border-2 border-primary-6 bg-primary-2 text-primary-12 !no-underline shadow-lg transition-shadow', compact ? 'text-xs' : 'text-sm', selected && NODE_CLASS.selected), children: [_jsx("div", { className: cn('border-b-2 border-primary-6 bg-primary-3 text-center font-bold text-primary-12', compact ? 'px-2 py-0.5 text-sm' : 'px-3 py-2 text-lg'), children: data.title }), data.attributes && data.attributes.length > 0 && (_jsx("ul", { className: cn('my-0', compact ? 'gap-y-0.5 p-0.5 px-1.5' : 'p-2'), children: data.attributes.map((a) => (_jsxs("li", { className: cn('grid grid-cols-[auto,1fr] font-mono', compact ? 'my-0 gap-x-2 leading-tight' : 'gap-x-3 gap-y-0'), children: [_jsx("span", { className: "shrink-0", children: a.name }), (() => {
139
139
  const inlineMath = a.type.match(/^\$(?!\$)([\s\S]+)\$$/);
140
140
  const displayMath = a.type.match(/^\$\$([\s\S]+)\$\$$/);
141
141
  if (!inlineMath && !displayMath)
@@ -179,29 +179,34 @@ CANVAS
179
179
  */
180
180
  function syncGraph(v, r, dir, proximityConnect, editable, arcControls, onResizeEnd) {
181
181
  const sNodes = Array.isArray(v) ? v : [];
182
- const nodesById = new Map(sNodes.map(_node => [_node.id, _node]));
182
+ const nodesById = new Map(sNodes.map((_node) => [_node.id, _node]));
183
183
  const handlesByNodeId = new Map();
184
184
  const syncedGraph = {
185
185
  edges: (Array.isArray(r) ? r : [])
186
- .filter(_e => nodesById.has(_e.source) && nodesById.has(_e.target))
187
- .map(e => {
186
+ .filter((_e) => nodesById.has(_e.source) && nodesById.has(_e.target))
187
+ .map((e) => {
188
188
  const edgeData = e.data ?? {};
189
189
  const l = isRec(e) ? e : {};
190
190
  const arrowHead = edgeData.arrowHead ?? l['arrowHead'] ?? false;
191
191
  const srcOverride = edgeData.srcHandleOverride ?? l['srcHandleOverride'];
192
192
  const tgtOverride = edgeData.tgtHandleOverride ?? l['tgtHandleOverride'];
193
193
  const strokeStyle = edgeData.strokeStyle ?? 'solid';
194
- const markerEnd = arrowHead ? { type: MarkerType.ArrowClosed, width: 20, height: 20 } : undefined;
194
+ const markerEnd = arrowHead
195
+ ? { type: MarkerType.ArrowClosed, width: 20, height: 20 }
196
+ : undefined;
195
197
  let srcHandle;
196
198
  let tgtHandle;
197
199
  if (arcControls) {
198
200
  // Arc nodes use named ports, not the positional ports used by docs flowcharts.
199
- srcHandle = e.sourceHandle && !HANDLES.includes(e.sourceHandle) ? e.sourceHandle : 'default';
201
+ srcHandle =
202
+ e.sourceHandle && !HANDLES.includes(e.sourceHandle) ? e.sourceHandle : 'default';
200
203
  tgtHandle = 'inbound';
201
204
  }
202
205
  else if (proximityConnect) {
203
- const dx = (nodesById.get(e.target).position?.x ?? 0) - (nodesById.get(e.source).position?.x ?? 0);
204
- const dy = (nodesById.get(e.target).position?.y ?? 0) - (nodesById.get(e.source).position?.y ?? 0);
206
+ const dx = (nodesById.get(e.target).position?.x ?? 0) -
207
+ (nodesById.get(e.source).position?.x ?? 0);
208
+ const dy = (nodesById.get(e.target).position?.y ?? 0) -
209
+ (nodesById.get(e.source).position?.y ?? 0);
205
210
  const horizontal = Math.abs(dx) > Math.abs(dy);
206
211
  srcHandle = horizontal ? (dx > 0 ? 'right' : 'left') : dy > 0 ? 'bottom' : 'top';
207
212
  tgtHandle = horizontal ? (dx > 0 ? 'left' : 'right') : dy > 0 ? 'top' : 'bottom';
@@ -224,22 +229,34 @@ function syncGraph(v, r, dir, proximityConnect, editable, arcControls, onResizeE
224
229
  }
225
230
  const updatedEdge = {
226
231
  ...e,
227
- data: { ...edgeData, arrowHead, srcHandleOverride: srcOverride, tgtHandleOverride: tgtOverride, strokeStyle },
232
+ data: {
233
+ ...edgeData,
234
+ arrowHead,
235
+ srcHandleOverride: srcOverride,
236
+ tgtHandleOverride: tgtOverride,
237
+ strokeStyle,
238
+ },
228
239
  sourceHandle: srcHandle,
229
240
  targetHandle: tgtHandle,
230
- style: { ...e.style, strokeDasharray: strokeStyle === 'dashed' ? '5 5' : strokeStyle === 'dotted' ? '2 2' : undefined },
241
+ style: {
242
+ ...e.style,
243
+ strokeDasharray: strokeStyle === 'dashed' ? '5 5' : strokeStyle === 'dotted' ? '2 2' : undefined,
244
+ },
231
245
  };
232
246
  if (markerEnd)
233
247
  updatedEdge.markerEnd = markerEnd;
234
248
  return updatedEdge;
235
249
  }),
236
- nodes: sNodes.map(n => {
250
+ nodes: sNodes.map((n) => {
237
251
  const handles = handlesByNodeId.get(n.id);
238
252
  const resGroupId = getGroupId(n);
239
253
  return {
240
254
  ...n,
241
255
  parentId: undefined, // enforce flat absolute structure globally
242
- className: cn(validateType(['string'], n.className) || Array.isArray(n.className) ? n.className : undefined, n.type === 'group' && 'rounded-lg border !border-primary-6 !bg-primary-2 !text-primary-12'),
256
+ className: cn(validateType(['string'], n.className) || Array.isArray(n.className)
257
+ ? n.className
258
+ : undefined, n.type === 'group' &&
259
+ 'rounded-lg border !border-primary-6 !bg-primary-2 !text-primary-12'),
243
260
  zIndex: n.type === 'group' ? -10 : 10,
244
261
  nodeOrigin: n.type === 'group' ? [0, 0] : [0.5, 0.5],
245
262
  data: {
@@ -248,12 +265,21 @@ function syncGraph(v, r, dir, proximityConnect, editable, arcControls, onResizeE
248
265
  editable,
249
266
  ...(resGroupId ? { groupId: resGroupId } : {}),
250
267
  ...(onResizeEnd ? { onResizeEnd } : {}),
251
- requiredHandles: { sources: editable ? HANDLES : Array.from(handles?.sources ?? []), targets: editable ? HANDLES : Array.from(handles?.tgts ?? []) },
268
+ requiredHandles: {
269
+ sources: editable ? HANDLES : Array.from(handles?.sources ?? []),
270
+ targets: editable ? HANDLES : Array.from(handles?.tgts ?? []),
271
+ },
252
272
  },
253
273
  };
254
274
  }),
255
275
  };
256
- return { nodes: [...syncedGraph.nodes.filter(n => n.type === 'group'), ...syncedGraph.nodes.filter(n => n.type !== 'group')], edges: syncedGraph.edges };
276
+ return {
277
+ nodes: [
278
+ ...syncedGraph.nodes.filter((n) => n.type === 'group'),
279
+ ...syncedGraph.nodes.filter((n) => n.type !== 'group'),
280
+ ],
281
+ edges: syncedGraph.edges,
282
+ };
257
283
  }
258
284
  const FLOW_COMPONENTS = {
259
285
  nodeTypes: NODE_TYPES,
@@ -303,7 +329,7 @@ const FLOW_COMPONENTS = {
303
329
  */
304
330
  Canvas({ flow, nodeTypes, edgeTypes, nodeLabels, onNodeClick, onNodesChange, onEdgesChange, onConnect, onEdgeDoubleClick, onAddNode, onAddContent, lockedTypes, allowedTypes, onGroupNodes, onUngroupNodes, onDeleteSelected, onAlignNodes, onDistributeNodes, onRenameNode, onChangeNodeType, onChangeEdgeStyle, onDeleteEdge, onAutoLayout, onReady, interactive, editable, isFocused, height, showBg, showCtrls, arcControls, readyWhenEmpty, }) {
305
331
  // STATES
306
- const { fitView, screenToFlowPosition: screenToFlowPos, getIntersectingNodes, updateNodeData, getNodes } = useReactFlow();
332
+ const { fitView, screenToFlowPosition: screenToFlowPos, getIntersectingNodes, updateNodeData, getNodes, } = useReactFlow();
307
333
  const nodesInit = useNodesInitialized();
308
334
  const hasInitialLayout = useRef(false);
309
335
  const lastFit = useRef('');
@@ -322,7 +348,7 @@ const FLOW_COMPONENTS = {
322
348
  }
323
349
  if (!nodesInit)
324
350
  return;
325
- const key = `${height}:${flow.nodes.map(_node => _node.id).join(',')}`;
351
+ const key = `${height}:${flow.nodes.map((_node) => _node.id).join(',')}`;
326
352
  if (lastFit.current === key)
327
353
  return;
328
354
  const frame = { id: 0 };
@@ -348,8 +374,8 @@ const FLOW_COMPONENTS = {
348
374
  onReady?.();
349
375
  }, [onReady, ready]);
350
376
  // HELPERS
351
- const selNodes = flow.nodes.filter(n => n.selected);
352
- const nodesMap = React.useMemo(() => new Map(flow.nodes.map(n => [n.id, n])), [flow.nodes]);
377
+ const selNodes = flow.nodes.filter((n) => n.selected);
378
+ const nodesMap = React.useMemo(() => new Map(flow.nodes.map((n) => [n.id, n])), [flow.nodes]);
353
379
  const tgtNode = React.useMemo(() => (menuCtx.type === '_node' && menuCtx.id ? nodesMap.get(menuCtx.id) : undefined), [nodesMap, menuCtx.type, menuCtx.id]);
354
380
  /**
355
381
  * Checks whether the n is locked.
@@ -375,12 +401,12 @@ const FLOW_COMPONENTS = {
375
401
  return locked(tgtNode);
376
402
  }, [flow.nodes.length, lockedTypes, menuCtx, tgtNode]);
377
403
  // RENDER
378
- return (_jsxs(ContextMenu, { onOpenChange: o => {
404
+ return (_jsxs(ContextMenu, { onOpenChange: (o) => {
379
405
  trace('menu.state', { open: o, context: menuCtx });
380
- }, children: [_jsx(ContextMenuTrigger, { asChild: true, onContextMenu: _e => {
406
+ }, children: [_jsx(ContextMenuTrigger, { asChild: true, onContextMenu: (_e) => {
381
407
  lastPos.current = { x: _e.clientX, y: _e.clientY };
382
408
  trace('menu.open.request', { position: lastPos.current });
383
- }, children: _jsxs("div", { className: 'relative z-20 size-full', ref: reactFlowWrapper, children: [!ready && (_jsx("div", { className: 'pointer-events-none absolute inset-0 z-10 rounded-md border border-primary-6 bg-primary-1/95', "aria-label": 'Loading nodes', children: _jsx("div", { className: 'absolute inset-0 flex items-center justify-center', children: _jsxs("div", { className: 'flex flex-col items-center gap-8', children: [_jsx(SkeletonCard, {}), _jsx(SkeletonCard, { className: 'translate-x-16 animate-pulse opacity-75' }), _jsx(SkeletonCard, { className: '-translate-x-12 animate-pulse opacity-50' })] }) }) })), _jsxs(ReactFlow, { nodes: flow.nodes, edges: flow.edges, onNodesChange: onNodesChange, onEdgesChange: onEdgesChange, onConnect: onConnect, onEdgeDoubleClick: onEdgeDoubleClick, onNodeContextMenu: (_e, _node) => {
409
+ }, children: _jsxs("div", { className: "relative z-20 size-full", ref: reactFlowWrapper, children: [!ready && (_jsx("div", { className: "pointer-events-none absolute inset-0 z-10 rounded-md border border-primary-6 bg-primary-1/95", "aria-label": "Loading nodes", children: _jsx("div", { className: "absolute inset-0 flex items-center justify-center", children: _jsxs("div", { className: "flex flex-col items-center gap-8", children: [_jsx(SkeletonCard, {}), _jsx(SkeletonCard, { className: "translate-x-16 animate-pulse opacity-75" }), _jsx(SkeletonCard, { className: "-translate-x-12 animate-pulse opacity-50" })] }) }) })), _jsxs(ReactFlow, { nodes: flow.nodes, edges: flow.edges, onNodesChange: onNodesChange, onEdgesChange: onEdgesChange, onConnect: onConnect, onEdgeDoubleClick: onEdgeDoubleClick, onNodeContextMenu: (_e, _node) => {
384
410
  trace('menu.n', { id: _node.id, type: _node.type });
385
411
  setMenuCtx({ type: '_node', id: _node.id });
386
412
  }, ...(onNodeClick
@@ -401,7 +427,7 @@ const FLOW_COMPONENTS = {
401
427
  const primaryNode = draggedNodes[0] || _node;
402
428
  if (primaryNode.type === 'group')
403
429
  return;
404
- const groupId = getIntersectingNodes(primaryNode).find(n => n.type === 'group')?.id ?? null;
430
+ const groupId = getIntersectingNodes(primaryNode).find((n) => n.type === 'group')?.id ?? null;
405
431
  if (groupId !== dragTgtGroup.current) {
406
432
  if (dragTgtGroup.current)
407
433
  updateNodeData(dragTgtGroup.current, { isDragTarget: false });
@@ -416,26 +442,32 @@ const FLOW_COMPONENTS = {
416
442
  const tgtGroupId = dragTgtGroup.current;
417
443
  updateNodeData(tgtGroupId, { isDragTarget: false });
418
444
  dragTgtGroup.current = null;
419
- const groupNode = getNodes().find(n => n.id === tgtGroupId);
420
- const nodesToGroup = draggedNodes.filter(n => n.type !== 'group' && n.id !== tgtGroupId);
445
+ const groupNode = getNodes().find((n) => n.id === tgtGroupId);
446
+ const nodesToGroup = draggedNodes.filter((n) => n.type !== 'group' && n.id !== tgtGroupId);
421
447
  if (groupNode && nodesToGroup.length > 0)
422
448
  onGroupNodes(groupNode, nodesToGroup, groupNode.position.x, groupNode.position.y);
423
449
  }
424
450
  else {
425
- const nodesToUngroup = draggedNodes.filter(n => getGroupId(n) && n.type !== 'group');
451
+ const nodesToUngroup = draggedNodes.filter((n) => getGroupId(n) && n.type !== 'group');
426
452
  if (nodesToUngroup.length > 0)
427
453
  onUngroupNodes(nodesToUngroup);
428
454
  }
429
- }, nodeTypes: nodeTypes, ...(edgeTypes ? { edgeTypes: edgeTypes } : {}), fitView: true, minZoom: 0.1, zoomOnScroll: false, panOnScroll: isFocused, zoomOnPinch: true, preventScrolling: false, nodesDraggable: interactive || editable, nodesConnectable: editable, elementsSelectable: true, panOnDrag: false, selectionOnDrag: true, elevateNodesOnSelect: false, children: [showBg && _jsx(Background, {}), showCtrls && arcControls ? (_jsxs(_Fragment, { children: [_jsx(Controls, { position: 'top-left', showFitView: false, showInteractive: false, showZoom: false, children: _jsxs(ButtonGroup, { children: [_jsx(Button, { variant: 'ghost', size: 'icon-sm', disabled: true, "aria-label": 'Undo', title: 'Undo', children: _jsx(UndoIcon, { "aria-hidden": 'true' }) }), _jsx(Button, { variant: 'ghost', size: 'icon-sm', disabled: true, "aria-label": 'Redo', title: 'Redo', children: _jsx(RedoIcon, { "aria-hidden": 'true' }) })] }) }), _jsx(Controls, { position: 'top-right', showFitView: false, showInteractive: false, showZoom: false, children: _jsx(ButtonGroup, { children: _jsx(Button, { variant: 'ghost', size: 'icon-sm', "aria-label": 'Arrange nodes', title: 'Arrange nodes', onClick: onAutoLayout, children: _jsx(WandIcon, { "aria-hidden": 'true' }) }) }) }), _jsx(ZoomControls, { position: 'bottom-right' })] })) : (showCtrls && (_jsxs(Controls, { position: 'bottom-left', showInteractive: false, className: '!m-3 [&_*]:!border-primary-6 [&_*]:!bg-primary-3', children: [editable && (_jsx(ControlButton, { "aria-label": 'Auto-layout nodes', title: 'Auto-layout nodes', onClick: onAutoLayout, children: _jsx(WandIcon, { "aria-hidden": 'true' }) })), _jsx(ControlButton, { "aria-label": 'Full screen', title: 'Full screen', onClick: () => (document.fullscreenElement ? void document.exitFullscreen() : void reactFlowWrapper.current?.requestFullscreen()), children: _jsx(MaximizeIcon, { "aria-hidden": 'true' }) })] })))] })] }) }), editable && (_jsx(ContextMenuContent, { className: MENU_CLASS.content, children: selNodes.length > 1 ? (_jsxs(_Fragment, { children: [_jsxs(ContextMenuSub, { children: [_jsx(ContextMenuSubTrigger, { children: "Align" }), _jsx(ContextMenuSubContent, { className: MENU_CLASS.subContent, children: NODE_MENUS.align.map(m => m.label === 'sep' ? (_jsx(ContextMenuSeparator, {}, m.val)) : (_jsxs(ContextMenuItem, { onClick: () => {
455
+ }, nodeTypes: nodeTypes, ...(edgeTypes ? { edgeTypes: edgeTypes } : {}), fitView: true, minZoom: 0.1, zoomOnScroll: false, panOnScroll: isFocused, zoomOnPinch: true, preventScrolling: false, nodesDraggable: interactive || editable, nodesConnectable: editable, elementsSelectable: true, panOnDrag: false, selectionOnDrag: true, elevateNodesOnSelect: false, children: [showBg && _jsx(Background, {}), showCtrls && arcControls ? (_jsxs(_Fragment, { children: [_jsx(Controls, { position: "top-left", showFitView: false, showInteractive: false, showZoom: false, children: _jsxs(ButtonGroup, { children: [_jsx(Button, { variant: "ghost", size: "icon-sm", disabled: true, "aria-label": "Undo", title: "Undo", children: _jsx(UndoIcon, { "aria-hidden": "true" }) }), _jsx(Button, { variant: "ghost", size: "icon-sm", disabled: true, "aria-label": "Redo", title: "Redo", children: _jsx(RedoIcon, { "aria-hidden": "true" }) })] }) }), _jsx(Controls, { position: "top-right", showFitView: false, showInteractive: false, showZoom: false, children: _jsx(ButtonGroup, { children: _jsx(Button, { variant: "ghost", size: "icon-sm", "aria-label": "Arrange nodes", title: "Arrange nodes", onClick: onAutoLayout, children: _jsx(WandIcon, { "aria-hidden": "true" }) }) }) }), _jsx(ZoomControls, { position: "bottom-right" })] })) : (showCtrls && (_jsxs(Controls, { position: "bottom-left", showInteractive: false, className: "!m-3 [&_*]:!border-primary-6 [&_*]:!bg-primary-3", children: [editable && (_jsx(ControlButton, { "aria-label": "Auto-layout nodes", title: "Auto-layout nodes", onClick: onAutoLayout, children: _jsx(WandIcon, { "aria-hidden": "true" }) })), _jsx(ControlButton, { "aria-label": "Full screen", title: "Full screen", onClick: () => document.fullscreenElement
456
+ ? void document.exitFullscreen()
457
+ : void reactFlowWrapper.current?.requestFullscreen(), children: _jsx(MaximizeIcon, { "aria-hidden": "true" }) })] })))] })] }) }), editable && (_jsx(ContextMenuContent, { className: MENU_CLASS.content, children: selNodes.length > 1 ? (_jsxs(_Fragment, { children: [_jsxs(ContextMenuSub, { children: [_jsx(ContextMenuSubTrigger, { children: "Align" }), _jsx(ContextMenuSubContent, { className: MENU_CLASS.subContent, children: NODE_MENUS.align.map((m) => m.label === 'sep' ? (_jsx(ContextMenuSeparator, {}, m.val)) : (_jsxs(ContextMenuItem, { onClick: () => {
430
458
  onAlignNodes(selNodes, m.val);
431
- }, children: [m.Icon && _jsx(m.Icon, { className: MENU_CLASS.icon }), " ", m.label] }, m.val))) })] }), selNodes.length > 2 && (_jsxs(ContextMenuSub, { children: [_jsx(ContextMenuSubTrigger, { children: "Distribute" }), _jsx(ContextMenuSubContent, { className: MENU_CLASS.subContent, children: NODE_MENUS.distribute.map(m => m.label === 'sep' ? (_jsx(ContextMenuSeparator, {}, m.val)) : (_jsxs(ContextMenuItem, { onClick: () => {
459
+ }, children: [m.Icon && _jsx(m.Icon, { className: MENU_CLASS.icon }), " ", m.label] }, m.val))) })] }), selNodes.length > 2 && (_jsxs(ContextMenuSub, { children: [_jsx(ContextMenuSubTrigger, { children: "Distribute" }), _jsx(ContextMenuSubContent, { className: MENU_CLASS.subContent, children: NODE_MENUS.distribute.map((m) => m.label === 'sep' ? (_jsx(ContextMenuSeparator, {}, m.val)) : (_jsxs(ContextMenuItem, { onClick: () => {
432
460
  onDistributeNodes(selNodes, m.val);
433
- }, children: [m.Icon && _jsx(m.Icon, { className: MENU_CLASS.icon }), " ", m.label] }, m.val))) })] })), _jsx(ContextMenuSeparator, {}), _jsxs(ContextMenuItem, { className: 'cursor-pointer focus:!bg-primary-3 focus:!text-primary-12', onClick: () => {
434
- const minX = Math.min(...selNodes.map(n => n.position.x - getNodeSize(n).w / 2));
435
- const minY = Math.min(...selNodes.map(n => n.position.y - getNodeSize(n).h / 2));
461
+ }, children: [m.Icon && _jsx(m.Icon, { className: MENU_CLASS.icon }), " ", m.label] }, m.val))) })] })), _jsx(ContextMenuSeparator, {}), _jsxs(ContextMenuItem, { className: "cursor-pointer focus:!bg-primary-3 focus:!text-primary-12", onClick: () => {
462
+ const minX = Math.min(...selNodes.map((n) => n.position.x - getNodeSize(n).w / 2));
463
+ const minY = Math.min(...selNodes.map((n) => n.position.y - getNodeSize(n).h / 2));
436
464
  const padding = 40;
437
- const gWidth = Math.max(...selNodes.map(n => n.position.x + getNodeSize(n).w / 2)) - minX + padding * 2;
438
- const gHeight = Math.max(...selNodes.map(n => n.position.y + getNodeSize(n).h / 2)) - minY + padding * 2;
465
+ const gWidth = Math.max(...selNodes.map((n) => n.position.x + getNodeSize(n).w / 2)) -
466
+ minX +
467
+ padding * 2;
468
+ const gHeight = Math.max(...selNodes.map((n) => n.position.y + getNodeSize(n).h / 2)) -
469
+ minY +
470
+ padding * 2;
439
471
  const gX = minX - padding + gWidth / 2;
440
472
  const gY = minY - padding + gHeight / 2;
441
473
  onGroupNodes({
@@ -445,20 +477,20 @@ const FLOW_COMPONENTS = {
445
477
  style: { width: gWidth, height: gHeight },
446
478
  data: { attributes: [], customPosition: { x: gX, y: gY }, title: 'Group' },
447
479
  }, selNodes, gX, gY);
448
- }, children: [_jsx(GroupIcon, { className: MENU_CLASS.icon }), " Create Group"] }), _jsxs(ContextMenuItem, { intent: 'destructive', onClick: () => {
449
- onDeleteSelected(selNodes.filter(n => !locked(n)));
480
+ }, children: [_jsx(GroupIcon, { className: MENU_CLASS.icon }), " Create Group"] }), _jsxs(ContextMenuItem, { intent: "destructive", onClick: () => {
481
+ onDeleteSelected(selNodes.filter((n) => !locked(n)));
450
482
  }, disabled: selNodes.every(locked), children: [_jsx(TrashIcon, { className: MENU_CLASS.icon }), " Delete Selected"] })] })) : menuCtx.type === '_node' && menuCtx.id ? (_jsxs(_Fragment, { children: [_jsxs(ContextMenuItem, { disabled: isTgtLocked, onClick: () => {
451
483
  onRenameNode(menuCtx.id);
452
- }, children: [_jsx(EditIcon, { className: MENU_CLASS.icon }), " Rename Node"] }), _jsxs(ContextMenuSub, { children: [_jsxs(ContextMenuSubTrigger, { disabled: isTgtLocked, children: [_jsx(TypeIcon, { className: MENU_CLASS.icon }), " Change Type"] }), _jsx(ContextMenuSubContent, { className: MENU_CLASS.content, children: allowedTypes.map(t => {
484
+ }, children: [_jsx(EditIcon, { className: MENU_CLASS.icon }), " Rename Node"] }), _jsxs(ContextMenuSub, { children: [_jsxs(ContextMenuSubTrigger, { disabled: isTgtLocked, children: [_jsx(TypeIcon, { className: MENU_CLASS.icon }), " Change Type"] }), _jsx(ContextMenuSubContent, { className: MENU_CLASS.content, children: allowedTypes.map((t) => {
453
485
  const { Icon, label, colorCls } = NODE_CFG[t];
454
486
  return (_jsxs(ContextMenuItem, { disabled: isTgtLocked, onClick: () => {
455
487
  onChangeNodeType(menuCtx.id, t);
456
488
  }, children: [_jsx(Icon, { className: cn('size-4 shrink-0', colorCls) }), _jsx("span", { children: nodeLabels[t] || label })] }, t));
457
- }) })] }), _jsx(ContextMenuSeparator, {}), _jsxs(ContextMenuItem, { disabled: isTgtLocked, intent: 'destructive', onClick: () => tgtNode && onDeleteSelected([tgtNode]), children: [_jsx(TrashIcon, { className: MENU_CLASS.icon }), " Delete Node"] })] })) : menuCtx.type === 'e' && menuCtx.id ? (_jsxs(_Fragment, { children: [_jsxs(ContextMenuSub, { children: [_jsxs(ContextMenuSubTrigger, { children: [_jsx(TypeIcon, { className: MENU_CLASS.icon }), " Change Style"] }), _jsx(ContextMenuSubContent, { className: MENU_CLASS.content, children: NODE_MENUS.edges.map(m => (_jsxs(ContextMenuItem, { onClick: () => {
489
+ }) })] }), _jsx(ContextMenuSeparator, {}), _jsxs(ContextMenuItem, { disabled: isTgtLocked, intent: "destructive", onClick: () => tgtNode && onDeleteSelected([tgtNode]), children: [_jsx(TrashIcon, { className: MENU_CLASS.icon }), " Delete Node"] })] })) : menuCtx.type === 'e' && menuCtx.id ? (_jsxs(_Fragment, { children: [_jsxs(ContextMenuSub, { children: [_jsxs(ContextMenuSubTrigger, { children: [_jsx(TypeIcon, { className: MENU_CLASS.icon }), " Change Style"] }), _jsx(ContextMenuSubContent, { className: MENU_CLASS.content, children: NODE_MENUS.edges.map((m) => (_jsxs(ContextMenuItem, { onClick: () => {
458
490
  onChangeEdgeStyle(menuCtx.id, m.val);
459
- }, children: [_jsx("svg", { className: 'size-4 shrink-0 text-primary-11', viewBox: '0 0 16 16', fill: 'none', stroke: 'currentColor', strokeWidth: '2', strokeDasharray: m.dash, strokeLinecap: m.cap, children: _jsx("line", { x1: '0', y1: '8', x2: '16', y2: '8' }) }), _jsx("span", { children: m.label })] }, m.val))) })] }), _jsx(ContextMenuSeparator, {}), _jsxs(ContextMenuItem, { intent: 'destructive', onClick: () => {
491
+ }, children: [_jsx("svg", { className: "size-4 shrink-0 text-primary-11", viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeDasharray: m.dash, strokeLinecap: m.cap, children: _jsx("line", { x1: "0", y1: "8", x2: "16", y2: "8" }) }), _jsx("span", { children: m.label })] }, m.val))) })] }), _jsx(ContextMenuSeparator, {}), _jsxs(ContextMenuItem, { intent: "destructive", onClick: () => {
460
492
  onDeleteEdge(menuCtx.id);
461
- }, children: [_jsx(TrashIcon, { className: MENU_CLASS.icon }), " Delete Edge"] })] })) : menuCtx.type === 'pane' ? (_jsxs(ContextMenuSub, { children: [_jsxs(ContextMenuSubTrigger, { children: [_jsx(TypeIcon, { className: MENU_CLASS.icon }), " Add Node"] }), _jsx(ContextMenuSubContent, { className: MENU_CLASS.content, children: allowedTypes.map(t => {
493
+ }, children: [_jsx(TrashIcon, { className: MENU_CLASS.icon }), " Delete Edge"] })] })) : menuCtx.type === 'pane' ? (_jsxs(ContextMenuSub, { children: [_jsxs(ContextMenuSubTrigger, { children: [_jsx(TypeIcon, { className: MENU_CLASS.icon }), " Add Node"] }), _jsx(ContextMenuSubContent, { className: MENU_CLASS.content, children: allowedTypes.map((t) => {
462
494
  const { Icon, label, colorCls } = NODE_CFG[t];
463
495
  return (_jsxs(ContextMenuItem, { onClick: () => {
464
496
  try {
@@ -474,7 +506,9 @@ const FLOW_COMPONENTS = {
474
506
  onAddNode(t, pos);
475
507
  }
476
508
  catch (err) {
477
- errorLog('AuthNodes', `menu.add.failed: ${t}`, { error: err instanceof Error ? err.message : String(err) });
509
+ errorLog('AuthNodes', `menu.add.failed: ${t}`, {
510
+ error: err instanceof Error ? err.message : String(err),
511
+ });
478
512
  }
479
513
  }, children: [_jsx(Icon, { className: cn('size-4 shrink-0', colorCls) }), _jsx("span", { children: nodeLabels[t] || label })] }, t));
480
514
  }) })] })) : null }))] }));
@@ -522,7 +556,10 @@ COMPONENT
522
556
  */
523
557
  export default function Nodes({ nodes: initialNodes = [], edges: initialEdges = [], className, direction: dir = 'TB', nodeSep = 50, rankSep = 5, proximityConnect = false, interactive = false, height, onCommit, onAddContent, onNodeClick, nodeTypes: customNodeTypes = {}, nodeLabels = {}, lockedTypes = [], allowedTypes = Object.keys(NODE_TYPES), editable = false, disabled = !editable, clipboardKey = editable ? 'terra.flow.docs' : undefined, showBg = true, showCtrls = true, arcControls = false, edgeTypes, readyWhenEmpty = true, onReady, style, ...rest }) {
524
558
  // STATES
525
- const [graph, setGraph] = useState({ nodes: initialNodes, edges: initialEdges });
559
+ const [graph, setGraph] = useState({
560
+ nodes: initialNodes,
561
+ edges: initialEdges,
562
+ });
526
563
  const [flow, setFlow] = useState({ nodes: [], edges: [] });
527
564
  const [isFocused, setIsFocused] = useState(false);
528
565
  const [internalHeight, setInternalHeight] = useState(384);
@@ -549,20 +586,39 @@ export default function Nodes({ nodes: initialNodes = [], edges: initialEdges =
549
586
  useEditor({
550
587
  adapter: {
551
588
  ...(clipboardKey ? { clipboardKey } : {}),
552
- cloneNode: (n, id) => ({ ...n, id, data: { ...n.data, ...(typeof n.data.graphKey === 'string' ? { graphKey: id } : {}) } }),
553
- editableNode: n => !lockedTypes.includes(n.type),
589
+ cloneNode: (n, id) => ({
590
+ ...n,
591
+ id,
592
+ data: {
593
+ ...n.data,
594
+ ...(typeof n.data.graphKey === 'string'
595
+ ? { graphKey: id }
596
+ : {}),
597
+ },
598
+ }),
599
+ editableNode: (n) => !lockedTypes.includes(n.type),
554
600
  read: flow,
555
601
  write: useCallback((n) => {
556
602
  flowRef.current = n;
557
603
  setFlow(n);
558
- writeGraph(c => {
559
- const currEntities = { nodes: new Map(c.nodes.map(i => [i.id, i])), edges: new Map(c.edges.map(i => [i.id, i])) };
604
+ writeGraph((c) => {
605
+ const currEntities = {
606
+ nodes: new Map(c.nodes.map((i) => [i.id, i])),
607
+ edges: new Map(c.edges.map((i) => [i.id, i])),
608
+ };
560
609
  return {
561
- nodes: n.nodes.map(n => {
610
+ nodes: n.nodes.map((n) => {
562
611
  const { editable: _, groupId: __, id: ___, isDragTarget: ____, onResizeEnd: _____, requiredHandles: ______, ...data } = n.data;
563
- return { ...currEntities.nodes.get(n.id), id: n.id, type: n.type, position: n.position, style: n.style, data };
612
+ return {
613
+ ...currEntities.nodes.get(n.id),
614
+ id: n.id,
615
+ type: n.type,
616
+ position: n.position,
617
+ style: n.style,
618
+ data,
619
+ };
564
620
  }),
565
- edges: n.edges.map(e => {
621
+ edges: n.edges.map((e) => {
566
622
  return {
567
623
  ...currEntities.edges.get(e.id),
568
624
  id: e.id,
@@ -581,9 +637,9 @@ export default function Nodes({ nodes: initialNodes = [], edges: initialEdges =
581
637
  disabled,
582
638
  });
583
639
  const handleResizeEnd = useCallback((i, p) => {
584
- writeGraph(c => ({
640
+ writeGraph((c) => ({
585
641
  ...c,
586
- nodes: c.nodes.map(n => n.id === i
642
+ nodes: c.nodes.map((n) => n.id === i
587
643
  ? {
588
644
  ...n,
589
645
  position: { x: p.x, y: p.y },
@@ -633,10 +689,10 @@ export default function Nodes({ nodes: initialNodes = [], edges: initialEdges =
633
689
  }, [initialNodes, initialEdges, writeGraph]);
634
690
  // HELPERS
635
691
  // RENDER
636
- return (_jsx(ErrorBoundary, { name: 'Nodes', children: _jsx("div", { ...rest, style: { height: height ?? internalHeight, ...style }, className: cn('docs-flow size-full overflow-hidden rounded-md border border-primary-6', interactive && 'scrim-primary-1 scrim-20', className), tabIndex: rest.tabIndex ?? 0, onFocus: e => {
692
+ return (_jsx(ErrorBoundary, { name: "Nodes", children: _jsx("div", { ...rest, style: { height: height ?? internalHeight, ...style }, className: cn('docs-flow size-full overflow-hidden rounded-md border border-primary-6', interactive && 'scrim-primary-1 scrim-20', className), tabIndex: rest.tabIndex ?? 0, onFocus: (e) => {
637
693
  setIsFocused(true);
638
694
  rest.onFocus?.(e);
639
- }, onBlur: e => {
695
+ }, onBlur: (e) => {
640
696
  setIsFocused(false);
641
697
  rest.onBlur?.(e);
642
698
  }, children: _jsx(ReactFlowProvider, { children: _jsx(FLOW_COMPONENTS.Canvas, { flow: flow, nodeTypes: { ...FLOW_COMPONENTS.nodeTypes, ...customNodeTypes }, ...(edgeTypes ? { edgeTypes } : {}), nodeLabels: nodeLabels, onNodeClick: onNodeClick, onNodesChange:
@@ -714,14 +770,19 @@ export default function Nodes({ nodes: initialNodes = [], edges: initialEdges =
714
770
  const nEdges = applyEdgeChanges(v, flowRef.current.edges);
715
771
  setFlow({ ...flowRef.current, edges: nEdges });
716
772
  flowRef.current = { ...flowRef.current, edges: nEdges };
717
- if (editable && v.some(c => c.type === 'remove')) {
718
- const remEdgeIds = new Set(v.filter(c => c.type === 'remove').map(c => c.id));
719
- writeGraph(c => ({ ...c, edges: remEdgeIds.size ? c.edges.filter(_e => !remEdgeIds.has(_e.id)) : c.edges }));
773
+ if (editable && v.some((c) => c.type === 'remove')) {
774
+ const remEdgeIds = new Set(v.filter((c) => c.type === 'remove').map((c) => c.id));
775
+ writeGraph((c) => ({
776
+ ...c,
777
+ edges: remEdgeIds.size
778
+ ? c.edges.filter((_e) => !remEdgeIds.has(_e.id))
779
+ : c.edges,
780
+ }));
720
781
  }
721
782
  }, [editable, writeGraph]), onConnect: useCallback((p) => {
722
783
  if (!editable)
723
784
  return;
724
- writeGraph(c => ({
785
+ writeGraph((c) => ({
725
786
  ...c,
726
787
  edges: [
727
788
  ...c.edges,
@@ -732,7 +793,11 @@ export default function Nodes({ nodes: initialNodes = [], edges: initialEdges =
732
793
  sourceHandle: p.sourceHandle,
733
794
  targetHandle: p.targetHandle,
734
795
  labelBgStyle: { fill: 'white', fillOpacity: 0.8 },
735
- data: { srcHandleOverride: p.sourceHandle, tgtHandleOverride: p.targetHandle, arrowHead: true },
796
+ data: {
797
+ srcHandleOverride: p.sourceHandle,
798
+ tgtHandleOverride: p.targetHandle,
799
+ arrowHead: true,
800
+ },
736
801
  },
737
802
  ],
738
803
  }));
@@ -742,9 +807,14 @@ export default function Nodes({ nodes: initialNodes = [], edges: initialEdges =
742
807
  const nLabel = window.prompt('Enter edge label:', r.label || '');
743
808
  if (nLabel === null)
744
809
  return;
745
- writeGraph(g => ({ ...g, edges: g.edges.map(e => (e.id === r.id ? { ...e, label: nLabel, labelBgStyle: { fill: 'white', fillOpacity: 0.8 } } : e)) }));
810
+ writeGraph((g) => ({
811
+ ...g,
812
+ edges: g.edges.map((e) => e.id === r.id
813
+ ? { ...e, label: nLabel, labelBgStyle: { fill: 'white', fillOpacity: 0.8 } }
814
+ : e),
815
+ }));
746
816
  }, [editable, writeGraph]), onAddNode: useCallback((t, p) => {
747
- writeGraph(c => ({
817
+ writeGraph((c) => ({
748
818
  ...c,
749
819
  nodes: [
750
820
  ...c.nodes,
@@ -752,27 +822,36 @@ export default function Nodes({ nodes: initialNodes = [], edges: initialEdges =
752
822
  id: `${t}-${Date.now().toString(36)}`,
753
823
  type: t,
754
824
  position: p,
755
- data: { attributes: [], customPosition: p, title: `${NODE_CFG[t].label} ${c.nodes.length + 1}` },
825
+ data: {
826
+ attributes: [],
827
+ customPosition: p,
828
+ title: `${NODE_CFG[t].label} ${c.nodes.length + 1}`,
829
+ },
756
830
  },
757
831
  ],
758
832
  }));
759
833
  }, [writeGraph]), lockedTypes: lockedTypes, allowedTypes: allowedTypes, onAddContent: fns.current.onAddContent, onGroupNodes: useCallback((g, v) => {
760
- const group = { node: g, targetIds: new Set(v.map(s => s.id)) };
761
- writeGraph(c => {
762
- const nNodes = c.nodes.map(n => {
834
+ const group = { node: g, targetIds: new Set(v.map((s) => s.id)) };
835
+ writeGraph((c) => {
836
+ const nNodes = c.nodes.map((n) => {
763
837
  if (group.targetIds.has(n.id)) {
764
838
  const { parentId: _parentId, extent: _extent, ...rest } = n;
765
839
  return { ...rest, data: { ...n.data, groupId: g.id } };
766
840
  }
767
841
  return n;
768
842
  });
769
- return { ...c, nodes: nNodes.some(n => n.id === group.node.id) ? nNodes : [group.node, ...nNodes] };
843
+ return {
844
+ ...c,
845
+ nodes: nNodes.some((n) => n.id === group.node.id)
846
+ ? nNodes
847
+ : [group.node, ...nNodes],
848
+ };
770
849
  });
771
850
  }, [writeGraph]), onUngroupNodes: useCallback((v) => {
772
- const ungroupMap = new Map(v.map(u => [u.id, u]));
773
- writeGraph(c => ({
851
+ const ungroupMap = new Map(v.map((u) => [u.id, u]));
852
+ writeGraph((c) => ({
774
853
  ...c,
775
- nodes: c.nodes.map(n => {
854
+ nodes: c.nodes.map((n) => {
776
855
  if (ungroupMap.has(n.id)) {
777
856
  if (!getGroupId(ungroupMap.get(n.id)))
778
857
  return n;
@@ -784,23 +863,27 @@ export default function Nodes({ nodes: initialNodes = [], edges: initialEdges =
784
863
  }),
785
864
  }));
786
865
  }, [writeGraph]), onDeleteSelected: useCallback((s) => {
787
- writeGraph(c => {
788
- const selIds = new Set(s.map(n => n.id));
789
- return { ...c, nodes: c.nodes.filter(n => !selIds.has(n.id)), edges: c.edges.filter(_e => !selIds.has(_e.source) && !selIds.has(_e.target)) };
866
+ writeGraph((c) => {
867
+ const selIds = new Set(s.map((n) => n.id));
868
+ return {
869
+ ...c,
870
+ nodes: c.nodes.filter((n) => !selIds.has(n.id)),
871
+ edges: c.edges.filter((_e) => !selIds.has(_e.source) && !selIds.has(_e.target)),
872
+ };
790
873
  });
791
874
  }, [writeGraph]), onAlignNodes: useCallback((v, t) => {
792
875
  if (v.length < 2)
793
876
  return;
794
- const selNodesMap = new Map(v.map(s => [s.id, s]));
795
- writeGraph(c => {
796
- const absPos = v.map(n => ({ n, abs: n.position }));
797
- const minX = Math.min(...absPos.map(p => p.abs.x - getNodeSize(p.n).w / 2));
798
- const maxX = Math.max(...absPos.map(p => p.abs.x + getNodeSize(p.n).w / 2));
799
- const minY = Math.min(...absPos.map(p => p.abs.y - getNodeSize(p.n).h / 2));
800
- const maxY = Math.max(...absPos.map(p => p.abs.y + getNodeSize(p.n).h / 2));
877
+ const selNodesMap = new Map(v.map((s) => [s.id, s]));
878
+ writeGraph((c) => {
879
+ const absPos = v.map((n) => ({ n, abs: n.position }));
880
+ const minX = Math.min(...absPos.map((p) => p.abs.x - getNodeSize(p.n).w / 2));
881
+ const maxX = Math.max(...absPos.map((p) => p.abs.x + getNodeSize(p.n).w / 2));
882
+ const minY = Math.min(...absPos.map((p) => p.abs.y - getNodeSize(p.n).h / 2));
883
+ const maxY = Math.max(...absPos.map((p) => p.abs.y + getNodeSize(p.n).h / 2));
801
884
  return {
802
885
  ...c,
803
- nodes: c.nodes.map(n => {
886
+ nodes: c.nodes.map((n) => {
804
887
  if (selNodesMap.has(n.id)) {
805
888
  const flowNode = selNodesMap.get(n.id);
806
889
  const size = getNodeSize(flowNode);
@@ -836,7 +919,7 @@ export default function Nodes({ nodes: initialNodes = [], edges: initialEdges =
836
919
  }, [writeGraph]), onDistributeNodes: useCallback((v, t) => {
837
920
  if (v.length < 3)
838
921
  return;
839
- writeGraph(c => {
922
+ writeGraph((c) => {
840
923
  const isHoriz = t.startsWith('horizontal');
841
924
  const sizeKey = isHoriz ? 'w' : 'h';
842
925
  /**
@@ -853,14 +936,19 @@ export default function Nodes({ nodes: initialNodes = [], edges: initialEdges =
853
936
  return basePos;
854
937
  return basePos + size / 2;
855
938
  };
856
- const sorted = [...v.map(n => ({ n, abs: n.position }))].sort((a, b) => getEdge(a) - getEdge(b));
939
+ const sorted = [...v.map((n) => ({ n, abs: n.position }))].sort((a, b) => getEdge(a) - getEdge(b));
857
940
  const min = getEdge(sorted[0]);
858
- const layoutLookup = { nodes: new Map(v.map(s => [s.id, s])), indices: new Map(sorted.map((s, i) => [s.n.id, i])) };
941
+ const layoutLookup = {
942
+ nodes: new Map(v.map((s) => [s.id, s])),
943
+ indices: new Map(sorted.map((s, i) => [s.n.id, i])),
944
+ };
859
945
  return {
860
946
  ...c,
861
- nodes: c.nodes.map(n => {
947
+ nodes: c.nodes.map((n) => {
862
948
  if (layoutLookup.nodes.has(n.id)) {
863
- const tEdge = min + ((getEdge(sorted[sorted.length - 1]) - min) / (sorted.length - 1)) * layoutLookup.indices.get(n.id);
949
+ const tEdge = min +
950
+ ((getEdge(sorted[sorted.length - 1]) - min) / (sorted.length - 1)) *
951
+ layoutLookup.indices.get(n.id);
864
952
  const flowNode = layoutLookup.nodes.get(n.id);
865
953
  const size = getNodeSize(flowNode)[sizeKey];
866
954
  let nAbsVal = tEdge;
@@ -868,8 +956,15 @@ export default function Nodes({ nodes: initialNodes = [], edges: initialEdges =
868
956
  nAbsVal = tEdge + size / 2;
869
957
  else if (t.endsWith('right') || t.endsWith('bottom'))
870
958
  nAbsVal = tEdge - size / 2;
871
- const newPos = { x: isHoriz ? nAbsVal : flowNode.position.x, y: isHoriz ? flowNode.position.y : nAbsVal };
872
- return { ...n, position: newPos, data: { ...n.data, customPosition: newPos } };
959
+ const newPos = {
960
+ x: isHoriz ? nAbsVal : flowNode.position.x,
961
+ y: isHoriz ? flowNode.position.y : nAbsVal,
962
+ };
963
+ return {
964
+ ...n,
965
+ position: newPos,
966
+ data: { ...n.data, customPosition: newPos },
967
+ };
873
968
  }
874
969
  return n;
875
970
  }),
@@ -888,23 +983,35 @@ export default function Nodes({ nodes: initialNodes = [], edges: initialEdges =
888
983
  const nTitle = window.prompt('Enter new name:', _node.data.title);
889
984
  if (!nTitle)
890
985
  return;
891
- writeGraph(c => ({ ...c, nodes: c.nodes.map(n => (n.id === i ? { ...n, data: { ...n.data, title: nTitle } } : n)) }));
986
+ writeGraph((c) => ({
987
+ ...c,
988
+ nodes: c.nodes.map((n) => n.id === i ? { ...n, data: { ...n.data, title: nTitle } } : n),
989
+ }));
892
990
  }, [writeGraph]), onChangeNodeType: useCallback((i, t) => {
893
- writeGraph(c => ({ ...c, nodes: c.nodes.map(n => (n.id === i ? { ...n, type: t } : n)) }));
991
+ writeGraph((c) => ({
992
+ ...c,
993
+ nodes: c.nodes.map((n) => (n.id === i ? { ...n, type: t } : n)),
994
+ }));
894
995
  }, [writeGraph]), onChangeEdgeStyle: useCallback((i, s) => {
895
- writeGraph(c => ({ ...c, edges: c.edges.map(e => (e.id === i ? { ...e, data: { ...e.data, strokeStyle: s } } : e)) }));
996
+ writeGraph((c) => ({
997
+ ...c,
998
+ edges: c.edges.map((e) => e.id === i ? { ...e, data: { ...e.data, strokeStyle: s } } : e),
999
+ }));
896
1000
  }, [writeGraph]), onDeleteEdge: useCallback((i) => {
897
- writeGraph(c => ({ ...c, edges: c.edges.filter(_e => _e.id !== i) }));
1001
+ writeGraph((c) => ({ ...c, edges: c.edges.filter((_e) => _e.id !== i) }));
898
1002
  }, [writeGraph]), onAutoLayout: useCallback(() => {
899
- writeGraph(c => {
900
- const validNodeIds = new Set(c.nodes.map(n => n.id));
1003
+ writeGraph((c) => {
1004
+ const validNodeIds = new Set(c.nodes.map((n) => n.id));
901
1005
  return {
902
1006
  ...c,
903
- nodes: c.nodes.map(n => {
1007
+ nodes: c.nodes.map((n) => {
904
1008
  const { parentId: _parentId, extent: _extent, ...rest } = n;
905
- return { ...rest, data: Object.fromEntries(Object.entries(rest.data ?? {}).filter(([k]) => k !== 'customPosition')) };
1009
+ return {
1010
+ ...rest,
1011
+ data: Object.fromEntries(Object.entries(rest.data ?? {}).filter(([k]) => k !== 'customPosition')),
1012
+ };
906
1013
  }),
907
- edges: c.edges.filter(e => validNodeIds.has(e.source) && validNodeIds.has(e.target)),
1014
+ edges: c.edges.filter((e) => validNodeIds.has(e.source) && validNodeIds.has(e.target)),
908
1015
  };
909
1016
  });
910
1017
  }, [writeGraph]), interactive: interactive, editable: permitted, isFocused: isFocused, height: typeof height === 'number' && Number.isFinite(height) ? height : internalHeight, showBg: showBg, showCtrls: showCtrls, arcControls: arcControls, readyWhenEmpty: readyWhenEmpty, onReady: onReady }) }) }) }));