@jotx-labs/editor 2.4.210 → 2.4.213

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 +230 -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 +7 -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
@@ -14,14 +14,14 @@
14
14
  }
15
15
 
16
16
  .graph-view-container {
17
- width: 90vw;
18
- height: 85vh;
19
- background: #1a1a2e;
20
- border-radius: 12px;
17
+ width: 92vw;
18
+ height: 88vh;
19
+ background: #12122a;
20
+ border-radius: 14px;
21
21
  overflow: hidden;
22
22
  display: flex;
23
23
  flex-direction: column;
24
- box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);
24
+ box-shadow: 0 24px 80px rgba(0, 0, 0, 0.6), 0 0 0 1px rgba(255, 255, 255, 0.06);
25
25
  }
26
26
 
27
27
  /* Header */
@@ -29,9 +29,9 @@
29
29
  display: flex;
30
30
  justify-content: space-between;
31
31
  align-items: center;
32
- padding: 16px 24px;
33
- background: #16162a;
34
- border-bottom: 1px solid #2a2a4e;
32
+ padding: 14px 22px;
33
+ background: #0e0e22;
34
+ border-bottom: 1px solid rgba(255, 255, 255, 0.06);
35
35
  }
36
36
 
37
37
  .graph-view-title {
@@ -41,81 +41,138 @@
41
41
  }
42
42
 
43
43
  .graph-icon {
44
- font-size: 24px;
44
+ font-size: 22px;
45
45
  }
46
46
 
47
47
  .graph-view-title h2 {
48
48
  margin: 0;
49
- font-size: 18px;
49
+ font-size: 17px;
50
50
  font-weight: 600;
51
- color: #fff;
51
+ color: #eee;
52
+ font-family: system-ui, -apple-system, sans-serif;
52
53
  }
53
54
 
54
55
  .graph-stats {
56
+ font-size: 11px;
57
+ color: #666;
58
+ padding: 3px 10px;
59
+ background: rgba(255, 255, 255, 0.04);
60
+ border-radius: 6px;
61
+ font-family: system-ui, -apple-system, sans-serif;
62
+ }
63
+
64
+ .graph-view-header-right {
65
+ display: flex;
66
+ align-items: center;
67
+ gap: 16px;
68
+ }
69
+
70
+ /* Connected Only Toggle */
71
+ .graph-filter-toggle {
72
+ display: flex;
73
+ align-items: center;
74
+ gap: 6px;
75
+ cursor: pointer;
55
76
  font-size: 12px;
56
77
  color: #888;
57
- padding: 4px 8px;
58
- background: rgba(255, 255, 255, 0.05);
59
- border-radius: 4px;
78
+ user-select: none;
79
+ font-family: system-ui, -apple-system, sans-serif;
80
+ transition: color 0.2s;
81
+ }
82
+
83
+ .graph-filter-toggle:hover {
84
+ color: #bbb;
85
+ }
86
+
87
+ .graph-filter-toggle input[type="checkbox"] {
88
+ width: 14px;
89
+ height: 14px;
90
+ accent-color: #14b8a6;
91
+ cursor: pointer;
60
92
  }
61
93
 
62
94
  .graph-view-controls {
63
95
  display: flex;
64
- gap: 8px;
96
+ gap: 6px;
65
97
  }
66
98
 
67
99
  .graph-view-controls button {
68
- background: rgba(255, 255, 255, 0.1);
100
+ background: rgba(255, 255, 255, 0.06);
69
101
  border: none;
70
- color: #fff;
71
- padding: 8px;
102
+ color: #aaa;
103
+ padding: 7px;
72
104
  border-radius: 6px;
73
105
  cursor: pointer;
74
106
  display: flex;
75
107
  align-items: center;
76
108
  justify-content: center;
77
- transition: background 0.2s;
109
+ transition: all 0.15s ease;
78
110
  }
79
111
 
80
112
  .graph-view-controls button:hover {
81
- background: rgba(255, 255, 255, 0.2);
113
+ background: rgba(255, 255, 255, 0.12);
114
+ color: #fff;
82
115
  }
83
116
 
84
117
  /* Graph Content */
85
118
  .graph-view-content {
86
119
  flex: 1;
87
120
  position: relative;
88
- background: #0d0d1a;
121
+ background: #0a0a1a;
89
122
  }
90
123
 
91
124
  .graph-view-content svg {
92
125
  display: block;
93
126
  }
94
127
 
95
- /* Legend */
128
+ /* Legend / Filters */
96
129
  .graph-legend {
97
130
  position: absolute;
98
- bottom: 20px;
99
- left: 20px;
100
- background: rgba(26, 26, 46, 0.95);
101
- border: 1px solid #2a2a4e;
102
- border-radius: 8px;
103
- padding: 12px 16px;
104
- font-size: 12px;
105
- color: #ccc;
131
+ bottom: 16px;
132
+ left: 16px;
133
+ background: rgba(14, 14, 34, 0.92);
134
+ backdrop-filter: blur(12px);
135
+ border: 1px solid rgba(255, 255, 255, 0.08);
136
+ border-radius: 10px;
137
+ padding: 12px 14px;
138
+ font-size: 11px;
139
+ color: #bbb;
140
+ max-height: 400px;
141
+ overflow-y: auto;
142
+ font-family: system-ui, -apple-system, sans-serif;
106
143
  }
