@realflow/react 0.1.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 (74) hide show
  1. package/dist/Background.d.ts +11 -0
  2. package/dist/Background.d.ts.map +1 -0
  3. package/dist/Background.js +27 -0
  4. package/dist/Background.js.map +1 -0
  5. package/dist/Controls.d.ts +14 -0
  6. package/dist/Controls.d.ts.map +1 -0
  7. package/dist/Controls.js +12 -0
  8. package/dist/Controls.js.map +1 -0
  9. package/dist/DefaultNode.d.ts +13 -0
  10. package/dist/DefaultNode.d.ts.map +1 -0
  11. package/dist/DefaultNode.js +30 -0
  12. package/dist/DefaultNode.js.map +1 -0
  13. package/dist/EdgeRenderer.d.ts +7 -0
  14. package/dist/EdgeRenderer.d.ts.map +1 -0
  15. package/dist/EdgeRenderer.js +154 -0
  16. package/dist/EdgeRenderer.js.map +1 -0
  17. package/dist/Handle.d.ts +25 -0
  18. package/dist/Handle.d.ts.map +1 -0
  19. package/dist/Handle.js +83 -0
  20. package/dist/Handle.js.map +1 -0
  21. package/dist/MiniMap.d.ts +15 -0
  22. package/dist/MiniMap.d.ts.map +1 -0
  23. package/dist/MiniMap.js +125 -0
  24. package/dist/MiniMap.js.map +1 -0
  25. package/dist/NodeRenderer.d.ts +13 -0
  26. package/dist/NodeRenderer.d.ts.map +1 -0
  27. package/dist/NodeRenderer.js +194 -0
  28. package/dist/NodeRenderer.js.map +1 -0
  29. package/dist/NodeResizer.d.ts +29 -0
  30. package/dist/NodeResizer.d.ts.map +1 -0
  31. package/dist/NodeResizer.js +120 -0
  32. package/dist/NodeResizer.js.map +1 -0
  33. package/dist/NodeToolbar.d.ts +23 -0
  34. package/dist/NodeToolbar.d.ts.map +1 -0
  35. package/dist/NodeToolbar.js +65 -0
  36. package/dist/NodeToolbar.js.map +1 -0
  37. package/dist/Panel.d.ts +12 -0
  38. package/dist/Panel.d.ts.map +1 -0
  39. package/dist/Panel.js +8 -0
  40. package/dist/Panel.js.map +1 -0
  41. package/dist/ReFlow.d.ts +12 -0
  42. package/dist/ReFlow.d.ts.map +1 -0
  43. package/dist/ReFlow.js +475 -0
  44. package/dist/ReFlow.js.map +1 -0
  45. package/dist/RemoteCursors.d.ts +13 -0
  46. package/dist/RemoteCursors.d.ts.map +1 -0
  47. package/dist/RemoteCursors.js +19 -0
  48. package/dist/RemoteCursors.js.map +1 -0
  49. package/dist/config.d.ts +8 -0
  50. package/dist/config.d.ts.map +1 -0
  51. package/dist/config.js +17 -0
  52. package/dist/config.js.map +1 -0
  53. package/dist/context.d.ts +8 -0
  54. package/dist/context.d.ts.map +1 -0
  55. package/dist/context.js +14 -0
  56. package/dist/context.js.map +1 -0
  57. package/dist/hooks.d.ts +104 -0
  58. package/dist/hooks.d.ts.map +1 -0
  59. package/dist/hooks.js +0 -0
  60. package/dist/hooks.js.map +1 -0
  61. package/dist/index.d.ts +17 -0
  62. package/dist/index.d.ts.map +1 -0
  63. package/dist/index.js +17 -0
  64. package/dist/index.js.map +1 -0
  65. package/dist/measure.d.ts +20 -0
  66. package/dist/measure.d.ts.map +1 -0
  67. package/dist/measure.js +75 -0
  68. package/dist/measure.js.map +1 -0
  69. package/dist/styles.css +642 -0
  70. package/dist/types.d.ts +103 -0
  71. package/dist/types.d.ts.map +1 -0
  72. package/dist/types.js +2 -0
  73. package/dist/types.js.map +1 -0
  74. package/package.json +58 -0
