@eccenca/gui-elements 24.4.1-featurepreparefinalnextcmem6943.0 → 24.4.1-featurepreparefinalnextcmem6943.2

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 (50) hide show
  1. package/CHANGELOG.md +10 -2
  2. package/dist/cjs/components/AutoSuggestion/AutoSuggestion.js +3 -4
  3. package/dist/cjs/components/AutoSuggestion/AutoSuggestion.js.map +1 -1
  4. package/dist/cjs/components/AutoSuggestion/AutoSuggestionList.js +1 -1
  5. package/dist/cjs/components/AutoSuggestion/AutoSuggestionList.js.map +1 -1
  6. package/dist/cjs/components/AutoSuggestion/ExtendedCodeEditor.js +1 -3
  7. package/dist/cjs/components/AutoSuggestion/ExtendedCodeEditor.js.map +1 -1
  8. package/dist/cjs/components/AutocompleteField/AutoCompleteField.js +2 -1
  9. package/dist/cjs/components/AutocompleteField/AutoCompleteField.js.map +1 -1
  10. package/dist/cjs/components/Form/FieldItem.js.map +1 -1
  11. package/dist/cjs/components/Spinner/Spinner.js +1 -4
  12. package/dist/cjs/components/Spinner/Spinner.js.map +1 -1
  13. package/dist/cjs/extensions/codemirror/CodeMirror.js +4 -3
  14. package/dist/cjs/extensions/codemirror/CodeMirror.js.map +1 -1
  15. package/dist/cjs/extensions/react-flow/edges/EdgeDefault.js.map +1 -1
  16. package/dist/cjs/extensions/react-flow/edges/EdgeDefaultV12.js +4 -4
  17. package/dist/cjs/extensions/react-flow/edges/EdgeDefaultV12.js.map +1 -1
  18. package/dist/esm/components/AutoSuggestion/AutoSuggestion.js +5 -6
  19. package/dist/esm/components/AutoSuggestion/AutoSuggestion.js.map +1 -1
  20. package/dist/esm/components/AutoSuggestion/AutoSuggestionList.js +1 -1
  21. package/dist/esm/components/AutoSuggestion/AutoSuggestionList.js.map +1 -1
  22. package/dist/esm/components/AutoSuggestion/ExtendedCodeEditor.js +1 -3
  23. package/dist/esm/components/AutoSuggestion/ExtendedCodeEditor.js.map +1 -1
  24. package/dist/esm/components/AutocompleteField/AutoCompleteField.js +2 -1
  25. package/dist/esm/components/AutocompleteField/AutoCompleteField.js.map +1 -1
  26. package/dist/esm/components/Form/FieldItem.js.map +1 -1
  27. package/dist/esm/components/Spinner/Spinner.js +3 -8
  28. package/dist/esm/components/Spinner/Spinner.js.map +1 -1
  29. package/dist/esm/extensions/codemirror/CodeMirror.js +4 -3
  30. package/dist/esm/extensions/codemirror/CodeMirror.js.map +1 -1
  31. package/dist/esm/extensions/react-flow/edges/EdgeDefault.js.map +1 -1
  32. package/dist/esm/extensions/react-flow/edges/EdgeDefaultV12.js +6 -6
  33. package/dist/esm/extensions/react-flow/edges/EdgeDefaultV12.js.map +1 -1
  34. package/dist/types/components/AutocompleteField/AutoCompleteField.d.ts +2 -1
  35. package/dist/types/components/Spinner/Spinner.d.ts +1 -7
  36. package/dist/types/extensions/codemirror/CodeMirror.d.ts +7 -3
  37. package/dist/types/extensions/react-flow/edges/EdgeDefault.d.ts +7 -1
  38. package/package.json +1 -1
  39. package/src/common/scss/_color-functions.scss +31 -3
  40. package/src/components/AutoSuggestion/AutoSuggestion.tsx +3 -4
  41. package/src/components/AutoSuggestion/AutoSuggestionList.tsx +1 -1
  42. package/src/components/AutoSuggestion/ExtendedCodeEditor.tsx +1 -5
  43. package/src/components/AutocompleteField/AutoCompleteField.tsx +2 -1
  44. package/src/components/Form/FieldItem.tsx +0 -9
  45. package/src/components/Spinner/Spinner.tsx +0 -8
  46. package/src/extensions/codemirror/CodeMirror.tsx +9 -3
  47. package/src/extensions/react-flow/edges/EdgeDefault.tsx +6 -4
  48. package/src/extensions/react-flow/edges/EdgeDefaultV12.tsx +17 -7
  49. package/src/extensions/react-flow/edges/stories/EdgeDefault.stories.tsx +0 -1
  50. package/src/extensions/react-flow/edges/stories/EdgeDefaultV12.stories.tsx +10 -1
@@ -36,7 +36,7 @@ import {
36
36
  } from "./tests/codemirrorTestHelper";
37
37
  import { ExtensionCreator } from "./types";
38
38
 
