@goplasmatic/dataflow-ui 2.0.14 → 2.0.15

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.
@@ -5252,23 +5252,23 @@ svg.react-flow__connectionline {
5252
5252
  --df-function-validation: #bf8803;
5253
5253
  --df-function-custom: #6e6e6e;
5254
5254
 
5255
- /* DataLogic UI theme variables (for diagram visualizer) */
5256
- --bg-primary: #ffffff;
5257
- --bg-secondary: #f8f9fa;
5258
- --bg-tertiary: #f3f4f6;
5259
- --bg-hover: #e5e7eb;
5260
- --text-primary: #1f2937;
5261
- --text-secondary: #6b7280;
5262
- --text-tertiary: #9ca3af;
5263
- --text-muted: #d1d5db;
5264
- --border-primary: #e5e7eb;
5265
- --border-light: #f3f4f6;
5255
+ /* DataLogic UI theme variables (for diagram visualizer) - must match @goplasmatic/datalogic-ui :root */
5256
+ --bg-primary: #f5f5f5;
5257
+ --bg-secondary: #ffffff;
5258
+ --bg-tertiary: #fafafa;
5259
+ --bg-hover: #f0f0f0;
5260
+ --text-primary: #333333;
5261
+ --text-secondary: #555555;
5262
+ --text-tertiary: #666666;
5263
+ --text-muted: #999999;
5264
+ --border-primary: #e0e0e0;
5265
+ --border-light: #eeeeee;
5266
5266
  --accent-blue: #3b82f6;
5267
5267
  --accent-blue-hover: #2563eb;
5268
- --accent-blue-light: rgba(59, 130, 246, 0.1);
5268
+ --accent-blue-light: #dbeafe;
5269
5269
  --accent-amber: #f59e0b;
5270
- --node-shadow: rgba(0, 0, 0, 0.08);
5271
- --node-shadow-hover: rgba(0, 0, 0, 0.12);
5270
+ --node-shadow: rgba(0, 0, 0, 0.1);
5271
+ --node-shadow-hover: rgba(0, 0, 0, 0.15);
5272
5272
  --node-bg: #ffffff;
5273
5273
  }
5274
5274
 
@@ -5309,24 +5309,24 @@ svg.react-flow__connectionline {
5309
5309
  --df-function-validation: #dcdcaa;
5310
5310
  --df-function-custom: #9d9d9d;
5311
5311
 
5312
- /* DataLogic UI theme variables (for diagram visualizer) */
5313
- --bg-primary: #1e1e1e;
5314
- --bg-secondary: #252526;
5315
- --bg-tertiary: #2d2d30;
5316
- --bg-hover: #3c3c3c;
5317
- --text-primary: #d4d4d4;
5318
- --text-secondary: #9d9d9d;
5319
- --text-tertiary: #6b6b6b;
5320
- --text-muted: #4d4d4d;
5321
- --border-primary: #3c3c3c;
5322
- --border-light: #2d2d30;
5323
- --accent-blue: #0078d4;
5324
- --accent-blue-hover: #1c97ea;
5325
- --accent-blue-light: rgba(0, 120, 212, 0.15);
5326
- --accent-amber: #f59e0b;
5327
- --node-shadow: rgba(0, 0, 0, 0.2);
5328
- --node-shadow-hover: rgba(0, 0, 0, 0.3);
5329
- --node-bg: #252526;
5312
+ /* DataLogic UI theme variables (for diagram visualizer) - must match @goplasmatic/datalogic-ui [data-theme="dark"] */
5313
+ --bg-primary: #1a1a1a;
5314
+ --bg-secondary: #242424;
5315
+ --bg-tertiary: #2a2a2a;
5316
+ --bg-hover: #333333;
5317
+ --text-primary: #e5e5e5;
5318
+ --text-secondary: #cccccc;
5319
+ --text-tertiary: #b3b3b3;
5320
+ --text-muted: #888888;
5321
+ --border-primary: #404040;
5322
+ --border-light: #333333;
5323
+ --accent-blue: #60a5fa;
5324
+ --accent-blue-hover: #3b82f6;
5325
+ --accent-blue-light: #1e3a5f;
5326
+ --accent-amber: #fbbf24;
5327
+ --node-shadow: rgba(0, 0, 0, 0.3);
5328
+ --node-shadow-hover: rgba(0, 0, 0, 0.4);
5329
+ --node-bg: #2d2d2d;
5330
5330
  }