@@ -0,0 +1,103 @@
1
+ import type { ComponentType, CSSProperties, MouseEvent as ReactMouseEvent, ReactNode } from 'react';
2
+ import type { ConnectionValidator, Edge, EdgeMarker, FitViewOptions, Node, Side, Viewport, XY } from '@realflow/core';
3
+ import type { ReflowApi } from './hooks.js';
4
+ /** Props passed to custom node components. */
5
+ export interface NodeProps<T = Record<string, unknown>> {
6
+ id: string;
7
+ data: T;
8
+ node: Node<T>;
9
+ selected: boolean;
10
+ dragging: boolean;
11
+ }
12
+ /** Props passed to custom edge components (geometry precomputed). */
13
+ export interface EdgeProps<T = Record<string, unknown>> {
14
+ id: string;
15
+ edge: Edge<T>;
16
+ /** SVG path for the default routing of this edge's type. */
17
+ path: string;
18
+ labelX: number;
19
+ labelY: number;
20
+ sourceX: number;
21
+ sourceY: number;
22
+ targetX: number;
23
+ targetY: number;
24
+ sourceSide: Side;
25
+ targetSide: Side;
26
+ selected: boolean;
27
+ }
28
+ export type NodeTypes = Record<string, ComponentType<NodeProps<any>>>;
29
+ export type EdgeTypes = Record<string, ComponentType<EdgeProps<any>>>;
30
+ export interface ReFlowProps {
31
+ /** Controlled nodes. Prefer `defaultNodes` + useReflow() for simple apps. */
32
+ nodes?: Node[];
33
+ edges?: Edge[];
34
+ /** Uncontrolled initial graph. */
35
+ defaultNodes?: Node[];
36
+ defaultEdges?: Edge[];
37
+ onNodesChange?: (nodes: Node[]) => void;
38
+ onEdgesChange?: (edges: Edge[]) => void;
39
+ onSelectionChange?: (selection: {
40
+ nodes: string[];
41
+ edges: string[];
42
+ }) => void;
43
+ /** A user gesture created this edge. */
44
+ onConnect?: (edge: Edge) => void;
45
+ onNodeClick?: (event: ReactMouseEvent, node: Node) => void;
46
+ onNodeDoubleClick?: (event: ReactMouseEvent, node: Node) => void;
47
+ onNodeContextMenu?: (event: ReactMouseEvent, node: Node) => void;
48
+ onEdgeClick?: (event: ReactMouseEvent, edge: Edge) => void;
49
+ onPaneClick?: (event: ReactMouseEvent, flowPosition: XY) => void;
50
+ onPaneContextMenu?: (event: ReactMouseEvent, flowPosition: XY) => void;
51
+ /** Called once with the imperative API (nice for refs-free setups). */
52
+ onInit?: (api: ReflowApi) => void;
53
+ nodeTypes?: NodeTypes;
54
+ edgeTypes?: EdgeTypes;
55
+ /** Fit the view to the graph after mount. Default true. */
56
+ fitViewOnInit?: boolean;
57
+ fitViewOptions?: FitViewOptions;
58
+ defaultViewport?: Viewport;
59
+ minZoom?: number;
60
+ maxZoom?: number;
61
+ /** Snap dragging to a grid (px). 0 = off. */
62
+ snapGrid?: number;
63
+ /** Figma-style alignment guides while dragging. Default true. */
64
+ alignmentGuides?: boolean;
65
+ /** Reject connections that would create a directed cycle. */
66
+ preventCycles?: boolean;
67
+ allowDuplicateEdges?: boolean;
68
+ validateConnection?: ConnectionValidator;
69
+ defaultEdgeOptions?: Partial<Edge> & {
70
+ markerEnd?: EdgeMarker;
71
+ };
72
+ historyLimit?: number;
73
+ /** Disable all interactions (view-only). */
74
+ readOnly?: boolean;
75
+ panOnDrag?: boolean;
76
+ /** Figma-style trackpad mode: wheel/two-finger scroll pans, ctrl/cmd
77
+ * (or pinch gesture) zooms. Default false (wheel zooms). */
78
+ panOnScroll?: boolean;
79
+ zoomOnScroll?: boolean;
80
+ zoomOnDoubleClick?: boolean;
81
+ /** Box-select with plain drag instead of shift+drag. */
82
+ selectionOnDrag?: boolean;
83
+ /** Delete/Backspace removes selection. Default true. */
84
+ deleteKey?: boolean;
85
+ /** Built-in keyboard shortcuts (undo/redo/select-all/nudge). Default true. */
86
+ keyboardShortcuts?: boolean;
87
+ /** 'light' | 'dark' | 'auto' (default 'auto': follows prefers-color-scheme). */
88
+ colorMode?: 'light' | 'dark' | 'auto';
89
+ className?: string;
90
+ style?: CSSProperties;
91
+ children?: ReactNode;
92
+ }
93
+ export interface FlowConfig {
94
+ nodeTypes: NodeTypes;
95
+ edgeTypes: EdgeTypes;
96
+ readOnly: boolean;
97
+ onConnect?: ReFlowProps['onConnect'];
98
+ onNodeClick?: ReFlowProps['onNodeClick'];
99
+ onNodeDoubleClick?: ReFlowProps['onNodeDoubleClick'];
100
+ onNodeContextMenu?: ReFlowProps['onNodeContextMenu'];
101
+ onEdgeClick?: ReFlowProps['onEdgeClick'];
102
+ }
103
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
package/package.json ADDED
@@ -0,0 +1,58 @@
1
+ {
2
+ "name": "@realflow/react",
3
+ "version": "0.1.0",
4
+ "description": "The fastest, most beautiful React library for building node-based UIs. Fine-grained rendering, built-in auto-layout, undo/redo, alignment guides \u2014 free and open source.",
5
+ "license": "MIT",
6
+ "publishConfig": {
7
+ "access": "public"
8
+ },
9
+ "type": "module",
10
+ "main": "./dist/index.js",
11
+ "types": "./dist/index.d.ts",
12
+ "exports": {
13
+ ".": {
14
+ "types": "./dist/index.d.ts",
15
+ "import": "./dist/index.js"
16
+ },
17
+ "./styles.css": "./dist/styles.css"
18
+ },
19
+ "files": [
20
+ "dist"
21
+ ],
22
+ "sideEffects": [
23
+ "*.css"
24
+ ],
25
+ "scripts": {
26
+ "build": "tsc -p tsconfig.build.json && node ../../scripts/append-js-extensions.mjs dist && cp src/styles.css dist/styles.css"
27
+ },
28
+ "dependencies": {
29
+ "@realflow/core": "0.1.0"
30
+ },
31
+ "peerDependencies": {
32
+ "react": ">=18",
33
+ "react-dom": ">=18"
34
+ },
35
+ "devDependencies": {
36
+ "@types/react": "^19.0.0",
37
+ "@types/react-dom": "^19.0.0",
38
+ "react": "^19.0.0",
39
+ "react-dom": "^19.0.0"
40
+ },
41
+ "keywords": [
42
+ "react",
43
+ "node-based-ui",
44
+ "react-flow-alternative",
45
+ "graph",
46
+ "flow",
47
+ "diagram",
48
+ "workflow",
49
+ "dag"
50
+ ],
51
+ "repository": {
52
+ "type": "git",
53
+ "url": "git+https://github.com/olbboy/reflow.git",
54
+ "directory": "packages/react"
55
+ },
56
+ "homepage": "https://github.com/olbboy/reflow#readme",
57
+ "bugs": "https://github.com/olbboy/reflow/issues"
58
+ }