@miragon/modeler-shell 0.1.0 → 0.2.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 (97) hide show
  1. package/API.md +1051 -84
  2. package/README.md +162 -31
  3. package/dist/appearance-BBaM_4bD.d.ts +323 -0
  4. package/dist/appearance-XX3JC3pI.d.cts +323 -0
  5. package/dist/{chunk-6LQOFACK.js → chunk-66HCSJNY.js} +1247 -31
  6. package/dist/chunk-66HCSJNY.js.map +1 -0
  7. package/dist/{chunk-RJRFR6N3.js → chunk-KYDG5DMX.js} +2 -2
  8. package/dist/{chunk-5JSZ4VGA.js → chunk-OADW3GPA.js} +240 -6
  9. package/dist/chunk-OADW3GPA.js.map +1 -0
  10. package/dist/core.cjs +260 -6
  11. package/dist/core.cjs.map +1 -1
  12. package/dist/core.d.cts +81 -6
  13. package/dist/core.d.ts +81 -6
  14. package/dist/core.js +43 -3
  15. package/dist/diagram-js.cjs +34 -2
  16. package/dist/diagram-js.cjs.map +1 -1
  17. package/dist/diagram-js.d.cts +10 -3
  18. package/dist/diagram-js.d.ts +10 -3
  19. package/dist/diagram-js.js +14 -2
  20. package/dist/diagram-js.js.map +1 -1
  21. package/dist/index.cjs +1654 -197
  22. package/dist/index.cjs.map +1 -1
  23. package/dist/index.d.cts +18 -9
  24. package/dist/index.d.ts +18 -9
  25. package/dist/index.js +44 -4
  26. package/dist/shell.css +692 -3
  27. package/dist/testing-vscode-stub.js +2 -2
  28. package/dist/testing.cjs +2849 -550
  29. package/dist/testing.cjs.map +1 -1
  30. package/dist/testing.d.cts +75 -9
  31. package/dist/testing.d.ts +75 -9
  32. package/dist/testing.js +2744 -558
  33. package/dist/testing.js.map +1 -1
  34. package/dist/toasts-Bp0REqdq.d.cts +142 -0
  35. package/dist/toasts-Bp0REqdq.d.ts +142 -0
  36. package/dist/{types-OuFlqZp0.d.cts → types-CnRrINRs.d.cts} +170 -9
  37. package/dist/{types-DnZn9CPw.d.ts → types-PuDZczzy.d.ts} +170 -9
  38. package/dist/vscode-extension.js +2 -2
  39. package/dist/vscode-webview.cjs +1541 -178
  40. package/dist/vscode-webview.cjs.map +1 -1
  41. package/dist/vscode-webview.d.cts +6 -4
  42. package/dist/vscode-webview.d.ts +6 -4
  43. package/dist/vscode-webview.js +11 -2
  44. package/dist/vscode-webview.js.map +1 -1
  45. package/package.json +2 -2
  46. package/src/core/feedback/appearance.ts +141 -0
  47. package/src/core/feedback/problems.ts +23 -0
  48. package/src/core/feedback/toasts.ts +118 -0
  49. package/src/core/fit.ts +18 -3
  50. package/src/core/index.ts +43 -0
  51. package/src/core/keymap.ts +20 -0
  52. package/src/core/messages.ts +71 -0
  53. package/src/core/types.ts +24 -2
  54. package/src/core/web-chrome/bottom-row.ts +37 -0
  55. package/src/core/web-chrome/drop.ts +78 -0
  56. package/src/core/web-chrome/top-row.ts +66 -0
  57. package/src/diagram-js/service.ts +4 -1
  58. package/src/diagram-js/viewport.ts +19 -0
  59. package/src/dom/buttons.css +124 -0
  60. package/src/dom/feedback/appearance.ts +184 -0
  61. package/src/dom/feedback/feedback.css +435 -0
  62. package/src/dom/feedback/problems-popover.ts +287 -0
  63. package/src/dom/feedback/toasts.ts +431 -0
  64. package/src/dom/index.ts +13 -0
  65. package/src/dom/keys.ts +8 -0
  66. package/src/dom/menu.ts +28 -17
  67. package/src/dom/mount.ts +290 -20
  68. package/src/dom/problems.ts +5 -4
  69. package/src/dom/shell-dom.css +7 -4
  70. package/src/dom/types.ts +188 -6
  71. package/src/dom/web/drop-zone.ts +181 -0
  72. package/src/dom/web/empty-state.ts +144 -0
  73. package/src/dom/web/legal.ts +75 -0
  74. package/src/dom/web/menu-groups.ts +69 -0
  75. package/src/dom/web/primary.ts +124 -0
  76. package/src/dom/web/web.css +386 -0
  77. package/src/shell.css +3 -0
  78. package/src/testing/case-tools.ts +164 -0
  79. package/src/testing/cases.ts +209 -144
  80. package/src/testing/checks.ts +51 -15
  81. package/src/testing/facts.ts +56 -2
  82. package/src/testing/geometry.ts +206 -26
  83. package/src/testing/harness.ts +56 -7
  84. package/src/testing/index.ts +4 -0
  85. package/src/testing/page-tools.ts +24 -1
  86. package/src/testing/page.ts +10 -0
  87. package/src/testing/web-cases.ts +913 -0
  88. package/src/testing/web-checks.ts +1049 -0
  89. package/src/testing/web-facts.ts +713 -0
  90. package/src/vscode/webview/mount.ts +13 -1
  91. package/dist/chunk-5JSZ4VGA.js.map +0 -1
  92. package/dist/chunk-6LQOFACK.js.map +0 -1
  93. package/dist/keymap-CObQE6q6.d.cts +0 -151
  94. package/dist/keymap-DORzHnK-.d.ts +0 -151
  95. package/dist/types-B6NfkiUG.d.cts +0 -66
  96. package/dist/types-B6NfkiUG.d.ts +0 -66
  97. /package/dist/{chunk-RJRFR6N3.js.map → chunk-KYDG5DMX.js.map} +0 -0
