@eccenca/gui-elements 23.2.0 → 23.3.0-rc.1

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 (149) hide show
  1. package/CHANGELOG.md +53 -0
  2. package/dist/cjs/cmem/react-flow/ReactFlow/ReactFlow.js +5 -1
  3. package/dist/cjs/cmem/react-flow/ReactFlow/ReactFlow.js.map +1 -1
  4. package/dist/cjs/cmem/react-flow/StickyNoteModal/StickyNoteModal.js +9 -11
  5. package/dist/cjs/cmem/react-flow/StickyNoteModal/StickyNoteModal.js.map +1 -1
  6. package/dist/cjs/cmem/react-flow/extensions/ReactFlowHotkeyContext.js +12 -0
  7. package/dist/cjs/cmem/react-flow/extensions/ReactFlowHotkeyContext.js.map +1 -0
  8. package/dist/cjs/common/index.js +5 -2
  9. package/dist/cjs/common/index.js.map +1 -1
  10. package/dist/cjs/common/utils/globalVars.js +21 -0
  11. package/dist/cjs/common/utils/globalVars.js.map +1 -0
  12. package/dist/cjs/components/Application/ApplicationHeader.js +2 -3
  13. package/dist/cjs/components/Application/ApplicationHeader.js.map +1 -1
  14. package/dist/cjs/components/Dialog/Modal.js +35 -8
  15. package/dist/cjs/components/Dialog/Modal.js.map +1 -1
  16. package/dist/cjs/components/Dialog/SimpleDialog.js +15 -2
  17. package/dist/cjs/components/Dialog/SimpleDialog.js.map +1 -1
  18. package/dist/cjs/components/Icon/IconButton.js +1 -1
  19. package/dist/cjs/components/Icon/IconButton.js.map +1 -1
  20. package/dist/cjs/components/Icon/canonicalIconNames.js +1 -0
  21. package/dist/cjs/components/Icon/canonicalIconNames.js.map +1 -1
  22. package/dist/cjs/components/OverviewItem/OverviewItemDepiction.js +3 -6
  23. package/dist/cjs/components/OverviewItem/OverviewItemDepiction.js.map +1 -1
  24. package/dist/cjs/components/PropertyValuePair/PropertyName.js +3 -3
  25. package/dist/cjs/components/PropertyValuePair/PropertyName.js.map +1 -1
  26. package/dist/cjs/components/Separation/Spacing.js +18 -4
  27. package/dist/cjs/components/Separation/Spacing.js.map +1 -1
  28. package/dist/cjs/components/Table/TableExpandHeader.js +7 -8
  29. package/dist/cjs/components/Table/TableExpandHeader.js.map +1 -1
  30. package/dist/cjs/components/TextField/TextField.js +23 -3
  31. package/dist/cjs/components/TextField/TextField.js.map +1 -1
  32. package/dist/cjs/extensions/codemirror/CodeMirror.js +39 -7
  33. package/dist/cjs/extensions/codemirror/CodeMirror.js.map +1 -1
  34. package/dist/cjs/extensions/react-flow/edges/EdgeLabel.js +10 -9
  35. package/dist/cjs/extensions/react-flow/edges/EdgeLabel.js.map +1 -1
  36. package/dist/cjs/extensions/react-flow/handles/HandleContent.js +4 -4
  37. package/dist/cjs/extensions/react-flow/handles/HandleContent.js.map +1 -1
  38. package/dist/cjs/extensions/react-flow/handles/HandleDefault.js +56 -6
  39. package/dist/cjs/extensions/react-flow/handles/HandleDefault.js.map +1 -1
  40. package/dist/cjs/extensions/react-flow/handles/HandleTools.js +41 -0
  41. package/dist/cjs/extensions/react-flow/handles/HandleTools.js.map +1 -0
  42. package/dist/cjs/extensions/react-flow/index.js +2 -0
  43. package/dist/cjs/extensions/react-flow/index.js.map +1 -1
  44. package/dist/cjs/extensions/react-flow/nodes/NodeContent.js +42 -13
  45. package/dist/cjs/extensions/react-flow/nodes/NodeContent.js.map +1 -1
  46. package/dist/esm/cmem/markdown/Markdown.js +1 -1
  47. package/dist/esm/cmem/react-flow/ReactFlow/ReactFlow.js +5 -1
  48. package/dist/esm/cmem/react-flow/ReactFlow/ReactFlow.js.map +1 -1
  49. package/dist/esm/cmem/react-flow/StickyNoteModal/StickyNoteModal.js +9 -11
  50. package/dist/esm/cmem/react-flow/StickyNoteModal/StickyNoteModal.js.map +1 -1
  51. package/dist/esm/cmem/react-flow/extensions/ReactFlowHotkeyContext.js +6 -0
  52. package/dist/esm/cmem/react-flow/extensions/ReactFlowHotkeyContext.js.map +1 -0
  53. package/dist/esm/common/index.js +5 -2
  54. package/dist/esm/common/index.js.map +1 -1
  55. package/dist/esm/common/utils/globalVars.js +16 -0
  56. package/dist/esm/common/utils/globalVars.js.map +1 -0
  57. package/dist/esm/components/Application/ApplicationHeader.js +2 -3
  58. package/dist/esm/components/Application/ApplicationHeader.js.map +1 -1
  59. package/dist/esm/components/Dialog/Modal.js +36 -9
  60. package/dist/esm/components/Dialog/Modal.js.map +1 -1
  61. package/dist/esm/components/Dialog/SimpleDialog.js +14 -1
  62. package/dist/esm/components/Dialog/SimpleDialog.js.map +1 -1
  63. package/dist/esm/components/Icon/IconButton.js +1 -1
  64. package/dist/esm/components/Icon/IconButton.js.map +1 -1
  65. package/dist/esm/components/Icon/canonicalIconNames.js +1 -0
  66. package/dist/esm/components/Icon/canonicalIconNames.js.map +1 -1
  67. package/dist/esm/components/OverviewItem/OverviewItemDepiction.js +3 -6
  68. package/dist/esm/components/OverviewItem/OverviewItemDepiction.js.map +1 -1
  69. package/dist/esm/components/PropertyValuePair/PropertyName.js +3 -3
  70. package/dist/esm/components/PropertyValuePair/PropertyName.js.map +1 -1
  71. package/dist/esm/components/Separation/Spacing.js +28 -4
  72. package/dist/esm/components/Separation/Spacing.js.map +1 -1
  73. package/dist/esm/components/Table/TableExpandHeader.js +7 -8
  74. package/dist/esm/components/Table/TableExpandHeader.js.map +1 -1
  75. package/dist/esm/components/TextField/TextField.js +25 -5
  76. package/dist/esm/components/TextField/TextField.js.map +1 -1
  77. package/dist/esm/extensions/codemirror/CodeMirror.js +49 -6
  78. package/dist/esm/extensions/codemirror/CodeMirror.js.map +1 -1
  79. package/dist/esm/extensions/react-flow/edges/EdgeLabel.js +10 -9
  80. package/dist/esm/extensions/react-flow/edges/EdgeLabel.js.map +1 -1
  81. package/dist/esm/extensions/react-flow/handles/HandleContent.js +16 -5
  82. package/dist/esm/extensions/react-flow/handles/HandleContent.js.map +1 -1
  83. package/dist/esm/extensions/react-flow/handles/HandleDefault.js +75 -9
  84. package/dist/esm/extensions/react-flow/handles/HandleDefault.js.map +1 -1
  85. package/dist/esm/extensions/react-flow/handles/HandleTools.js +61 -0
  86. package/dist/esm/extensions/react-flow/handles/HandleTools.js.map +1 -0
  87. package/dist/esm/extensions/react-flow/index.js +2 -0
  88. package/dist/esm/extensions/react-flow/index.js.map +1 -1
  89. package/dist/esm/extensions/react-flow/nodes/NodeContent.js +49 -20
  90. package/dist/esm/extensions/react-flow/nodes/NodeContent.js.map +1 -1
  91. package/dist/types/cmem/react-flow/extensions/ReactFlowHotkeyContext.d.ts +8 -0
  92. package/dist/types/common/index.d.ts +4 -0
  93. package/dist/types/common/utils/globalVars.d.ts +2 -0
  94. package/dist/types/components/Application/ApplicationHeader.d.ts +1 -2
  95. package/dist/types/components/Dialog/Modal.d.ts +22 -7
  96. package/dist/types/components/Dialog/SimpleDialog.d.ts +12 -1
  97. package/dist/types/components/Icon/canonicalIconNames.d.ts +1 -1
  98. package/dist/types/components/PropertyValuePair/PropertyName.d.ts +7 -1
  99. package/dist/types/components/Separation/Spacing.d.ts +2 -2
  100. package/dist/types/components/Table/TableExpandHeader.d.ts +5 -1
  101. package/dist/types/components/TextField/TextField.d.ts +4 -2
  102. package/dist/types/extensions/codemirror/CodeMirror.d.ts +17 -3
  103. package/dist/types/extensions/react-flow/edges/EdgeLabel.d.ts +7 -3
  104. package/dist/types/extensions/react-flow/handles/HandleContent.d.ts +7 -2
  105. package/dist/types/extensions/react-flow/handles/HandleDefault.d.ts +15 -6
  106. package/dist/types/extensions/react-flow/handles/HandleTools.d.ts +7 -0
  107. package/dist/types/extensions/react-flow/index.d.ts +2 -0
  108. package/dist/types/extensions/react-flow/nodes/NodeContent.d.ts +24 -8
  109. package/package.json +19 -17
  110. package/scripts/compile-sass.ts +1 -1
  111. package/src/cmem/react-flow/ReactFlow/ReactFlow.tsx +10 -0
  112. package/src/cmem/react-flow/StickyNoteModal/StickyNoteModal.tsx +10 -12
  113. package/src/cmem/react-flow/extensions/ReactFlowHotkeyContext.ts +14 -0
  114. package/src/common/index.ts +6 -3
  115. package/src/common/utils/globalVars.ts +18 -0
  116. package/src/components/Application/ApplicationHeader.tsx +8 -13
  117. package/src/components/Application/_header.scss +17 -17
  118. package/src/components/Application/_toolbar.scss +22 -33
  119. package/src/components/Application/application.scss +8 -6
  120. package/src/components/AutoSuggestion/tests/AutoSuggestion.test.tsx +34 -21
  121. package/src/components/AutoSuggestion/tests/SingleLineCodeEditor.test.tsx +20 -9
  122. package/src/components/Dialog/Modal.tsx +96 -39
  123. package/src/components/Dialog/SimpleDialog.tsx +19 -1
  124. package/src/components/Dialog/dialog.scss +33 -17
  125. package/src/components/Icon/IconButton.tsx +1 -1
  126. package/src/components/Icon/canonicalIconNames.tsx +2 -0
  127. package/src/components/OverviewItem/OverviewItemDepiction.tsx +8 -16
  128. package/src/components/PropertyValuePair/PropertyName.tsx +15 -4
  129. package/src/components/PropertyValuePair/propertyvalue.scss +1 -0
  130. package/src/components/Separation/Spacing.tsx +12 -8
  131. package/src/components/Table/TableExpandHeader.tsx +21 -18
  132. package/src/components/TextField/TextField.tsx +32 -6
  133. package/src/components/Tooltip/tooltip.scss +15 -1
  134. package/src/extensions/codemirror/CodeMirror.tsx +62 -8
  135. package/src/extensions/codemirror/_codemirror.scss +53 -8
  136. package/src/extensions/react-flow/edges/EdgeLabel.tsx +78 -81
  137. package/src/extensions/react-flow/edges/_edges.scss +62 -67
  138. package/src/extensions/react-flow/edges/stories/EdgeDefault.stories.tsx +43 -44
  139. package/src/extensions/react-flow/handles/HandleContent.tsx +14 -13
  140. package/src/extensions/react-flow/handles/HandleDefault.tsx +121 -44
  141. package/src/extensions/react-flow/handles/HandleTools.tsx +46 -0
  142. package/src/extensions/react-flow/handles/_handles.scss +135 -50
  143. package/src/extensions/react-flow/handles/stories/HandleDefault.stories.tsx +69 -25
  144. package/src/extensions/react-flow/index.ts +2 -0
  145. package/src/extensions/react-flow/nodes/NodeContent.tsx +97 -32
  146. package/src/extensions/react-flow/nodes/_nodes.scss +170 -110
  147. package/src/extensions/react-flow/nodes/stories/NodeContent.stories.tsx +75 -52
  148. package/src/extensions/react-flow/nodes/stories/NodeDefault.stories.tsx +34 -36
  149. package/src/extensions/react-flow/nodes/stories/nodeTypes.ts +11 -0