107
144
 
108
145
  .legend-title {
109
146
  font-weight: 600;
110
147
  margin-bottom: 8px;
111
- color: #fff;
148
+ color: #999;
149
+ font-size: 10px;
150
+ text-transform: uppercase;
151
+ letter-spacing: 0.5px;
112
152
  }
113
153
 
114
154
  .legend-item {
115
155
  display: flex;
116
156
  align-items: center;
117
157
  gap: 8px;
118
- margin-bottom: 4px;
158
+ margin-bottom: 3px;
159
+ padding: 3px 6px;
160
+ border-radius: 4px;
161
+ cursor: pointer;
162
+ transition: all 0.15s ease;
163
+ user-select: none;
164
+ }
165
+
166
+ .legend-item:hover {
167
+ background: rgba(255, 255, 255, 0.06);
168
+ }
169
+
170
+ .legend-item-hidden {
171
+ opacity: 0.35;
172
+ }
173
+
174
+ .legend-item-hidden:hover {
175
+ opacity: 0.6;
119
176
  }
120
177
 
121
178
  .legend-dot {
@@ -123,34 +180,73 @@
123
180
  height: 6px;
124
181
  border-radius: 50%;
125
182
  flex-shrink: 0;
183
+ transition: background 0.2s;
184
+ }
185
+
186
+ .legend-label {
187
+ font-size: 11px;
188
+ color: #bbb;
189
+ white-space: nowrap;
190
+ }
191
+
192
+ .legend-item-hidden .legend-label {
193
+ text-decoration: line-through;
194
+ color: #555;
126
195
  }
127
196
 
128
- /* Node Panel */
197
+ /* Node Panel (Side Panel) */
129
198
  .graph-node-panel {
130
199
  position: absolute;
131
- top: 20px;
132
- right: 20px;
133
- width: 280px;
134
- background: rgba(26, 26, 46, 0.95);
135
- border: 1px solid #2a2a4e;
136
- border-radius: 8px;
200
+ top: 16px;
201
+ right: 16px;
202
+ width: 300px;
203
+ background: rgba(14, 14, 34, 0.95);
204
+ backdrop-filter: blur(16px);
205
+ border: 1px solid rgba(255, 255, 255, 0.08);
206
+ border-radius: 12px;
137
207
  overflow: hidden;
208
+ font-family: system-ui, -apple-system, sans-serif;
209
+ box-shadow: 0 12px 40px rgba(0, 0, 0, 0.4);
210
+ max-height: calc(100% - 32px);
211
+ display: flex;
212
+ flex-direction: column;
138
213
  }
139
214
 
140
215
  .panel-header {
141
216
  display: flex;
142
217
  justify-content: space-between;
143
- align-items: center;
144
- padding: 12px 16px;
218
+ align-items: flex-start;
219
+ padding: 14px 16px;
145
220
  background: rgba(0, 0, 0, 0.2);
146
- border-bottom: 1px solid #2a2a4e;
221
+ border-bottom: 1px solid rgba(255, 255, 255, 0.06);
222
+ gap: 8px;
223
+ }
224
+
225
+ .panel-header-info {
226
+ display: flex;
227
+ flex-direction: column;
228
+ gap: 6px;
229
+ min-width: 0;
230
+ flex: 1;
231
+ }
232
+
233
+ .panel-type-badge {
234
+ font-size: 10px;
235
+ font-weight: 600;
236
+ text-transform: uppercase;
237
+ letter-spacing: 0.5px;
238
+ padding: 2px 8px;
239
+ border-radius: 4px;
240
+ color: #fff;
241
+ width: fit-content;
242
+ opacity: 0.9;
147
243
  }
148
244
 