package/dist/shell.css CHANGED
@@ -341,7 +341,7 @@ html.cd-shell-document kbd {
341
341
  color: var(--cd-ui-warning);
342
342
  }
343
343
  .cd-shell[data-cd-shell-host=web] .cd-shell-problems {
344
- bottom: calc(var(--cd-shell-rand) + 20px + var(--cd-shell-luecke));
344
+ bottom: calc(var(--cd-shell-rand) + var(--modeler-shell-legal-height, 20px) + var(--cd-shell-luecke));
345
345
  }
346
346
  .cd-shell-status {
347
347
  position: absolute;
@@ -470,10 +470,10 @@ html.cd-shell-document kbd {
470
470
  --modeler-shell-legend-bottom: calc(var(--cd-shell-rand) + var(--cd-shell-zeile) + var(--cd-shell-luecke));
471
471
  }
472
472
  .cd-shell[data-cd-shell-host=web] .cd-shell-legend {
473
- --modeler-shell-legend-bottom: calc(var(--cd-shell-rand) + 20px + var(--cd-shell-luecke));
473
+ --modeler-shell-legend-bottom: calc( var(--cd-shell-rand) + var(--modeler-shell-legal-height, 20px) + var(--cd-shell-luecke) );
474
474
  }
475
475
  .cd-shell[data-cd-shell-host=web][data-problems=shown] .cd-shell-legend {
476
- --modeler-shell-legend-bottom: calc( var(--cd-shell-rand) + 20px + var(--cd-shell-luecke) + var(--cd-shell-zeile) + var(--cd-shell-luecke) );
476
+ --modeler-shell-legend-bottom: calc( var(--cd-shell-rand) + var(--modeler-shell-legal-height, 20px) + var(--cd-shell-luecke) + var(--cd-shell-zeile) + var(--cd-shell-luecke) );
477
477
  }
478
478
  .cd-shell[data-palette=second-row] .cd-shell-legend {
479
479
  --modeler-shell-legend-top: calc(var(--cd-shell-frei) + var(--cd-shell-zeile) + var(--cd-shell-rand));
@@ -698,6 +698,695 @@ html.cd-shell-document[data-cd-kontrast=hoch] :where(a, input, select, textarea,
698
698
  outline-width: 3px;
699
699
  }
700
700
 
701
+ /* src/dom/buttons.css */
702
+ .cd-shell-button {
703
+ box-sizing: border-box;
704
+ display: inline-flex;
705
+ flex: none;
706
+ align-items: center;
707
+ justify-content: center;
708
+ gap: var(--cd-shell-luecke);
709
+ height: var(--cd-shell-eintrag);
710
+ margin: 0;
711
+ padding: 0 16px;
712
+ color: var(--cd-ui-text);
713
+ font: inherit;
714
+ font-size: 13px;
715
+ font-weight: 600;
716
+ line-height: 1;
717
+ letter-spacing: normal;
718
+ text-transform: none;
719
+ white-space: nowrap;
720
+ background: transparent;
721
+ border: 1px solid transparent;
722
+ border-radius: var(--cd-radius-md);
723
+ cursor: pointer;
724
+ user-select: none;
725
+ -webkit-user-select: none;
726
+ transition:
727
+ background-color var(--cd-motion-fast) var(--cd-ease),
728
+ border-color var(--cd-motion-fast) var(--cd-ease),
729
+ box-shadow var(--cd-motion-fast) var(--cd-ease),
730
+ color var(--cd-motion-fast) var(--cd-ease),
731
+ transform var(--cd-motion-fast) var(--cd-ease);
732
+ }
733
+ .cd-shell-button[hidden] {
734
+ display: none;
735
+ }
736
+ .cd-shell-button svg {
737
+ display: block;
738
+ flex: none;
739
+ }
740
+ .cd-shell-button[data-variant=primary] {
741
+ color: var(--cd-weiss);
742
+ background: var(--cd-blau);
743
+ box-shadow: var(--cd-shadow-1);
744
+ }
745
+ .cd-shell-button[data-variant=primary]:is(:hover, :active):not([aria-disabled=true]) {
746
+ background: var(--cd-blau-link);
747
+ box-shadow: var(--cd-shadow-2);
748
+ transform: translateY(-1px);
749
+ }
750
+ .cd-shell-button[data-variant=ghost]:is(:hover, :active):not([aria-disabled=true]) {
751
+ background: var(--cd-ui-hover);
752
+ }
753
+ .cd-shell-button[aria-disabled=true] {
754
+ color: var(--cd-ui-text-leise);
755
+ cursor: not-allowed;
756
+ }
757
+ .cd-shell-button[data-variant=primary][aria-disabled=true] {
758
+ background: var(--cd-ui-hover);
759
+ border-color: var(--cd-ui-linie);
760
+ box-shadow: none;
761
+ }
762
+ .cd-shell-button:focus {
763
+ outline: none;
764
+ }
765
+ .cd-shell-button:focus-visible {
766
+ outline: 2px solid var(--cd-ui-fokus);
767
+ outline-offset: 2px;
768
+ }
769
+ @media (prefers-reduced-motion: reduce) {
770
+ .cd-shell .cd-shell-button[data-variant]:is(:hover, :active) {
771
+ transform: none;
772
+ }
773
+ }
774
+ html.cd-shell-reduce-motion .cd-shell .cd-shell-button[data-variant]:is(:hover, :active) {
775
+ transform: none;
776
+ }
777
+ .cd-shell:is([data-cd-kontrast=hoch], [data-cd-kontrast=hoch] *) .cd-shell-button {
778
+ box-shadow: none;
779
+ }
780
+ .cd-shell:is([data-cd-kontrast=hoch], [data-cd-kontrast=hoch] *) .cd-shell-button:focus-visible {
781
+ outline-width: 3px;
782
+ }
783
+ @media (forced-colors: active) {
784
+ .cd-shell .cd-shell-button {
785
+ border-color: ButtonText;
786
+ }
787
+ .cd-shell .cd-shell-button:focus-visible {
788
+ outline-color: Highlight;
789
+ }
790
+ .cd-shell .cd-shell-button[aria-disabled=true] {
791
+ color: GrayText;
792
+ border-color: GrayText;
793
+ }
794
+ }
795
+
796
+ /* src/dom/web/web.css */
797
+ :where(.cd-shell) :is(.cd-shell-primary, .cd-shell-primary-label, .cd-shell-legal, .cd-shell-legal a, .cd-shell-empty-state, .cd-shell-empty-state-title, .cd-shell-empty-state-text, .cd-shell-empty-state-hint, .cd-shell-empty-state-open, .cd-shell-empty-state-key, .cd-shell-empty-state .cd-shell-button, .cd-shell-drop-zone-chip) {
798
+ letter-spacing: normal;
799
+ word-spacing: normal;
800
+ text-transform: none;
801
+ text-indent: 0;
802
+ text-shadow: none;
803
+ }
804
+ .cd-shell .cd-shell-primary {
805
+ position: absolute;
806
+ top: var(--cd-shell-rand);
807
+ right: var(--cd-shell-rand);
808
+ z-index: var(--cd-shell-ebene-reihe);
809
+ height: var(--cd-shell-zeile);
810
+ padding: 0 16px;
811
+ }
812
+ .cd-shell .cd-shell-primary[data-collapsed] {
813
+ width: var(--cd-shell-zeile);
814
+ padding: 0;
815
+ }
816
+ .cd-shell-primary-label[hidden] {
817
+ display: none;
818
+ }
819
+ .cd-shell-legal {
820
+ position: absolute;
821
+ left: var(--cd-shell-rand);
822
+ bottom: var(--cd-shell-rand);
823
+ z-index: var(--cd-shell-ebene-inseln);
824
+ box-sizing: border-box;
825
+ display: flex;
826
+ flex-wrap: wrap;
827
+ align-items: center;
828
+ column-gap: 6px;
829
+ row-gap: 0;
830
+ min-height: 20px;
831
+ max-width: calc(100cqw - 2 * var(--cd-shell-rand));
832
+ margin: 0;
833
+ padding: 0 8px;
834
+ color: var(--cd-ui-text-leise);
835
+ font-size: 13px;
836
+ font-weight: 400;
837
+ line-height: 20px;
838
+ white-space: nowrap;
839
+ background: color-mix(in srgb, var(--cd-ui-flaeche-hoch) var(--cd-ui-chrome-deckkraft), transparent);
840
+ -webkit-backdrop-filter: blur(8px);
841
+ backdrop-filter: blur(8px);
842
+ border: 0;
843
+ border-radius: var(--cd-radius-sm);
844
+ box-shadow: none;
845
+ user-select: none;
846
+ -webkit-user-select: none;
847
+ }
848
+ .cd-shell-legal[hidden] {
849
+ display: none;
850
+ }
851
+ .cd-shell-legal > * {
852
+ flex: none;
853
+ }
854
+ .cd-shell-legal-item {
855
+ display: inline-flex;
856
+ align-items: center;
857
+ gap: 6px;
858
+ }
859
+ .cd-shell .cd-shell-legal a,
860
+ .cd-shell .cd-shell-legal a:visited {
861
+ color: var(--cd-ui-link);
862
+ font: inherit;
863
+ text-decoration: none;
864
+ border-radius: 2px;
865
+ }
866
+ .cd-shell .cd-shell-legal a:hover {
867
+ color: var(--cd-ui-link);
868
+ text-decoration: underline;
869
+ }
870
+ .cd-shell .cd-shell-legal a:focus {
871
+ outline: none;
872
+ }
873
+ .cd-shell .cd-shell-legal a:focus-visible {
874
+ text-decoration: underline;
875
+ outline: 2px solid var(--cd-ui-fokus);
876
+ outline-offset: 2px;
877
+ }
878
+ .cd-shell-empty-state {
879
+ position: absolute;
880
+ top: 50%;
881
+ left: 50%;
882
+ translate: -50% -50%;
883
+ z-index: var(--cd-shell-ebene-inseln);
884
+ box-sizing: border-box;
885
+ display: flex;
886
+ flex-direction: column;
887
+ align-items: center;
888
+ gap: 16px;
889
+ width: min(400px, 100cqw - 2 * var(--cd-shell-rand));
890
+ max-height: calc(100cqh - 2 * var(--cd-shell-rand));
891
+ overflow-y: auto;
892
+ overscroll-behavior: contain;
893
+ margin: 0;
894
+ padding: 32px 40px;
895
+ color: var(--cd-ui-text);
896
+ font-size: 13px;
897
+ line-height: 1.5;
898
+ text-align: center;
899
+ background: color-mix(in srgb, var(--cd-ui-flaeche-hoch) var(--cd-ui-chrome-deckkraft), transparent);
900
+ -webkit-backdrop-filter: blur(8px);
901
+ backdrop-filter: blur(8px);
902
+ border: 1px solid var(--cd-ui-linie);
903
+ border-radius: var(--cd-radius-lg);
904
+ box-shadow: var(--cd-shadow-2);
905
+ user-select: none;
906
+ -webkit-user-select: none;
907
+ animation: cd-shell-rise-in var(--cd-motion-base) var(--cd-ease-out);
908
+ }
909
+ .cd-shell-empty-state[hidden] {
910
+ display: none;
911
+ }
912
+ .cd-shell-empty-state-mark {
913
+ display: block;
914
+ flex: none;
915
+ width: 64px;
916
+ height: 64px;
917
+ margin: 0;
918
+ }
919
+ .cd-shell .cd-shell-empty-state-title {
920
+ margin: 0;
921
+ color: var(--cd-ui-text);
922
+ font-size: 21px;
923
+ font-weight: 600;
924
+ line-height: 1.3;
925
+ }
926
+ .cd-shell .cd-shell-empty-state-text {
927
+ margin: 0;
928
+ color: var(--cd-ui-text-leise);
929
+ font-size: 16px;
930
+ font-weight: 400;
931
+ line-height: 1.6;
932
+ }
933
+ .cd-shell-empty-state-actions {
934
+ display: flex;
935
+ flex-wrap: wrap;
936
+ justify-content: center;
937
+ gap: var(--cd-shell-luecke);
938
+ }
939
+ .cd-shell .cd-shell-empty-state-hint {
940
+ margin: 0;
941
+ color: var(--cd-ui-text-leise);
942
+ font-size: 13px;
943
+ font-weight: 400;
944
+ line-height: 1.5;
945
+ }
946
+ .cd-shell .cd-shell-empty-state-open {
947
+ display: inline;
948
+ margin: 0;
949
+ padding: 0;
950
+ color: var(--cd-ui-link);
951
+ font: inherit;
952
+ text-decoration: none;
953
+ background: transparent;
954
+ border: 0;
955
+ border-radius: 2px;
956
+ cursor: pointer;
957
+ }
958
+ .cd-shell .cd-shell-empty-state-open:hover {
959
+ text-decoration: underline;
960
+ }
961
+ .cd-shell .cd-shell-empty-state-open:focus {
962
+ outline: none;
963
+ }
964
+ .cd-shell .cd-shell-empty-state-open:focus-visible {
965
+ text-decoration: underline;
966
+ outline: 2px solid var(--cd-ui-fokus);
967
+ outline-offset: 2px;
968
+ }
969
+ .cd-shell-empty-state-open-item {
970
+ white-space: nowrap;
971
+ }
972
+ .cd-shell .cd-shell-empty-state-key {
973
+ color: var(--cd-ui-text-leise);
974
+ font-family: var(--modeler-shell-font-mono);
975
+ font-size: 13px;
976
+ }
977
+ .cd-shell[data-cd-shell-host=web][data-empty-state=shown] :is(.cd-shell-menu-trigger, .cd-shell-primary, .djs-palette, .cd-shell-zoom, .cd-shell-problems, .cd-shell-legend, .cd-shell-status, .cd-shell-hint, .cd-shell-inspector) {
978
+ visibility: hidden;
979
+ }
980
+ .cd-shell[data-cd-shell-host=web][data-zoom-row=raised] .cd-shell-zoom {
981
+ bottom: calc(var(--cd-shell-rand) + var(--modeler-shell-legal-height, 20px) + var(--cd-shell-luecke));
982
+ }
983
+ @container cd-shell (max-width: 440px) {
984
+ .cd-shell[data-cd-shell-host=web][data-zoom-row=raised] .cd-shell-legend {
985
+ --modeler-shell-legend-min-bottom: calc( var(--cd-shell-rand) + var(--modeler-shell-legal-height, 20px) + var(--cd-shell-luecke) + var(--cd-shell-zeile) + var(--cd-shell-luecke) );
986
+ }
987
+ }
988
+ .cd-shell-drop-zone {
989
+ position: absolute;
990
+ inset: var(--cd-shell-rand);
991
+ box-sizing: border-box;
992
+ display: grid;
993
+ place-items: center;
994
+ margin: 0;
995
+ padding: var(--cd-shell-rand);
996
+ background: var(--cd-ui-hover);
997
+ border: 2px dashed var(--cd-ui-interaktion);
998
+ border-radius: var(--cd-radius-lg);
999
+ box-shadow: 0 0 0 var(--cd-shell-rand) var(--cd-ui-grund);
1000
+ pointer-events: none;
1001
+ user-select: none;
1002
+ -webkit-user-select: none;
1003
+ }
1004
+ .cd-shell-drop-zone[hidden] {
1005
+ display: none;
1006
+ }
1007
+ .cd-shell-drop-zone[data-state=forbidden] {
1008
+ background: var(--cd-ui-danger-flaeche);
1009
+ border-color: var(--cd-ui-danger);
1010
+ }
1011
+ .cd-shell-drop-zone-chip {
1012
+ box-sizing: border-box;
1013
+ max-width: 100%;
1014
+ padding: 7px 16px;
1015
+ color: var(--cd-ui-text);
1016
+ font-size: 13px;
1017
+ font-weight: 600;
1018
+ line-height: 20px;
1019
+ text-align: center;
1020
+ background: var(--cd-ui-flaeche-hoch);
1021
+ border: 1px solid var(--cd-ui-linie);
1022
+ border-radius: var(--cd-radius-md);
1023
+ box-shadow: var(--cd-shadow-2);
1024
+ }
1025
+ @media (prefers-reduced-motion: reduce) {
1026
+ .cd-shell .cd-shell-empty-state {
1027
+ animation: none;
1028
+ }
1029
+ }
1030
+ html.cd-shell-reduce-motion .cd-shell .cd-shell-empty-state {
1031
+ animation: none;
1032
+ }
1033
+ .cd-shell:is([data-cd-kontrast=hoch], [data-cd-kontrast=hoch] *) :is(.cd-shell-empty-state, .cd-shell-drop-zone-chip) {
1034
+ box-shadow: none;
1035
+ }
1036
+ .cd-shell:is([data-cd-kontrast=hoch], [data-cd-kontrast=hoch] *) :is(.cd-shell-legal a, .cd-shell-empty-state-open) {
1037
+ text-decoration: underline;
1038
+ }
1039
+ .cd-shell:is([data-cd-kontrast=hoch], [data-cd-kontrast=hoch] *) :is(.cd-shell-legal a, .cd-shell-empty-state-open):focus-visible {
1040
+ outline-width: 3px;
1041
+ }
1042
+ @media (forced-colors: active) {
1043
+ .cd-shell .cd-shell-empty-state,
1044
+ .cd-shell .cd-shell-drop-zone-chip {
1045
+ border-color: CanvasText;
1046
+ }
1047
+ .cd-shell :is(.cd-shell-legal a, .cd-shell-empty-state-open) {
1048
+ text-decoration: underline;
1049
+ }
1050
+ .cd-shell :is(.cd-shell-legal a, .cd-shell-empty-state-open):focus-visible {
1051
+ outline-color: Highlight;
1052
+ }
1053
+ .cd-shell .cd-shell-drop-zone {
1054
+ forced-color-adjust: none;
1055
+ background: Canvas;
1056
+ border-color: Highlight;
1057
+ box-shadow: 0 0 0 var(--cd-shell-rand) Canvas;
1058
+ }
1059
+ .cd-shell .cd-shell-drop-zone[data-state=forbidden] {
1060
+ border-color: CanvasText;
1061
+ border-style: dotted;
1062
+ }
1063
+ .cd-shell .cd-shell-drop-zone-chip {
1064
+ color: CanvasText;
1065
+ background: Canvas;
1066
+ box-shadow: none;
1067
+ }
1068
+ }
1069
+
1070
+ /* src/dom/feedback/feedback.css */
1071
+ :where(.cd-shell) :is(.cd-shell-toasts, .cd-shell-toast, .cd-shell-toast-text, .cd-shell-toast-close, .cd-shell-problems-popover, .cd-shell-problems-popover-title, .cd-shell-problems-list, .cd-shell-problem, .cd-shell-problem-message, .cd-shell-problem-location) {
1072
+ color: inherit;
1073
+ font: inherit;
1074
+ letter-spacing: normal;
1075
+ word-spacing: normal;
1076
+ text-transform: none;
1077
+ text-indent: 0;
1078
+ text-shadow: none;
1079
+ }
1080
+ .cd-shell-toasts {
1081
+ position: absolute;
1082
+ top: auto;
1083
+ right: 0;
1084
+ bottom: var(--cd-shell-rand);
1085
+ left: 0;
1086
+ z-index: var(--cd-shell-ebene-toast);
1087
+ box-sizing: border-box;
1088
+ display: flex;
1089
+ flex-direction: column;
1090
+ align-items: center;
1091
+ gap: var(--cd-shell-luecke);
1092
+ width: min(480px, 100cqw - 2 * var(--cd-shell-rand));
1093
+ height: auto;
1094
+ min-height: 0;
1095
+ max-height: none;
1096
+ margin: 0 auto;
1097
+ padding: 0;
1098
+ overflow: visible;
1099
+ color: var(--cd-ui-text);
1100
+ background: transparent;
1101
+ border: 0;
1102
+ pointer-events: none;
1103
+ }
1104
+ .cd-shell-toasts:empty {
1105
+ display: none;
1106
+ }
1107
+ .cd-shell-toasts[popover]:not(:popover-open) {
1108
+ display: none;
1109
+ }
1110
+ .cd-shell-toast {
1111
+ --modeler-shell-toast-status: var(--cd-ui-info);
1112
+ position: relative;
1113
+ box-sizing: border-box;
1114
+ display: flex;
1115
+ flex: none;
1116
+ align-items: center;
1117
+ gap: var(--cd-shell-luecke);
1118
+ max-width: 100%;
1119
+ min-height: var(--cd-shell-zeile);
1120
+ margin: 0;
1121
+ padding: 4px 4px 4px 16px;
1122
+ overflow: hidden;
1123
+ color: var(--cd-ui-text);
1124
+ font-size: 13px;
1125
+ font-weight: 400;
1126
+ line-height: 1.5;
1127
+ text-align: left;
1128
+ background: var(--cd-ui-flaeche-hoch);
1129
+ border: 1px solid var(--cd-ui-linie);
1130
+ border-radius: var(--cd-radius-md);
1131
+ box-shadow: var(--cd-shadow-3);
1132
+ pointer-events: auto;
1133
+ user-select: none;
1134
+ -webkit-user-select: none;
1135
+ animation: cd-shell-toast-in var(--cd-motion-base) var(--cd-ease-out);
1136
+ }
1137
+ .cd-shell-toast[data-status=success] {
1138
+ --modeler-shell-toast-status: var(--cd-ui-success);
1139
+ }
1140
+ .cd-shell-toast[data-status=warning] {
1141
+ --modeler-shell-toast-status: var(--cd-ui-warning);
1142
+ }
1143
+ .cd-shell-toast[data-status=danger] {
1144
+ --modeler-shell-toast-status: var(--cd-ui-danger);
1145
+ }
1146
+ .cd-shell-toast::before {
1147
+ content: "";
1148
+ position: absolute;
1149
+ top: 0;
1150
+ bottom: 0;
1151
+ left: 0;
1152
+ width: 4px;
1153
+ background: var(--modeler-shell-toast-status);
1154
+ }
1155
+ .cd-shell-toast-dot {
1156
+ flex: none;
1157
+ width: 8px;
1158
+ height: 8px;
1159
+ background: var(--modeler-shell-toast-status);
1160
+ border-radius: var(--cd-radius-pill);
1161
+ }
1162
+ .cd-shell-toast-text {
1163
+ flex: 1 1 auto;
1164
+ min-width: 0;
1165
+ margin: 0;
1166
+ padding: 6px 0;
1167
+ color: var(--cd-ui-text);
1168
+ font-size: 13px;
1169
+ line-height: 1.5;
1170
+ overflow-wrap: anywhere;
1171
+ }
1172
+ .cd-shell-toast .cd-shell-toast-action {
1173
+ height: var(--cd-shell-ziel);
1174
+ }
1175
+ .cd-shell-toast-close {
1176
+ box-sizing: border-box;
1177
+ display: inline-grid;
1178
+ flex: none;
1179
+ place-items: center;
1180
+ width: var(--cd-shell-ziel);
1181
+ height: var(--cd-shell-ziel);
1182
+ margin: 0;
1183
+ padding: 0;
1184
+ color: var(--cd-ui-text);
1185
+ background: transparent;
1186
+ border: 0;
1187
+ border-radius: var(--cd-radius-sm);
1188
+ cursor: pointer;
1189
+ transition: background-color var(--cd-motion-fast) var(--cd-ease), color var(--cd-motion-fast) var(--cd-ease);
1190
+ }
1191
+ .cd-shell-toast-close:hover {
1192
+ color: var(--cd-ui-interaktion);
1193
+ background: var(--cd-ui-hover);
1194
+ }
1195
+ .cd-shell-toast-close svg {
1196
+ display: block;
1197
+ flex: none;
1198
+ }
1199
+ .cd-shell-toast[data-leaving] {
1200
+ pointer-events: none;
1201
+ animation: cd-shell-toast-out var(--cd-motion-base) var(--cd-ease) forwards;
1202
+ }
1203
+ @keyframes cd-shell-toast-in {
1204
+ from {
1205
+ opacity: 0;
1206
+ transform: translateY(8px);
1207
+ }
1208
+ }
1209
+ @keyframes cd-shell-toast-out {
1210
+ to {
1211
+ opacity: 0;
1212
+ transform: translateY(8px);
1213
+ }
1214
+ }
1215
+ .cd-shell-live {
1216
+ position: absolute;
1217
+ width: 1px;
1218
+ height: 1px;
1219
+ margin: -1px;
1220
+ padding: 0;
1221
+ overflow: hidden;
1222
+ clip-path: inset(50%);
1223
+ white-space: nowrap;
1224
+ border: 0;
1225
+ pointer-events: none;
1226
+ }
1227
+ .cd-shell-problems-popover {
1228
+ --modeler-shell-problems-bottom: calc( var(--cd-shell-rand) + var(--cd-shell-zeile) + var(--cd-shell-luecke) );
1229
+ position: absolute;
1230
+ left: var(--cd-shell-rand);
1231
+ bottom: var(--modeler-shell-problems-bottom);
1232
+ box-sizing: border-box;
1233
+ display: flex;
1234
+ flex-direction: column;
1235
+ width: min(320px, 100cqw - 2 * var(--cd-shell-rand));
1236
+ max-height: min(320px, 100cqh - var(--modeler-shell-problems-bottom) - var(--cd-shell-rand));
1237
+ margin: 0;
1238
+ padding: 6px;
1239
+ color: var(--cd-ui-text);
1240
+ font-size: 13px;
1241
+ font-weight: 400;
1242
+ line-height: 1.5;
1243
+ background: var(--cd-ui-flaeche-hoch);
1244
+ border: 1px solid var(--cd-ui-linie);
1245
+ border-radius: var(--cd-radius-md);
1246
+ box-shadow: var(--cd-shadow-3);
1247
+ pointer-events: auto;
1248
+ user-select: none;
1249
+ -webkit-user-select: none;
1250
+ animation: cd-shell-problems-in var(--cd-motion-fast) var(--cd-ease-out);
1251
+ }
1252
+ .cd-shell[data-cd-shell-host=web] .cd-shell-problems-popover {
1253
+ --modeler-shell-problems-bottom: calc( var(--cd-shell-rand) + var(--modeler-shell-legal-height, 20px) + var(--cd-shell-luecke) + var(--cd-shell-zeile) + var(--cd-shell-luecke) );
1254
+ }
1255
+ .cd-shell-problems-popover[hidden] {
1256
+ display: none;
1257
+ }
1258
+ .cd-shell-problems-popover:focus {
1259
+ outline: none;
1260
+ }
1261
+ .cd-shell-problems-popover:focus-visible {
1262
+ outline: 2px solid var(--cd-ui-fokus);
1263
+ outline-offset: -2px;
1264
+ }
1265
+ .cd-shell-problems-popover-title {
1266
+ flex: none;
1267
+ margin: 0;
1268
+ padding: 8px 12px 4px;
1269
+ color: var(--cd-ui-text);
1270
+ font-size: 13px;
1271
+ font-weight: 600;
1272
+ line-height: 1.5;
1273
+ }
1274
+ .cd-shell-problems-list {
1275
+ flex: 1 1 auto;
1276
+ min-height: 0;
1277
+ margin: 0;
1278
+ padding: 0;
1279
+ overflow-y: auto;
1280
+ overscroll-behavior: contain;
1281
+ list-style: none;
1282
+ }
1283
+ .cd-shell-problems-list > li {
1284
+ display: block;
1285
+ margin: 0;
1286
+ padding: 0;
1287
+ list-style: none;
1288
+ }
1289
+ .cd-shell-problem {
1290
+ box-sizing: border-box;
1291
+ display: grid;
1292
+ grid-template-columns: 16px minmax(0, 1fr);
1293
+ column-gap: 12px;
1294
+ align-items: start;
1295
+ width: 100%;
1296
+ min-height: var(--cd-shell-eintrag);
1297
+ margin: 0;
1298
+ padding: 8px 12px;
1299
+ color: var(--cd-ui-text);
1300
+ font-size: 13px;
1301
+ font-weight: 400;
1302
+ line-height: 1.5;
1303
+ text-align: left;
1304
+ background: transparent;
1305
+ border: 0;
1306
+ border-radius: var(--cd-radius-sm);
1307
+ }
1308
+ button.cd-shell-problem {
1309
+ cursor: pointer;
1310
+ transition: background-color var(--cd-motion-fast) var(--cd-ease);
1311
+ }
1312
+ button.cd-shell-problem:hover,
1313
+ button.cd-shell-problem:focus-visible {
1314
+ background: var(--cd-ui-hover);
1315
+ }
1316
+ .cd-shell-problem-icon {
1317
+ display: grid;
1318
+ grid-row: 1 / span 2;
1319
+ place-items: center;
1320
+ width: 16px;
1321
+ height: 16px;
1322
+ margin-top: 2px;
1323
+ }
1324
+ .cd-shell-problem-icon svg {
1325
+ display: block;
1326
+ flex: none;
1327
+ }
1328
+ .cd-shell-problem[data-severity=error] .cd-shell-problem-icon {
1329
+ color: var(--cd-ui-danger);
1330
+ }
1331
+ .cd-shell-problem[data-severity=warning] .cd-shell-problem-icon {
1332
+ color: var(--cd-ui-warning);
1333
+ }
1334
+ .cd-shell-problem-message {
1335
+ grid-column: 2;
1336
+ color: var(--cd-ui-text);
1337
+ overflow-wrap: anywhere;
1338
+ }
1339
+ .cd-shell-problem-location {
1340
+ grid-column: 2;
1341
+ color: var(--cd-ui-text-leise);
1342
+ overflow-wrap: anywhere;
1343
+ }
1344
+ @keyframes cd-shell-problems-in {
1345
+ from {
1346
+ opacity: 0;
1347
+ transform: translateY(4px);
1348
+ }
1349
+ }
1350
+ .cd-shell :is(.cd-shell-toast-close, .cd-shell-problem):focus {
1351
+ outline: none;
1352
+ }
1353
+ .cd-shell :is(.cd-shell-toast-close, .cd-shell-toast-action, .cd-shell-problem):focus-visible {
1354
+ outline: 2px solid var(--cd-ui-fokus);
1355
+ outline-offset: -2px;
1356
+ }
1357
+ .cd-shell:is([data-cd-kontrast=hoch], [data-cd-kontrast=hoch] *) :is(.cd-shell-toast, .cd-shell-problems-popover) {
1358
+ box-shadow: none;
1359
+ }
1360
+ .cd-shell:is([data-cd-kontrast=hoch], [data-cd-kontrast=hoch] *) :is(.cd-shell-toast-close, .cd-shell-toast-action, .cd-shell-problem, .cd-shell-problems-popover):focus-visible {
1361
+ outline-width: 3px;
1362
+ outline-offset: -3px;
1363
+ }
1364
+ @media (forced-colors: active) {
1365
+ .cd-shell :is(.cd-shell-toast, .cd-shell-problems-popover) {
1366
+ border-color: CanvasText;
1367
+ }
1368
+ .cd-shell .cd-shell-toast::before,
1369
+ .cd-shell .cd-shell-toast-dot {
1370
+ forced-color-adjust: none;
1371
+ background: CanvasText;
1372
+ }
1373
+ .cd-shell :is(.cd-shell-toast-close, .cd-shell-toast-action, .cd-shell-problem, .cd-shell-problems-popover):focus-visible {
1374
+ outline-color: Highlight;
1375
+ }
1376
+ .cd-shell button.cd-shell-problem:hover:not(:focus-visible) {
1377
+ outline: 1px solid Highlight;
1378
+ outline-offset: -1px;
1379
+ }
1380
+ }
1381
+ @media (prefers-reduced-motion: reduce) {
1382
+ .cd-shell :is(.cd-shell-toast, .cd-shell-problems-popover) {
1383
+ animation: none;
1384
+ }
1385
+ }
1386
+ html.cd-shell-reduce-motion .cd-shell :is(.cd-shell-toast, .cd-shell-problems-popover) {
1387
+ animation: none;
1388
+ }
1389
+
701
1390
  /* src/diagram-js/palette.css */
702
1391
  .djs-palette[data-chrome=palette] {
703
1392
  --modeler-shell-palette-focus-width: 2px;
@@ -2,9 +2,9 @@ import {
2
2
  connectThemeBridge,
3
3
  currentAppearance,
4
4
  renderWebviewHtml
5
- } from "./chunk-RJRFR6N3.js";
5
+ } from "./chunk-KYDG5DMX.js";
6
6
  import "./chunk-N4QXFF3A.js";
7
- import "./chunk-5JSZ4VGA.js";
7
+ import "./chunk-OADW3GPA.js";
8
8
 
9
9
  // src/testing/vscode-stub.ts
10
10
  var BODY_CLASSES = {