@jotx-labs/editor 2.4.210 → 2.4.212

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 (52) hide show
  1. package/dist/components/GraphView/GraphView.d.ts +9 -1
  2. package/dist/components/GraphView/GraphView.d.ts.map +1 -1
  3. package/dist/components/GraphView/GraphView.js +220 -52
  4. package/dist/components/GraphView/GraphView.js.map +1 -1
  5. package/dist/components/JotxEditor.d.ts.map +1 -1
  6. package/dist/components/JotxEditor.js +6 -0
  7. package/dist/components/JotxEditor.js.map +1 -1
  8. package/dist/components/MotionNodeView.d.ts +4 -0
  9. package/dist/components/MotionNodeView.d.ts.map +1 -0
  10. package/dist/components/MotionNodeView.js +134 -0
  11. package/dist/components/MotionNodeView.js.map +1 -0
  12. package/dist/components/ReadonlyBlockRenderer.d.ts.map +1 -1
  13. package/dist/components/ReadonlyBlockRenderer.js +2 -0
  14. package/dist/components/ReadonlyBlockRenderer.js.map +1 -1
  15. package/dist/components/SlashMenu.d.ts.map +1 -1
  16. package/dist/components/SlashMenu.js +8 -0
  17. package/dist/components/SlashMenu.js.map +1 -1
  18. package/dist/components/motion/MotionCompiler.d.ts +9 -0
  19. package/dist/components/motion/MotionCompiler.d.ts.map +1 -0
  20. package/dist/components/motion/MotionCompiler.js +265 -0
  21. package/dist/components/motion/MotionCompiler.js.map +1 -0
  22. package/dist/components/motion/MotionEngine.d.ts +48 -0
  23. package/dist/components/motion/MotionEngine.d.ts.map +1 -0
  24. package/dist/components/motion/MotionEngine.js +623 -0
  25. package/dist/components/motion/MotionEngine.js.map +1 -0
  26. package/dist/components/motion/MotionParser.d.ts +13 -0
  27. package/dist/components/motion/MotionParser.d.ts.map +1 -0
  28. package/dist/components/motion/MotionParser.js +403 -0
  29. package/dist/components/motion/MotionParser.js.map +1 -0
  30. package/dist/components/motion/MotionPresets.d.ts +13 -0
  31. package/dist/components/motion/MotionPresets.d.ts.map +1 -0
  32. package/dist/components/motion/MotionPresets.js +143 -0
  33. package/dist/components/motion/MotionPresets.js.map +1 -0
  34. package/dist/components/motion/types.d.ts +130 -0
  35. package/dist/components/motion/types.d.ts.map +1 -0
  36. package/dist/components/motion/types.js +33 -0
  37. package/dist/components/motion/types.js.map +1 -0
  38. package/dist/extensions/MotionNode.d.ts +3 -0
  39. package/dist/extensions/MotionNode.d.ts.map +1 -0
  40. package/dist/extensions/MotionNode.js +95 -0
  41. package/dist/extensions/MotionNode.js.map +1 -0
  42. package/dist/index.d.ts +2 -0
  43. package/dist/index.d.ts.map +1 -1
  44. package/dist/index.js +6 -2
  45. package/dist/index.js.map +1 -1
  46. package/dist/styles/GraphView.css +272 -50
  47. package/dist/styles/MotionNodeView.css +374 -0
  48. package/dist/utils/PresentationConverter.js +7 -0
  49. package/dist/utils/PresentationConverter.js.map +1 -1
  50. package/package.json +4 -4
  51. package/src/styles/GraphView.css +272 -50
  52. package/src/styles/MotionNodeView.css +374 -0
@@ -1,6 +1,13 @@
1
1
  /**
2
2
  * GraphView - D3.js Force-Directed Knowledge Graph Visualization
3
3
  * Browser-based component for web application
4
+ *
5
+ * Features:
6
+ * - Complete legend with all node types (auto-generated from COLORS)
7
+ * - Clickable legend items to filter node types
8
+ * - Focus on current file's document node
9
+ * - "Show Only Connected" toggle to hide orphan nodes
10
+ * - Redesigned side panel with connections list and file navigation
4
11
  */
5
12
  import '../../styles/GraphView.css';
6
13
  export interface GraphData {
@@ -28,6 +35,7 @@ export interface GraphViewProps {
28
35
  blocks: number;
29
36
  edges: number;
30
37
  };
38
+ onNavigateToFile?: (filePath: string) => void;
31
39
  }