@@ -1,50 +1,50 @@
1
+ @use "sass:color";
2
+
1
3
  .react-flow__node {
2
- &.selected:before {
3
- content: " ";
4
+ &.selected::before {
4
5
  position: absolute;
5
- top: -6 * $reactflow-node-border-width;
6
- right: -6 * $reactflow-node-border-width;
7
- bottom: -6 * $reactflow-node-border-width;
8
- left: -6 * $reactflow-node-border-width;
9
- border-width: 1px;
6
+ inset: -6 * $reactflow-node-border-width;
7
+ z-index: 0;
8
+ content: " ";
9
+ background-color: rgba($reactflow-edge-stroke-color-selected, 0.05);
10
10
  border-color: $reactflow-edge-stroke-color-selected;
11
- border-radius: $reactflow-node-border-radius;
12
11
  border-style: dotted;
13
- background-color: rgba($reactflow-edge-stroke-color-selected, 0.05);
14
- z-index: 0;
12
+ border-width: 1px;
13
+ border-radius: $reactflow-node-border-radius;
15
14
  }
16
15
 
17
16
  &.react-flow__node-default {
17
+ width: unset !important;
18
+ height: unset !important;
19
+ padding: unset !important;
20
+ color: unset !important;
21
+ text-align: unset !important;
22
+
18
23
  // remove default styles
19
24
  background-color: unset !important;
20
- color: unset !important;
21
25
  border: unset !important;
22
- height: unset !important;
23
- width: unset !important;
24
- text-align: unset !important;
25
- padding: unset !important;
26
26
 
27
- &.selected, &.selected:hover {
27
+ &.selected,
28
+ &.selected:hover {
28
29
  box-shadow: none;
29
30
  }
30
31
  }
31
32
  }
32
33
 
33
34
  .#{$eccgui}-graphviz__node {
35
+ position: relative;
36
+ z-index: 1;
34
37
  display: flex;
35
38
  flex-direction: column;
36
- justify-content: center;
37
39
  align-items: stretch;
38
- position: relative;
39
- z-index: 1;
40
-
40
+ justify-content: center;
41
41
  font-size: $reactflow-node-font-size;
42
42
  color: $reactflow-node-color;
43
43
  background-color: $reactflow-node-background-color;
44
- border-width: $reactflow-node-border-width;
45
44
  border-color: $reactflow-node-border-color;
46
- border-radius: $reactflow-node-border-radius;
47
45
  border-style: solid;
46
+ border-width: $reactflow-node-border-width;
47
+ border-radius: $reactflow-node-border-radius;
48
48
 
49
49
  &:hover {
50
50
  box-shadow: 0 0 0 6 * $reactflow-node-border-width rgba($reactflow-edge-stroke-color-selected, 0.05);
@@ -53,7 +53,6 @@
53
53
 
54
54
  .#{$eccgui}-graphviz__node--minimal-rectangular,
55
55
  .#{$eccgui}-graphviz__node--minimal-circular {
56
-
57
56
  /* FIXME: does not work correctly with tooltips around
58
57
  transition: width $reactflow-transition-time $reactflow-transition-function,
59
58
  max-height $reactflow-transition-time $reactflow-transition-function,
@@ -61,9 +60,9 @@
61
60
  */
62
61
 
63
62
  .react-flow__node:not(.selected) /*:not(:hover)*/ & {
63
+ z-index: 3;
64
64
  width: $reactflow-node-basesize;
65
65
  max-height: $reactflow-node-basesize;
66
- z-index: 3;
67
66
 
68
67
  .#{$eccgui}-graphviz__node__header-depiction + .#{$eccgui}-graphviz__node__header-label,
69
68
  .#{$eccgui}-graphviz__node__header-menu,
@@ -74,8 +73,8 @@
74
73
  }
75
74
 
76
75
  .#{$eccgui}-graphviz__node__header-depiction {
77
- max-height: calc(#{$reactflow-node-basesize} - #{2 * $reactflow-node-border-width});
78
76
  max-width: calc(#{$reactflow-node-basesize} - #{2 * $reactflow-node-border-width});
77
+ max-height: calc(#{$reactflow-node-basesize} - #{2 * $reactflow-node-border-width});
79
78
  }
80
79
  }
81
80
  }
@@ -92,15 +91,15 @@
92
91
 
93
92
  .#{$eccgui}-graphviz__node__header {
94
93
  box-sizing: border-box;
94
+ display: flex;
95
95
  flex-grow: 0;
96
96
  flex-shrink: 0;
97
- display: flex;
98
- justify-content: space-between;
99
97
  align-items: center;
98
+ justify-content: space-between;
100
99
  min-height: $reactflow-node-basesize;
101
100
 
102
101
  .#{$ns}-button:not([class*="#{$ns}-intent-"]) {
103
- color: currentColor;
102
+ color: currentcolor;
104
103
  }
105
104
  }
106
105
 
@@ -121,17 +120,18 @@
121
120
  }
