@truedat/dd 8.11.6 → 8.11.9

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 (43) hide show
  1. package/package.json +4 -3
  2. package/src/components/Graphs.js +30 -4
  3. package/src/components/LineageContextMenu.js +185 -58
  4. package/src/components/LineageDownloadButton.js +16 -6
  5. package/src/components/LineageEventsPanel.js +80 -27
  6. package/src/components/LineageEventsTable.js +7 -3
  7. package/src/components/LineageGraph.js +5166 -306
  8. package/src/components/LineageGraphToolbar.js +896 -0
  9. package/src/components/LineageInspectorPanel.js +748 -0
  10. package/src/components/LineageResourceNode.js +501 -0
  11. package/src/components/LineageRoutes.js +1 -2
  12. package/src/components/LineageSelectionPanel.js +28 -12
  13. package/src/components/StructureGraph.js +8 -1
  14. package/src/components/StructureGraphView.js +14 -0
  15. package/src/components/StructureImpact.js +2 -22
  16. package/src/components/StructureLineage.js +2 -19
  17. package/src/components/StructuresUploadEventsTable.js +0 -3
  18. package/src/components/__tests__/LineageContextMenu.spec.js +42 -0
  19. package/src/components/__tests__/LineageGraph.spec.js +896 -0
  20. package/src/components/__tests__/LineageGraphLayout.spec.js +639 -0
  21. package/src/components/__tests__/LineageGraphToolbar.spec.js +366 -0
  22. package/src/components/__tests__/LineageHierarchy.spec.js +116 -0
  23. package/src/components/__tests__/LineageInspectorPanel.spec.js +364 -0
  24. package/src/components/__tests__/LineageResourceNode.spec.js +338 -0
  25. package/src/components/__tests__/LineageRoutes.spec.js +27 -9
  26. package/src/components/__tests__/__snapshots__/LineageDownloadButton.spec.js.snap +23 -3
  27. package/src/components/__tests__/__snapshots__/LineageForm.spec.js.snap +23 -3
  28. package/src/components/__tests__/lineageEventHelpers.spec.js +60 -0
  29. package/src/components/lineageEventHelpers.js +53 -17
  30. package/src/reducers/__tests__/lineageEvents.spec.js +164 -0
  31. package/src/reducers/__tests__/lineageQuery.spec.js +11 -0
  32. package/src/reducers/lineageEvents.js +68 -2
  33. package/src/reducers/lineageQuery.js +2 -6
  34. package/src/styles/LineageGraph.less +4094 -0
  35. package/src/styles/LineageGraphColors.less +105 -0
  36. package/src/styles/LineageGraphCore.less +20 -0
  37. package/src/styles/LineageResourceNode.less +711 -0
  38. package/src/utils/__tests__/lineageGraphIndex.spec.js +52 -0
  39. package/src/utils/__tests__/lineageLayout.spec.js +252 -0
  40. package/src/utils/__tests__/lineageTopology.spec.js +256 -0
  41. package/src/utils/lineageGraphIndex.js +296 -0
  42. package/src/utils/lineageLayout.js +1050 -0
  43. package/src/styles/lineageGraph.less +0 -1236
