@tldiagram/core-ui 1.87.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 (272) hide show
  1. package/dist/App.d.ts +1 -0
  2. package/dist/api/client.d.ts +143 -0
  3. package/dist/api/transport-vscode.d.ts +8 -0
  4. package/dist/api/transport.d.ts +1 -0
  5. package/dist/components/CodePreviewPanel-vscode.d.ts +7 -0
  6. package/dist/components/CodePreviewPanel.d.ts +9 -0
  7. package/dist/components/ConfirmDialog.d.ts +12 -0
  8. package/dist/components/ConnectorPanel.d.ts +21 -0
  9. package/dist/components/ContextBoundaryElement.d.ts +11 -0
  10. package/dist/components/ContextNeighborElement.d.ts +29 -0
  11. package/dist/components/ContextStraightConnector.d.ts +4 -0
  12. package/dist/components/CrossBranchControls.d.ts +9 -0
  13. package/dist/components/DependenciesOnboarding.d.ts +5 -0
  14. package/dist/components/DrawingCanvas.d.ts +39 -0
  15. package/dist/components/ElementLibrary-vscode.d.ts +7 -0
  16. package/dist/components/ElementLibrary.d.ts +22 -0
  17. package/dist/components/ElementNode.d.ts +36 -0
  18. package/dist/components/ElementPanel.d.ts +25 -0
  19. package/dist/components/ExploreOnboarding.d.ts +5 -0
  20. package/dist/components/ExplorePageOnboarding.d.ts +5 -0
  21. package/dist/components/ExportModal.d.ts +16 -0
  22. package/dist/components/FloatingEdge.d.ts +9 -0
  23. package/dist/components/GitSourceLinker.d.ts +8 -0
  24. package/dist/components/HeaderContext.d.ts +16 -0
  25. package/dist/components/Icons.d.ts +95 -0
  26. package/dist/components/ImportModal.d.ts +10 -0
  27. package/dist/components/InlineElementAdder.d.ts +17 -0
  28. package/dist/components/LayoutSection.d.ts +7 -0
  29. package/dist/components/LocalSourceLinker.d.ts +8 -0
  30. package/dist/components/MiniZoomOnboarding.d.ts +5 -0
  31. package/dist/components/NavBreadcrumb.d.ts +6 -0
  32. package/dist/components/NodeBody.d.ts +12 -0
  33. package/dist/components/NodeContainer.d.ts +8 -0
  34. package/dist/components/NodeHoverCard.d.ts +10 -0
  35. package/dist/components/PanelHeader.d.ts +8 -0
  36. package/dist/components/PanelUI.d.ts +3 -0
  37. package/dist/components/ProxyConnectorEdge.d.ts +4 -0
  38. package/dist/components/ProxyConnectorPanel.d.ts +9 -0
  39. package/dist/components/SafeBackground.d.ts +13 -0
  40. package/dist/components/ScrollIndicatorWrapper.d.ts +8 -0
  41. package/dist/components/SetChildModal.d.ts +10 -0
  42. package/dist/components/SetParentModal.d.ts +10 -0
  43. package/dist/components/SlidingPanel.d.ts +16 -0
  44. package/dist/components/TagUpsert.d.ts +8 -0
  45. package/dist/components/TopMenuBar.d.ts +8 -0
  46. package/dist/components/ViewBezierConnector.d.ts +4 -0
  47. package/dist/components/ViewDrawMenu.d.ts +22 -0
  48. package/dist/components/ViewEditorEdgeLabelLayout.d.ts +16 -0
  49. package/dist/components/ViewEditorOnboarding.d.ts +5 -0
  50. package/dist/components/ViewExplorer/TagManager/ColorPicker.d.ts +7 -0
  51. package/dist/components/ViewExplorer/TagManager/GroupNamingPopover.d.ts +10 -0
  52. package/dist/components/ViewExplorer/TagManager/LayerItem.d.ts +27 -0
  53. package/dist/components/ViewExplorer/TagManager/TagItem.d.ts +25 -0
  54. package/dist/components/ViewExplorer/TagManager/index.d.ts +21 -0
  55. package/dist/components/ViewExplorer/ViewNavigator.d.ts +11 -0
  56. package/dist/components/ViewExplorer/ViewSearch.d.ts +8 -0
  57. package/dist/components/ViewExplorer/ViewTree.d.ts +18 -0
  58. package/dist/components/ViewExplorer/index.d.ts +31 -0
  59. package/dist/components/ViewExplorer/types.d.ts +11 -0
  60. package/dist/components/ViewExplorer/utils.d.ts +6 -0
  61. package/dist/components/ViewExplorer-vscode.d.ts +6 -0
  62. package/dist/components/ViewFloatingMenu-vscode.d.ts +27 -0
  63. package/dist/components/ViewFloatingMenu.d.ts +39 -0
  64. package/dist/components/ViewGridNode.d.ts +29 -0
  65. package/dist/components/ViewHeaderButton.d.ts +11 -0
  66. package/dist/components/ViewPanel.d.ts +18 -0
  67. package/dist/components/ViewsGridOnboarding.d.ts +5 -0
  68. package/dist/components/ZUI/ZUICanvas.d.ts +18 -0
  69. package/dist/components/ZUI/index.d.ts +2 -0
  70. package/dist/components/ZUI/layout.d.ts +18 -0
  71. package/dist/components/ZUI/proxy.d.ts +25 -0
  72. package/dist/components/ZUI/renderer.d.ts +30 -0
  73. package/dist/components/ZUI/types.d.ts +140 -0
  74. package/dist/components/ZUI/useZUIInteraction.d.ts +21 -0
  75. package/dist/config/runtime-vscode.d.ts +22 -0
  76. package/dist/config/runtime.d.ts +5 -0
  77. package/dist/constants/colors.d.ts +27 -0
  78. package/dist/constants/diagramColors.d.ts +1 -0
  79. package/dist/context/ThemeContext.d.ts +27 -0
  80. package/dist/crossBranch/graph.d.ts +13 -0
  81. package/dist/crossBranch/resolve.d.ts +22 -0
  82. package/dist/crossBranch/settings.d.ts +6 -0
  83. package/dist/crossBranch/store.d.ts +11 -0
  84. package/dist/crossBranch/types.d.ts +96 -0
  85. package/dist/demo/DemoPage.d.ts +9 -0
  86. package/dist/demo/seed.d.ts +9 -0
  87. package/dist/demo/store.d.ts +137 -0
  88. package/dist/demo/viewEditor.d.ts +26 -0
  89. package/dist/favicon.svg +35 -0
  90. package/dist/hooks/useSafeFitView.d.ts +16 -0
  91. package/dist/index.css +1 -0
  92. package/dist/index.d.ts +115 -0
  93. package/dist/index.js +19966 -0
  94. package/dist/lib/vscodeBridge-vscode.d.ts +13 -0
  95. package/dist/lib/vscodeBridge.d.ts +5 -0
  96. package/dist/logo-120.png +0 -0
  97. package/dist/logo-bw.png +0 -0
  98. package/dist/logo-bw.svg +15 -0
  99. package/dist/logo-text.svg +51 -0
  100. package/dist/logo.svg +35 -0
  101. package/dist/pages/AppearanceSettings.d.ts +3 -0
  102. package/dist/pages/Dependencies.d.ts +1 -0
  103. package/dist/pages/InfiniteZoom.d.ts +7 -0
  104. package/dist/pages/Settings.d.ts +7 -0
  105. package/dist/pages/ViewEditor/components/EditorMenus.d.ts +24 -0
  106. package/dist/pages/ViewEditor/components/EditorOverlays.d.ts +30 -0
  107. package/dist/pages/ViewEditor/components/EmptyCanvasState.d.ts +7 -0
  108. package/dist/pages/ViewEditor/context.d.ts +13 -0
  109. package/dist/pages/ViewEditor/hooks/useCanvasInteractions.d.ts +201 -0
  110. package/dist/pages/ViewEditor/hooks/useDrawingEngine.d.ts +40 -0
  111. package/dist/pages/ViewEditor/hooks/useViewContextNeighbours.d.ts +20 -0
  112. package/dist/pages/ViewEditor/hooks/useViewData.d.ts +74 -0
  113. package/dist/pages/ViewEditor/index.d.ts +8 -0
  114. package/dist/pages/ViewEditor/utils.d.ts +14 -0
  115. package/dist/pages/Views.d.ts +6 -0
  116. package/dist/pages/ViewsGrid.d.ts +6 -0
  117. package/dist/pkg/importer/mermaid.d.ts +7 -0
  118. package/dist/pkg/importer/mermaid.test.d.ts +1 -0
  119. package/dist/platform/PlatformContext.d.ts +6 -0
  120. package/dist/platform/context.d.ts +3 -0
  121. package/dist/platform/local.d.ts +2 -0
  122. package/dist/platform/types.d.ts +17 -0
  123. package/dist/slots.d.ts +67 -0
  124. package/dist/theme.d.ts +2 -0
  125. package/dist/types/index.d.ts +193 -0
  126. package/dist/types/vscode-messages.d.ts +60 -0
  127. package/dist/utils/edgeDistribution.d.ts +34 -0
  128. package/dist/utils/githubApi.d.ts +4 -0
  129. package/dist/utils/githubCache.d.ts +17 -0
  130. package/dist/utils/ids.d.ts +2 -0
  131. package/dist/utils/technologyCatalog.d.ts +15 -0
  132. package/dist/utils/toast.d.ts +15 -0
  133. package/dist/utils/treesitter.d.ts +13 -0
  134. package/dist/utils/url.d.ts +12 -0
  135. package/package.json +159 -0
  136. package/src/App.tsx +141 -0
  137. package/src/api/client.ts +618 -0
  138. package/src/api/transport-vscode.ts +28 -0
  139. package/src/api/transport.ts +7 -0
  140. package/src/assets/logo-mark.svg +31 -0
  141. package/src/assets/logo-wordmark.svg +22 -0
  142. package/src/assets/logo.svg +35 -0
  143. package/src/components/CodePreviewPanel-vscode.tsx +85 -0
  144. package/src/components/CodePreviewPanel.tsx +384 -0
  145. package/src/components/ConfirmDialog.tsx +66 -0
  146. package/src/components/ConnectorPanel.tsx +403 -0
  147. package/src/components/ContextBoundaryElement.tsx +35 -0
  148. package/src/components/ContextNeighborElement.tsx +282 -0
  149. package/src/components/ContextStraightConnector.tsx +144 -0
  150. package/src/components/CrossBranchControls.tsx +105 -0
  151. package/src/components/DependenciesOnboarding.tsx +427 -0
  152. package/src/components/DrawingCanvas.tsx +391 -0
  153. package/src/components/ElementLibrary-vscode.tsx +9 -0
  154. package/src/components/ElementLibrary.tsx +512 -0
  155. package/src/components/ElementNode.tsx +1033 -0
  156. package/src/components/ElementPanel.tsx +928 -0
  157. package/src/components/ExploreOnboarding.tsx +347 -0
  158. package/src/components/ExplorePageOnboarding.tsx +383 -0
  159. package/src/components/ExportModal.tsx +132 -0
  160. package/src/components/FloatingEdge.tsx +115 -0
  161. package/src/components/GitSourceLinker.tsx +1053 -0
  162. package/src/components/HeaderContext.tsx +30 -0
  163. package/src/components/Icons.tsx +245 -0
  164. package/src/components/ImportModal.tsx +219 -0
  165. package/src/components/InlineElementAdder.tsx +216 -0
  166. package/src/components/LayoutSection.tsx +624 -0
  167. package/src/components/LocalSourceLinker.tsx +330 -0
  168. package/src/components/MiniZoomOnboarding.tsx +78 -0
  169. package/src/components/NavBreadcrumb.tsx +24 -0
  170. package/src/components/NodeBody.tsx +89 -0
  171. package/src/components/NodeContainer.tsx +58 -0
  172. package/src/components/NodeHoverCard.tsx +135 -0
  173. package/src/components/PanelHeader.tsx +36 -0
  174. package/src/components/PanelUI.tsx +24 -0
  175. package/src/components/ProxyConnectorEdge.tsx +169 -0
  176. package/src/components/ProxyConnectorPanel.tsx +130 -0
  177. package/src/components/SafeBackground.tsx +19 -0
  178. package/src/components/ScrollIndicatorWrapper.tsx +117 -0
  179. package/src/components/SetChildModal.tsx +191 -0
  180. package/src/components/SetParentModal.tsx +187 -0
  181. package/src/components/SlidingPanel.tsx +114 -0
  182. package/src/components/TagUpsert.tsx +142 -0
  183. package/src/components/TopMenuBar.tsx +380 -0
  184. package/src/components/ViewBezierConnector.tsx +143 -0
  185. package/src/components/ViewDrawMenu.tsx +270 -0
  186. package/src/components/ViewEditorEdgeLabelLayout.ts +189 -0
  187. package/src/components/ViewEditorOnboarding.tsx +445 -0
  188. package/src/components/ViewExplorer/TagManager/ColorPicker.tsx +49 -0
  189. package/src/components/ViewExplorer/TagManager/GroupNamingPopover.tsx +96 -0
  190. package/src/components/ViewExplorer/TagManager/LayerItem.tsx +228 -0
  191. package/src/components/ViewExplorer/TagManager/TagItem.tsx +242 -0
  192. package/src/components/ViewExplorer/TagManager/index.tsx +418 -0
  193. package/src/components/ViewExplorer/ViewNavigator.tsx +121 -0
  194. package/src/components/ViewExplorer/ViewSearch.tsx +33 -0
  195. package/src/components/ViewExplorer/ViewTree.tsx +98 -0
  196. package/src/components/ViewExplorer/index.tsx +384 -0
  197. package/src/components/ViewExplorer/types.ts +13 -0
  198. package/src/components/ViewExplorer/utils.ts +56 -0
  199. package/src/components/ViewExplorer-vscode.tsx +8 -0
  200. package/src/components/ViewFloatingMenu-vscode.tsx +248 -0
  201. package/src/components/ViewFloatingMenu.tsx +379 -0
  202. package/src/components/ViewGridNode.tsx +451 -0
  203. package/src/components/ViewHeaderButton.tsx +60 -0
  204. package/src/components/ViewPanel.tsx +162 -0
  205. package/src/components/ViewsGridOnboarding.tsx +400 -0
  206. package/src/components/ZUI/ZUICanvas.tsx +853 -0
  207. package/src/components/ZUI/index.ts +3 -0
  208. package/src/components/ZUI/layout.ts +323 -0
  209. package/src/components/ZUI/proxy.ts +278 -0
  210. package/src/components/ZUI/renderer.ts +1189 -0
  211. package/src/components/ZUI/types.ts +150 -0
  212. package/src/components/ZUI/useZUIInteraction.ts +720 -0
  213. package/src/config/runtime-vscode.ts +46 -0
  214. package/src/config/runtime.ts +30 -0
  215. package/src/constants/colors.ts +80 -0
  216. package/src/constants/diagramColors.ts +9 -0
  217. package/src/context/ThemeContext.tsx +158 -0
  218. package/src/crossBranch/graph.ts +207 -0
  219. package/src/crossBranch/resolve.ts +643 -0
  220. package/src/crossBranch/settings.ts +59 -0
  221. package/src/crossBranch/store.ts +71 -0
  222. package/src/crossBranch/types.ts +102 -0
  223. package/src/demo/DemoPage.tsx +184 -0
  224. package/src/demo/seed.ts +67 -0
  225. package/src/demo/store.ts +536 -0
  226. package/src/demo/viewEditor.ts +110 -0
  227. package/src/hooks/useSafeFitView.ts +60 -0
  228. package/src/index.css +309 -0
  229. package/src/index.ts +184 -0
  230. package/src/kafka-ss.png +0 -0
  231. package/src/lib/vscodeBridge-vscode.ts +27 -0
  232. package/src/lib/vscodeBridge.ts +7 -0
  233. package/src/main.tsx +46 -0
  234. package/src/pages/AppearanceSettings.tsx +135 -0
  235. package/src/pages/Dependencies.tsx +926 -0
  236. package/src/pages/InfiniteZoom.tsx +404 -0
  237. package/src/pages/Settings.tsx +91 -0
  238. package/src/pages/ViewEditor/EDGE_DISTRIBUTION.md +64 -0
  239. package/src/pages/ViewEditor/components/EditorMenus.tsx +112 -0
  240. package/src/pages/ViewEditor/components/EditorOverlays.tsx +172 -0
  241. package/src/pages/ViewEditor/components/EmptyCanvasState.tsx +42 -0
  242. package/src/pages/ViewEditor/context.tsx +21 -0
  243. package/src/pages/ViewEditor/hooks/useCanvasInteractions.ts +1349 -0
  244. package/src/pages/ViewEditor/hooks/useDrawingEngine.ts +127 -0
  245. package/src/pages/ViewEditor/hooks/useViewContextNeighbours.ts +501 -0
  246. package/src/pages/ViewEditor/hooks/useViewData.ts +491 -0
  247. package/src/pages/ViewEditor/index.tsx +1366 -0
  248. package/src/pages/ViewEditor/utils.ts +88 -0
  249. package/src/pages/Views.tsx +171 -0
  250. package/src/pages/ViewsGrid.tsx +1310 -0
  251. package/src/pkg/importer/mermaid.test.ts +141 -0
  252. package/src/pkg/importer/mermaid.ts +76 -0
  253. package/src/platform/PlatformContext.tsx +17 -0
  254. package/src/platform/context.ts +9 -0
  255. package/src/platform/local.tsx +15 -0
  256. package/src/platform/types.ts +19 -0
  257. package/src/slots.ts +92 -0
  258. package/src/styles/editor-panels.css +66 -0
  259. package/src/styles/theme.css +56 -0
  260. package/src/theme.ts +336 -0
  261. package/src/types/index.ts +234 -0
  262. package/src/types/offline-ambient.d.ts +14 -0
  263. package/src/types/vscode-messages.ts +32 -0
  264. package/src/utils/edgeDistribution.ts +103 -0
  265. package/src/utils/githubApi.ts +121 -0
  266. package/src/utils/githubCache.ts +108 -0
  267. package/src/utils/ids.ts +9 -0
  268. package/src/utils/technologyCatalog.ts +143 -0
  269. package/src/utils/toast.ts +100 -0
  270. package/src/utils/treesitter.ts +147 -0
  271. package/src/utils/url.ts +72 -0
  272. package/src/vite-env.d.ts +1 -0