122
121
 
123
122
  .#{$eccgui}-graphviz__node__header-depiction {
124
- border-radius: $reactflow-node-border-radius;
123
+ display: flex;
124
+ align-items: center;
125
+ justify-content: center;
126
+
125
127
  /* TODO: does not work correctly with tooltips around
126
128
  transition: border-radius $reactflow-transition-time $reactflow-transition-function;
127
129
  */
128
130
  min-width: calc(#{$reactflow-node-basesize} - #{2 * $reactflow-node-border-width});
129
- min-height: calc(#{$reactflow-node-basesize} - #{2 * $reactflow-node-border-width});
130
131
  max-width: calc(2 * (#{$reactflow-node-basesize} - #{2 * $reactflow-node-border-width}));
132
+ min-height: calc(#{$reactflow-node-basesize} - #{2 * $reactflow-node-border-width});
131
133
  overflow: hidden;
132
- display: flex;
133
- justify-content: center;
134
- align-items: center;
134
+ border-radius: $reactflow-node-border-radius;
135
135
 
136
136
  & .#{$eccgui}-depiction {
137
137
  flex-grow: 0;
@@ -150,8 +150,8 @@
150
150
 
151
151
  .#{$eccgui}-graphviz__node__header--large & {
152
152
  min-width: calc(#{$reactflow-node-largesize} - #{2 * $reactflow-node-border-width});
153
- min-height: calc(#{$reactflow-node-largesize} - #{2 * $reactflow-node-border-width});
154
153
  max-width: calc(2 * (#{$reactflow-node-largesize} - #{2 * $reactflow-node-border-width}));
154
+ min-height: calc(#{$reactflow-node-largesize} - #{2 * $reactflow-node-border-width});
155
155
 
156
156
  .#{$eccgui}-depiction__image {
157
157
  height: calc(#{$reactflow-node-largesize} - #{2 * $reactflow-node-border-width});
@@ -160,33 +160,33 @@
160
160
  }
161
161
 
162
162
  .#{$eccgui}-graphviz__node__header-label {
163
- margin: 0 $eccgui-size-block-whitespace * 0.25;
164
- white-space: nowrap;
165
- overflow: hidden;
166
- text-overflow: ellipsis;
167
- flex-grow: 1;
168
- flex-shrink: 1;
169
163
  display: inline-flex;
170
164
  flex-direction: column;
165
+ flex-grow: 1;
166
+ flex-shrink: 1;
167
+ margin: 0 $eccgui-size-block-whitespace * 0.25;
168
+ overflow: hidden;
171
169
  text-align: left;
170
+ text-overflow: ellipsis;
171
+ white-space: nowrap;
172
172
  }
173
173
 
174
174
  .#{$eccgui}-graphviz__node__header-label__mainline,
175
175
  .#{$eccgui}-graphviz__node__header-label__subline {
176
+ flex-grow: 0;
177
+ flex-shrink: 0;
176
178
  overflow: hidden;
177
179
  text-overflow: ellipsis;
178
180
  white-space: nowrap;
179
- flex-grow: 0;
180
- flex-shrink: 0;
181
181
  }
182
182
 
183
183
  .#{$eccgui}-graphviz__node__content {
184
+ flex-grow: 1;
184
185
  padding: $eccgui-size-block-whitespace * 0.5 $eccgui-size-block-whitespace * 0.25;
186
+ margin: 0.1px; // workaround that Firefox displays node borders better when canvas is scaled down
185
187
  overflow: hidden;
186
- background-color: $card-background-color;
187
188
  color: $eccgui-color-workspace-text;
188
- margin: 0.1px; // workaround that Firefox displays node borders better when canvas is scaled down
189
- flex-grow: 1;
189
+ background-color: $card-background-color;
190
190
 
191
191
  &:hover {
192
192
  overflow: auto;
@@ -194,7 +194,7 @@
194
194
  }
195
195
 
196
196
  .#{$eccgui}-graphviz__node__footer {
197
- padding: $eccgui-size-block-whitespace* 0.5 $eccgui-size-block-whitespace* 0.25;
197
+ padding: $eccgui-size-block-whitespace * 0.5 $eccgui-size-block-whitespace * 0.25;
198
198
  font-size: $reactflow-node-font-size;
199
199
  color: $reactflow-node-color;
200
200
  background-color: $reactflow-node-background-color;
@@ -204,8 +204,8 @@
204
204
 
205
205
  .#{$eccgui}-graphviz__node__resizer,
206
206
  .#{$eccgui}-graphviz__node.is-resizeable {
207
- min-height: 2.5 * $reactflow-node-basesize;
208
207
  min-width: 2.5 * $reactflow-node-basesize;
208
+ min-height: 2.5 * $reactflow-node-basesize;
209
209
  }
210
210
 
211
211
  .#{$eccgui}-graphviz__node__resizer {
@@ -255,8 +255,8 @@
255
255
  }
256
256
 
257
257
  .#{$eccgui}-graphviz__node--border-double {
258
- border-width: 1.5 * $reactflow-node-border-width;
259
258
  border-style: double;
259
+ border-width: 1.5 * $reactflow-node-border-width;
260
260
  }
261
261
 
262
262
  .#{$eccgui}-graphviz__node--border-dashed {
@@ -282,21 +282,20 @@
282
282
  .#{$eccgui}-graphviz__node--animated:not([class*="#{$eccgui}-intent--"]) {
283
283
  --node-intent-color: #{$eccgui-color-workspace-text};
284
284
 
285
- &:after {
285
+ &::after {
286
286
  --node-intent-angle: #{$reactflow-transition-anglestart};
287
- content: " ";
288
- display: block;
287
+
289
288
  position: absolute;
290
- top: -2 * $reactflow-node-border-width;
291
- left: -2 * $reactflow-node-border-width;
292
- bottom: -2 * $reactflow-node-border-width;
293
- right: -2 * $reactflow-node-border-width;
289
+ inset: -2 * $reactflow-node-border-width;
294
290
  z-index: -1;
291
+ display: block;
292
+ content: " ";
295
293
  border-style: solid;
296
294
  border-width: 2 * $reactflow-node-border-width;
297
- @include node-intent-gradient;
298
295
  border-image-slice: 1;
299
296
  border-image-width: 2 * $reactflow-node-border-width;
297
+
298
+ @include node-intent-gradient;
300
299
  }
301
300
  }
302
301
 
@@ -327,21 +326,17 @@
327
326
  // hode highlight mark
328
327
 
329
328
  .#{$eccgui}-graphviz__node[class*="#{$eccgui}-graphviz__node--highlight-"] {
330
-
331
- &:before {
332
- opacity: $eccgui-opacity-disabled;
333
- content: " ";
334
- display: block;
329
+ &::before {
335
330
  position: absolute;
336
- top: -2 * $reactflow-node-border-width;
337
- left: -2 * $reactflow-node-border-width;
338
- bottom: -2 * $reactflow-node-border-width;
339
- right: -2 * $reactflow-node-border-width;
331
+ inset: -2 * $reactflow-node-border-width;
340
332
  z-index: -2;
341
- box-shadow:
342
- 0 0 0 2 * $reactflow-node-border-width var(--node-highlight-default-color),
343
- 0 0 0 3.5 * $reactflow-node-border-width var(--node-highlight-alternate-color, var(--node-highlight-default-color));
333
+ display: block;
334
+ content: " ";
344
335
  border: 0.1px solid transparent; // workaround for Firefox, otherwise shadows are overlayed
336
+ box-shadow: 0 0 0 2 * $reactflow-node-border-width var(--node-highlight-default-color),
337
+ 0 0 0 3.5 * $reactflow-node-border-width
338
+ var(--node-highlight-alternate-color, var(--node-highlight-default-color));
339
+ opacity: $eccgui-opacity-disabled;
345
340
  }
346
341
  }
347
342
 
@@ -364,7 +359,7 @@
364
359
 
365
360
  @property --node-intent-angle {
366
361
  // rule necessary, otherwise increasing --node-intent-angle for animation does not work correctly
367
- syntax: '<angle>';
362
+ syntax: "<angle>";
368
363
  initial-value: #{$reactflow-transition-anglestart};
369
364
  inherits: true;
370
365
  }
@@ -373,23 +368,99 @@
373
368
  animation: spinningborder 8 * $reactflow-transition-time linear infinite;
374
369
 
375
370
  @keyframes spinningborder {
376
- to {
371
+ 100% {
377
372
  --node-intent-angle: #{$reactflow-transition-anglestart + 360deg};
378
373
  }
374
+
379
375
  @for $step from 1 through 10 {
380
376
  /*
381
377
  This is a fix/workaround for Firefox/Gecko.
382
378
  Looks like "animation" the custom property is not enough.
383
379
  It is also necessary to repeat the rule.
384
380
  */
385
- #{$step*10}#{"%"} {
381
+ #{$step * 10}#{"%"} {
386
382
  --node-intent-angle: #{$reactflow-transition-anglestart + $step * 36deg};
383
+
387
384
  @include node-intent-gradient;
388
385
  }
389
386
  }
390
387
  }
391
388
  }
392
389
 
390
+ // node introduction animation
391
+
392
+ .#{$eccgui}-graphviz__node--introduction {
393
+ visibility: hidden;
394
+ animation-play-state: paused;
395
+
396
+ & ~ * {
397
+ visibility: hidden;
398
+ }
399
+ }
400
+
401
+ .#{$eccgui}-graphviz__node--introduction-runs {
402
+ animation-name: outline;
403
+ animation-duration: var(--node-introduction-time);
404
+ animation-play-state: running;
405
+ animation-timing-function: linear;
406
+
407
+ &[data-introduction-animation="landing"] {
408
+ animation-name: landing;
409
+
410
+ & ~ * {
411
+ visibility: hidden;
412
+ }
413
+ }
414
+
415
+ @keyframes landing {
416
+ 0% {
417
+ filter: blur($eccgui-size-block-whitespace);
418
+ outline: solid 0 rgb(0 0 0 / 0%);
419
+ outline-offset: 0;
420
+ opacity: 0;
421
+ transform: scale(2);
422
+ }
423
+
424
+ 61% {
425
+ filter: blur(0);
426
+ outline: solid 0 rgb(0 0 0 / 39%);
427
+ outline-offset: 0;
428
+ opacity: 1;
429
+ transform: scale(1);
430
+ }
431
+
432
+ 100% {
433
+ filter: blur(0);
434
+ outline: solid $eccgui-size-block-whitespace rgb(0 0 0 / 0%);
435
+ outline-offset: 2 * $eccgui-size-block-whitespace;
436
+ opacity: 1;
437
+ transform: scale(1);
438
+ }
439
+ }
440
+
441
+ @keyframes outline {
442
+ 0% {
443
+ outline: solid 0 rgba($eccgui-color-accent, 0);
444
+ outline-offset: 0;
445
+ }
446
+
447
+ 9% {
448
+ outline: solid 0.5 * $eccgui-size-block-whitespace rgba($eccgui-color-accent, 0.39);
449
+ outline-offset: 0;
450
+ }
451
+
452
+ 85% {
453
+ outline: solid 0.5 * $eccgui-size-block-whitespace rgba($eccgui-color-accent, 0.39);
454
+ outline-offset: 0;
455
+ }
456
+
457
+ 100% {
458
+ outline: solid 0 rgba($eccgui-color-accent, 0);
459
+ outline-offset: 2 * $eccgui-size-block-whitespace;
460
+ }
461
+ }
462
+ }
463
+
393
464
  // Node tools
394
465
 
395
466
  .#{$eccgui}-graphviz__nodetools__content {
@@ -401,10 +472,10 @@
401
472
  // Node content extension
402
473
 
403
474
  .#{$eccgui}-graphviz__node__extension {
404
- background-color: $reactflow-node-background-color;
405
- min-height: $eccgui-size-block-whitespace* 0.5;
406
475
  flex-grow: 1;
407
476
  flex-shrink: 1;
477
+ min-height: $eccgui-size-block-whitespace * 0.5;
478
+ background-color: $reactflow-node-background-color;
408
479
 
409
480
  .#{$eccgui}-graphviz__node--tiny & {
410
481
  max-height: $reactflow-node-basesize * 3;
@@ -430,23 +501,22 @@
430
501
  .#{$eccgui}-graphviz__node__extension--expanded {
431
502
  display: flex;
432
503
  flex-direction: column;
504
+
433
505
  // separation between node content and extension
434
506
  // do not inherit styles here
435
- border-top-color: $eccgui-color-separation-divider !important;
436
- border-top-width: 1px !important;
437
- border-top-style: solid !important;
507
+ border-top: 1px solid $eccgui-color-separation-divider !important;
438
508
  border-top-left-radius: 0 !important;
439
509
  border-top-right-radius: 0 !important;
440
510
 
441
511
  &.#{$eccgui}-graphviz__node__extension--slideout {
442
512
  position: absolute;
443
513
  top: 100%;
444
- left: -1 * $reactflow-node-border-width;
445
514
  right: -1 * $reactflow-node-border-width;
446
- border-width: $reactflow-node-border-width;
515
+ left: -1 * $reactflow-node-border-width;
447
516
  border-color: $reactflow-node-border-color;
448
- border-radius: $reactflow-node-border-radius;
449
517
  border-style: solid;
518
+ border-width: $reactflow-node-border-width;
519
+ border-radius: $reactflow-node-border-radius;
450
520
  }
451
521
 
452
522
  &:not(.#{$eccgui}-graphviz__node__extension--slideout) + .#{$eccgui}-graphviz__node__footer {
@@ -456,16 +526,15 @@
456
526
 
457
527
  .#{$eccgui}-graphviz__node__extension-expandbutton {
458
528
  display: flex;
459
- min-height: 0;
460
- max-height: $eccgui-size-block-whitespace* 0.5;
461
529
  width: 100%;
530
+ min-height: 0;
531
+ max-height: $eccgui-size-block-whitespace * 0.5;
462
532
  }
463
533
 
464
534
  .#{$eccgui}-graphviz__node__extension-body {
465
- padding: $eccgui-size-block-whitespace* 0.5 $eccgui-size-block-whitespace* 0.25;
466
535
  flex-grow: 0;
467
536
  flex-shrink: 1;
468
- overflow: auto;
537
+ padding: $eccgui-size-block-whitespace * 0.5 $eccgui-size-block-whitespace * 0.25;
469
538
  overflow: auto;
470
539
 
471
540
  .#{$eccgui}-tag__item {
@@ -476,15 +545,15 @@
476
545
  }