@@ -0,0 +1,711 @@
1
+ .td-lineage-resource-node {
2
+ position: relative;
3
+ display: flex;
4
+ width: var(--td-lineage-node-width, 288px);
5
+ height: 100%;
6
+ min-height: 42px;
7
+ box-sizing: border-box;
8
+ flex-direction: column;
9
+ overflow: hidden;
10
+ border: 1px solid var(--td-lineage-node-border, #cbd5e1);
11
+ border-radius: 12px;
12
+ background: #ffffff;
13
+ color: #172033;
14
+ cursor: pointer;
15
+ text-align: left;
16
+ transition:
17
+ border-color 150ms ease,
18
+ background-color 150ms ease,
19
+ opacity 150ms ease;
20
+
21
+ *,
22
+ *::before,
23
+ *::after {
24
+ box-sizing: border-box;
25
+ }
26
+ }
27
+
28
+ .td-lineage-resource-node__header {
29
+ display: grid;
30
+ width: 100%;
31
+ height: 42px;
32
+ min-height: 42px;
33
+ grid-template-columns: minmax(0, 1fr) auto;
34
+ gap: 8px;
35
+ align-items: center;
36
+ padding: 8px;
37
+ overflow: hidden;
38
+ background: var(--td-lineage-entity-accent, #0f172a);
39
+ color: #ffffff;
40
+ }
41
+
42
+ .td-lineage-resource-node__type-icon {
43
+ display: inline-flex;
44
+ width: 26px;
45
+ height: 26px;
46
+ align-items: center;
47
+ justify-content: center;
48
+ border-radius: 7px;
49
+ background: var(--td-lineage-node-accent, #2563eb);
50
+ color: #ffffff;
51
+ }
52
+
53
+ .td-lineage-resource-node__type-icon .icon {
54
+ height: auto;
55
+ margin: 0;
56
+ color: currentColor;
57
+ font-size: 13px;
58
+ line-height: 1;
59
+ }
60
+
61
+ .td-lineage-resource-node__entity-badge {
62
+ display: inline-flex;
63
+ flex: 0 0 auto;
64
+ align-items: center;
65
+ padding: 1px 4px;
66
+ border: 1px solid #94a3b8;
67
+ border-radius: 3px;
68
+ background: #f1f5f9;
69
+ color: #334155;
70
+ font-family: inherit;
71
+ font-size: 9px;
72
+ font-weight: 650;
73
+ line-height: 1;
74
+ letter-spacing: 0.02em;
75
+ text-transform: uppercase;
76
+ white-space: nowrap;
77
+ }
78
+
79
+ .td-lineage-resource-node__title {
80
+ display: flex;
81
+ min-width: 0;
82
+ flex-direction: column;
83
+ gap: 1px;
84
+ }
85
+
86
+ .td-lineage-resource-node__label,
87
+ .td-lineage-resource-node__kind {
88
+ display: flex;
89
+ align-items: center;
90
+ gap: 5px;
91
+ min-width: 0;
92
+ overflow: hidden;
93
+ text-overflow: ellipsis;
94
+ white-space: nowrap;
95
+ }
96
+
97
+ .td-lineage-resource-node__system-group {
98
+ max-width: 96px;
99
+ padding: 1px 4px;
100
+ border: 1px solid currentColor;
101
+ border-radius: 999px;
102
+ overflow: hidden;
103
+ text-overflow: ellipsis;
104
+ white-space: nowrap;
105
+ }
106
+
107
+ .td-lineage-resource-node__header {
108
+ box-shadow: inset 0 3px var(--td-lineage-entity-accent, #2563eb);
109
+ }
110
+
111
+ .td-lineage-resource-node__label {
112
+ color: #ffffff;
113
+ font-size: 13px;
114
+ font-weight: 750;
115
+ letter-spacing: -0.01em;
116
+ line-height: 1.15;
117
+ transition:
118
+ background-color 150ms ease,
119
+ border-color 150ms ease;
120
+ }
121
+
122
+ .td-lineage-resource-node__kind {
123
+ color: #cbd5e1;
124
+ font-size: 10px;
125
+ font-weight: 650;
126
+ line-height: 1.15;
127
+ }
128
+
129
+ .td-lineage-resource-node__header-meta {
130
+ display: flex;
131
+ min-width: 0;
132
+ align-items: center;
133
+ gap: 5px;
134
+ flex-wrap: nowrap;
135
+ overflow: hidden;
136
+ }
137
+
138
+ .td-lineage-resource-node__quality {
139
+ display: inline-flex;
140
+ min-height: 20px;
141
+ align-items: center;
142
+ gap: 3px;
143
+ padding: 2px 5px;
144
+ border: 1px solid #475569;
145
+ border-radius: 6px;
146
+ background: #1e293b;
147
+ color: #e2e8f0;
148
+ font-size: 10px;
149
+ font-variant-numeric: tabular-nums;
150
+ font-weight: 750;
151
+ line-height: 1;
152
+ white-space: nowrap;
153
+ }
154
+
155
+ .td-lineage-resource-node__quality .icon {
156
+ margin: 0;
157
+ color: #94a3b8;
158
+ font-size: 10px;
159
+ line-height: 1;
160
+ }
161
+
162
+ .td-lineage-resource-node__quality--good {
163
+ border-color: #166534;
164
+ background: #052e16;
165
+ color: #86efac;
166
+
167
+ .icon {
168
+ color: #4ade80;
169
+ }
170
+ }
171
+
172
+ .td-lineage-resource-node__quality--warning {
173
+ border-color: #92400e;
174
+ background: #451a03;
175
+ color: #fcd34d;
176
+
177
+ .icon {
178
+ color: #fbbf24;
179
+ }
180
+ }
181
+
182
+ .td-lineage-resource-node__quality--poor {
183
+ border-color: #9f1239;
184
+ background: #4c0519;
185
+ color: #fda4af;
186
+
187
+ .icon {
188
+ color: #fb7185;
189
+ }
190
+ }
191
+
192
+ .td-lineage-resource-node__header-status {
193
+ display: inline-flex;
194
+ width: 18px;
195
+ height: 18px;
196
+ align-items: center;
197
+ justify-content: center;
198
+ border-radius: 50%;
199
+ background: rgba(255, 255, 255, 0.12);
200
+ }
201
+
202
+ .td-lineage-resource-node__status-dot {
203
+ width: 7px;
204
+ height: 7px;
205
+ border-radius: 50%;
206
+ background: #4ade80;
207
+ }
208
+
209
+ .td-lineage-resource-node--status-warning
210
+ .td-lineage-resource-node__status-dot {
211
+ background: #fbbf24;
212
+ }
213
+
214
+ .td-lineage-resource-node--status-error .td-lineage-resource-node__status-dot,
215
+ .td-lineage-resource-node--status-failed .td-lineage-resource-node__status-dot,
216
+ .td-lineage-resource-node--status-fallido
217
+ .td-lineage-resource-node__status-dot {
218
+ background: #fb7185;
219
+ }
220
+
221
+ .td-lineage-resource-node__fields {
222
+ display: flex;
223
+ min-height: 0;
224
+ flex-direction: column;
225
+ overflow: hidden;
226
+ overscroll-behavior: contain;
227
+ scrollbar-color: var(--td-lineage-node-accent, #2563eb) #e2e8f0;
228
+ scrollbar-width: thin;
229
+ }
230
+
231
+ .td-lineage-resource-node__fields--scrollable {
232
+ max-height: 320px;
233
+ overflow-y: auto;
234
+ }
235
+
236
+ .td-lineage-resource-node__fields::-webkit-scrollbar {
237
+ width: 7px;
238
+ }
239
+
240
+ .td-lineage-resource-node__fields::-webkit-scrollbar-track {
241
+ background: #e2e8f0;
242
+ }
243
+
244
+ .td-lineage-resource-node__fields::-webkit-scrollbar-thumb {
245
+ border: 2px solid #e2e8f0;
246
+ border-radius: 6px;
247
+ background: var(--td-lineage-node-accent, #2563eb);
248
+ }
249
+
250
+ .td-lineage-resource-node__field {
251
+ position: relative;
252
+ display: grid;
253
+ min-width: 0;
254
+ min-height: 36px;
255
+ grid-template-columns: minmax(0, 1fr) auto;
256
+ gap: 8px;
257
+ align-items: center;
258
+ flex: 0 0 36px;
259
+ overflow: hidden;
260
+ padding: 6px 8px;
261
+ background: #ffffff;
262
+
263
+ &:nth-child(even) {
264
+ background: #f8fafc;
265
+ }
266
+
267
+ &:hover {
268
+ background: #eff6ff;
269
+ }
270
+ }
271
+
272
+ .td-lineage-resource-node__field-name {
273
+ display: inline-flex;
274
+ min-width: 0;
275
+ align-items: center;
276
+ gap: 4px;
277
+ overflow: hidden;
278
+ color: #1e293b;
279
+ font-family: inherit;
280
+ font-size: 13px;
281
+ font-weight: 650;
282
+ line-height: 1.2;
283
+ text-overflow: ellipsis;
284
+ white-space: nowrap;
285
+ }
286
+
287
+ .td-lineage-resource-node__field-key {
288
+ flex: 0 0 auto;
289
+ padding: 2px 4px;
290
+ border: 1px solid #fcd34d;
291
+ border-radius: 4px;
292
+ background: #fffbeb;
293
+ color: #92400e;
294
+ font-family: inherit;
295
+ font-size: 10px;
296
+ font-weight: 800;
297
+ line-height: 1;
298
+ }
299
+
300
+ .td-lineage-resource-node__field-type-badge {
301
+ border-color: #94a3b8;
302
+ background: #f1f5f9;
303
+ color: #475569;
304
+ }
305
+
306
+ .td-lineage-resource-node__field-type {
307
+ max-width: 88px;
308
+ overflow: hidden;
309
+ padding: 2px 5px;
310
+ border: 1px solid #e2e8f0;
311
+ border-radius: 5px;
312
+ background: #f1f5f9;
313
+ color: #475569;
314
+ font-family: inherit;
315
+ font-size: 11px;
316
+ font-weight: 650;
317
+ line-height: 1.1;
318
+ text-overflow: ellipsis;
319
+ white-space: nowrap;
320
+ }
321
+
322
+ .td-lineage-resource-node__field-handle {
323
+ opacity: 0;
324
+ pointer-events: none;
325
+ }
326
+
327
+ .td-lineage-resource-node__field-more {
328
+ display: flex;
329
+ width: 100%;
330
+ min-height: 32px;
331
+ align-items: center;
332
+ justify-content: center;
333
+ margin: 0;
334
+ padding: 4px 8px;
335
+ border: 0;
336
+ background: #f8fafc;
337
+ color: #1d4ed8;
338
+ cursor: pointer;
339
+ font: inherit;
340
+ font-size: 11px;
341
+ font-weight: 750;
342
+ line-height: 1.2;
343
+ transition:
344
+ background-color 150ms ease,
345
+ color 150ms ease;
346
+
347
+ &:hover {
348
+ background: #eff6ff;
349
+ color: #1e40af;
350
+ }
351
+
352
+ &:focus-visible {
353
+ outline: 2px solid #0284c7;
354
+ outline-offset: -3px;
355
+ }
356
+ }
357
+
358
+ .td-lineage-resource-node--compact {
359
+ width: 100%;
360
+ height: 100%;
361
+ min-height: 0;
362
+ border-radius: 8px;
363
+
364
+ .td-lineage-resource-node__header {
365
+ width: 100%;
366
+ height: 100%;
367
+ min-height: 100%;
368
+ grid-template-columns: minmax(0, 1fr);
369
+ padding: 7px 10px;
370
+ background: #ffffff;
371
+ }
372
+
373
+ .td-lineage-resource-node__type-icon,
374
+ .td-lineage-resource-node__header-meta,
375
+ .td-lineage-resource-node__fields,
376
+ .td-lineage-resource-node__field-more {
377
+ display: none;
378
+ }
379
+
380
+ .td-lineage-resource-node__label {
381
+ color: #172033;
382
+ font-size: 13px;
383
+ font-weight: 500;
384
+ }
385
+
386
+ .td-lineage-resource-node__kind {
387
+ color: #64748b;
388
+ }
389
+ }
390
+
391
+ .td-lineage-resource-node--redesigned {
392
+ --td-lineage-node-accent: #f97316;
393
+ --td-lineage-node-accent-strong: #ea580c;
394
+ --td-lineage-node-accent-soft: rgba(249, 115, 22, 0.18);
395
+ --td-lineage-node-border: #cbd5e1;
396
+
397
+ border: 1px solid #cbd5e1;
398
+ border-radius: 12px;
399
+ background: #ffffff;
400
+ box-shadow: 0 1px 3px rgba(15, 23, 42, 0.08);
401
+
402
+ .td-lineage-resource-node__header {
403
+ gap: 8px;
404
+ padding: 7px 12px;
405
+ border-bottom: 1px solid
406
+ color-mix(in srgb, var(--td-lineage-entity-accent, #003882) 75%, #000);
407
+ // The node clips the header to its own radius, including field variants.
408
+ border-radius: 0;
409
+ background: var(--td-lineage-entity-accent, #003882);
410
+ box-shadow: inset 0 -1px 0 rgba(0, 26, 64, 0.48);
411
+ }
412
+
413
+ .td-lineage-resource-node__type-icon {
414
+ width: 18px;
415
+ height: 18px;
416
+ border-radius: 0;
417
+ background: transparent;
418
+ color: #93c5fd;
419
+ }
420
+
421
+ .td-lineage-resource-node__type-icon .icon {
422
+ font-size: 17px;
423
+ }
424
+
425
+ .td-lineage-resource-node__entity-badge {
426
+ padding: 1px 4px;
427
+ border-color: #94a3b8;
428
+ background: #f1f5f9;
429
+ color: #334155;
430
+ }
431
+
432
+ .td-lineage-resource-node__label {
433
+ font-family: inherit;
434
+ font-size: 14px;
435
+ font-weight: 800;
436
+ letter-spacing: -0.02em;
437
+ }
438
+
439
+ .td-lineage-resource-node__kind {
440
+ color: #bfdbfe;
441
+ }
442
+
443
+ .td-lineage-resource-node__quality {
444
+ border-color: rgba(147, 197, 253, 0.38);
445
+ background: #002b66;
446
+ }
447
+
448
+ .td-lineage-resource-node__header-status {
449
+ background: #002b66;
450
+ }
451
+
452
+ .td-lineage-resource-node__fields {
453
+ padding: 2px 0;
454
+ background: rgba(248, 250, 252, 0.72);
455
+ }
456
+
457
+ > .react-flow__handle,
458
+ .td-lineage-resource-node__field-handle {
459
+ width: 8px;
460
+ height: 8px;
461
+ border: 1px solid #ffffff;
462
+ border-radius: 50%;
463
+ background: #f97316;
464
+ box-shadow: 0 0 0 1px rgba(194, 65, 12, 0.18);
465
+ opacity: 0;
466
+ pointer-events: none;
467
+ transition: opacity 150ms ease;
468
+ }
469
+
470
+ > .react-flow__handle-left,
471
+ .td-lineage-resource-node__field-handle--target,
472
+ .td-lineage-resource-node__field-handle--source-left {
473
+ left: 0;
474
+ transform: translate(0, -50%);
475
+ }
476
+
477
+ > .react-flow__handle-right,
478
+ .td-lineage-resource-node__field-handle--source,
479
+ .td-lineage-resource-node__field-handle--target-right {
480
+ right: 0;
481
+ transform: translate(0, -50%);
482
+ }
483
+
484
+ &:hover > .react-flow__handle.td-lineage-node-handle--connected,
485
+ .td-lineage-resource-node__field:hover
486
+ .td-lineage-resource-node__field-handle.td-lineage-node-handle--connected {
487
+ opacity: 1;
488
+ }
489
+
490
+ .td-lineage-resource-node__field {
491
+ min-height: 28px;
492
+ flex-basis: 28px;
493
+ margin: 2px 6px;
494
+ padding: 4px 10px;
495
+ border: 1px solid #e2e8f0;
496
+ border-radius: 8px;
497
+ background: #ffffff;
498
+ box-shadow: 0 1px 2px rgba(15, 23, 42, 0.03);
499
+ transition:
500
+ border-color 150ms ease,
501
+ background-color 150ms ease,
502
+ opacity 150ms ease;
503
+
504
+ &:nth-child(even) {
505
+ background: #ffffff;
506
+ }
507
+
508
+ &:hover {
509
+ border-color: #fbbf24;
510
+ background: #fffbeb;
511
+ box-shadow: none;
512
+ }
513
+ }
514
+
515
+ .td-lineage-resource-node__field--source {
516
+ border-color: #fbbf24;
517
+ background: #fffbeb;
518
+ box-shadow: 0 0 0 2px rgba(251, 191, 36, 0.2);
519
+
520
+ .td-lineage-resource-node__field-handle--edge-source.td-lineage-node-handle--connected {
521
+ background: #f97316;
522
+ opacity: 1;
523
+ }
524
+ }
525
+
526
+ .td-lineage-resource-node__field--target {
527
+ border-color: #60a5fa;
528
+ background: #eff6ff;
529
+ box-shadow: 0 0 0 2px rgba(96, 165, 250, 0.16);
530
+
531
+ .td-lineage-resource-node__field-handle--edge-target.td-lineage-node-handle--connected {
532
+ background: #94a3b8;
533
+ opacity: 1;
534
+ }
535
+ }
536
+
537
+ .td-lineage-resource-node__field--dimmed {
538
+ opacity: 0.82;
539
+
540
+ .td-lineage-resource-node__field-handle.td-lineage-node-handle--connected {
541
+ background: #cbd5e1;
542
+ opacity: 1;
543
+ }
544
+ }
545
+
546
+ .td-lineage-resource-node__field-cde {
547
+ margin: 0;
548
+ color: #f59e0b;
549
+ font-size: 15px;
550
+ line-height: 1;
551
+ }
552
+
553
+ .td-lineage-resource-node__field-key {
554
+ padding: 2px 5px;
555
+ border-color: #fbbf24;
556
+ border-radius: 5px;
557
+ background: #fffbeb;
558
+ color: #92400e;
559
+ }
560
+
561
+ .td-lineage-resource-node__field-type-badge {
562
+ border-color: #dbe3ed;
563
+ background: #f1f5f9;
564
+ color: #64748b;
565
+ box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
566
+ }
567
+
568
+ .td-lineage-resource-node__field-type {
569
+ max-width: 104px;
570
+ padding: 3px 7px;
571
+ border-color: #dbe3ed;
572
+ border-radius: 6px;
573
+ background: #f1f5f9;
574
+ color: #64748b;
575
+ box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
576
+ }
577
+
578
+ .td-lineage-resource-node__field-more {
579
+ border-top: 1px solid #e2e8f0;
580
+ background: #f8fafc;
581
+ color: #1e3a8a;
582
+
583
+ &:hover {
584
+ background: #eff6ff;
585
+ color: #172554;
586
+ }
587
+ }
588
+ }
589
+
590
+ .td-lineage-resource-node--field-like {
591
+ width: 100%;
592
+ height: 100%;
593
+ min-height: 0;
594
+ border: 1px solid #e2e8f0;
595
+ border-radius: 8px;
596
+ background: #ffffff;
597
+ box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
598
+
599
+ .td-lineage-resource-node__header {
600
+ width: 100%;
601
+ height: 100%;
602
+ min-height: 100%;
603
+ grid-template-columns: minmax(0, 1fr) auto;
604
+ gap: 8px;
605
+ padding: 4px 10px;
606
+ border: 0;
607
+ background: #ffffff;
608
+ box-shadow: none;
609
+ color: #1e293b;
610
+ }
611
+
612
+ .td-lineage-resource-node__title {
613
+ flex-direction: row;
614
+ align-items: center;
615
+ gap: 6px;
616
+ }
617
+
618
+ .td-lineage-resource-node__label {
619
+ color: #1e293b;
620
+ font-size: 12px;
621
+ font-weight: 650;
622
+ letter-spacing: -0.01em;
623
+ }
624
+
625
+ .td-lineage-resource-node__field-type {
626
+ max-width: 104px;
627
+ padding: 3px 7px;
628
+ border: 1px solid #dbe3ed;
629
+ border-radius: 6px;
630
+ background: #f1f5f9;
631
+ color: #64748b;
632
+ font-size: 10px;
633
+ line-height: 1;
634
+ }
635
+
636
+ > .react-flow__handle {
637
+ width: 8px;
638
+ height: 8px;
639
+ border: 1px solid #ffffff;
640
+ border-radius: 50%;
641
+ background: var(--td-graph-edge-active, #ed5c17);
642
+ box-shadow: none;
643
+ opacity: 0;
644
+ }
645
+
646
+ &:hover > .react-flow__handle.target {
647
+ opacity: 0;
648
+ }
649
+ }
650
+
651
+ .td-lineage-resource-node--field-like.td-lineage-resource-node--field-source {
652
+ border: 1px solid #fbbf24;
653
+ background: #fffbeb;
654
+ box-shadow: 0 0 0 2px rgba(251, 191, 36, 0.18);
655
+
656
+ .td-lineage-resource-node__header {
657
+ background: #fffbeb;
658
+ }
659
+
660
+ > .react-flow__handle {
661
+ background: var(--td-graph-edge-active, #ed5c17);
662
+ }
663
+ }
664
+
665
+ .td-lineage-resource-node--field-like.td-lineage-resource-node--field-target {
666
+ border: 1px solid #60a5fa;
667
+ background: #eff6ff;
668
+ box-shadow: 0 0 0 2px rgba(96, 165, 250, 0.16);
669
+
670
+ .td-lineage-resource-node__header {
671
+ background: #eff6ff;
672
+ }
673
+ }
674
+
675
+ .react-flow__node.td-lineage-resource-node--entity-system
676
+ .td-lineage-resource-node {
677
+ border-style: dashed;
678
+ border-width: 2px;
679
+ background: #f4f6f8;
680
+ }
681
+
682
+ .react-flow__node.td-lineage-resource-node--entity-system
683
+ .td-lineage-resource-node__header {
684
+ background: #f4f6f8;
685
+ box-shadow: none;
686
+ }
687
+
688
+ @media (prefers-reduced-motion: reduce) {
689
+ .td-lineage-resource-node,
690
+ .td-lineage-resource-node__field-more,
691
+ .td-lineage-resource-node--redesigned .react-flow__handle {
692
+ transition: none;
693
+ }
694
+ }
695
+
696
+ .td-lineage-resource-node.td-lineage-resource-node {
697
+ .lineage-node-states(td-lineage-resource-node);
698
+ }
699
+
700
+ .td-lineage-resource-node--query-origin .td-lineage-resource-node__title {
701
+ gap: 1px;
702
+ }
703
+
704
+ .td-lineage-resource-node--field-like.td-lineage-resource-node--query-origin
705
+ .td-lineage-resource-node__title {
706
+ flex-wrap: wrap;
707
+ column-gap: 6px;
708
+ .td-lineage-query-origin {
709
+ flex-basis: 100%;
710
+ }
711
+ }