32
- export declare function GraphView({ isOpen, onClose, focusedDocumentPath, graphData, stats: propStats }: GraphViewProps): import("react/jsx-runtime").JSX.Element;
40
+ export declare function GraphView({ isOpen, onClose, focusedDocumentPath, graphData, stats: propStats, onNavigateToFile }: GraphViewProps): import("react/jsx-runtime").JSX.Element;
33
41
  //# sourceMappingURL=GraphView.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"GraphView.d.ts","sourceRoot":"","sources":["../../../src/components/GraphView/GraphView.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,4BAA4B,CAAA;AAGnC,MAAM,WAAW,SAAS;IACtB,KAAK,EAAE,KAAK,CAAC;QACT,EAAE,EAAE,MAAM,CAAA;QACV,KAAK,EAAE,MAAM,CAAA;QACb,IAAI,EAAE,MAAM,CAAA;QACZ,QAAQ,EAAE,MAAM,CAAA;QAChB,IAAI,EAAE,MAAM,CAAA;QACZ,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KACjC,CAAC,CAAA;IACF,KAAK,EAAE,KAAK,CAAC;QACT,MAAM,EAAE,MAAM,CAAA;QACd,MAAM,EAAE,MAAM,CAAA;QACd,IAAI,EAAE,MAAM,CAAA;KACf,CAAC,CAAA;CACL;AAED,MAAM,WAAW,cAAc;IAC3B,MAAM,EAAE,OAAO,CAAA;IACf,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,SAAS,EAAE,SAAS,CAAA;IACpB,KAAK,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;CAC/D;AAyCD,wBAAgB,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,cAAc,2CAkR9G"}