@@ -0,0 +1,30 @@
1
+ import React from 'react';
2
+ import { type Node as RFNode } from 'reactflow';
3
+ interface EditorOverlaysProps {
4
+ connectGhostPos: {
5
+ x: number;
6
+ y: number;
7
+ } | null;
8
+ clickConnectMode: {
9
+ sourceNodeId: string;
10
+ sourceHandle: string;
11
+ targetHandle?: string;
12
+ } | null;
13
+ clickConnectCursorPos: {
14
+ x: number;
15
+ y: number;
16
+ } | null;
17
+ handleReconnectDrag: {
18
+ endpoint: 'source' | 'target';
19
+ fixedNodeId: string;
20
+ fixedHandle: string;
21
+ movingHandle: string;
22
+ cursorPos: {
23
+ x: number;
24
+ y: number;
25
+ };
26
+ } | null;
27
+ rfNodes: RFNode[];
28
+ }
29
+ export declare const EditorOverlays: React.FC<EditorOverlaysProps>;
30
+ export {};
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ interface EmptyCanvasStateProps {
3
+ isMobile: boolean;
4
+ hasNodes: boolean;
5
+ }
6
+ export declare const EmptyCanvasState: React.FC<EmptyCanvasStateProps>;
7
+ export {};
@@ -0,0 +1,13 @@
1
+ import type { LibraryElement, Connector } from '../../types';
2
+ export interface ViewEditorContextValue {
3
+ viewId: number | null;
4
+ canEdit: boolean;
5
+ isOwner: boolean;
6
+ isFreePlan: boolean;
7
+ snapToGrid: boolean;
8
+ setSnapToGrid: (snap: boolean) => void;
9
+ selectedElement: LibraryElement | null;
10
+ selectedConnector: Connector | null;
11
+ }
12
+ export declare const ViewEditorContext: import("react").Context<ViewEditorContextValue | null>;
13
+ export declare function useViewEditorContext(): ViewEditorContextValue;
@@ -0,0 +1,201 @@
1
+ import type { DrawingCanvasHandle } from '../../../components/DrawingCanvas';
2
+ import { type Connection, type Edge as RFEdge, type EdgeChange, type Node as RFNode, type NodeChange, type NodeDragHandler, type OnConnect, type OnConnectStartParams } from 'reactflow';
3
+ import type { Connector, PlacedElement, ViewTreeNode, LibraryElement, ViewLayer, ViewConnector, IncomingViewConnector } from '../../../types';
4
+ interface CanvasInteractionOptions {
5
+ viewId: number | null;
6
+ canEdit: boolean;
7
+ drawingMode: boolean;
8
+ isMobileLayout: boolean;
9
+ rfNodesRef: React.MutableRefObject<RFNode[]>;
10
+ rfEdgesRef: React.MutableRefObject<RFEdge[]>;
11
+ viewElementsRef: React.MutableRefObject<PlacedElement[]>;
12
+ viewIdRef: React.MutableRefObject<number | null>;
13
+ incomingLinksRef: React.MutableRefObject<IncomingViewConnector[]>;
14
+ treeDataRef: React.MutableRefObject<ViewTreeNode[]>;
15
+ navigateRef: React.MutableRefObject<(path: string) => void>;
16
+ containerRef: React.MutableRefObject<HTMLDivElement | null>;
17
+ interactionSourceIdRef: React.MutableRefObject<number | null>;
18
+ hoveredZoomRef: React.MutableRefObject<{
19
+ elementId: number | null;
20
+ type: 'in' | 'out' | null;
21
+ } | null>;
22
+ hoverPanLockedUntilRef: React.MutableRefObject<number>;
23
+ setViewElements: React.Dispatch<React.SetStateAction<PlacedElement[]>>;
24
+ setConnectors: React.Dispatch<React.SetStateAction<Connector[]>>;
25
+ setRfNodes: React.Dispatch<React.SetStateAction<RFNode[]>>;
26
+ setRfEdges: React.Dispatch<React.SetStateAction<RFEdge[]>>;
27
+ setLinksMap: React.Dispatch<React.SetStateAction<Record<number, ViewConnector[]>>>;
28
+ setParentLinksMap: React.Dispatch<React.SetStateAction<Record<number, ViewConnector[]>>>;
29
+ setHoveredZoom: (val: {
30
+ elementId: number | null;
31
+ type: 'in' | 'out' | null;
32
+ } | null) => void;
33
+ refreshGrid: () => Promise<void>;
34
+ refreshElements: () => Promise<void>;
35
+ stableOnConnectTo: (targetElementId: number) => Promise<void>;
36
+ existingElementIds: Set<number>;
37
+ linksMapRef: React.MutableRefObject<Record<number, ViewConnector[]>>;
38
+ parentLinksMapRef: React.MutableRefObject<Record<number, ViewConnector[]>>;
39
+ openElementPanel: () => void;
40
+ closeElementPanel: () => void;
41
+ openConnectorPanel: () => void;
42
+ closeConnectorPanel: () => void;
43
+ selectedElement: LibraryElement | null;
44
+ selectedEdgeId: number | null;
45
+ connectors: Connector[];
46
+ layers: ViewLayer[];
47
+ setSelectedElement: React.Dispatch<React.SetStateAction<LibraryElement | null>>;
48
+ setSelectedEdge: (e: Connector | null) => void;
49
+ setSelectedEdgeId: (id: number | null) => void;
50
+ setSelectedProxyConnectorDetails: React.Dispatch<React.SetStateAction<import('../../../crossBranch/types').ProxyConnectorDetails | null>>;
51
+ openProxyConnectorPanel: () => void;
52
+ closeProxyConnectorPanel: () => void;
53
+ handleElementDeleted: (id: number) => void;
54
+ handleElementPermanentlyDeleted: (id: number) => void;
55
+ handleConnectorDeleted: (id: number) => void;
56
+ handleUpdateTags: (elementId: number, tags: string[]) => Promise<void>;
57
+ drawingCanvasRef: React.MutableRefObject<DrawingCanvasHandle | null>;
58
+ snapToGrid?: boolean;
59
+ onMoveStateChange?: (isMoving: boolean) => void;
60
+ }
61
+ type PickerState = {
62
+ x: number;
63
+ y: number;
64
+ flowX: number;
65
+ flowY: number;
66
+ expandResults?: boolean;
67
+ mode: 'add' | 'connect';
68
+ };
69
+ type HandleReconnectDragState = {
70
+ edgeId: string;
71
+ endpoint: 'source' | 'target';
72
+ fixedNodeId: string;
73
+ fixedHandle: string;
74
+ movingHandle: string;
75
+ cursorPos: {
76
+ x: number;
77
+ y: number;
78
+ };
79
+ hoveredNodeId?: string;
80
+ hoveredHandleId?: string;
81
+ };
82
+ export declare function useCanvasInteractions({ viewId, canEdit, drawingMode: _drawingMode, isMobileLayout: _isMobileLayout, rfNodesRef, rfEdgesRef: _rfEdgesRef, viewElementsRef, viewIdRef, incomingLinksRef, treeDataRef, navigateRef, containerRef, interactionSourceIdRef, hoveredZoomRef, hoverPanLockedUntilRef, setViewElements, setConnectors, setRfNodes, setRfEdges, setLinksMap, setParentLinksMap: _setParentLinksMap, setHoveredZoom, refreshGrid, refreshElements, stableOnConnectTo, existingElementIds, linksMapRef, parentLinksMapRef, openElementPanel: _openElementPanel, closeElementPanel: closeElementPanel, openConnectorPanel: openConnectorPanel, closeConnectorPanel: closeConnectorPanel, selectedElement, selectedEdgeId, connectors, layers, setSelectedElement, setSelectedEdge, setSelectedEdgeId, setSelectedProxyConnectorDetails, openProxyConnectorPanel, closeProxyConnectorPanel, handleElementDeleted, handleElementPermanentlyDeleted, handleConnectorDeleted, handleUpdateTags, drawingCanvasRef, snapToGrid, onMoveStateChange, }: CanvasInteractionOptions): {
83
+ canvasMenu: {
84
+ x: number;
85
+ y: number;
86
+ flowX: number;
87
+ flowY: number;
88
+ } | null;
89
+ setCanvasMenu: import("react").Dispatch<import("react").SetStateAction<{
90
+ x: number;
91
+ y: number;
92
+ flowX: number;
93
+ flowY: number;
94
+ } | null>>;
95
+ addingElementAt: PickerState | null;
96
+ setAddingElementAt: import("react").Dispatch<import("react").SetStateAction<PickerState | null>>;
97
+ connectGhostPos: {
98
+ x: number;
99
+ y: number;
100
+ } | null;
101
+ clickConnectMode: {
102
+ sourceNodeId: string;
103
+ sourceHandle: string;
104
+ targetHandle?: string;
105
+ } | null;
106
+ clickConnectCursorPos: {
107
+ x: number;
108
+ y: number;
109
+ } | null;
110
+ handleReconnectDrag: HandleReconnectDragState | null;
111
+ interactionSourceId: number | null;
112
+ setInteractionSourceId: import("react").Dispatch<import("react").SetStateAction<number | null>>;
113
+ pendingConnectionSource: number | null;
114
+ setPendingConnectionSource: import("react").Dispatch<import("react").SetStateAction<number | null>>;
115
+ reconnectPicking: {
116
+ edgeId: number;
117
+ endpoint: "source" | "target";
118
+ } | null;
119
+ setReconnectPicking: import("react").Dispatch<import("react").SetStateAction<{
120
+ edgeId: number;
121
+ endpoint: "source" | "target";
122
+ } | null>>;
123
+ reconnectPickingRef: import("react").MutableRefObject<{
124
+ edgeId: number;
125
+ endpoint: "source" | "target";
126
+ } | null>;
127
+ connectorLongPressMenu: {
128
+ edgeId: number;
129
+ x: number;
130
+ y: number;
131
+ } | null;
132
+ setConnectorLongPressMenu: import("react").Dispatch<import("react").SetStateAction<{
133
+ edgeId: number;
134
+ x: number;
135
+ y: number;
136
+ } | null>>;
137
+ screenToFlowPositionRef: import("react").MutableRefObject<(position: import("reactflow").XYPosition) => import("reactflow").XYPosition>;
138
+ lastMousePosRef: import("react").MutableRefObject<{
139
+ clientX: number;
140
+ clientY: number;
141
+ } | null>;
142
+ touchStateRef: import("react").MutableRefObject<{
143
+ touches: Map<number, {
144
+ x: number;
145
+ y: number;
146
+ }>;
147
+ initialDistance: number;
148
+ isPinching: boolean;
149
+ lastMultiTouchWheelTime: number;
150
+ }>;
151
+ stableOnZoomIn: (elementId: number) => Promise<void>;
152
+ stableOnZoomOut: (elementId: number) => Promise<void>;
153
+ stableOnNavigateToView: (id: number) => void;
154
+ stableOnHoverZoom: (elementId: number, type: "in" | "out" | null) => void;
155
+ stableOnRemoveElement: (elementId: number) => Promise<void>;
156
+ stableOnConnectTo: (targetElementId: number) => Promise<void>;
157
+ stableOnStartHandleReconnect: (args: {
158
+ edgeId: string;
159
+ endpoint: "source" | "target";
160
+ handleId: string;
161
+ clientX: number;
162
+ clientY: number;
163
+ }) => void;
164
+ showAddingElementAt: (clientX: number, clientY: number, expandResults?: boolean, mode?: "add" | "connect") => void;
165
+ onNodesChange: (changes: NodeChange[]) => void;
166
+ onEdgesChange: (changes: EdgeChange[]) => void;
167
+ onNodeDragStart: NodeDragHandler;
168
+ onNodeDrag: NodeDragHandler;
169
+ onNodeDragStop: NodeDragHandler;
170
+ onConnect: OnConnect;
171
+ onConnectStart: (_: React.MouseEvent | React.TouchEvent, { nodeId }: OnConnectStartParams) => void;
172
+ onConnectEnd: (event: MouseEvent | TouchEvent) => void;
173
+ onReconnect: (oldConnector: RFEdge, newConnection: Connection) => Promise<void>;
174
+ onReconnectStart: () => void;
175
+ onReconnectEnd: () => void;
176
+ onEdgeClick: (_: React.MouseEvent, rfConnector: RFEdge) => void;
177
+ onEdgeContextMenu: (e: React.MouseEvent, rfConnector: RFEdge) => void;
178
+ onPaneClick: (e: React.MouseEvent) => void;
179
+ onPaneContextMenu: (e: React.MouseEvent) => void;
180
+ onPaneMouseMove: (e: React.MouseEvent) => void;
181
+ onMoveStart: () => void;
182
+ onMove: (_: unknown, viewport: {
183
+ x: number;
184
+ y: number;
185
+ zoom: number;
186
+ }) => void;
187
+ onMoveEnd: () => void;
188
+ onTouchStart: (e: React.TouchEvent) => void;
189
+ onTouchMove: (e: React.TouchEvent) => void;
190
+ onTouchEnd: (e: React.TouchEvent) => void;
191
+ onContainerPointerDown: (e: React.PointerEvent) => void;
192
+ onContainerPointerMove: (e: React.PointerEvent) => void;
193
+ onContainerPointerUp: () => void;
194
+ onDragOver: (e: React.DragEvent) => void;
195
+ onDrop: (e: React.DragEvent) => Promise<void>;
196
+ onWheelCapture: (e: React.WheelEvent) => void;
197
+ handleConfirmNewElement: (name: string) => Promise<void>;
198
+ handleConfirmExistingElement: (obj: LibraryElement) => Promise<void>;
199
+ handleConfirmConnectExistingElement: (obj: LibraryElement) => Promise<void>;
200
+ };
201
+ export {};
@@ -0,0 +1,40 @@
1
+ import type { DrawingPath } from '../../../components/DrawingCanvas';
2
+ export declare function useDrawingEngine(viewId: number | null): {
3
+ drawingMode: boolean;
4
+ setDrawingMode: import("react").Dispatch<import("react").SetStateAction<boolean>>;
5
+ drawingVisible: boolean;
6
+ setDrawingVisible: import("react").Dispatch<import("react").SetStateAction<boolean>>;
7
+ drawingPaths: DrawingPath[];
8
+ setDrawingPaths: import("react").Dispatch<import("react").SetStateAction<DrawingPath[]>>;
9
+ drawingTool: "select" | "text" | "pencil" | "eraser";
10
+ setDrawingTool: import("react").Dispatch<import("react").SetStateAction<"select" | "text" | "pencil" | "eraser">>;
11
+ drawingColor: string;
12
+ setDrawingColor: import("react").Dispatch<import("react").SetStateAction<string>>;
13
+ drawingWidth: number;
14
+ setDrawingWidth: import("react").Dispatch<import("react").SetStateAction<number>>;
15
+ textEditorState: {
16
+ canvasX: number;
17
+ canvasY: number;
18
+ flowX: number;
19
+ flowY: number;
20
+ } | null;
21
+ setTextEditorState: import("react").Dispatch<import("react").SetStateAction<{
22
+ canvasX: number;
23
+ canvasY: number;
24
+ flowX: number;
25
+ flowY: number;
26
+ } | null>>;
27
+ drawingHistoryRef: import("react").MutableRefObject<DrawingPath[][]>;
28
+ drawingRedoStackRef: import("react").MutableRefObject<DrawingPath[][]>;
29
+ handleUndo: () => void;
30
+ handleRedo: () => void;
31
+ commitDrawingText: (value: string, state: {
32
+ canvasX: number;
33
+ canvasY: number;
34
+ flowX: number;
35
+ flowY: number;
36
+ }) => void;
37
+ onPathComplete: (path: DrawingPath) => void;
38
+ onPathDelete: (pathId: string) => void;
39
+ onPathUpdate: (path: DrawingPath) => void;
40
+ };
@@ -0,0 +1,20 @@
1
+ import { type Edge as RFEdge, type Node as RFNode } from 'reactflow';
2
+ import type { PlacedElement } from '../../../types';
3
+ import type { CrossBranchContextSettings, ProxyConnectorDetails, WorkspaceGraphSnapshot } from '../../../crossBranch/types';
4
+ interface Props {
5
+ snapshot: WorkspaceGraphSnapshot | null;
6
+ settings: CrossBranchContextSettings;
7
+ viewId: number | null;
8
+ viewElements: PlacedElement[];
9
+ rfNodes: RFNode[];
10
+ stableOnNavigateToView: (id: number) => void;
11
+ onSelectProxyDetails: (details: ProxyConnectorDetails) => void;
12
+ expandedAncestorGroups: Set<string>;
13
+ onToggleAncestorGroup: (anchorId: string) => void;
14
+ }
15
+ export declare function useViewContextNeighbours({ snapshot, settings, viewId, viewElements, rfNodes, stableOnNavigateToView, onSelectProxyDetails, expandedAncestorGroups, onToggleAncestorGroup, }: Props): {
16
+ contextNodes: RFNode[];
17
+ contextConnectors: RFEdge[];
18
+ proxyConnectorDetailsByKey: Record<string, ProxyConnectorDetails>;
19
+ };
20
+ export {};
@@ -0,0 +1,74 @@
1
+ import { type Edge as RFEdge, type Node as RFNode } from 'reactflow';
2
+ import type { ViewTreeNode, PlacedElement, LibraryElement, Connector, IncomingViewConnector, ViewConnector, Tag } from '../../../types';
3
+ interface ViewDataOptions {
4
+ viewId: number | null;
5
+ interactionSourceId: number | null;
6
+ clickConnectMode: {
7
+ sourceNodeId: string;
8
+ sourceHandle: string;
9
+ targetHandle?: string;
10
+ } | null;
11
+ selectedEdgeId: number | null;
12
+ activeTags: string[];
13
+ hiddenLayerTags: string[];
14
+ hoveredLayerTags: string[] | null;
15
+ hoveredLayerColor: string | null;
16
+ tagColors: Record<string, Tag>;
17
+ stableOnZoomIn: (elementId: number) => Promise<void>;
18
+ stableOnZoomOut: (elementId: number) => Promise<void>;
19
+ stableOnNavigateToView: (id: number) => void;
20
+ stableOnSelect: (obj: PlacedElement) => void;
21
+ stableOnOpenCodePreview: (elementId: number) => void;
22
+ stableOnInteractionStart: (elementId: number) => void;
23
+ stableOnConnectTo: (targetElementId: number) => Promise<void>;
24
+ stableOnStartHandleReconnect: (args: {
25
+ edgeId: string;
26
+ endpoint: 'source' | 'target';
27
+ handleId: string;
28
+ clientX: number;
29
+ clientY: number;
30
+ }) => void;
31
+ stableOnRemoveElement: (elementId: number) => Promise<void>;
32
+ stableOnHoverZoom: (elementId: number, type: 'in' | 'out' | null) => void;
33
+ hoveredZoomRef: React.MutableRefObject<{
34
+ elementId: number | null;
35
+ type: 'in' | 'out' | null;
36
+ } | null>;
37
+ }
38
+ export declare function useViewData({ viewId, interactionSourceId, clickConnectMode, selectedEdgeId, activeTags, hiddenLayerTags, hoveredLayerTags, hoveredLayerColor, tagColors, stableOnZoomIn, stableOnZoomOut, stableOnNavigateToView, stableOnSelect, stableOnOpenCodePreview, stableOnInteractionStart, stableOnConnectTo, stableOnStartHandleReconnect, stableOnRemoveElement, stableOnHoverZoom, hoveredZoomRef, }: ViewDataOptions): {
39
+ view: ViewTreeNode | null | undefined;
40
+ setView: import("react").Dispatch<import("react").SetStateAction<ViewTreeNode | null | undefined>>;
41
+ viewElements: PlacedElement[];
42
+ setViewElements: import("react").Dispatch<import("react").SetStateAction<PlacedElement[]>>;
43
+ connectors: Connector[];
44
+ setConnectors: import("react").Dispatch<import("react").SetStateAction<Connector[]>>;
45
+ rfNodes: RFNode[];
46
+ setRfNodes: import("react").Dispatch<import("react").SetStateAction<RFNode[]>>;
47
+ rfEdges: RFEdge[];
48
+ setRfEdges: import("react").Dispatch<import("react").SetStateAction<RFEdge[]>>;
49
+ linksMap: Record<number, ViewConnector[]>;
50
+ setLinksMap: import("react").Dispatch<import("react").SetStateAction<Record<number, ViewConnector[]>>>;
51
+ parentLinksMap: Record<number, ViewConnector[]>;
52
+ setParentLinksMap: import("react").Dispatch<import("react").SetStateAction<Record<number, ViewConnector[]>>>;
53
+ incomingLinks: IncomingViewConnector[];
54
+ treeData: ViewTreeNode[];
55
+ allElements: LibraryElement[];
56
+ libraryRefresh: number;
57
+ setLibraryRefresh: import("react").Dispatch<import("react").SetStateAction<number>>;
58
+ existingElementIds: Set<number>;
59
+ viewElementsRef: import("react").MutableRefObject<PlacedElement[]>;
60
+ linksMapRef: import("react").MutableRefObject<Record<number, ViewConnector[]>>;
61
+ parentLinksMapRef: import("react").MutableRefObject<Record<number, ViewConnector[]>>;
62
+ incomingLinksRef: import("react").MutableRefObject<IncomingViewConnector[]>;
63
+ treeDataRef: import("react").MutableRefObject<ViewTreeNode[]>;
64
+ rfNodesRef: import("react").MutableRefObject<RFNode[]>;
65
+ rfEdgesRef: import("react").MutableRefObject<RFEdge[]>;
66
+ viewIdRef: import("react").MutableRefObject<number | null>;
67
+ refreshGrid: () => Promise<void>;
68
+ refreshElements: () => Promise<void>;
69
+ handleElementDeleted: (deletedId: number) => void;
70
+ handleElementPermanentlyDeleted: (deletedId: number) => void;
71
+ handleElementSaved: (saved: LibraryElement) => void;
72
+ setAllElements: import("react").Dispatch<import("react").SetStateAction<LibraryElement[]>>;
73
+ };
74
+ export {};
@@ -0,0 +1,8 @@
1
+ import type { CoreUISlots } from '../../slots';
2
+ import 'reactflow/dist/style.css';
3
+ import { type ViewEditorDemoOptions } from '../../demo/viewEditor';
4
+ interface Props extends CoreUISlots {
5
+ demoOptions?: ViewEditorDemoOptions;
6
+ }
7
+ export default function ViewEditor(props: Props): import("react/jsx-runtime").JSX.Element;
8
+ export {};
@@ -0,0 +1,14 @@
1
+ import type { Connector } from '../../types';
2
+ import type { Node as RFNode } from 'reactflow';
3
+ /** Pass-through: the API already returns Connector in the canonical shape. */
4
+ export declare function connectorToConnector(connector: Connector): Connector;
5
+ export declare function findClosestHandles(sourceNode: RFNode, targetNode: RFNode): {
6
+ sourceHandle: string;
7
+ targetHandle: string;
8
+ };
9
+ export declare function findClosestHandleToPoint(sourceNode: RFNode, tx: number, ty: number): {
10
+ sourceHandle: string;
11
+ targetHandle: string;
12
+ };
13
+ export declare function sanitizeExportFilename(value: string): string;
14
+ export declare function triggerDownload(dataUrl: string, filename: string): void;
@@ -0,0 +1,6 @@
1
+ interface Props {
2
+ shareSlot?: React.ReactNode;
3
+ onShareView?: (viewId: number) => void;
4
+ }
5
+ export default function ViewsPage({ shareSlot, onShareView }: Props): import("react/jsx-runtime").JSX.Element;
6
+ export {};
@@ -0,0 +1,6 @@
1
+ import 'reactflow/dist/style.css';
2
+ interface Props {
3
+ onShare?: (viewId: number) => void;
4
+ }
5
+ export default function ViewsGrid({ onShare }: Props): import("react/jsx-runtime").JSX.Element;
6
+ export {};
@@ -0,0 +1,7 @@
1
+ import type { PlanConnector, PlanElement } from '@buf/tldiagramcom_diagram.bufbuild_es/diag/v1/workspace_service_pb';
2
+ export interface ParsedImport {
3
+ elements: PlanElement[];
4
+ connectors: PlanConnector[];
5
+ warnings: string[];
6
+ }
7
+ export declare function parseMermaid(code: string): ParsedImport;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,6 @@
1
+ import { type ReactNode } from 'react';
2
+ import type { PlatformFeatures } from './types';
3
+ export declare const PlatformProvider: ({ platform, children }: {
4
+ platform: PlatformFeatures<unknown>;
5
+ children: ReactNode;
6
+ }) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import type { PlatformFeatures } from './types';
2
+ export declare const PlatformContext: import("react").Context<PlatformFeatures<unknown>>;
3
+ export declare function usePlatform(): PlatformFeatures<unknown>;
@@ -0,0 +1,2 @@
1
+ import type { PlatformFeatures } from './types';
2
+ export declare const platform: PlatformFeatures;
@@ -0,0 +1,17 @@
1
+ import type { ComponentType, ReactNode } from 'react';
2
+ export interface PlatformRouteContext<User = unknown> {
3
+ user: User | null;
4
+ onLogin?: (user: User) => void;
5
+ onLogout?: () => void;
6
+ }
7
+ export interface PlatformFeatures<User = unknown> {
8
+ hasAuth?: boolean;
9
+ hasBilling?: boolean;
10
+ initPlatform: (orgId?: string) => Promise<void>;
11
+ getUpgradePath?: () => string | null;
12
+ getRoutes: (context: PlatformRouteContext<User>) => ReactNode[];
13
+ getAuthenticatedRoutes: (context: PlatformRouteContext<User>) => ReactNode[];
14
+ getSettingsRoutes: (context: PlatformRouteContext<User>) => ReactNode[];
15
+ AuthLayout: ComponentType<unknown>;
16
+ connectRealtime?: (...args: unknown[]) => unknown;
17
+ }
@@ -0,0 +1,67 @@
1
+ /**
2
+ * @tldiagram/core-ui Extension Point Slots
3
+ *
4
+ * Slots are React.ReactNode props that host applications inject into core
5
+ * components to layer in optional host-app features (sharing, extra tools, etc.)
6
+ * without modifying the core library.
7
+ *
8
+ * Naming convention: `<area>Slot` describes WHERE the content renders.
9
+ */
10
+ import type { ReactNode } from 'react';
11
+ export interface TopMenuBarSlots {
12
+ /**
13
+ * Rendered in the right section of the desktop top bar, before the
14
+ * settings / user controls. Use for share buttons,
15
+ * buttons, notification bells, etc.
16
+ *
17
+ * @example <AvatarGroup /> or <ShareButton />
18
+ */
19
+ rightSlot?: ReactNode;
20
+ /**
21
+ * Rendered inside the mobile "Options" bottom-nav menu, after the
22
+ * default settings items. Use for custom menu items, links, etc.
23
+ *
24
+ * @example <MenuItem>My Custom Action</MenuItem>
25
+ */
26
+ mobileMenuSlot?: ReactNode;
27
+ /**
28
+ * Overrides the default user profile / settings controls.
29
+ * If provided, the default user avatar will be hidden.
30
+ */
31
+ userControlsSlot?: ReactNode;
32
+ }
33
+ export interface ElementPanelSlots {
34
+ /**
35
+ * Rendered at the bottom of the ElementPanel body.
36
+ */
37
+ elementPanelAfterContentSlot?: ReactNode;
38
+ }
39
+ export interface ConnectorPanelSlots {
40
+ /**
41
+ * Rendered at the bottom of the ConnectorPanel body.
42
+ */
43
+ connectorPanelAfterContentSlot?: ReactNode;
44
+ }
45
+ export interface ViewFloatingMenuSlots {
46
+ /**
47
+ * Overrides or wraps the default Share button.
48
+ */
49
+ shareSlot?: ReactNode;
50
+ /**
51
+ * Rendered inside the ViewFloatingMenu, after the existing toolbar
52
+ * buttons. Use for extra buttons, export to SaaS, etc.
53
+ */
54
+ toolbarSlot?: ReactNode;
55
+ }
56
+ export interface ViewEditorSlots {
57
+ /**
58
+ * Rendered as a fixed overlay on top of the ReactFlow canvas.
59
+ */
60
+ canvasOverlaySlot?: ReactNode;
61
+ }
62
+ /**
63
+ * All extension points collected. Host apps can build a single
64
+ * "slots" object and pass it down via context or props.
65
+ */
66
+ export interface CoreUISlots extends TopMenuBarSlots, ElementPanelSlots, ConnectorPanelSlots, ViewFloatingMenuSlots, ViewEditorSlots {
67
+ }
@@ -0,0 +1,2 @@
1
+ declare const _default: Record<string, any>;
2
+ export default _default;