@likec4/diagram 1.0.1 → 1.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 (33) hide show
  1. package/dist/KeepAspectRatioContainer.d.ts +9 -0
  2. package/dist/LikeC4Diagram.css.d.ts +1 -0
  3. package/dist/index.mjs +243 -678
  4. package/dist/state/DiagramContext.d.ts +36 -9
  5. package/dist/state/diagramStore.d.ts +42 -12
  6. package/dist/state/useDiagramStore.d.ts +36 -9
  7. package/dist/style.css +600 -53
  8. package/dist/ui/index.d.ts +0 -1
  9. package/dist/xyflow/{XYFlowWrapper.d.ts → XYFlow.d.ts} +2 -2
  10. package/dist/xyflow/XYFlowEvents.d.ts +127 -13
  11. package/dist/xyflow/edges/RelationshipEdge.d.ts +2 -2
  12. package/dist/xyflow/hooks/useXYFlow.d.ts +20 -20
  13. package/dist/xyflow/nodes/compound/CompoundNode.css.d.ts +7 -5
  14. package/dist/xyflow/types.d.ts +2 -2
  15. package/package.json +9 -9
  16. package/src/{ui/KeepAspectRatio.tsx → KeepAspectRatioContainer.tsx} +7 -6
  17. package/src/LikeC4Diagram.css.ts +6 -0
  18. package/src/LikeC4Diagram.tsx +6 -6
  19. package/src/globals.css.ts +42 -37
  20. package/src/state/diagramStore.ts +26 -7
  21. package/src/ui/index.ts +0 -1
  22. package/src/xyflow/FitviewOnDiagramChange.tsx +24 -18
  23. package/src/xyflow/SyncWithDiagram.tsx +16 -10
  24. package/src/xyflow/{XYFlowWrapper.tsx → XYFlow.tsx} +17 -24
  25. package/src/xyflow/XYFlowEvents.tsx +96 -43
  26. package/src/xyflow/diagram-to-xyflow.ts +4 -4
  27. package/src/xyflow/nodes/compound/CompoundNode.css.ts +85 -39
  28. package/src/xyflow/nodes/compound/CompoundNode.tsx +29 -31
  29. package/src/xyflow/nodes/element/ElementNode.tsx +2 -2
  30. package/src/xyflow/nodes/shared/NavigateToBtn.tsx +2 -1
  31. package/dist/ui/KeepAspectRatio.css.d.ts +0 -1
  32. package/dist/ui/KeepAspectRatio.d.ts +0 -9
  33. package/src/ui/KeepAspectRatio.css.ts +0 -7
package/dist/style.css CHANGED
@@ -625,6 +625,54 @@ svg.react-flow__connectionline {
625
625
  --likec4-relation-labelBg: #172554;
626
626
  --likec4-relation-labelColor: #60a5fa;
627
627
  }