1
+ {"version":3,"file":"GraphView.d.ts","sourceRoot":"","sources":["../../../src/components/GraphView/GraphView.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,OAAO,4BAA4B,CAAA;AAGnC,MAAM,WAAW,SAAS;IACtB,KAAK,EAAE,KAAK,CAAC;QACT,EAAE,EAAE,MAAM,CAAA;QACV,KAAK,EAAE,MAAM,CAAA;QACb,IAAI,EAAE,MAAM,CAAA;QACZ,QAAQ,EAAE,MAAM,CAAA;QAChB,IAAI,EAAE,MAAM,CAAA;QACZ,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KACjC,CAAC,CAAA;IACF,KAAK,EAAE,KAAK,CAAC;QACT,MAAM,EAAE,MAAM,CAAA;QACd,MAAM,EAAE,MAAM,CAAA;QACd,IAAI,EAAE,MAAM,CAAA;KACf,CAAC,CAAA;CACL;AAED,MAAM,WAAW,cAAc;IAC3B,MAAM,EAAE,OAAO,CAAA;IACf,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,SAAS,EAAE,SAAS,CAAA;IACpB,KAAK,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;IAC5D,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;CAChD;AA+CD,wBAAgB,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,EAAE,cAAc,2CAwfhI"}
@@ -38,67 +38,165 @@ const jsx_runtime_1 = require("react/jsx-runtime");
38
38
  /**
39
39
  * GraphView - D3.js Force-Directed Knowledge Graph Visualization
40
40
  * Browser-based component for web application
41
+ *
42
+ * Features:
43
+ * - Complete legend with all node types (auto-generated from COLORS)
44
+ * - Clickable legend items to filter node types
45
+ * - Focus on current file's document node
46
+ * - "Show Only Connected" toggle to hide orphan nodes
47
+ * - Redesigned side panel with connections list and file navigation
41
48
  */
42
49
  const react_1 = require("react");
43
50
  const d3 = __importStar(require("d3"));
44
51
  const lucide_react_1 = require("lucide-react");
45
52
  require("../../styles/GraphView.css");
46
- // Color palette matching VS Code extension
47
- const COLORS = {
48
- root: '#FF0000',
49
- document: '#5B9BD5',
50
- jotx: '#5B9BD5',
51
- orphan: '#888888',
52
- heading: '#9B59B6',
53
- section: '#27AE60',
54
- code: '#E74C3C',
55
- mermaid: '#9C27B0',
56
- chart: '#FF6B6B',
57
- math: '#FFD700',
58
- table: '#32CD32',
59
- properties: '#BA55D3',
60
- jotxlink: '#FF69B4',
61
- block: '#95A5A6'
62
- };
63
- function GraphView({ isOpen, onClose, focusedDocumentPath, graphData, stats: propStats }) {
53
+ // Node type configuration: color, label, display order
54
+ const NODE_TYPES = [
55
+ { key: 'root', label: 'Root', color: '#FF4444', size: 14 },
56
+ { key: 'jotx', label: 'Document', color: '#5B9BD5', size: 10 },
57
+ { key: 'mermaid', label: 'Mermaid', color: '#9C27B0' },
58
+ { key: 'chart', label: 'Chart', color: '#FF6B6B' },
59
+ { key: 'math', label: 'Math', color: '#FFD700' },
60
+ { key: 'table', label: 'Table', color: '#32CD32' },
61
+ { key: 'properties', label: 'Properties', color: '#BA55D3' },
62
+ { key: 'jotxlink', label: 'JotxLink', color: '#FF69B4' },
63
+ { key: 'button', label: 'Button', color: '#E67E22' },
64
+ { key: 'card', label: 'Card', color: '#3498DB' },
65
+ { key: 'link', label: 'Link', color: '#1ABC9C' },
66
+ { key: 'linkcard', label: 'LinkCard', color: '#2ECC71' },
67
+ ];
68
+ // Build color map from config
69
+ const COLORS = Object.fromEntries(NODE_TYPES.map(t => [t.key, t.color]));
70
+ COLORS['document'] = COLORS['jotx'];
71
+ COLORS['orphan'] = '#888888';
72
+ COLORS['block'] = '#95A5A6';
73
+ function GraphView({ isOpen, onClose, focusedDocumentPath, graphData, stats: propStats, onNavigateToFile }) {
64
74
  const containerRef = (0, react_1.useRef)(null);
65
75
  const svgRef = (0, react_1.useRef)(null);
66
76
  const [selectedNode, setSelectedNode] = (0, react_1.useState)(null);
67
77
  const stats = propStats || { documents: 0, blocks: 0, edges: 0 };
68
78
  const simulationRef = (0, react_1.useRef)(null);
69
79
  const zoomRef = (0, react_1.useRef)(null);
80
+ // Filter state: which node types are visible
81
+ const [hiddenTypes, setHiddenTypes] = (0, react_1.useState)(new Set());
82
+ // Show only connected nodes toggle
83
+ const [showOnlyConnected, setShowOnlyConnected] = (0, react_1.useState)(false);
84
+ // Compute which node types actually exist in the data
85
+ const activeNodeTypes = (0, react_1.useMemo)(() => {
86
+ if (!graphData)
87
+ return [];
88
+ const typesInData = new Set(graphData.nodes.map(n => n.nodeKind || n.type));
89
+ return NODE_TYPES.filter(t => {
90
+ if (t.key === 'root') {
91
+ return graphData.nodes.some(n => n.metadata?.type === 'root');
92
+ }
93
+ if (t.key === 'jotx') {
94
+ return typesInData.has('jotx') || typesInData.has('document');
95
+ }
96
+ return typesInData.has(t.key);
97
+ });
98
+ }, [graphData]);
99
+ // Compute connections for a node
100
+ const getConnections = (0, react_1.useCallback)((nodeId) => {
101
+ if (!graphData)
102
+ return { incoming: [], outgoing: [] };
103
+ const incoming = graphData.edges
104
+ .filter(e => e.target === nodeId || (typeof e.target === 'object' && e.target.id === nodeId))
105
+ .map(e => {
106
+ const sourceId = typeof e.source === 'string' ? e.source : e.source.id;
107
+ const sourceNode = graphData.nodes.find(n => n.id === sourceId);
108
+ return { id: sourceId, label: sourceNode?.label || sourceId, type: e.type, nodeKind: sourceNode?.nodeKind || 'unknown', path: sourceNode?.path || '' };
109
+ });
110
+ const outgoing = graphData.edges
111
+ .filter(e => e.source === nodeId || (typeof e.source === 'object' && e.source.id === nodeId))
112
+ .map(e => {
113
+ const targetId = typeof e.target === 'string' ? e.target : e.target.id;
114
+ const targetNode = graphData.nodes.find(n => n.id === targetId);
115
+ return { id: targetId, label: targetNode?.label || targetId, type: e.type, nodeKind: targetNode?.nodeKind || 'unknown', path: targetNode?.path || '' };
116
+ });
117
+ return { incoming, outgoing };
118
+ }, [graphData]);
119
+ // Compute connected node IDs (for "show only connected" filter)
120
+ const connectedNodeIds = (0, react_1.useMemo)(() => {
121
+ if (!graphData)
122
+ return new Set();
123
+ const ids = new Set();
124
+ for (const edge of graphData.edges) {
125
+ ids.add(typeof edge.source === 'string' ? edge.source : edge.source.id);
126
+ ids.add(typeof edge.target === 'string' ? edge.target : edge.target.id);
127
+ }
128
+ return ids;
129
+ }, [graphData]);
70
130
  const getNodeColor = (0, react_1.useCallback)((node) => {
71
131
  const isRoot = node.metadata?.type === 'root';
72
132
  if (isRoot)
73
133
  return COLORS.root;
74
134
  if (node.type === 'document' || node.nodeKind === 'jotx')
75
- return COLORS.document;
135
+ return COLORS.jotx;
76
136
  return COLORS[node.nodeKind] || COLORS.block;
77
137
  }, []);
138
+ const getNodeKindForFilter = (0, react_1.useCallback)((node) => {
139
+ if (node.metadata?.type === 'root')
140
+ return 'root';
141
+ if (node.type === 'document' || node.nodeKind === 'jotx')
142
+ return 'jotx';
143
+ return node.nodeKind;
144
+ }, []);
145
+ const toggleType = (0, react_1.useCallback)((typeKey) => {
146
+ setHiddenTypes(prev => {
147
+ const next = new Set(prev);
148
+ if (next.has(typeKey)) {
149
+ next.delete(typeKey);
150
+ }
151
+ else {
152
+ next.add(typeKey);
153
+ }
154
+ return next;
155
+ });
156
+ }, []);
78
157
  const renderGraph = (0, react_1.useCallback)((data, width, height) => {
79
158
  if (!svgRef.current)
80
159
  return;
81
160
  const svg = d3.select(svgRef.current);
82
161
  svg.selectAll('*').remove();
162
+ // Filter nodes based on type filters and connected-only toggle
163
+ const filteredNodes = data.nodes.filter(node => {
164
+ const kind = getNodeKindForFilter(node);
165
+ if (hiddenTypes.has(kind))
166
+ return false;
167
+ if (showOnlyConnected && !connectedNodeIds.has(node.id))
168
+ return false;
169
+ return true;
170
+ });
171
+ const filteredNodeIds = new Set(filteredNodes.map(n => n.id));
172
+ // Filter edges to only include edges between visible nodes
173
+ const filteredEdges = data.edges.filter(e => {
174
+ const sourceId = typeof e.source === 'string' ? e.source : e.source.id;
175
+ const targetId = typeof e.target === 'string' ? e.target : e.target.id;
176
+ return filteredNodeIds.has(sourceId) && filteredNodeIds.has(targetId);
177
+ });
83
178
  // Prepare nodes
84
- const nodes = data.nodes.map(node => {
179
+ const nodes = filteredNodes.map(node => {
85
180
  const isRoot = node.metadata?.type === 'root';
86
181
  const isJotx = node.nodeKind === 'jotx' || node.type === 'document';
182
+ const isFocused = focusedDocumentPath && node.path === focusedDocumentPath;
87
183
  let radius = 6;
88
184
  if (isRoot)
89
185
  radius = 14;
186
+ else if (isFocused)
187
+ radius = 12;
90
188
  else if (isJotx)
91
189
  radius = 10;
92
190
  return {
93
191
  ...node,
94
192
  color: getNodeColor(node),
95
193
  radius,
96
- x: Math.random() * width,
97
- y: Math.random() * height
194
+ x: isFocused ? width / 2 : Math.random() * width,
195
+ y: isFocused ? height / 2 : Math.random() * height,
98
196
  };
99
197
  });
100
198
  // Prepare links
101
- const links = data.edges.map(edge => ({
199
+ const links = filteredEdges.map(edge => ({
102
200
  source: edge.source,
103
201
  target: edge.target,
104
202
  type: edge.type
@@ -115,6 +213,12 @@ function GraphView({ isOpen, onClose, focusedDocumentPath, graphData, stats: pro
115
213
  const g = svg.append('g');
116
214
  // Arrow marker
117
215
  const defs = svg.append('defs');
216
+ // Glow filter for focused node
217
+ const filter = defs.append('filter').attr('id', 'glow');
218
+ filter.append('feGaussianBlur').attr('stdDeviation', '4').attr('result', 'coloredBlur');
219
+ const feMerge = filter.append('feMerge');
220
+ feMerge.append('feMergeNode').attr('in', 'coloredBlur');
221
+ feMerge.append('feMergeNode').attr('in', 'SourceGraphic');
118
222
  defs.append('marker')
119
223
  .attr('id', 'arrow')
120
224
  .attr('viewBox', '0 -5 10 10')
@@ -125,30 +229,28 @@ function GraphView({ isOpen, onClose, focusedDocumentPath, graphData, stats: pro
125
229
  .attr('orient', 'auto')
126
230
  .append('path')
127
231
  .attr('d', 'M0,-5L10,0L0,5')
128
- .attr('fill', '#999');
232
+ .attr('fill', '#555');
129
233
  // Create simulation
130
234
  const simulation = d3.forceSimulation(nodes)
131
- .force('link', d3.forceLink(links).id(d => d.id).distance(50))
132
- .force('charge', d3.forceManyBody().strength(-100))
235
+ .force('link', d3.forceLink(links).id(d => d.id).distance(60))
236
+ .force('charge', d3.forceManyBody().strength(-120))
133
237
  .force('center', d3.forceCenter(width / 2, height / 2))
134
- .force('collision', d3.forceCollide().radius(10));
238
+ .force('collision', d3.forceCollide().radius(12));
135
239
  simulationRef.current = simulation;
136
240
  // Create links
137
241
  const link = g.append('g')
138
242
  .selectAll('line')
139
243
  .data(links)
140
244
  .enter().append('line')
141
- .attr('stroke', d => d.type === 'parent-child' ? '#666666' : '#FF6B6B')
245
+ .attr('stroke', d => d.type === 'parent-child' ? 'rgba(100, 100, 140, 0.4)' : 'rgba(255, 107, 107, 0.6)')
142
246
  .attr('stroke-opacity', 0.6)
143
- .attr('stroke-width', d => d.type === 'reference' ? 3 : 2)
247
+ .attr('stroke-width', d => d.type === 'reference' ? 2.5 : 1.5)
144
248
  .attr('marker-end', 'url(#arrow)');
145
- // Create nodes
146
- const node = g.append('g')
147
- .selectAll('circle')
249
+ // Create node groups
250
+ const nodeGroup = g.append('g')
251
+ .selectAll('g')
148
252
  .data(nodes)
149
- .enter().append('circle')
150
- .attr('r', d => d.radius)
151
- .attr('fill', d => d.color)
253
+ .enter().append('g')
152
254
  .style('cursor', 'pointer')
153
255
  .on('click', (event, d) => {
154
256
  event.stopPropagation();
@@ -171,17 +273,34 @@ function GraphView({ isOpen, onClose, focusedDocumentPath, graphData, stats: pro
171
273
  d.fx = null;
172
274
  d.fy = null;
173
275
  }));
174
- // Create labels
175
- const label = g.append('g')
176
- .selectAll('text')
177
- .data(nodes)
178
- .enter().append('text')
276
+ // Node circles
277
+ nodeGroup.append('circle')
278
+ .attr('r', d => d.radius)
279
+ .attr('fill', d => d.color)
280
+ .attr('stroke', d => {
281
+ if (focusedDocumentPath && d.path === focusedDocumentPath)
282
+ return '#fff';
283
+ return 'none';
284
+ })
285
+ .attr('stroke-width', d => {
286
+ if (focusedDocumentPath && d.path === focusedDocumentPath)
287
+ return 2.5;
288
+ return 0;
289
+ })
290
+ .attr('filter', d => {
291
+ if (focusedDocumentPath && d.path === focusedDocumentPath)
292
+ return 'url(#glow)';
293
+ return 'none';
294
+ });
295
+ // Node labels
296
+ nodeGroup.append('text')
179
297
  .text(d => d.label)
180
298
  .attr('font-size', '10px')
181
- .attr('dx', 8)
299
+ .attr('dx', d => d.radius + 4)
182
300
  .attr('dy', 3)
183
- .attr('fill', '#ccc')
184
- .style('pointer-events', 'none');
301
+ .attr('fill', '#aaa')
302
+ .style('pointer-events', 'none')
303
+ .style('font-family', 'system-ui, -apple-system, sans-serif');
185
304
  // Update positions
186
305
  simulation.on('tick', () => {
187
306
  link
@@ -189,17 +308,24 @@ function GraphView({ isOpen, onClose, focusedDocumentPath, graphData, stats: pro
189
308
  .attr('y1', d => d.source.y || 0)
190
309
  .attr('x2', d => d.target.x || 0)
191
310
  .attr('y2', d => d.target.y || 0);
192
- node
193
- .attr('cx', d => d.x || 0)
194
- .attr('cy', d => d.y || 0);
195
- label
196
- .attr('x', d => d.x || 0)
197
- .attr('y', d => d.y || 0);
311
+ nodeGroup
312
+ .attr('transform', d => `translate(${d.x || 0}, ${d.y || 0})`);
198
313
  });
314
+ // After simulation stabilizes, zoom to focused node
315
+ if (focusedDocumentPath) {
316
+ const focusedNode = nodes.find(n => n.path === focusedDocumentPath);
317
+ if (focusedNode) {
318
+ simulation.on('end', () => {
319
+ const scale = 1.5;
320
+ const tx = width / 2 - (focusedNode.x || 0) * scale;
321
+ const ty = height / 2 - (focusedNode.y || 0) * scale;
322
+ svg.transition().duration(800).call(zoom.transform, d3.zoomIdentity.translate(tx, ty).scale(scale));
323
+ });
324
+ }
325
+ }
199
326
  // Click background to deselect
200
327
  svg.on('click', () => setSelectedNode(null));
201
- }, [getNodeColor]);
202
- // Removed indexing logic - platform provides pre-indexed data via graphData prop
328
+ }, [getNodeColor, getNodeKindForFilter, hiddenTypes, showOnlyConnected, connectedNodeIds, focusedDocumentPath]);
203
329
  (0, react_1.useEffect)(() => {
204
330
  if (!isOpen || !containerRef.current || !svgRef.current || !graphData)
205
331
  return;
@@ -227,8 +353,50 @@ function GraphView({ isOpen, onClose, focusedDocumentPath, graphData, stats: pro
227
353
  d3.select(svgRef.current).transition().call(zoomRef.current.transform, d3.zoomIdentity);
228
354
  }
229
355
  };
356
+ const handleNavigate = (0, react_1.useCallback)((filePath) => {
357
+ if (onNavigateToFile) {
358
+ onNavigateToFile(filePath);
359
+ }
360
+ }, [onNavigateToFile]);
361
+ // Get parent document path from block node id (format: "docId#blockId")
362
+ const getParentDocPath = (0, react_1.useCallback)((nodeId) => {
363
+ if (!graphData || !nodeId.includes('#'))
364
+ return null;
365
+ const parentId = nodeId.split('#')[0];
366
+ const parentNode = graphData.nodes.find(n => n.id === parentId);
367
+ return parentNode ? { label: parentNode.label, path: parentNode.path } : null;
368
+ }, [graphData]);
230
369
  if (!isOpen)
231
370
  return null;
232
- return ((0, jsx_runtime_1.jsx)("div", { className: "graph-view-overlay", children: (0, jsx_runtime_1.jsxs)("div", { className: "graph-view-container", children: [(0, jsx_runtime_1.jsxs)("div", { className: "graph-view-header", children: [(0, jsx_runtime_1.jsxs)("div", { className: "graph-view-title", children: [(0, jsx_runtime_1.jsx)("span", { className: "graph-icon", children: "\uD83D\uDD17" }), (0, jsx_runtime_1.jsx)("h2", { children: "Knowledge Graph" }), (0, jsx_runtime_1.jsxs)("span", { className: "graph-stats", children: [stats.documents, " docs \u00B7 ", stats.blocks, " blocks \u00B7 ", stats.edges, " links"] })] }), (0, jsx_runtime_1.jsxs)("div", { className: "graph-view-controls", children: [(0, jsx_runtime_1.jsx)("button", { onClick: handleZoomIn, title: "Zoom In", children: (0, jsx_runtime_1.jsx)(lucide_react_1.ZoomIn, { size: 18 }) }), (0, jsx_runtime_1.jsx)("button", { onClick: handleZoomOut, title: "Zoom Out", children: (0, jsx_runtime_1.jsx)(lucide_react_1.ZoomOut, { size: 18 }) }), (0, jsx_runtime_1.jsx)("button", { onClick: handleFitView, title: "Fit View", children: (0, jsx_runtime_1.jsx)(lucide_react_1.Maximize2, { size: 18 }) }), (0, jsx_runtime_1.jsx)("button", { onClick: onClose, title: "Close", children: (0, jsx_runtime_1.jsx)(lucide_react_1.X, { size: 18 }) })] })] }), (0, jsx_runtime_1.jsxs)("div", { ref: containerRef, className: "graph-view-content", children: [(0, jsx_runtime_1.jsx)("svg", { ref: svgRef, width: "100%", height: "100%" }), (0, jsx_runtime_1.jsxs)("div", { className: "graph-legend", children: [(0, jsx_runtime_1.jsx)("div", { className: "legend-title", children: "Legend" }), (0, jsx_runtime_1.jsxs)("div", { className: "legend-item", children: [(0, jsx_runtime_1.jsx)("span", { className: "legend-dot", style: { background: COLORS.root, width: 14, height: 14 } }), "Root"] }), (0, jsx_runtime_1.jsxs)("div", { className: "legend-item", children: [(0, jsx_runtime_1.jsx)("span", { className: "legend-dot", style: { background: COLORS.document, width: 10, height: 10 } }), "Document"] }), (0, jsx_runtime_1.jsxs)("div", { className: "legend-item", children: [(0, jsx_runtime_1.jsx)("span", { className: "legend-dot", style: { background: COLORS.mermaid } }), "Mermaid"] }), (0, jsx_runtime_1.jsxs)("div", { className: "legend-item", children: [(0, jsx_runtime_1.jsx)("span", { className: "legend-dot", style: { background: COLORS.chart } }), "Chart"] }), (0, jsx_runtime_1.jsxs)("div", { className: "legend-item", children: [(0, jsx_runtime_1.jsx)("span", { className: "legend-dot", style: { background: COLORS.math } }), "Math"] }), (0, jsx_runtime_1.jsxs)("div", { className: "legend-item", children: [(0, jsx_runtime_1.jsx)("span", { className: "legend-dot", style: { background: COLORS.table } }), "Table"] }), (0, jsx_runtime_1.jsxs)("div", { className: "legend-item", children: [(0, jsx_runtime_1.jsx)("span", { className: "legend-dot", style: { background: COLORS.jotxlink } }), "JotxLink"] })] }), selectedNode && ((0, jsx_runtime_1.jsxs)("div", { className: "graph-node-panel", children: [(0, jsx_runtime_1.jsxs)("div", { className: "panel-header", children: [(0, jsx_runtime_1.jsx)("h3", { children: selectedNode.label }), (0, jsx_runtime_1.jsx)("button", { onClick: () => setSelectedNode(null), children: (0, jsx_runtime_1.jsx)(lucide_react_1.X, { size: 16 }) })] }), (0, jsx_runtime_1.jsxs)("div", { className: "panel-content", children: [(0, jsx_runtime_1.jsxs)("div", { className: "panel-row", children: [(0, jsx_runtime_1.jsx)("span", { className: "panel-label", children: "Type" }), (0, jsx_runtime_1.jsx)("span", { className: "panel-value", children: selectedNode.nodeKind })] }), (0, jsx_runtime_1.jsxs)("div", { className: "panel-row", children: [(0, jsx_runtime_1.jsx)("span", { className: "panel-label", children: "ID" }), (0, jsx_runtime_1.jsx)("span", { className: "panel-value", children: selectedNode.id })] }), (0, jsx_runtime_1.jsxs)("div", { className: "panel-row", children: [(0, jsx_runtime_1.jsx)("span", { className: "panel-label", children: "Path" }), (0, jsx_runtime_1.jsx)("span", { className: "panel-value", children: selectedNode.path })] })] })] }))] })] }) }));
371
+ // Connections for selected node
372
+ const selectedConnections = selectedNode ? getConnections(selectedNode.id) : null;
373
+ const selectedParent = selectedNode ? getParentDocPath(selectedNode.id) : null;
374
+ // Count visible nodes
375
+ const visibleCount = graphData ? graphData.nodes.filter(n => {
376
+ const kind = getNodeKindForFilter(n);
377
+ if (hiddenTypes.has(kind))
378
+ return false;
379
+ if (showOnlyConnected && !connectedNodeIds.has(n.id))
380
+ return false;
381
+ return true;
382
+ }).length : 0;
383
+ return ((0, jsx_runtime_1.jsx)("div", { className: "graph-view-overlay", children: (0, jsx_runtime_1.jsxs)("div", { className: "graph-view-container", children: [(0, jsx_runtime_1.jsxs)("div", { className: "graph-view-header", children: [(0, jsx_runtime_1.jsxs)("div", { className: "graph-view-title", children: [(0, jsx_runtime_1.jsx)("span", { className: "graph-icon", children: "\uD83D\uDD17" }), (0, jsx_runtime_1.jsx)("h2", { children: "Knowledge Graph" }), (0, jsx_runtime_1.jsxs)("span", { className: "graph-stats", children: [visibleCount, " / ", graphData?.nodes?.length || 0, " nodes \u00B7 ", stats.edges, " links"] })] }), (0, jsx_runtime_1.jsxs)("div", { className: "graph-view-header-right", children: [(0, jsx_runtime_1.jsxs)("label", { className: "graph-filter-toggle", children: [(0, jsx_runtime_1.jsx)("input", { type: "checkbox", checked: showOnlyConnected, onChange: (e) => setShowOnlyConnected(e.target.checked) }), (0, jsx_runtime_1.jsx)("span", { children: "Connected only" })] }), (0, jsx_runtime_1.jsxs)("div", { className: "graph-view-controls", children: [(0, jsx_runtime_1.jsx)("button", { onClick: handleZoomIn, title: "Zoom In", children: (0, jsx_runtime_1.jsx)(lucide_react_1.ZoomIn, { size: 18 }) }), (0, jsx_runtime_1.jsx)("button", { onClick: handleZoomOut, title: "Zoom Out", children: (0, jsx_runtime_1.jsx)(lucide_react_1.ZoomOut, { size: 18 }) }), (0, jsx_runtime_1.jsx)("button", { onClick: handleFitView, title: "Fit View", children: (0, jsx_runtime_1.jsx)(lucide_react_1.Maximize2, { size: 18 }) }), (0, jsx_runtime_1.jsx)("button", { onClick: onClose, title: "Close", children: (0, jsx_runtime_1.jsx)(lucide_react_1.X, { size: 18 }) })] })] })] }), (0, jsx_runtime_1.jsxs)("div", { ref: containerRef, className: "graph-view-content", children: [(0, jsx_runtime_1.jsx)("svg", { ref: svgRef, width: "100%", height: "100%" }), (0, jsx_runtime_1.jsxs)("div", { className: "graph-legend", children: [(0, jsx_runtime_1.jsx)("div", { className: "legend-title", children: "Filter by Type" }), activeNodeTypes.map(t => {
384
+ const isHidden = hiddenTypes.has(t.key);
385
+ return ((0, jsx_runtime_1.jsxs)("div", { className: `legend-item ${isHidden ? 'legend-item-hidden' : ''}`, onClick: () => toggleType(t.key), title: isHidden ? `Show ${t.label}` : `Hide ${t.label}`, children: [(0, jsx_runtime_1.jsx)("span", { className: "legend-dot", style: {
386
+ background: isHidden ? '#444' : t.color,
387
+ width: t.size || 6,
388
+ height: t.size || 6,
389
+ } }), (0, jsx_runtime_1.jsx)("span", { className: "legend-label", children: t.label })] }, t.key));
390
+ })] }), selectedNode && ((0, jsx_runtime_1.jsxs)("div", { className: "graph-node-panel", children: [(0, jsx_runtime_1.jsxs)("div", { className: "panel-header", children: [(0, jsx_runtime_1.jsxs)("div", { className: "panel-header-info", children: [(0, jsx_runtime_1.jsx)("span", { className: "panel-type-badge", style: { background: selectedNode.color }, children: selectedNode.nodeKind }), (0, jsx_runtime_1.jsx)("h3", { children: selectedNode.label })] }), (0, jsx_runtime_1.jsx)("button", { onClick: () => setSelectedNode(null), children: (0, jsx_runtime_1.jsx)(lucide_react_1.X, { size: 16 }) })] }), (0, jsx_runtime_1.jsxs)("div", { className: "panel-content", children: [(0, jsx_runtime_1.jsxs)("div", { className: "panel-section", children: [(0, jsx_runtime_1.jsxs)("div", { className: "panel-row", children: [(0, jsx_runtime_1.jsx)("span", { className: "panel-label", children: "ID" }), (0, jsx_runtime_1.jsx)("span", { className: "panel-value panel-value-mono", children: selectedNode.id })] }), selectedNode.path && ((0, jsx_runtime_1.jsxs)("div", { className: "panel-row", children: [(0, jsx_runtime_1.jsx)("span", { className: "panel-label", children: "File" }), (0, jsx_runtime_1.jsx)("span", { className: "panel-value panel-value-path", children: selectedNode.path.split('/').pop() })] })), selectedParent && ((0, jsx_runtime_1.jsxs)("div", { className: "panel-row", children: [(0, jsx_runtime_1.jsx)("span", { className: "panel-label", children: "Parent" }), (0, jsx_runtime_1.jsxs)("button", { className: "panel-link", onClick: () => {
391
+ const parentNode = graphData?.nodes.find(n => n.path === selectedParent.path);
392
+ if (parentNode) {
393
+ // Find the D3Node and select it
394
+ setSelectedNode(null);
395
+ setTimeout(() => {
396
+ // Just navigate to the parent's file
397
+ handleNavigate(selectedParent.path);
398
+ }, 100);
399
+ }
400
+ }, children: [(0, jsx_runtime_1.jsx)(lucide_react_1.FileText, { size: 12 }), selectedParent.label] })] }))] }), selectedConnections && (selectedConnections.incoming.length > 0 || selectedConnections.outgoing.length > 0) && ((0, jsx_runtime_1.jsxs)("div", { className: "panel-section", children: [(0, jsx_runtime_1.jsxs)("div", { className: "panel-section-title", children: [(0, jsx_runtime_1.jsx)(lucide_react_1.Link2, { size: 12 }), "Connections (", selectedConnections.incoming.length + selectedConnections.outgoing.length, ")"] }), selectedConnections.outgoing.map((conn, i) => ((0, jsx_runtime_1.jsxs)("div", { className: "panel-connection", children: [(0, jsx_runtime_1.jsx)(lucide_react_1.ArrowRight, { size: 12, className: "conn-icon conn-outgoing" }), (0, jsx_runtime_1.jsx)("button", { className: "panel-link", onClick: () => handleNavigate(conn.path), title: conn.id, children: conn.label }), (0, jsx_runtime_1.jsx)("span", { className: "conn-type", children: conn.type })] }, `out-${i}`))), selectedConnections.incoming.map((conn, i) => ((0, jsx_runtime_1.jsxs)("div", { className: "panel-connection", children: [(0, jsx_runtime_1.jsx)(lucide_react_1.ArrowLeft, { size: 12, className: "conn-icon conn-incoming" }), (0, jsx_runtime_1.jsx)("button", { className: "panel-link", onClick: () => handleNavigate(conn.path), title: conn.id, children: conn.label }), (0, jsx_runtime_1.jsx)("span", { className: "conn-type", children: conn.type })] }, `in-${i}`)))] })), selectedNode.path && onNavigateToFile && ((0, jsx_runtime_1.jsx)("div", { className: "panel-actions", children: (0, jsx_runtime_1.jsxs)("button", { className: "panel-navigate-btn", onClick: () => handleNavigate(selectedNode.path), children: [(0, jsx_runtime_1.jsx)(lucide_react_1.ExternalLink, { size: 14 }), "Open in Editor"] }) }))] })] }))] })] }) }));
233
401
  }
234
402
  //# sourceMappingURL=GraphView.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GraphView.js","sourceRoot":"","sources":["../../../src/components/GraphView/GraphView.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GraphView.js","sourceRoot":"","sources":["../../../src/components/GraphView/GraphView.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"JotxEditor.d.ts","sourceRoot":"","sources":["../../src/components/JotxEditor.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AA+EH,OAAO,0BAA0B,CAAA;AACjC,OAAO,gCAAgC,CAAA;AAWvC,OAAO,+BAA+B,CAAA;AAEtC,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,CAAA;IAC7C,SAAS,EAAE,GAAG,CAAA;IACd,QAAQ,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAA;IACvC,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB;AAED,wBAAgB,UAAU,CAAC,EACzB,UAAU,EACV,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,cAAsB,EACvB,EAAE,eAAe,2CA6rCjB"}
1
+ {"version":3,"file":"JotxEditor.d.ts","sourceRoot":"","sources":["../../src/components/JotxEditor.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAgFH,OAAO,0BAA0B,CAAA;AACjC,OAAO,gCAAgC,CAAA;AAWvC,OAAO,+BAA+B,CAAA;AAEtC,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,CAAA;IAC7C,SAAS,EAAE,GAAG,CAAA;IACd,QAAQ,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAA;IACvC,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB;AAED,wBAAgB,UAAU,CAAC,EACzB,UAAU,EACV,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,cAAsB,EACvB,EAAE,eAAe,2CAksCjB"}
@@ -58,6 +58,7 @@ const CalloutNode_1 = require("../extensions/CalloutNode");
58
58
  const AttachNode_1 = require("../extensions/AttachNode");
59
59
  const MermaidNode_1 = require("../extensions/MermaidNode");
60
60
  const ChartNode_1 = require("../extensions/ChartNode");
61
+ const MotionNode_1 = require("../extensions/MotionNode");
61
62
  const JotxLinkNode_1 = require("../extensions/JotxLinkNode");
62
63
  const ImageNode_1 = require("../extensions/ImageNode");
63
64
  const ImageBlockNode_1 = require("../extensions/ImageBlockNode");
@@ -185,6 +186,7 @@ function JotxEditor({ documentId, documentType, tiptapDoc, onChange, ribbonExpan
185
186
  LinkNode_1.LinkNode,
186
187
  MermaidNode_1.MermaidNode,
187
188
  ChartNode_1.ChartNode,
189
+ MotionNode_1.MotionNode,
188
190
  JotxLinkNode_1.JotxLinkNode,
189
191
  DateTimeNode_1.DateTimeNode,
190
192
  MathNode_1.MathNode,
@@ -623,6 +625,10 @@ function JotxEditor({ documentId, documentType, tiptapDoc, onChange, ribbonExpan
623
625
  editor.chain().focus().insertContent([{ type: 'chart', attrs: { chartType: 'bar', json } }, { type: 'paragraph' }]).run();
624
626
  break;
625
627
  }
628
+ case 'motion': {
629
+ editor.chain().focus().insertContent([{ type: 'motion', attrs: { motionType: 'custom', scene: '', title: '' } }, { type: 'paragraph' }]).run();
630
+ break;
631
+ }
626
632
  case 'datetime': {
627
633
  editor
628
634
  .chain()