477
546
 
478
547
  &:last-child {
479
- max-width: 100%
548
+ max-width: 100%;
480
549
  }
481
550
  }
482
551
  }
483
552
 
484
553
  .#{$eccgui}-graphviz__node__extension-actions {
485
- text-align: center;
486
554
  flex-grow: 0;
487
555
  flex-shrink: 0;
556
+ text-align: center;
488
557
  }
489
558
 
490
559
  // Node highlights (@deprecated) // FIXME: remove in v24.0.0
@@ -492,61 +561,52 @@
492
561
  .#{$eccgui}-graphviz__node--highlight-success,
493
562
  .#{$eccgui}-graphviz__node--highlight-warning,
494
563
  .#{$eccgui}-graphviz__node--highlight-danger {
495
- &:before {
496
- content: " ";
497
- display: block;
564
+ &::before {
498
565
  position: absolute;
499
- top: -2 * $reactflow-node-border-width;
500
- left: -2 * $reactflow-node-border-width;
501
- bottom: -2 * $reactflow-node-border-width;
502
- right: -2 * $reactflow-node-border-width;
566
+ inset: -2 * $reactflow-node-border-width;
567
+ z-index: -1;
568
+ display: block;
569
+ content: " ";
503
570
  border-radius: inherit;
504
571
  box-shadow: 0 0 0 2 * $reactflow-node-border-width $eccgui-color-danger-text !important;
505
- z-index: -1;
506
572
  }
507
573
  }