149
245
  .panel-header h3 {
150
246
  margin: 0;
151
247
  font-size: 14px;
152
248
  font-weight: 600;
153
- color: #fff;
249
+ color: #eee;
154
250
  overflow: hidden;
155
251
  text-overflow: ellipsis;
156
252
  white-space: nowrap;
@@ -159,38 +255,163 @@
159
255
  .panel-header button {
160
256
  background: none;
161
257
  border: none;
162
- color: #888;
258
+ color: #666;
163
259
  cursor: pointer;
164
260
  padding: 4px;
165
261
  display: flex;
262
+ border-radius: 4px;
263
+ transition: all 0.15s;
264
+ flex-shrink: 0;
166
265
  }
167
266
 
168
267
  .panel-header button:hover {
169
268
  color: #fff;
269
+ background: rgba(255, 255, 255, 0.08);
170
270
  }
171
271
 
172
272
  .panel-content {
273
+ padding: 0;
274
+ overflow-y: auto;
275
+ flex: 1;
276
+ }
277
+
278
+ .panel-section {
173
279
  padding: 12px 16px;
280
+ border-bottom: 1px solid rgba(255, 255, 255, 0.04);
281
+ }
282
+
283
+ .panel-section:last-child {
284
+ border-bottom: none;
285
+ }
286
+
287
+ .panel-section-title {
288
+ font-size: 10px;
289
+ font-weight: 600;
290
+ text-transform: uppercase;
291
+ letter-spacing: 0.5px;
292
+ color: #666;
293
+ margin-bottom: 8px;
294
+ display: flex;
295
+ align-items: center;
296
+ gap: 6px;
174
297
  }
175
298
 
176
299
  .panel-row {
177
300
  display: flex;
178
301
  justify-content: space-between;
179
- margin-bottom: 8px;
302
+ align-items: center;
303
+ margin-bottom: 6px;
180
304
  }
181
305
 
182
306
  .panel-label {
183
- color: #888;
184
- font-size: 12px;
307
+ color: #666;
308
+ font-size: 11px;
309
+ flex-shrink: 0;
185
310
  }
186
311
 
187
312
  .panel-value {
188
- color: #fff;
189
- font-size: 12px;
313
+ color: #ccc;
314
+ font-size: 11px;
190
315
  text-align: right;
191
316
  overflow: hidden;
192
317
  text-overflow: ellipsis;
193
- max-width: 150px;
318
+ max-width: 170px;
319
+ white-space: nowrap;
320
+ }
321
+
322
+ .panel-value-mono {
323
+ font-family: 'SF Mono', 'Fira Code', 'Consolas', monospace;
324
+ font-size: 10px;
325
+ color: #999;
326
+ }
327
+
328
+ .panel-value-path {
329
+ color: #5B9BD5;
330
+ }
331
+
332
+ /* Connections List */
333
+ .panel-connection {
334
+ display: flex;
335
+ align-items: center;
336
+ gap: 6px;
337
+ padding: 4px 0;
338
+ }
339
+
340
+ .conn-icon {
341
+ flex-shrink: 0;
342
+ }
343
+
344
+ .conn-outgoing {
345
+ color: #14b8a6;
346
+ }
347
+
348
+ .conn-incoming {
349
+ color: #a78bfa;
350
+ }
351
+
352
+ .conn-type {
353
+ font-size: 9px;
354
+ color: #555;
355
+ margin-left: auto;
356
+ flex-shrink: 0;
357
+ padding: 1px 5px;
358
+ background: rgba(255, 255, 255, 0.04);
359
+ border-radius: 3px;
360
+ }
361
+
362
+ /* Clickable links in panel */
363
+ .panel-link {
364
+ background: none;
365
+ border: none;
366
+ color: #5B9BD5;
367
+ cursor: pointer;
368
+ font-size: 11px;
369
+ padding: 2px 4px;
370
+ border-radius: 3px;
371
+ transition: all 0.15s;
372
+ display: flex;
373
+ align-items: center;
374
+ gap: 4px;
375
+ text-align: left;
376
+ font-family: system-ui, -apple-system, sans-serif;
377
+ overflow: hidden;
378
+ text-overflow: ellipsis;
379
+ white-space: nowrap;
380
+ }
381
+
382
+ .panel-link:hover {
383
+ background: rgba(91, 155, 213, 0.12);
384
+ color: #7bb8e8;
385
+ }
386
+
387
+ /* Navigate Button */
388
+ .panel-actions {
389
+ padding: 12px 16px;
390
+ border-top: 1px solid rgba(255, 255, 255, 0.04);
391
+ }
392
+
393
+ .panel-navigate-btn {
394
+ width: 100%;
395
+ display: flex;
396
+ align-items: center;
397
+ justify-content: center;
398
+ gap: 8px;
399
+ padding: 8px 16px;
400
+ background: linear-gradient(135deg, #14b8a6, #0d9488);
401
+ border: none;
402
+ border-radius: 8px;
403
+ color: #fff;
404
+ font-size: 12px;
405
+ font-weight: 500;
406
+ cursor: pointer;
407
+ transition: all 0.2s;
408
+ font-family: system-ui, -apple-system, sans-serif;
409
+ }
410
+
411
+ .panel-navigate-btn:hover {
412
+ background: linear-gradient(135deg, #2dd4bf, #14b8a6);
413
+ transform: translateY(-1px);
414
+ box-shadow: 0 4px 12px rgba(20, 184, 166, 0.3);
194
415
  }
195
416
 
196
417
  /* Responsive */
@@ -216,5 +437,6 @@
216
437
  top: auto;
217
438
  bottom: 0;
218
439
  border-radius: 12px 12px 0 0;
440
+ max-height: 50vh;
219
441
  }
220
442
  }