5331
5331
 
5332
5332
  /* Layout and core components */
@@ -8459,3 +8459,329 @@ svg.react-flow__connectionline {
8459
8459
  .df-header-with-debug .df-visualizer-left-title {
8460
8460
  flex-shrink: 0;
8461
8461
  }
8462
+
8463
+ /* Flow diagram styles */
8464
+
8465
+ /* ============================================
8466
+ Flow Diagram Styles
8467
+ Aligned with DataLogic UI ReactFlow styling
8468
+ ============================================ */
8469
+
8470
+ .df-flow-diagram {
8471
+ width: 100%;
8472
+ height: 100%;
8473
+ min-height: 300px;
8474
+ background: var(--bg-tertiary);
8475
+ border-radius: 8px;
8476
+ overflow: hidden;
8477
+ position: absolute;
8478
+ top: 0;
8479
+ left: 0;
8480
+ right: 0;
8481
+ bottom: 0;
8482
+ }
8483
+
8484
+ /* ---- ReactFlow Controls ---- */
8485
+
8486
+ .df-flow-diagram .react-flow__controls {
8487
+ box-shadow: 0 2px 8px var(--node-shadow);
8488
+ border-radius: 8px;
8489
+ overflow: hidden;
8490
+ }
8491
+
8492
+ .df-flow-diagram .react-flow__controls-button {
8493
+ background: var(--bg-secondary);
8494
+ border-bottom: 1px solid var(--border-light);
8495
+ fill: var(--text-secondary);
8496
+ color: var(--text-secondary);
8497
+ }
8498
+
8499
+ .df-flow-diagram .react-flow__controls-button:last-child {
8500
+ border-bottom: none;
8501
+ }
8502
+
8503
+ .df-flow-diagram .react-flow__controls-button:hover {
8504
+ background: var(--bg-hover);
8505
+ }
8506
+
8507
+ /* ---- Edges ---- */
8508
+
8509
+ .df-flow-diagram .react-flow__edge-path {
8510
+ stroke-width: 2;
8511
+ }
8512
+
8513
+ .df-flow-diagram .react-flow__edge.selected .react-flow__edge-path {
8514
+ stroke: var(--accent-blue);
8515
+ stroke-width: 3;
8516
+ }
8517
+
8518
+ .df-flow-diagram .react-flow__edge.df-flow-edge-true .react-flow__edge-path {
8519
+ stroke: #22C55E;
8520
+ stroke-width: 2;
8521
+ }
8522
+
8523
+ .df-flow-diagram .react-flow__edge.df-flow-edge-false .react-flow__edge-path {
8524
+ stroke: #EF4444;
8525
+ stroke-width: 2;
8526
+ stroke-dasharray: 6 3;
8527
+ }
8528
+
8529
+ .df-flow-diagram .react-flow__edge-text {
8530
+ font-size: 11px;
8531
+ fill: var(--text-secondary);
8532
+ }
8533
+
8534
+ .df-flow-diagram .react-flow__edge-textbg {
8535
+ fill: var(--bg-secondary);
8536
+ }
8537
+
8538
+ /* ---- Attribution ---- */
8539
+
8540
+ .df-flow-diagram .react-flow__attribution {
8541
+ display: none;
8542
+ }
8543
+
8544
+ /* ---- Handles - hidden but functional ---- */
8545
+
8546
+ .df-flow-handle {
8547
+ width: 10px !important;
8548
+ height: 10px !important;
8549
+ background: var(--border-primary) !important;
8550
+ border: 2px solid white !important;
8551
+ opacity: 1;
8552
+ }
8553
+
8554
+ [data-theme="dark"] .df-flow-handle {
8555
+ border-color: var(--bg-primary) !important;
8556
+ }
8557
+
8558
+ /* ---- Start/End Pill Node ---- */
8559
+
8560
+ .df-flow-pill {
8561
+ display: flex;
8562
+ align-items: center;
8563
+ justify-content: center;
8564
+ padding: 8px 20px;
8565
+ border-radius: 20px;
8566
+ font-size: 13px;
8567
+ font-weight: 500;
8568
+ cursor: default;
8569
+ user-select: none;
8570
+ min-width: 100px;
8571
+ }
8572
+
8573
+ .df-flow-pill-content {
8574
+ display: flex;
8575
+ align-items: center;
8576
+ gap: 6px;
8577
+ }
8578
+
8579
+ .df-flow-pill-start {
8580
+ background: var(--node-bg);
8581
+ border: 2px solid var(--accent-blue);
8582
+ color: var(--accent-blue);
8583
+ }
8584
+
8585
+ .df-flow-pill-end {
8586
+ background: var(--node-bg);
8587
+ border: 2px solid var(--df-success);
8588
+ color: var(--df-success);
8589
+ }
8590
+
8591
+ /* ---- Condition Diamond Node ---- */
8592
+
8593
+ .df-flow-diamond-wrapper {
8594
+ display: flex;
8595
+ align-items: center;
8596
+ justify-content: center;
8597
+ width: 80px;
8598
+ height: 80px;
8599
+ position: relative;
8600
+ }
8601
+
8602
+ .df-flow-diamond {
8603
+ width: 64px;
8604
+ height: 64px;
8605
+ background: var(--node-bg);
8606
+ border: 2px solid var(--accent-amber);
8607
+ transform: rotate(45deg);
8608
+ display: flex;
8609
+ align-items: center;
8610
+ justify-content: center;
8611
+ cursor: pointer;
8612
+ box-shadow: 0 2px 6px var(--node-shadow);
8613
+ }
8614
+
8615
+ .df-flow-diamond:hover {
8616
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent-amber) 25%, transparent);
8617
+ }
8618
+
8619
+ .df-flow-diamond-content {
8620
+ transform: rotate(-45deg);
8621
+ display: flex;
8622
+ flex-direction: column;
8623
+ align-items: center;
8624
+ gap: 2px;
8625
+ color: var(--accent-amber);
8626
+ }
8627
+
8628
+ .df-flow-diamond-label {
8629
+ font-size: 9px;
8630
+ font-weight: 500;
8631
+ text-align: center;
8632
+ line-height: 1.2;
8633
+ white-space: pre-line;
8634
+ max-width: 56px;
8635
+ overflow: hidden;
8636
+ text-overflow: ellipsis;
8637
+ }
8638
+
8639
+ /* Diamond handles positioned at bottom-left and bottom-right */
8640
+
8641
+ .df-flow-diamond-wrapper .df-flow-handle-true {
8642
+ left: 15% !important;
8643
+ }
8644
+
8645
+ .df-flow-diamond-wrapper .df-flow-handle-false {
8646
+ left: 85% !important;
8647
+ }
8648
+
8649
+ /* ---- Task Node ---- */
8650
+
8651
+ .df-flow-task-node {
8652
+ background: var(--node-bg);
8653
+ border: 2px solid var(--border-primary);
8654
+ border-radius: 8px;
8655
+ padding: 10px 14px;
8656
+ min-width: 160px;
8657
+ max-width: 220px;
8658
+ cursor: pointer;
8659
+ transition: box-shadow 0.15s ease, border-color 0.15s ease;
8660
+ box-shadow: 0 2px 6px var(--node-shadow);
8661
+ }
8662
+
8663
+ .df-flow-task-node:hover {
8664
+ border-color: var(--accent-blue);
8665
+ box-shadow: 0 4px 12px var(--node-shadow-hover);
8666
+ }
8667
+
8668
+ .df-flow-task-node-header {
8669
+ display: flex;
8670
+ align-items: center;
8671
+ gap: 6px;
8672
+ margin-bottom: 6px;
8673
+ }
8674
+
8675
+ .df-flow-task-node-name {
8676
+ font-size: 12px;
8677
+ font-weight: 600;
8678
+ color: var(--text-primary);
8679
+ flex: 1;
8680
+ white-space: nowrap;
8681
+ overflow: hidden;
8682
+ text-overflow: ellipsis;
8683
+ }
8684
+
8685
+ .df-flow-task-node-coe {
8686
+ color: var(--accent-amber);
8687
+ display: flex;
8688
+ align-items: center;
8689
+ flex-shrink: 0;
8690
+ }
8691
+
8692
+ .df-flow-task-node-badge {
8693
+ margin-bottom: 4px;
8694
+ }
8695
+
8696
+ .df-flow-task-node-desc {
8697
+ font-size: 10px;
8698
+ color: var(--text-secondary);
8699
+ line-height: 1.3;
8700
+ white-space: nowrap;
8701
+ overflow: hidden;
8702
+ text-overflow: ellipsis;
8703
+ }
8704
+
8705
+ /* ---- Skip Node ---- */
8706
+
8707
+ .df-flow-skip-node {
8708
+ display: flex;
8709
+ align-items: center;
8710
+ gap: 4px;
8711
+ padding: 6px 14px;
8712
+ border-radius: 12px;
8713
+ background: var(--bg-tertiary);
8714
+ border: 1px dashed var(--border-primary);
8715
+ color: var(--text-tertiary);
8716
+ font-size: 11px;
8717
+ cursor: default;
8718
+ user-select: none;
8719
+ }
8720
+
8721
+ /* ---- Workflow Group Node (for group diagrams) ---- */
8722
+
8723
+ .df-flow-wf-group-node {
8724
+ background: var(--node-bg);
8725
+ border: 2px solid var(--border-primary);
8726
+ border-radius: 10px;
8727
+ padding: 12px 16px;
8728
+ min-width: 200px;
8729
+ max-width: 280px;
8730
+ cursor: pointer;
8731
+ transition: box-shadow 0.15s ease, border-color 0.15s ease;
8732
+ box-shadow: 0 2px 6px var(--node-shadow);
8733
+ }
8734
+
8735
+ .df-flow-wf-group-node:hover {
8736
+ border-color: var(--accent-blue);
8737
+ box-shadow: 0 4px 12px var(--node-shadow-hover);
8738
+ }
8739
+
8740
+ .df-flow-wf-group-node-header {
8741
+ display: flex;
8742
+ align-items: center;
8743
+ gap: 8px;
8744
+ margin-bottom: 6px;
8745
+ }
8746
+
8747
+ .df-flow-wf-group-node-name {
8748
+ font-size: 13px;
8749
+ font-weight: 600;
8750
+ color: var(--text-primary);
8751
+ flex: 1;
8752
+ white-space: nowrap;
8753
+ overflow: hidden;
8754
+ text-overflow: ellipsis;
8755
+ }
8756
+
8757
+ .df-flow-wf-group-node-priority {
8758
+ font-size: 10px;
8759
+ font-weight: 600;
8760
+ padding: 1px 6px;
8761
+ border-radius: 4px;
8762
+ background: var(--accent-blue-light);
8763
+ color: var(--accent-blue);
8764
+ flex-shrink: 0;
8765
+ }
8766
+
8767
+ .df-flow-wf-group-node-meta {
8768
+ display: flex;
8769
+ align-items: center;
8770
+ gap: 10px;
8771
+ font-size: 11px;
8772
+ color: var(--text-secondary);
8773
+ }
8774
+
8775
+ .df-flow-wf-group-node-meta-item {
8776
+ display: flex;
8777
+ align-items: center;
8778
+ gap: 4px;
8779
+ }
8780
+
8781
+ .df-flow-wf-group-node-condition {
8782
+ color: var(--accent-amber);
8783
+ }
8784
+
8785
+ .df-flow-wf-group-node-always {
8786
+ color: var(--df-success);
8787
+ }