508
574
 
509
575
  .#{$eccgui}-graphviz__node--highlight-match,
510
576
  .#{$eccgui}-graphviz__node--highlight-altmatch {
511
- &:after {
512
- content: " ";
513
- display: block;
577
+ &::after {
514
578
  position: absolute;
515
- top: -2 * $reactflow-node-border-width;
516
- left: -2 * $reactflow-node-border-width;
517
- bottom: -2 * $reactflow-node-border-width;
518
- right: -2 * $reactflow-node-border-width;
579
+ inset: -2 * $reactflow-node-border-width;
580
+ z-index: -1;
581
+ display: block;
582
+ content: " ";
519
583
  border-radius: inherit;
520
584
  box-shadow: 0 0 0 2 * $reactflow-node-border-width $eccgui-color-accent;
521
- z-index: -1;
522
585
  }
523
586
 
524
587
  &.#{$eccgui}-graphviz__node--highlight-success,
525
588
  &.#{$eccgui}-graphviz__node--highlight-warning,
526
589
  &.#{$eccgui}-graphviz__node--highlight-danger {
527
- &:after {
528
- top: -4 * $reactflow-node-border-width;
529
- left: -4 * $reactflow-node-border-width;
530
- bottom: -4 * $reactflow-node-border-width;
531
- right: -4 * $reactflow-node-border-width;
590
+ &::after {
591
+ inset: -4 * $reactflow-node-border-width;
532
592
  }
533
593
  }
534
594
  }
535
595
 
536
596
  .#{$eccgui}-graphviz__node--highlight-success {
537
- &:before {
597
+ &::before {
538
598
  box-shadow: 0 0 0 2 * $reactflow-node-border-width $eccgui-color-success-text !important;
539
599
  }
540
600
  }
541
601
 
542
602
  .#{$eccgui}-graphviz__node--highlight-warning {
543
- &:before {
603
+ &::before {
544
604
  box-shadow: 0 0 0 2 * $reactflow-node-border-width $eccgui-color-warning-text !important;
545
605
  }
546
606
  }
547
607
 
548
608
  .#{$eccgui}-graphviz__node--highlight-altmatch {
549
- &:after {
550
- box-shadow: 0 0 0 2 * $reactflow-node-border-width complement($eccgui-color-primary) !important;
609
+ &::after {
610
+ box-shadow: 0 0 0 2 * $reactflow-node-border-width color.complement($eccgui-color-primary) !important;
551
611
  }
552
612
  }