628
+ :where([data-likec4-color='primary'][data-compound-depth='1']) {
629
+ --likec4-element-fill: #1a5bc5;
630
+ --likec4-element-stroke: #1e49a9;
631
+ }
632
+ :where([data-mantine-color-scheme='light']) :where([data-likec4-color='primary'][data-compound-depth='1']) {
633
+ --likec4-element-fill: #145ed7;
634
+ --likec4-element-stroke: #194bb8;
635
+ }
636
+ :where([data-likec4-color='primary'][data-compound-depth='2']) {
637
+ --likec4-element-fill: #1e56b1;
638
+ --likec4-element-stroke: #204698;
639
+ }
640
+ :where([data-mantine-color-scheme='light']) :where([data-likec4-color='primary'][data-compound-depth='2']) {
641
+ --likec4-element-fill: #195cc8;
642
+ --likec4-element-stroke: #1d4aac;
643
+ }
644
+ :where([data-likec4-color='primary'][data-compound-depth='3']) {
645
+ --likec4-element-fill: #21519f;
646
+ --likec4-element-stroke: #224289;
647
+ }
648
+ :where([data-mantine-color-scheme='light']) :where([data-likec4-color='primary'][data-compound-depth='3']) {
649
+ --likec4-element-fill: #1e59ba;
650
+ --likec4-element-stroke: #2149a0;
651
+ }
652
+ :where([data-likec4-color='primary'][data-compound-depth='4']) {
653
+ --likec4-element-fill: #234c8e;
654
+ --likec4-element-stroke: #243f7a;
655
+ }
656
+ :where([data-mantine-color-scheme='light']) :where([data-likec4-color='primary'][data-compound-depth='4']) {
657
+ --likec4-element-fill: #2357ad;
658
+ --likec4-element-stroke: #244795;
659
+ }
660
+ :where([data-likec4-color='primary'][data-compound-depth='5']) {
661
+ --likec4-element-fill: #25467d;
662
+ --likec4-element-stroke: #243b6c;
663
+ }
664
+ :where([data-mantine-color-scheme='light']) :where([data-likec4-color='primary'][data-compound-depth='5']) {
665
+ --likec4-element-fill: #2755a0;
666
+ --likec4-element-stroke: #27468a;
667
+ }
668
+ :where([data-likec4-color='primary'][data-compound-depth='6']) {
669
+ --likec4-element-fill: #25416d;
670
+ --likec4-element-stroke: #24365f;
671
+ }
672
+ :where([data-mantine-color-scheme='light']) :where([data-likec4-color='primary'][data-compound-depth='6']) {
673
+ --likec4-element-fill: #2a5293;
674
+ --likec4-element-stroke: #2a447f;
675
+ }
628
676
  :where([data-likec4-color='blue']) {
629
677
  --likec4-element-fill: #3b82f6;
630
678
  --likec4-element-stroke: #2563eb;
@@ -635,6 +683,54 @@ svg.react-flow__connectionline {
635
683
  --likec4-relation-labelBg: #172554;
636
684
  --likec4-relation-labelColor: #60a5fa;
637
685
  }
686
+ :where([data-likec4-color='blue'][data-compound-depth='1']) {
687
+ --likec4-element-fill: #1a5bc5;
688
+ --likec4-element-stroke: #1e49a9;
689
+ }
690
+ :where([data-mantine-color-scheme='light']) :where([data-likec4-color='blue'][data-compound-depth='1']) {
691
+ --likec4-element-fill: #145ed7;
692
+ --likec4-element-stroke: #194bb8;
693
+ }
694
+ :where([data-likec4-color='blue'][data-compound-depth='2']) {
695
+ --likec4-element-fill: #1e56b1;
696
+ --likec4-element-stroke: #204698;
697
+ }
698
+ :where([data-mantine-color-scheme='light']) :where([data-likec4-color='blue'][data-compound-depth='2']) {
699
+ --likec4-element-fill: #195cc8;
700
+ --likec4-element-stroke: #1d4aac;
701
+ }
702
+ :where([data-likec4-color='blue'][data-compound-depth='3']) {
703
+ --likec4-element-fill: #21519f;
704
+ --likec4-element-stroke: #224289;
705
+ }
706
+ :where([data-mantine-color-scheme='light']) :where([data-likec4-color='blue'][data-compound-depth='3']) {
707
+ --likec4-element-fill: #1e59ba;
708
+ --likec4-element-stroke: #2149a0;
709
+ }
710
+ :where([data-likec4-color='blue'][data-compound-depth='4']) {
711
+ --likec4-element-fill: #234c8e;
712
+ --likec4-element-stroke: #243f7a;
713
+ }
714
+ :where([data-mantine-color-scheme='light']) :where([data-likec4-color='blue'][data-compound-depth='4']) {
715
+ --likec4-element-fill: #2357ad;
716
+ --likec4-element-stroke: #244795;
717
+ }
718
+ :where([data-likec4-color='blue'][data-compound-depth='5']) {
719
+ --likec4-element-fill: #25467d;
720
+ --likec4-element-stroke: #243b6c;
721
+ }
722
+ :where([data-mantine-color-scheme='light']) :where([data-likec4-color='blue'][data-compound-depth='5']) {
723
+ --likec4-element-fill: #2755a0;
724
+ --likec4-element-stroke: #27468a;
725
+ }
726
+ :where([data-likec4-color='blue'][data-compound-depth='6']) {
727
+ --likec4-element-fill: #25416d;
728
+ --likec4-element-stroke: #24365f;
729
+ }
730
+ :where([data-mantine-color-scheme='light']) :where([data-likec4-color='blue'][data-compound-depth='6']) {
731
+ --likec4-element-fill: #2a5293;
732
+ --likec4-element-stroke: #2a447f;
733
+ }
638
734
  :where([data-likec4-color='secondary']) {
639
735
  --likec4-element-fill: #0284c7;
640
736
  --likec4-element-stroke: #0369a1;
@@ -645,6 +741,54 @@ svg.react-flow__connectionline {
645
741
  --likec4-relation-labelBg: #082f49;
646
742
  --likec4-relation-labelColor: #38bdf8;
647
743
  }
744
+ :where([data-likec4-color='secondary'][data-compound-depth='1']) {
745
+ --likec4-element-fill: #0d5d86;
746
+ --likec4-element-stroke: #0b4a6c;
747
+ }
748
+ :where([data-mantine-color-scheme='light']) :where([data-likec4-color='secondary'][data-compound-depth='1']) {
749
+ --likec4-element-fill: #086392;
750
+ --likec4-element-stroke: #084f76;
751
+ }
752
+ :where([data-likec4-color='secondary'][data-compound-depth='2']) {
753
+ --likec4-element-fill: #105579;
754
+ --likec4-element-stroke: #0e4462;
755
+ }
756
+ :where([data-mantine-color-scheme='light']) :where([data-likec4-color='secondary'][data-compound-depth='2']) {
757
+ --likec4-element-fill: #0c5e88;
758
+ --likec4-element-stroke: #0b4b6e;
759
+ }
760
+ :where([data-likec4-color='secondary'][data-compound-depth='3']) {
761
+ --likec4-element-fill: #134e6c;
762
+ --likec4-element-stroke: #103e57;
763
+ }
764
+ :where([data-mantine-color-scheme='light']) :where([data-likec4-color='secondary'][data-compound-depth='3']) {
765
+ --likec4-element-fill: #10597f;
766
+ --likec4-element-stroke: #0e4767;
767
+ }
768
+ :where([data-likec4-color='secondary'][data-compound-depth='4']) {
769
+ --likec4-element-fill: #154660;
770
+ --likec4-element-stroke: #11384e;
771
+ }
772
+ :where([data-mantine-color-scheme='light']) :where([data-likec4-color='secondary'][data-compound-depth='4']) {
773
+ --likec4-element-fill: #135475;
774
+ --likec4-element-stroke: #11435f;
775
+ }
776
+ :where([data-likec4-color='secondary'][data-compound-depth='5']) {
777
+ --likec4-element-fill: #163f55;
778
+ --likec4-element-stroke: #123345;
779
+ }
780
+ :where([data-mantine-color-scheme='light']) :where([data-likec4-color='secondary'][data-compound-depth='5']) {
781
+ --likec4-element-fill: #164f6c;
782
+ --likec4-element-stroke: #133f58;
783
+ }
784
+ :where([data-likec4-color='secondary'][data-compound-depth='6']) {
785
+ --likec4-element-fill: #17384a;
786
+ --likec4-element-stroke: #132d3c;
787
+ }
788
+ :where([data-mantine-color-scheme='light']) :where([data-likec4-color='secondary'][data-compound-depth='6']) {
789
+ --likec4-element-fill: #194a64;
790
+ --likec4-element-stroke: #153c51;
791
+ }
648
792
  :where([data-likec4-color='sky']) {
649
793
  --likec4-element-fill: #0284c7;
650
794
  --likec4-element-stroke: #0369a1;
@@ -655,6 +799,54 @@ svg.react-flow__connectionline {
655
799
  --likec4-relation-labelBg: #082f49;
656
800
  --likec4-relation-labelColor: #38bdf8;
657
801
  }
802
+ :where([data-likec4-color='sky'][data-compound-depth='1']) {
803
+ --likec4-element-fill: #0d5d86;
804
+ --likec4-element-stroke: #0b4a6c;
805
+ }
806
+ :where([data-mantine-color-scheme='light']) :where([data-likec4-color='sky'][data-compound-depth='1']) {
807
+ --likec4-element-fill: #086392;
808
+ --likec4-element-stroke: #084f76;
809
+ }
810
+ :where([data-likec4-color='sky'][data-compound-depth='2']) {
811
+ --likec4-element-fill: #105579;
812
+ --likec4-element-stroke: #0e4462;
813
+ }
814
+ :where([data-mantine-color-scheme='light']) :where([data-likec4-color='sky'][data-compound-depth='2']) {
815
+ --likec4-element-fill: #0c5e88;
816
+ --likec4-element-stroke: #0b4b6e;
817
+ }
818
+ :where([data-likec4-color='sky'][data-compound-depth='3']) {
819
+ --likec4-element-fill: #134e6c;
820
+ --likec4-element-stroke: #103e57;
821
+ }
822
+ :where([data-mantine-color-scheme='light']) :where([data-likec4-color='sky'][data-compound-depth='3']) {
823
+ --likec4-element-fill: #10597f;
824
+ --likec4-element-stroke: #0e4767;
825
+ }
826
+ :where([data-likec4-color='sky'][data-compound-depth='4']) {
827
+ --likec4-element-fill: #154660;
828
+ --likec4-element-stroke: #11384e;
829
+ }
830
+ :where([data-mantine-color-scheme='light']) :where([data-likec4-color='sky'][data-compound-depth='4']) {
831
+ --likec4-element-fill: #135475;
832
+ --likec4-element-stroke: #11435f;
833
+ }
834
+ :where([data-likec4-color='sky'][data-compound-depth='5']) {
835
+ --likec4-element-fill: #163f55;
836
+ --likec4-element-stroke: #123345;
837
+ }
838
+ :where([data-mantine-color-scheme='light']) :where([data-likec4-color='sky'][data-compound-depth='5']) {
839
+ --likec4-element-fill: #164f6c;
840
+ --likec4-element-stroke: #133f58;
841
+ }
842
+ :where([data-likec4-color='sky'][data-compound-depth='6']) {
843
+ --likec4-element-fill: #17384a;
844
+ --likec4-element-stroke: #132d3c;
845
+ }
846
+ :where([data-mantine-color-scheme='light']) :where([data-likec4-color='sky'][data-compound-depth='6']) {
847
+ --likec4-element-fill: #194a64;
848
+ --likec4-element-stroke: #153c51;
849
+ }
658
850
  :where([data-likec4-color='muted']) {
659
851
  --likec4-element-fill: #64748b;
660
852
  --likec4-element-stroke: #475569;
@@ -665,6 +857,54 @@ svg.react-flow__connectionline {
665
857
  --likec4-relation-labelBg: #0f172a;
666
858
  --likec4-relation-labelColor: #cbd5e1;
667
859
  }
860
+ :where([data-likec4-color='muted'][data-compound-depth='1']) {
861
+ --likec4-element-fill: #4b5563;
862
+ --likec4-element-stroke: #363e4b;
863
+ }
864
+ :where([data-mantine-color-scheme='light']) :where([data-likec4-color='muted'][data-compound-depth='1']) {
865
+ --likec4-element-fill: #4e5a6a;
866
+ --likec4-element-stroke: #384250;
867
+ }
868
+ :where([data-likec4-color='muted'][data-compound-depth='2']) {
869
+ --likec4-element-fill: #474f5c;
870
+ --likec4-element-stroke: #333a45;
871
+ }
872
+ :where([data-mantine-color-scheme='light']) :where([data-likec4-color='muted'][data-compound-depth='2']) {
873
+ --likec4-element-fill: #4c5665;
874
+ --likec4-element-stroke: #363f4c;
875
+ }
876
+ :where([data-likec4-color='muted'][data-compound-depth='3']) {
877
+ --likec4-element-fill: #424a54;
878
+ --likec4-element-stroke: #30363f;
879
+ }
880
+ :where([data-mantine-color-scheme='light']) :where([data-likec4-color='muted'][data-compound-depth='3']) {
881
+ --likec4-element-fill: #4a5360;
882
+ --likec4-element-stroke: #353d48;
883
+ }
884
+ :where([data-likec4-color='muted'][data-compound-depth='4']) {
885
+ --likec4-element-fill: #3e444d;
886
+ --likec4-element-stroke: #2d323a;
887
+ }
888
+ :where([data-mantine-color-scheme='light']) :where([data-likec4-color='muted'][data-compound-depth='4']) {
889
+ --likec4-element-fill: #48505b;
890
+ --likec4-element-stroke: #333a44;
891
+ }
892
+ :where([data-likec4-color='muted'][data-compound-depth='5']) {
893
+ --likec4-element-fill: #393e46;
894
+ --likec4-element-stroke: #292e34;
895
+ }
896
+ :where([data-mantine-color-scheme='light']) :where([data-likec4-color='muted'][data-compound-depth='5']) {
897
+ --likec4-element-fill: #454c56;
898
+ --likec4-element-stroke: #323841;
899
+ }
900
+ :where([data-likec4-color='muted'][data-compound-depth='6']) {
901
+ --likec4-element-fill: #34383e;
902
+ --likec4-element-stroke: #26292f;
903
+ }
904
+ :where([data-mantine-color-scheme='light']) :where([data-likec4-color='muted'][data-compound-depth='6']) {
905
+ --likec4-element-fill: #434951;
906
+ --likec4-element-stroke: #30353d;
907
+ }
668
908
  :where([data-likec4-color='slate']) {
669
909
  --likec4-element-fill: #64748b;
670
910
  --likec4-element-stroke: #475569;
@@ -675,6 +915,54 @@ svg.react-flow__connectionline {
675
915
  --likec4-relation-labelBg: #0f172a;
676
916
  --likec4-relation-labelColor: #cbd5e1;
677
917
  }
918
+ :where([data-likec4-color='slate'][data-compound-depth='1']) {
919
+ --likec4-element-fill: #4b5563;
920
+ --likec4-element-stroke: #363e4b;
921
+ }
922
+ :where([data-mantine-color-scheme='light']) :where([data-likec4-color='slate'][data-compound-depth='1']) {
923
+ --likec4-element-fill: #4e5a6a;
924
+ --likec4-element-stroke: #384250;
925
+ }
926
+ :where([data-likec4-color='slate'][data-compound-depth='2']) {
927
+ --likec4-element-fill: #474f5c;
928
+ --likec4-element-stroke: #333a45;
929
+ }
930
+ :where([data-mantine-color-scheme='light']) :where([data-likec4-color='slate'][data-compound-depth='2']) {
931
+ --likec4-element-fill: #4c5665;
932
+ --likec4-element-stroke: #363f4c;
933
+ }
934
+ :where([data-likec4-color='slate'][data-compound-depth='3']) {
935
+ --likec4-element-fill: #424a54;
936
+ --likec4-element-stroke: #30363f;
937
+ }
938
+ :where([data-mantine-color-scheme='light']) :where([data-likec4-color='slate'][data-compound-depth='3']) {
939
+ --likec4-element-fill: #4a5360;
940
+ --likec4-element-stroke: #353d48;
941
+ }
942
+ :where([data-likec4-color='slate'][data-compound-depth='4']) {
943
+ --likec4-element-fill: #3e444d;
944
+ --likec4-element-stroke: #2d323a;
945
+ }
946
+ :where([data-mantine-color-scheme='light']) :where([data-likec4-color='slate'][data-compound-depth='4']) {
947
+ --likec4-element-fill: #48505b;
948
+ --likec4-element-stroke: #333a44;
949
+ }
950
+ :where([data-likec4-color='slate'][data-compound-depth='5']) {
951
+ --likec4-element-fill: #393e46;
952
+ --likec4-element-stroke: #292e34;
953
+ }
954
+ :where([data-mantine-color-scheme='light']) :where([data-likec4-color='slate'][data-compound-depth='5']) {
955
+ --likec4-element-fill: #454c56;
956
+ --likec4-element-stroke: #323841;
957
+ }
958
+ :where([data-likec4-color='slate'][data-compound-depth='6']) {
959
+ --likec4-element-fill: #34383e;
960
+ --likec4-element-stroke: #26292f;
961
+ }
962
+ :where([data-mantine-color-scheme='light']) :where([data-likec4-color='slate'][data-compound-depth='6']) {
963
+ --likec4-element-fill: #434951;
964
+ --likec4-element-stroke: #30353d;
965
+ }
678
966
  :where([data-likec4-color='gray']) {
679
967
  --likec4-element-fill: #737373;
680
968
  --likec4-element-stroke: #525252;
@@ -685,6 +973,54 @@ svg.react-flow__connectionline {
685
973
  --likec4-relation-labelBg: #18191b;
686
974
  --likec4-relation-labelColor: #C6C6C6;
687
975
  }
976
+ :where([data-likec4-color='gray'][data-compound-depth='1']) {
977
+ --likec4-element-fill: #545454;
978
+ --likec4-element-stroke: #3c3c3c;
979
+ }
980
+ :where([data-mantine-color-scheme='light']) :where([data-likec4-color='gray'][data-compound-depth='1']) {
981
+ --likec4-element-fill: #595959;
982
+ --likec4-element-stroke: #3f3f3f;
983
+ }
984
+ :where([data-likec4-color='gray'][data-compound-depth='2']) {
985
+ --likec4-element-fill: #4e4e4e;
986
+ --likec4-element-stroke: #383838;
987
+ }
988
+ :where([data-mantine-color-scheme='light']) :where([data-likec4-color='gray'][data-compound-depth='2']) {
989
+ --likec4-element-fill: #555555;
990
+ --likec4-element-stroke: #3d3d3d;
991
+ }
992
+ :where([data-likec4-color='gray'][data-compound-depth='3']) {
993
+ --likec4-element-fill: #484848;
994
+ --likec4-element-stroke: #343434;
995
+ }
996
+ :where([data-mantine-color-scheme='light']) :where([data-likec4-color='gray'][data-compound-depth='3']) {
997
+ --likec4-element-fill: #525252;
998
+ --likec4-element-stroke: #3a3a3a;
999
+ }
1000
+ :where([data-likec4-color='gray'][data-compound-depth='4']) {
1001
+ --likec4-element-fill: #434343;
1002
+ --likec4-element-stroke: #303030;
1003
+ }
1004
+ :where([data-mantine-color-scheme='light']) :where([data-likec4-color='gray'][data-compound-depth='4']) {
1005
+ --likec4-element-fill: #4e4e4e;
1006
+ --likec4-element-stroke: #383838;
1007
+ }
1008
+ :where([data-likec4-color='gray'][data-compound-depth='5']) {
1009
+ --likec4-element-fill: #3d3d3d;
1010
+ --likec4-element-stroke: #2b2b2b;
1011
+ }
1012
+ :where([data-mantine-color-scheme='light']) :where([data-likec4-color='gray'][data-compound-depth='5']) {
1013
+ --likec4-element-fill: #4b4b4b;
1014
+ --likec4-element-stroke: #353535;
1015
+ }
1016
+ :where([data-likec4-color='gray'][data-compound-depth='6']) {
1017
+ --likec4-element-fill: #373737;
1018
+ --likec4-element-stroke: #272727;
1019
+ }
1020
+ :where([data-mantine-color-scheme='light']) :where([data-likec4-color='gray'][data-compound-depth='6']) {
1021
+ --likec4-element-fill: #474747;
1022
+ --likec4-element-stroke: #333333;
1023
+ }
688
1024
  :where([data-likec4-color='red']) {
689
1025
  --likec4-element-fill: #AC4D39;
690
1026
  --likec4-element-stroke: #853A2D;
@@ -695,6 +1031,54 @@ svg.react-flow__connectionline {
695
1031
  --likec4-relation-labelBg: #b91c1c;
696
1032
  --likec4-relation-labelColor: #FF977D;
697
1033
  }
1034
+ :where([data-likec4-color='red'][data-compound-depth='1']) {
1035
+ --likec4-element-fill: #773d30;
1036
+ --likec4-element-stroke: #5c2e26;
1037
+ }
1038
+ :where([data-mantine-color-scheme='light']) :where([data-likec4-color='red'][data-compound-depth='1']) {
1039
+ --likec4-element-fill: #803e30;
1040
+ --likec4-element-stroke: #632f26;
1041
+ }
1042
+ :where([data-likec4-color='red'][data-compound-depth='2']) {
1043
+ --likec4-element-fill: #6c3a2f;
1044
+ --likec4-element-stroke: #542c25;
1045
+ }
1046
+ :where([data-mantine-color-scheme='light']) :where([data-likec4-color='red'][data-compound-depth='2']) {
1047
+ --likec4-element-fill: #793d31;
1048
+ --likec4-element-stroke: #5e2e26;
1049
+ }
1050
+ :where([data-likec4-color='red'][data-compound-depth='3']) {
1051
+ --likec4-element-fill: #62372e;
1052
+ --likec4-element-stroke: #4c2a24;
1053
+ }
1054
+ :where([data-mantine-color-scheme='light']) :where([data-likec4-color='red'][data-compound-depth='3']) {
1055
+ --likec4-element-fill: #723c31;
1056
+ --likec4-element-stroke: #582e27;
1057
+ }
1058
+ :where([data-likec4-color='red'][data-compound-depth='4']) {
1059
+ --likec4-element-fill: #58342c;
1060
+ --likec4-element-stroke: #442823;
1061
+ }
1062
+ :where([data-mantine-color-scheme='light']) :where([data-likec4-color='red'][data-compound-depth='4']) {
1063
+ --likec4-element-fill: #6a3b31;
1064
+ --likec4-element-stroke: #522d27;
1065
+ }
1066
+ :where([data-likec4-color='red'][data-compound-depth='5']) {
1067
+ --likec4-element-fill: #4f312a;
1068
+ --likec4-element-stroke: #3d2521;
1069
+ }
1070
+ :where([data-mantine-color-scheme='light']) :where([data-likec4-color='red'][data-compound-depth='5']) {
1071
+ --likec4-element-fill: #633a31;
1072
+ --likec4-element-stroke: #4d2c27;
1073
+ }
1074
+ :where([data-likec4-color='red'][data-compound-depth='6']) {
1075
+ --likec4-element-fill: #462d28;
1076
+ --likec4-element-stroke: #36231f;
1077
+ }
1078
+ :where([data-mantine-color-scheme='light']) :where([data-likec4-color='red'][data-compound-depth='6']) {
1079
+ --likec4-element-fill: #5d3931;
1080
+ --likec4-element-stroke: #482b27;
1081
+ }
698
1082
  :where([data-likec4-color='green']) {
699
1083
  --likec4-element-fill: #428a4f;
700
1084
  --likec4-element-stroke: #2d5d39;
@@ -705,6 +1089,54 @@ svg.react-flow__connectionline {
705
1089
  --likec4-relation-labelBg: #052e16;
706
1090
  --likec4-relation-labelColor: #22c55e;
707
1091
  }
1092
+ :where([data-likec4-color='green'][data-compound-depth='1']) {
1093
+ --likec4-element-fill: #34613c;
1094
+ --likec4-element-stroke: #24412b;
1095
+ }
1096
+ :where([data-mantine-color-scheme='light']) :where([data-likec4-color='green'][data-compound-depth='1']) {
1097
+ --likec4-element-fill: #35683e;
1098
+ --likec4-element-stroke: #24462d;
1099
+ }
1100
+ :where([data-likec4-color='green'][data-compound-depth='2']) {
1101
+ --likec4-element-fill: #325839;
1102
+ --likec4-element-stroke: #223c29;
1103
+ }
1104
+ :where([data-mantine-color-scheme='light']) :where([data-likec4-color='green'][data-compound-depth='2']) {
1105
+ --likec4-element-fill: #35623d;
1106
+ --likec4-element-stroke: #24422c;
1107
+ }
1108
+ :where([data-likec4-color='green'][data-compound-depth='3']) {
1109
+ --likec4-element-fill: #305136;
1110
+ --likec4-element-stroke: #213626;
1111
+ }
1112
+ :where([data-mantine-color-scheme='light']) :where([data-likec4-color='green'][data-compound-depth='3']) {
1113
+ --likec4-element-fill: #345d3c;
1114
+ --likec4-element-stroke: #243e2a;
1115
+ }
1116
+ :where([data-likec4-color='green'][data-compound-depth='4']) {
1117
+ --likec4-element-fill: #2d4932;
1118
+ --likec4-element-stroke: #1f3123;
1119
+ }
1120
+ :where([data-mantine-color-scheme='light']) :where([data-likec4-color='green'][data-compound-depth='4']) {
1121
+ --likec4-element-fill: #33573a;
1122
+ --likec4-element-stroke: #233b29;
1123
+ }
1124
+ :where([data-likec4-color='green'][data-compound-depth='5']) {
1125
+ --likec4-element-fill: #2b422f;
1126
+ --likec4-element-stroke: #1d2c21;
1127
+ }
1128
+ :where([data-mantine-color-scheme='light']) :where([data-likec4-color='green'][data-compound-depth='5']) {
1129
+ --likec4-element-fill: #335238;
1130
+ --likec4-element-stroke: #223728;
1131
+ }
1132
+ :where([data-likec4-color='green'][data-compound-depth='6']) {
1133
+ --likec4-element-fill: #283a2b;
1134
+ --likec4-element-stroke: #1b271e;
1135
+ }
1136
+ :where([data-mantine-color-scheme='light']) :where([data-likec4-color='green'][data-compound-depth='6']) {
1137
+ --likec4-element-fill: #324d37;
1138
+ --likec4-element-stroke: #223426;
1139
+ }
708
1140
  :where([data-likec4-color='amber']) {
709
1141
  --likec4-element-fill: #A35829;
710
1142
  --likec4-element-stroke: #7E451D;
@@ -715,6 +1147,54 @@ svg.react-flow__connectionline {
715
1147
  --likec4-relation-labelBg: #78350f;
716
1148
  --likec4-relation-labelColor: #FFE0C2;
717
1149
  }
1150
+ :where([data-likec4-color='amber'][data-compound-depth='1']) {
1151
+ --likec4-element-fill: #704225;
1152
+ --likec4-element-stroke: #56331b;
1153
+ }
1154
+ :where([data-mantine-color-scheme='light']) :where([data-likec4-color='amber'][data-compound-depth='1']) {
1155
+ --likec4-element-fill: #794524;
1156
+ --likec4-element-stroke: #5e361a;
1157
+ }
1158
+ :where([data-likec4-color='amber'][data-compound-depth='2']) {
1159
+ --likec4-element-fill: #663e25;
1160
+ --likec4-element-stroke: #4e301b;
1161
+ }
1162
+ :where([data-mantine-color-scheme='light']) :where([data-likec4-color='amber'][data-compound-depth='2']) {
1163
+ --likec4-element-fill: #724325;
1164
+ --likec4-element-stroke: #58341b;
1165
+ }
1166
+ :where([data-likec4-color='amber'][data-compound-depth='3']) {
1167
+ --likec4-element-fill: #5c3a25;
1168
+ --likec4-element-stroke: #472d1b;
1169
+ }
1170
+ :where([data-mantine-color-scheme='light']) :where([data-likec4-color='amber'][data-compound-depth='3']) {
1171
+ --likec4-element-fill: #6b4126;
1172
+ --likec4-element-stroke: #52321c;
1173
+ }
1174
+ :where([data-likec4-color='amber'][data-compound-depth='4']) {
1175
+ --likec4-element-fill: #533624;
1176
+ --likec4-element-stroke: #402a1a;
1177
+ }
1178
+ :where([data-mantine-color-scheme='light']) :where([data-likec4-color='amber'][data-compound-depth='4']) {
1179
+ --likec4-element-fill: #643e27;
1180
+ --likec4-element-stroke: #4d301d;
1181
+ }
1182
+ :where([data-likec4-color='amber'][data-compound-depth='5']) {
1183
+ --likec4-element-fill: #493223;
1184
+ --likec4-element-stroke: #38261a;
1185
+ }
1186
+ :where([data-mantine-color-scheme='light']) :where([data-likec4-color='amber'][data-compound-depth='5']) {
1187
+ --likec4-element-fill: #5d3c28;
1188
+ --likec4-element-stroke: #472f1d;
1189
+ }
1190
+ :where([data-likec4-color='amber'][data-compound-depth='6']) {
1191
+ --likec4-element-fill: #412d21;
1192
+ --likec4-element-stroke: #322319;
1193
+ }
1194
+ :where([data-mantine-color-scheme='light']) :where([data-likec4-color='amber'][data-compound-depth='6']) {
1195
+ --likec4-element-fill: #563a28;
1196
+ --likec4-element-stroke: #422d1e;
1197
+ }
718
1198
  :where([data-likec4-color='indigo']) {
719
1199
  --likec4-element-fill: #6366f1;
720
1200
  --likec4-element-stroke: #4f46e5;
@@ -724,24 +1204,73 @@ svg.react-flow__connectionline {
724
1204
  --likec4-relation-lineColor: #6366f1;
725
1205
  --likec4-relation-labelBg: #1e1b4b;
726
1206
  --likec4-relation-labelColor: #818cf8;
727
- }.react-flow._2h8g8h0 {
1207
+ }
1208
+ :where([data-likec4-color='indigo'][data-compound-depth='1']) {
1209
+ --likec4-element-fill: #2529d3;
1210
+ --likec4-element-stroke: #3028b2;
1211
+ }
1212
+ :where([data-mantine-color-scheme='light']) :where([data-likec4-color='indigo'][data-compound-depth='1']) {
1213
+ --likec4-element-fill: #2529e1;
1214
+ --likec4-element-stroke: #2d24c2;
1215
+ }
1216
+ :where([data-likec4-color='indigo'][data-compound-depth='2']) {
1217
+ --likec4-element-fill: #282bbf;
1218
+ --likec4-element-stroke: #312aa1;
1219
+ }
1220
+ :where([data-mantine-color-scheme='light']) :where([data-likec4-color='indigo'][data-compound-depth='2']) {
1221
+ --likec4-element-fill: #2428d7;
1222
+ --likec4-element-stroke: #3028b5;
1223
+ }
1224
+ :where([data-likec4-color='indigo'][data-compound-depth='3']) {
1225
+ --likec4-element-fill: #2b2dac;
1226
+ --likec4-element-stroke: #312b91;
1227
+ }
1228
+ :where([data-mantine-color-scheme='light']) :where([data-likec4-color='indigo'][data-compound-depth='3']) {
1229
+ --likec4-element-fill: #292cc8;
1230
+ --likec4-element-stroke: #322ba9;
1231
+ }
1232
+ :where([data-likec4-color='indigo'][data-compound-depth='4']) {
1233
+ --likec4-element-fill: #2c2f99;
1234
+ --likec4-element-stroke: #302c82;
1235
+ }
1236
+ :where([data-mantine-color-scheme='light']) :where([data-likec4-color='indigo'][data-compound-depth='4']) {
1237
+ --likec4-element-fill: #2d30ba;
1238
+ --likec4-element-stroke: #342e9e;
1239
+ }
1240
+ :where([data-likec4-color='indigo'][data-compound-depth='5']) {
1241
+ --likec4-element-fill: #2d2f87;
1242
+ --likec4-element-stroke: #2f2b73;
1243
+ }
1244
+ :where([data-mantine-color-scheme='light']) :where([data-likec4-color='indigo'][data-compound-depth='5']) {
1245
+ --likec4-element-fill: #3133ac;
1246
+ --likec4-element-stroke: #363092;
1247
+ }
1248
+ :where([data-likec4-color='indigo'][data-compound-depth='6']) {
1249
+ --likec4-element-fill: #2d2e76;
1250
+ --likec4-element-stroke: #2e2b65;
1251
+ }
1252
+ :where([data-mantine-color-scheme='light']) :where([data-likec4-color='indigo'][data-compound-depth='6']) {
1253
+ --likec4-element-fill: #34369f;
1254
+ --likec4-element-stroke: #373287;
1255
+ }._2h8g8h0 {
1256
+ width: 100%;
1257
+ height: 100%;
1258
+ padding: 0;
1259
+ }
1260
+ .react-flow._2h8g8h1 {
728
1261
  --xy-background-color: var(--likec4-background-color);
729
1262
  --xy-background-pattern-color: var(--likec4-background-pattern-color);
730
1263
  }
731
- .react-flow._2h8g8h0 .react-flow__viewport {
1264
+ .react-flow._2h8g8h1 .react-flow__viewport {
732
1265
  will-change: transform;
733
1266
  }
734
- .react-flow._2h8g8h0._2h8g8h2 {
1267
+ .react-flow._2h8g8h1._2h8g8h3 {
735
1268
  --likec4-background-color: transparent !important;
736
1269
  --xy-background-color: transparent !important;
737
1270
  background-color: transparent !important;
738
1271
  }
739
- :where(._2h8g8h3, ._2h8g8h2) .react-flow__attribution {
1272
+ :where(._2h8g8h4, ._2h8g8h3) .react-flow__attribution {
740
1273
  display: none;
741
- }._14qhjro0 {
742
- width: 100%;
743
- height: 100%;
744
- padding: 0;
745
1274
  }._1lmzt1h0 {
746
1275
  top: var(--likec4-options-panel-top, 1rem);
747
1276
  right: var(--likec4-options-panel-right, 1rem);
@@ -814,7 +1343,7 @@ svg.react-flow__connectionline {
814
1343
  font-size: calc(0.78125rem * var(--mantine-scale));
815
1344
  line-height: 1.12;
816
1345
  transition: color 120ms ease-out;
817
- }@keyframes lbtzdo5 {
1346
+ }@keyframes lbtzdo7 {
818
1347
  from {
819
1348
  opacity: 0.6;
820
1349
  }
@@ -835,9 +1364,9 @@ svg.react-flow__connectionline {
835
1364
  position: relative;
836
1365
  border-radius: calc(0.375rem * var(--mantine-scale));
837
1366
  box-shadow: 0 4px 10px 0.5px rgba(0,0,0,0.1) , 0 2px 2px -1px rgba(0,0,0,0.4);
838
- padding: calc(0.5rem * var(--mantine-scale));
1367
+ padding: 8px;
839
1368
  background: var(--likec4-element-fill);
840
- transition: all 300ms ease-out;
1369
+ transition: all 200ms ease-out;
841
1370
  }
842
1371
  :where(.react-flow__node.selected) .lbtzdo2 {
843
1372
  box-shadow: none;
@@ -847,50 +1376,54 @@ svg.react-flow__connectionline {
847
1376
  outline: 3px solid var(--mantine-primary-color-outline, var(--mantine-primary-color-filled, var(--likec4-element-stroke)));
848
1377
  outline-offset: calc(0.09375rem * var(--mantine-scale));
849
1378
  }
850
- .lbtzdo3 {
851
- --lbtzdo1: 90%;
852
- width: 100%;
853
- height: 100%;
854
- position: relative;
855
- border-radius: calc(0.5rem * var(--mantine-scale));
1379
+ .lbtzdo5 {
1380
+ --lbtzdo3: calc(var(--lbtzdo1, 80%) - var(--lbtzdo4));
1381
+ --lbtzdo4: 0%;
1382
+ --ai-bg: color-mix(in srgb , var(--likec4-element-fill), transparent 99%);
1383
+ border-radius: 8px;
856
1384
  border-style: dashed;
857
- border-width: calc(0.21875rem * var(--mantine-scale));
858
- border-color: var(--likec4-element-fill);
859
- box-shadow: 0 4px 10px 0.5px rgba(0,0,0,0.05) , 0 2px 2px -1px rgba(0,0,0,0.04);
860
- padding: calc(0.5rem * var(--mantine-scale));
861
- background: color-mix(in srgb , var(--likec4-element-fill), transparent var(--lbtzdo1));
862
- transition: all 200ms ease-out;
863
- }
864
- :where(.lbtzdo0[data-hovered]) .lbtzdo3 {
865
- --lbtzdo1: 65%;
866
- transition-delay: 300ms;
867
- }
868
- :where(.react-flow__node.selected) .lbtzdo3 {
869
- --lbtzdo1: 15%;
1385
+ border-width: 3px;
1386
+ padding: 6px;
1387
+ border-color: color-mix(in srgb , var(--likec4-element-stroke), transparent min(var(--lbtzdo3), 30%));
1388
+ background: color-mix(in srgb , var(--likec4-element-fill), transparent var(--lbtzdo3));
1389
+ background-clip: padding-box;
1390
+ }
1391
+ :where(.lbtzdo0[data-hovered]) .lbtzdo5 {
1392
+ --lbtzdo4: 15%;
1393
+ transition-delay: 175ms;
1394
+ }
1395
+ :where(.react-flow__node.selected) .lbtzdo5 {
1396
+ --lbtzdo4: 25%;
870
1397
  transition-delay: 50ms;
871
- box-shadow: none;
872
1398
  border-color: transparent;
873
1399
  }
874
- .lbtzdo4 {
1400
+ .lbtzdo6 {
875
1401
  font-family: var(--likec4-compound-font-family);
876
1402
  font-optical-sizing: auto;
877
1403
  font-style: normal;
878
1404
  text-align: left;
879
1405
  display: inline-block;
880
1406
  font-weight: 600;
881
- font-size: 13px;
1407
+ font-size: 14px;
882
1408
  text-transform: uppercase;
883
1409
  letter-spacing: 0.2px;
884
1410
  line-height: 1;
885
1411
  opacity: 0.75;
886
- color: var(--likec4-compound-title-color);
887
- padding-left: calc(0.75rem * var(--mantine-scale));
888
- mix-blend-mode: lighten;
1412
+ color: var(--_compound-title-color,var(--likec4-compound-title-color));
1413
+ padding-left: 12px;
889
1414
  }
890
- :where([data-likec4-navigable='true']) .lbtzdo4 {
891
- padding-left: calc(1.625rem * var(--mantine-scale));
1415
+ :where([data-likec4-navigable='true']) .lbtzdo6 {
1416
+ padding-left: 26px;
892
1417
  }
893
- .lbtzdo6 {
1418
+ :where([data-mantine-color-scheme='light']) .lbtzdo6 {
1419
+ opacity: 1;
1420
+ }
1421
+ :where([data-mantine-color-scheme='light'] .likec4-compound-transparent) {
1422
+ --_compound-title-color: var(--likec4-element-stroke);
1423
+ }
1424
+ .lbtzdoa {
1425
+ --lbtzdo8: var(--likec4-element-loContrast);
1426
+ --lbtzdo9: 6;
894
1427
  position: absolute;
895
1428
  top: 0;
896
1429
  left: 0;
@@ -900,24 +1433,33 @@ svg.react-flow__connectionline {
900
1433
  overflow: visible;
901
1434
  visibility: hidden;
902
1435
  }
903
- :where(.react-flow__node.selected:not(:focus-visible)) .lbtzdo6 {
1436
+ :where(.react-flow__node.selected:not(:focus-visible)) .lbtzdoa {
904
1437
  visibility: visible;
905
1438
  }
906
- .lbtzdo6 rect {
907
- stroke: var(--likec4-element-loContrast);
1439
+ :where(.react-flow__node:focus-within:not(.selected)) .lbtzdoa {
1440
+ --lbtzdo8: color-mix(in srgb, var(--likec4-element-stroke) 30%, var(--likec4-element-loContrast));
1441
+ --lbtzdo9: 8;
1442
+ }
1443
+ :where([data-mantine-color-scheme='light']) .lbtzdoa {
1444
+ --lbtzdo8: color-mix(in srgb, var(--likec4-element-stroke) 80%, #000);
1445
+ }
1446
+ .lbtzdoa rect {
1447
+ stroke: var(--lbtzdo8);
908
1448
  transform-origin: center center;
909
- stroke-width: 6;
1449
+ stroke-width: var(--lbtzdo9);
910
1450
  animation-duration: 800ms;
911
- animation-name: lbtzdo5;
1451
+ animation-name: lbtzdo7;
912
1452
  animation-iteration-count: infinite;
913
1453
  animation-direction: alternate;
914
1454
  fill: none;
915
1455
  }
916
- :where(.react-flow__node:focus-within:not(.selected)) .lbtzdo6 rect {
917
- stroke: color-mix(in srgb, var(--likec4-element-stroke) 30%, var(--likec4-element-loContrast));
918
- stroke-width: 8;
1456
+ .lbtzdo0 {
1457
+ --lbtzdob: var(--likec4-element-loContrast);
1458
+ }
1459
+ :where([data-mantine-color-scheme='light'] .likec4-compound-transparent) {
1460
+ --lbtzdob: var(--likec4-element-stroke);
919
1461
  }
920
- .lbtzdo7 {
1462
+ .lbtzdoc {
921
1463
  --ai-bg: color-mix(in srgb , var(--likec4-element-fill), transparent 99%);
922
1464
  --ai-bg-hover: color-mix(in srgb , var(--likec4-element-fill) 65%, var(--likec4-element-stroke));
923
1465
  --ai-hover: color-mix(in srgb , var(--likec4-element-fill) 50%, var(--likec4-element-stroke));
@@ -926,32 +1468,37 @@ svg.react-flow__connectionline {
926
1468
  left: 3px;
927
1469
  top: 7px;
928
1470
  cursor: pointer;
929
- color: var(--likec4-element-loContrast);
1471
+ color: var(--_compound-title-color,var(--lbtzdob));
930
1472
  transform-origin: 90% 70%;
931
1473
  opacity: 0.75;
932
1474
  transition: all 150ms ease-out;
933
1475
  transition-delay: 0ms;
934
1476
  background-color: var(--ai-bg);
935
1477
  }
936
- .lbtzdo7:hover {
1478
+ .lbtzdoc:hover {
937
1479
  box-shadow: var(--mantine-shadow-lg);
938
1480
  transform: scale(1.466);
939
1481
  opacity: 1;
940
1482
  transition-delay: 0;
941
1483
  }
942
- .lbtzdo7:active {
1484
+ .lbtzdoc:active {
943
1485
  transform: scale(1.1);
944
1486
  opacity: 1;
945
1487
  transition-delay: 0;
946
1488
  }
947
- :where(.react-flow__node:not(.dragging) .lbtzdo0:hover) .lbtzdo7:not(:hover) {
1489
+ :where([data-mantine-color-scheme='light'] .likec4-compound-transparent) .lbtzdoc {
1490
+ --ai-bg-hover: color-mix(in srgb , var(--likec4-element-fill), transparent 50%);
1491
+ --ai-hover: color-mix(in srgb , var(--likec4-element-fill), transparent 20%);
1492
+ opacity: 0.85;
1493
+ }
1494
+ :where(.react-flow__node:not(.dragging) .lbtzdo0:hover) .lbtzdoc:not(:hover) {
948
1495
  --ai-bg: var(--ai-bg-hover);
949
1496
  box-shadow: var(--mantine-shadow-lg);
950
1497
  transform: scale(1.223);
951
1498
  opacity: 1;
952
1499
  transition-delay: 250ms;
953
1500
  }
954
- .lbtzdo7 svg.icon {
1501
+ .lbtzdoc svg.icon {
955
1502
  width: 70%;
956
1503
  height: 70%;
957
1504
  stroke-width: 1.5;