39
- export interface CodeEditorProps extends TestableComponent {
39
+ export interface CodeEditorProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "translate" | "onChange" | "onKeyDown" | "onMouseDown" | "onScroll">, TestableComponent {
40
40
  // Is called with the editor instance that allows access via the CodeMirror API
41
41
  setEditorView?: (editor: EditorView | undefined) => void;
42
42
  /**
@@ -100,7 +100,11 @@ export interface CodeEditorProps extends TestableComponent {
100
100
  /** Long lines are wrapped and displayed on multiple lines */
101
101
  wrapLines?: boolean;
102
102
 
103
- outerDivAttributes?: Omit<React.HTMLAttributes<HTMLDivElement>, "id">;
103
+ /**
104
+ * Add properties to the `div` used as warpper element.
105
+ * @deprecated (v26) You can now use all properties directly on `CodeEditor`.
106
+ */
107
+ outerDivAttributes?: Omit<React.HTMLAttributes<HTMLDivElement>, "id" | "data-test-id" | "data-testid" | "translate" | "onChange" | "onKeyDown" | "onMouseDown" | "onScroll">;
104
108
 
105
109
  /**
106
110
  * Size in spaces that is used for a tabulator key.
@@ -186,6 +190,7 @@ const ModeToolbarSupport: ReadonlyArray<SupportedCodeEditorModes> = ["markdown"]
186
190
  * Includes a code editor, currently we use CodeMirror library as base.
187
191
  */
188
192
  export const CodeEditor = ({
193
+ className,
189
194
  onChange,
190
195
  onSelection,
191
196
  onMouseDown,
@@ -489,12 +494,13 @@ export const CodeEditor = ({
489
494
  // overwrite/extend some attributes
490
495
  id={id ? id : name ? `codemirror-${name}` : undefined}
491
496
  ref={parent}
497
+ {...otherCodeEditorProps}
492
498
  className={
493
499
  `${eccgui}-codeeditor ${eccgui}-codeeditor--mode-${mode}` +
500
+ (className ? ` ${className}` : "") +
494
501
  (outerDivAttributes?.className ? ` ${outerDivAttributes?.className}` : "") +
495
502
  (hasToolbarSupport ? ` ${eccgui}-codeeditor--has-toolbar` : "")
496
503
  }
497
- {...otherCodeEditorProps}
498
504
  >
499
505
  {hasToolbarSupport && editorToolbar(mode)}
500
506
  </div>
@@ -28,11 +28,13 @@ export interface EdgeDefaultDataProps {
28
28
  * Size of the "glow" effect when the edge is hovered.
29
29
  */
30
30
  pathGlowWidth?: number;
31
- /*
32
- * Direction of the SVG path is inversed.
33
- * This is important for the placement of the markers and the animation movement.
31
+ /**
32
+ * Controls where arrow heads appear on the edge.
33
+ * - `normal`: arrow at the end (target)
34
+ * - `inversed`: arrow at the start (source)
35
+ * - `bidirectional`: arrows at both start and end
34
36
  */
35
- inversePath?: boolean; // FIXME: diection of animation is not inverted
37
+ arrowDirection?: "normal" | "inversed" | "bidirectional"; // FIXME: direction of animation is not inverted
36
38
  /**
37
39
  * Callback handler that returns a React element used as edge title.
38
40
  */
@@ -53,7 +53,15 @@ export const EdgeDefaultV12 = memo(
53
53
  getPath = getStraightPath,
54
54
  ...edgeOriginalProperties
55
55
  }: EdgeDefaultV12Props) => {
56
- const { pathGlowWidth = 10, highlightColor, renderLabel, edgeSvgProps, intent, inversePath, strokeType } = data;
56
+ const {
57
+ pathGlowWidth = 10,
58
+ highlightColor,
59
+ renderLabel,
60
+ edgeSvgProps,
61
+ intent,
62
+ arrowDirection = "normal",
63
+ strokeType,
64
+ } = data;
57
65
 
58
66
  const [edgePath, labelX, labelY] = getPath({
59
67
  sourceX,
@@ -90,12 +98,14 @@ export const EdgeDefaultV12 = memo(
90
98
  const marker =
91
99
  appearance !== "none"
92
100
  ? {
93
- markerStart: inversePath
94
- ? `url(#react-flow__marker--${appearance}${intent ? `-${intent}` : "-none"}-reverse)`
95
- : undefined,
96
- markerEnd: !inversePath
97
- ? `url(#react-flow__marker--${appearance}${intent ? `-${intent}` : "-none"}`
98
- : undefined,
101
+ markerStart:
102
+ arrowDirection === "inversed" || arrowDirection === "bidirectional"
103
+ ? `url(#react-flow__marker--${appearance}${intent ? `-${intent}` : "-none"}-reverse)`
104
+ : undefined,
105
+ markerEnd:
106
+ arrowDirection === "normal" || arrowDirection === "bidirectional"
107
+ ? `url(#react-flow__marker--${appearance}${intent ? `-${intent}` : "-none"})`
108
+ : undefined,
99
109
  }
100
110
  : {};
101
111
 
@@ -117,7 +117,6 @@ InverseEdge.args = {
117
117
  id: "inverse",
118
118
  arrowHeadType: undefined,
119
119
  data: {
120
- inversePath: true,
121
120
  markerStart: getMarkerEnd(`${ArrowHeadType.ArrowClosed}-inverse` as ArrowHeadType),
122
121
  },
123
122
  };
@@ -152,7 +152,16 @@ InverseEdge.args = {
152
152
  ...Default.args,
153
153
  id: "inverse",
154
154
  data: {
155
- inversePath: true,
155
+ arrowDirection: "inversed",
156
+ },
157
+ };
158
+
159
+ export const Bidirectional = Template.bind({});
160
+ Bidirectional.args = {
161
+ ...Default.args,
162
+ id: "bidirectional",
163
+ data: {
164
+ arrowDirection: "bidirectional",
156
165
  },
157
166
  };
158
167