diff --git a/CHANGELOG.md b/CHANGELOG.md
index 81aea3b9..5e07c642 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,6 +6,15 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this p
## [Unreleased]
+## [26.0.0] - 2026-07-08
+
+This is a major release, and it might not be compatible with your current usage of our library. Please read about the necessary changes in the migration section below.
+
+### Migration from v25 to v26
+
+- remove deprecated components, properties and imports from your project; if the info cannot be found here, it was already mentioned in the **Deprecated** sections of past changelogs
+- apply changes mentioned in the **Changed** subsection
+
### Added
- ``
@@ -15,21 +24,24 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this p
- ``
- `togglerSize`: replaces the deprecated `togglerLarge` property
- ``
- - `searchListPredicate` property: Allows to filter the complete list of search options at once.
- - Following optional BlueprintJs properties are forwarded now to override default behaviour: `noResults`, `createNewItemRenderer` and `itemRenderer`
- - `isValidNewOption` property: Checks if an input string is or can be turned into a valid new option.
-- `ActivityControlWidge`
+ - `searchListPredicate` property: allows filtering of the complete list of search options at once
+ - the following optional BlueprintJS properties are now forwarded to override default behaviour: `noResults`, `createNewItemRenderer` and `itemRenderer`
+ - `isValidNewOption` property: checks if an input string is or can be turned into a valid new option
+- `ActivityControlWidget`
- Support `badge` on activity control menu button.
+- new icons:
+ - `module-marketplace`
+ - `artefact-ruleblock`
### Fixed
- ``
- - border of the BlueprintJS `Tag` elements were fixed
+ - borders of the BlueprintJS `Tag` elements were fixed
- `extendedTooltip` of a handle in the ReactFlow (v12) component does not show the tooltip.
- ``
- `readOnly` appearance uses same borders like read-only text fields and it does not display a blinking cursor
- ``, ``
- - outlines for focus by keyboard navigation are better recognizable on buttons with colored backgrounds (intent states)
+ - outlines for focus by keyboard navigation are more recognizable on buttons with colored backgrounds (intent states)
- ``
- given `popoverClassName` is added
@@ -37,12 +49,13 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this p
- **React and its types were updated to v18, so you may hit incompatibilities if you run it with React 16 or 17.**
- `color` library was upgraded from v4 to v5, so the types changed
- - if you forward properties then they cannot have `Color` as type, use `ColorLike`
+ - if you forward properties, they can no longer have `Color` as their type; use `ColorLike` instead
- `@blueprintjs/core` library was updated to v6
+ - if you use an explicit BlueprintJS import in your project, you need to set `"@blueprintjs/core": "6.8.1"` and `"@blueprintjs/select": "6.1.1"`
- you may need to update class names in your tests (the new prefix is `bp6-`)
- `Toaster.create` is now an async function
- ``
- - by default, if no searchPredicate or searchListPredicate is defined, the filtering is done via case-insensitive multi-word filtering.
+ - by default, if no `searchPredicate` or `searchListPredicate` is defined, the filtering is done via case-insensitive multi-word matching
- ``, ``, `
`, ``, ``, ``
- color for `intent="primary"` was changed to our brand color
- new option `accent` for `intent` uses the accent color
@@ -51,10 +64,30 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this p
### Deprecated
+- support for React Flow v9 is retained for now, but will be removed in v27
- ``
- `togglerLarge`: replaced by the more versatile `togglerSize` property
- ``
- - `searchPredicate`: replaced by the -- in some cases -- more efficient `searchListPredicate`
+ - `searchPredicate`: replaced by `searchListPredicate`, which is more efficient in some cases
+- `DefinitionsBlueprint`: use `IntentBlueprint`, this is now usable as type and enum var
+
+### Removed
+
+- renamed React Flow types and components; use the new names directly:
+ - `NodeContentHandleProps`: use `HandleDefaultProps`
+ - `ReactFlow`: use `ReactFlowExtended`
+ - `MiniMapV9Props`, `MiniMapV9`, `MiniMapV12Props` and `MiniMapV12`: use `MiniMapProps` and `MiniMap`; use `flowVersion` if the React Flow version is not recognized automatically
+ - `EdgeDefaultV9` and `EdgeDefaultV12`: use `EdgeDefault`
+ - `EdgeDefs`: use `ReactFlowMarkers`
+- `autoCompleteFieldUtils`: use `suggestFieldUtils`
+- `CodeMirror.outerDivAttributes`: use all properties directly on `CodeEditor`
+- `MultiSuggestField.ofType`: use `>`
+- `StringPreviewContentBlobToggler.firstNonEmptyLineOnly`: use `useOnly="firstNonEmptyLine"`
+- color configuration is no longer possible via the previously used SCSS variables
+ - `$eccgui-color-primary`, `$eccgui-color-primary-contrast`, `$eccgui-color-accent`, `$eccgui-color-accent-contrast`,
+ `$eccgui-color-success-text`, `$eccgui-color-success-background`, `$eccgui-color-info-text`, `$eccgui-color-info-background`,
+ `$eccgui-color-warning-text`, `$eccgui-color-warning-background`, `$eccgui-color-danger-text`, `$eccgui-color-danger-background`
+ - use `$eccgui-color-palette-light` instead
## [25.2.0] - 2026-04-30
@@ -69,7 +102,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this p
- ``
- improve breakpoints to display widgets for page size and page number inside smaller containers
- - male the breakpoints configurable via SCSS
+ - make the breakpoints configurable via SCSS
## [25.1.0] - 2026-04-13
@@ -443,7 +476,7 @@ If you use Jest then you can use the same aliases for the `moduleNameMapper` con
- `HandleV9Props` and `HandleV10Props` export will be removed, use only `HandleDefaultProps`
- ``
- - `businessDate`: will be removed because it is already not used
+ - `businessData`: will be removed because it is already not used
- ``: use ``
### Migration from v24 to v25
diff --git a/README.md b/README.md
index d7dc2049..fc2d6a99 100644
--- a/README.md
+++ b/README.md
@@ -74,12 +74,8 @@ $eccgui-color-palette-light: (
All palette colors will be transformed into CSS custom properties automatically and can be referenced by name scheme `--eccgui-color-palette-{groupname}-{colortint}-{colorweight}`, e.g. `--eccgui-color-palette-identity-brand-100`.
-All other colors are based on the palette but it is still possible to set them before the default values are used by importing the configuration or the full library.
+All other colors are based on the palette, but it is still possible to set a few special color configurations before the default values are used by importing the configuration or the full library.
-- `$eccgui-color-primary`: color for very important buttons and switches
-- `$eccgui-color-primary-contrast`: readable text color used on primary color areas
-- `$eccgui-color-accent`: color for most conformation buttons, links, etc
-- `$eccgui-color-accent-contrast`: readable text color used on accent color areas
- `$eccgui-color-applicationheader-text`
- `$eccgui-color-applicationheader-background`
- `$eccgui-color-workspace-text`
diff --git a/package.json b/package.json
index 9873ae7a..2e116920 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"name": "@eccenca/gui-elements",
"description": "GUI elements based on other libraries, usable in React application, written in Typescript.",
- "version": "25.2.0",
+ "version": "26.0.0",
"license": "Apache-2.0",
"homepage": "https://github.com/eccenca/gui-elements",
"bugs": "https://github.com/eccenca/gui-elements/issues",
@@ -184,7 +184,8 @@
"hast-util-from-parse5": "8.0.0",
"**/lodash": "^4.18.1",
"**/minimatch": "^3.1.4",
- "**/serialize-javascript": "^7.0.5"
+ "**/serialize-javascript": "^7.0.5",
+ "**/ws": "^8.21.0"
},
"husky": {
"hooks": {
diff --git a/src/cmem/ContentBlobToggler/StringPreviewContentBlobToggler.tsx b/src/cmem/ContentBlobToggler/StringPreviewContentBlobToggler.tsx
index fb8247ea..e536156d 100644
--- a/src/cmem/ContentBlobToggler/StringPreviewContentBlobToggler.tsx
+++ b/src/cmem/ContentBlobToggler/StringPreviewContentBlobToggler.tsx
@@ -22,7 +22,6 @@ export interface StringPreviewContentBlobTogglerProps extends Omit<
/**
* Use only parts of `content` in the preview.
* `firstMarkdownSection` uses the content until the first double line return.
- * Currently overwritten by `firstNonEmptyLineOnly`.
*/
useOnly?: "firstNonEmptyLine" | "firstMarkdownSection";
/**
@@ -38,12 +37,6 @@ export interface StringPreviewContentBlobTogglerProps extends Omit<
* This allows to add non-string elements to both the full-view content and the pure string content.
*/
noTogglerContentSuffix?: React.JSX.Element;
- /**
- * If only the first non-empty line should be shown in the preview.
- * This will in addition also be shortened according to `previewMaxLength`.
- * @deprecated (v26) use `useOnly="firstNonEmptyLine"` instead
- */
- firstNonEmptyLineOnly?: boolean;
}
/** Version of the content toggler for text centric content. */
@@ -59,16 +52,10 @@ export function StringPreviewContentBlobToggler({
renderPreviewAsMarkdown = false,
allowedHtmlElementsInPreview,
noTogglerContentSuffix,
- firstNonEmptyLineOnly,
...otherContentBlobTogglerProps
}: StringPreviewContentBlobTogglerProps) {
- // need to test `firstNonEmptyLineOnly` until property is removed
- const useOnlyTest: StringPreviewContentBlobTogglerProps["useOnly"] = firstNonEmptyLineOnly
- ? "firstNonEmptyLine"
- : useOnly;
-
let previewString = content;
- switch (useOnlyTest) {
+ switch (useOnly) {
case "firstNonEmptyLine":
previewString = useOnlyPart(content, regexFirstNonEmptyLine);
break;
diff --git a/src/cmem/react-flow/ReactFlow/ReactFlow.tsx b/src/cmem/react-flow/ReactFlow/ReactFlow.tsx
index f881d552..5b1cb79b 100644
--- a/src/cmem/react-flow/ReactFlow/ReactFlow.tsx
+++ b/src/cmem/react-flow/ReactFlow/ReactFlow.tsx
@@ -208,10 +208,5 @@ export const ReactFlowExtended = React.forwardRef(ReactFlowExtendedPlain) as },
) => ReactElement;
-/**
- * @deprecated (v26) use `ReactFlowExtended`
- */
-export const ReactFlow = ReactFlowExtended;
-
/** Classes that when set for an element, prevent that they trigger react-flow dragging, wheel and panning actions. */
export const preventReactFlowActionsClasses = "nodrag nopan nowheel";
diff --git a/src/cmem/react-flow/extensions/scrollOnDragHook.ts b/src/cmem/react-flow/extensions/scrollOnDragHook.ts
index 80306f47..2725f09f 100644
--- a/src/cmem/react-flow/extensions/scrollOnDragHook.ts
+++ b/src/cmem/react-flow/extensions/scrollOnDragHook.ts
@@ -281,6 +281,6 @@ export const useReactFlowScrollOnDragV9 = ({ reactFlowProps, scrollOnDrag }: IPr
};
/**
- * @deprecated (v26) Currently it ony supports ReactFlow v9. Better to `useReactFlowScrollOnDragV9` for now.
+ * @deprecated (v27) Currently it only supports ReactFlow v9. Better to `useReactFlowScrollOnDragV9` for now.
*/
export const useReactFlowScrollOnDrag = useReactFlowScrollOnDragV9;
diff --git a/src/common/Intent/index.ts b/src/common/Intent/index.ts
index a0434103..d01c53d8 100644
--- a/src/common/Intent/index.ts
+++ b/src/common/Intent/index.ts
@@ -2,13 +2,15 @@ import { Intent as BlueprintIntent } from "@blueprintjs/core";
import { CLASSPREFIX as eccgui } from "../../configuration/constants";
-export type IntentBlueprint = BlueprintIntent;
+/** @deprecated (v27) use `IntentBlueprint` instead */
export const DefinitionsBlueprint = BlueprintIntent;
+export const IntentBlueprint = BlueprintIntent;
+export type IntentBlueprint = BlueprintIntent;
export type IntentTypes = IntentBlueprint | "neutral" | "accent" | "info";
export const Definitions: { [key: string]: IntentTypes } = {
- ...DefinitionsBlueprint,
+ ...IntentBlueprint,
ACCENT: "accent",
NEUTRAL: "neutral",
INFO: "info",
diff --git a/src/common/index.ts b/src/common/index.ts
index ed8eb78a..1cf49410 100644
--- a/src/common/index.ts
+++ b/src/common/index.ts
@@ -11,6 +11,7 @@ import { openInNewTab } from "./utils/openInNewTab";
import { reduceToText } from "./utils/reduceToText";
export type { DecodeOptions as DecodeHtmlEntitiesOptions } from "he";
export type { IntentTypes as IntentBaseTypes } from "./Intent";
+export { IntentBlueprint } from "./Intent";
export const utils = {
openInNewTab,
diff --git a/src/components/Button/Button.tsx b/src/components/Button/Button.tsx
index dd80fcda..471e6cb7 100644
--- a/src/components/Button/Button.tsx
+++ b/src/components/Button/Button.tsx
@@ -4,9 +4,9 @@ import {
AnchorButtonProps as BlueprintAnchorButtonProps,
Button as BlueprintButton,
ButtonProps as BlueprintButtonProps,
- Intent as BlueprintIntent,
} from "@blueprintjs/core";
+import { IntentBlueprint } from "../../common/Intent";
import { CLASSPREFIX as eccgui } from "../../configuration/constants";
import { ValidIconName } from "../Icon/canonicalIconNames";
import Icon from "../Icon/Icon";
@@ -33,7 +33,7 @@ interface AdditionalButtonProps {
/**
* Intent state visualized by color.
*/
- intent?: BlueprintIntent | "accent";
+ intent?: IntentBlueprint | "accent";
/**
* Content displayed in a badge that is attached to the button.
* By default it is displayed `{ size: "small", position: "top-right", maxLength: 2 }` and with the same intent state of the button.
@@ -94,7 +94,7 @@ export const Button = ({
intentByFunction = "accent";
break;
case disruptive:
- intentByFunction = BlueprintIntent.DANGER;
+ intentByFunction = IntentBlueprint.DANGER;
break;
default:
break;
@@ -111,7 +111,7 @@ export const Button = ({
: icon}
rightIcon={typeof rightIcon === "string" ? : rightIcon}
>
diff --git a/src/components/Icon/canonicalIconNames.tsx b/src/components/Icon/canonicalIconNames.tsx
index 00a04599..fc8d0121 100644
--- a/src/components/Icon/canonicalIconNames.tsx
+++ b/src/components/Icon/canonicalIconNames.tsx
@@ -121,6 +121,7 @@ const canonicalIcons = {
"module-dashboard": icons.Dashboard,
"module-gdprsearch": icons.UserProfile,
"module-integrations": icons.AppConnectivity,
+ "module-marketplace": icons.ShoppingCatalog,
"module-linkedrules": icons.Connect,
"module-reports": icons.ReportData,
"module-search": icons.Search,
diff --git a/src/components/MultiSelect/MultiSelect.tsx b/src/components/MultiSelect/MultiSelect.tsx
index 4ee74264..497151d5 100644
--- a/src/components/MultiSelect/MultiSelect.tsx
+++ b/src/components/MultiSelect/MultiSelect.tsx
@@ -1,5 +1,5 @@
import React, { useRef } from "react";
-import { HTMLInputProps as BlueprintHTMLInputProps, Intent as BlueprintIntent } from "@blueprintjs/core";
+import { HTMLInputProps as BlueprintHTMLInputProps } from "@blueprintjs/core";
import {
ItemRendererProps as BlueprintItemRendererProps,
MultiSelect as BlueprintMultiSelect,
@@ -7,6 +7,7 @@ import {
} from "@blueprintjs/select";
import classNames from "classnames";
+import { IntentBlueprint } from "../../common/Intent";
import { removeExtraSpaces } from "../../common/utils/stringUtils";
import { CLASSPREFIX as eccgui } from "../../configuration/constants";
import { TestableComponent } from "../interfaces";
@@ -97,7 +98,7 @@ export interface MultiSuggestFieldCommonProps
/**
* Intent state of the multi select.
*/
- intent?: BlueprintIntent | "accent";
+ intent?: IntentBlueprint | "accent";
/**
* Disables the input element
*/
@@ -620,11 +621,3 @@ export function MultiSuggestField({
<>{contentMultiSelect}>
);
}
-
-// we still return the Blueprint element here because it was already used like that
-/**
- * @deprecated (v26) use directly > (`ofType` also returns the original BlueprintJS element, not ours!)
- */
-MultiSuggestField.ofType = BlueprintMultiSelect.ofType;
-
-export default MultiSuggestField;
diff --git a/src/components/SuggestField/index.ts b/src/components/SuggestField/index.ts
index 8714d862..6fdac7ae 100644
--- a/src/components/SuggestField/index.ts
+++ b/src/components/SuggestField/index.ts
@@ -6,6 +6,3 @@ export * from "./../AutocompleteField/interfaces";
export const suggestFieldUtils = {
createNewItemRendererFactory,
};
-
-// @deprecated (v26) use `suggestFieldUtils`
-export const autoCompleteFieldUtils = suggestFieldUtils;
diff --git a/src/components/TextField/TextArea.tsx b/src/components/TextField/TextArea.tsx
index c97fed0c..741a6549 100644
--- a/src/components/TextField/TextArea.tsx
+++ b/src/components/TextField/TextArea.tsx
@@ -1,13 +1,12 @@
import React from "react";
import {
Classes as BlueprintClassNames,
- Intent as BlueprintIntent,
MaybeElement,
TextArea as BlueprintTextArea,
TextAreaProps as BlueprintTextAreaProps,
} from "@blueprintjs/core";
-import { Definitions as IntentDefinitions, IntentTypes } from "../../common/Intent";
+import { Definitions as IntentDefinitions, IntentBlueprint, IntentTypes } from "../../common/Intent";
import { CLASSPREFIX as eccgui } from "../../configuration/constants";
import { Icon } from "../Icon";
import { ValidIconName } from "../Icon/canonicalIconNames";
@@ -155,7 +154,7 @@ export const TextArea = ({
}
intent={
intent && !["info", "edited", "removed", "neutral", "accent"].includes(intent)
- ? (intent as BlueprintIntent)
+ ? (intent as IntentBlueprint)
: undefined
}
spellCheck={intent === "removed" ? false : undefined}
diff --git a/src/components/TextField/TextField.tsx b/src/components/TextField/TextField.tsx
index 98a1c822..6f764e54 100644
--- a/src/components/TextField/TextField.tsx
+++ b/src/components/TextField/TextField.tsx
@@ -4,11 +4,10 @@ import {
HTMLInputProps,
InputGroup as BlueprintInputGroup,
InputGroupProps as BlueprintInputGroupProps,
- Intent as BlueprintIntent,
MaybeElement,
} from "@blueprintjs/core";
-import { Definitions as IntentDefinitions, IntentTypes } from "../../common/Intent";
+import { Definitions as IntentDefinitions, IntentBlueprint, IntentTypes } from "../../common/Intent";
import { CLASSPREFIX as eccgui } from "../../configuration/constants";
import { ValidIconName } from "../Icon/canonicalIconNames";
import Icon from "../Icon/Icon";
@@ -108,7 +107,7 @@ export const TextField = ({
}
intent={
intent && !["info", "edited", "removed", "neutral", "accent"].includes(intent)
- ? (intent as BlueprintIntent)
+ ? (intent as IntentBlueprint)
: undefined
}
fill={fullWidth}
diff --git a/src/components/Tooltip/Tooltip.tsx b/src/components/Tooltip/Tooltip.tsx
index f9b3a06a..64f81253 100644
--- a/src/components/Tooltip/Tooltip.tsx
+++ b/src/components/Tooltip/Tooltip.tsx
@@ -8,6 +8,7 @@ import {
import classNames from "classnames";
import { CLASSPREFIX as eccgui } from "../../configuration/constants";
+import { IntentBlueprint } from "../../common/Intent";
import { Markdown, MarkdownProps } from "./../../cmem/markdown/Markdown";
@@ -52,7 +53,7 @@ export interface TooltipProps extends Omit,
- "id" | "data-test-id" | "data-testid" | "translate" | "onChange" | "onKeyDown" | "onMouseDown" | "onScroll"
- >;
-
/**
* Size in spaces that is used for a tabulator key.
*/
@@ -235,7 +226,6 @@ export const CodeEditor = ({
setEditorView,
supportCodeFolding = false,
shouldHighlightActiveLine = false,
- outerDivAttributes,
tabIntentSize = 2,
tabIntentStyle = "tab",
placeholder,
@@ -598,15 +588,13 @@ export const CodeEditor = ({
return (
diff --git a/src/extensions/react-flow/edges/EdgeBezier.tsx b/src/extensions/react-flow/edges/EdgeBezier.tsx
index 16689913..bdd2d9c1 100644
--- a/src/extensions/react-flow/edges/EdgeBezier.tsx
+++ b/src/extensions/react-flow/edges/EdgeBezier.tsx
@@ -11,7 +11,7 @@ interface EdgeBezierDataV12Props extends EdgeDefaultV12DataProps {
}
/**
- * @deprecated (v26) v9 support is removed after v25
+ * @deprecated (v27) v9 support is removed after v26
*/
export interface EdgeBezierV12Props
extends Omit, EdgeProps> {}
diff --git a/src/extensions/react-flow/edges/EdgeDefault.tsx b/src/extensions/react-flow/edges/EdgeDefault.tsx
index 64476685..ad08e059 100644
--- a/src/extensions/react-flow/edges/EdgeDefault.tsx
+++ b/src/extensions/react-flow/edges/EdgeDefault.tsx
@@ -47,18 +47,18 @@ export interface EdgeDefaultDataProps {
}
/**
- * @deprecated (v26) v9 support is removed after v25
+ * @deprecated (v27) v9 support is removed after v26
*/
export interface EdgeDefaultV9DataProps extends EdgeDefaultDataProps {
/**
* Reference link to the SVG marker used for the start of the edge
- * @deprecated (v26) only necessary for react flow v9
+ * @deprecated (v27) only necessary for react flow v9
*/
markerStart?: string;
}
/**
- * @deprecated (v26) v9 support is removed after v25
+ * @deprecated (v27) v9 support is removed after v26
*/
export interface EdgeDefaultV9Props extends ReactFlowEdgeProps {
/**
@@ -73,6 +73,9 @@ export interface EdgeDefaultV9Props extends ReactFlowEdgeProps {
export type EdgeDefaultProps = EdgeDefaultV9Props | EdgeDefaultV12Props;
+/**
+ * @deprecated (v27) will be removed v9 support is dropped
+ */
const EdgeDefaultV9 = memo(
({ data = {}, drawSvgPath = drawEdgeStraight, ...edgeOriginalProperties }: EdgeDefaultV9Props) => {
const { pathGlowWidth = 10, markerStart, strokeType, intent, highlightColor, edgeSvgProps } = data;
diff --git a/src/extensions/react-flow/edges/EdgeDefaultV12.tsx b/src/extensions/react-flow/edges/EdgeDefaultV12.tsx
index 82c5ce6c..155317a3 100644
--- a/src/extensions/react-flow/edges/EdgeDefaultV12.tsx
+++ b/src/extensions/react-flow/edges/EdgeDefaultV12.tsx
@@ -8,7 +8,7 @@ import { EdgeDefaultDataProps, edgeDefaultUtils } from "./EdgeDefault";
import { getStraightPath } from "./utils";
/**
- * @deprecated (v26) use EdgeDefaultDataProps
+ * @deprecated (v27) use EdgeDefaultDataProps
*/
export interface EdgeDefaultV12DataProps extends Record, EdgeDefaultDataProps {
/**
@@ -18,7 +18,7 @@ export interface EdgeDefaultV12DataProps extends Record, EdgeDe
}
/**
- * @deprecated (v26) use EdgeDefaultProps
+ * @deprecated (v27) use EdgeDefaultProps
*/
export type EdgeDefaultV12Props = EdgeProps> & {
/**
@@ -30,9 +30,7 @@ export type EdgeDefaultV12Props = EdgeProps> & {
};
/**
- * This element cannot be used directly, it must be connected via a `edgeTypes` definition.
- * @see https://reactflow.dev/docs/api/nodes/
- * @deprecated (v26) will be removed when `EdgeDefault` supports v12 directly
+ * @deprecated (v27) will be removed v9 support is dropped
*/
export const EdgeDefaultV12 = memo(
({
diff --git a/src/extensions/react-flow/edges/EdgeDefs.tsx b/src/extensions/react-flow/edges/EdgeDefs.tsx
deleted file mode 100644
index bc77e038..00000000
--- a/src/extensions/react-flow/edges/EdgeDefs.tsx
+++ /dev/null
@@ -1,33 +0,0 @@
-import React from "react";
-
-/**
- * @deprecated (v26) use ``
- */
-export const EdgeDefs = React.memo(() => (
-
-));
diff --git a/src/extensions/react-flow/edges/EdgeStep.tsx b/src/extensions/react-flow/edges/EdgeStep.tsx
index a0137bde..a80d920f 100644
--- a/src/extensions/react-flow/edges/EdgeStep.tsx
+++ b/src/extensions/react-flow/edges/EdgeStep.tsx
@@ -15,13 +15,13 @@ interface EdgeStepDataV12Props extends EdgeDefaultV12DataProps {
}
/**
- * @deprecated (v26) v9 support is removed after v25
+ * @deprecated (v27) v9 support is removed after v26
*/
export interface EdgeStepV9Props extends EdgeDefaultV9Props {
data?: EdgeStepDataV9Props;
}
/**
- * @deprecated (v26) v9 support is removed after v25
+ * @deprecated (v27) v9 support is removed after v26
*/
export interface EdgeStepV12Props extends Omit, EdgeProps> {}
diff --git a/src/extensions/react-flow/handles/HandleDefault.tsx b/src/extensions/react-flow/handles/HandleDefault.tsx
index 1d08ff96..2cf4903f 100644
--- a/src/extensions/react-flow/handles/HandleDefault.tsx
+++ b/src/extensions/react-flow/handles/HandleDefault.tsx
@@ -1,10 +1,9 @@
import React, { memo } from "react";
import { Handle as HandleV9, HandleProps as ReactFlowHandleV9Props } from "react-flow-renderer";
import { Classes as BlueprintClasses } from "@blueprintjs/core";
-import { Intent } from "@blueprintjs/core/src/common/intent";
import { Handle as HandleV12, HandleProps as ReactFlowHandleV12Props } from "@xyflow/react";
-import { intentClassName, IntentTypes } from "../../../common/Intent";
+import { intentClassName, IntentTypes, IntentBlueprint } from "../../../common/Intent";
import { TooltipProps } from "../../../components";
import { CLASSPREFIX as eccgui } from "../../../configuration/constants";
import { ReacFlowVersionSupportProps, useReactFlowVersion } from "../versionsupport";
@@ -35,11 +34,11 @@ interface HandleExtensionProps
}
/**
- * @deprecated (v26) use only `HandleDefaultProps`
+ * @deprecated (v27) use only `HandleDefaultProps`
*/
export interface HandleV9Props extends HandleExtensionProps, ReactFlowHandleV9Props {}
/**
- * @deprecated (v26) use only `HandleDefaultProps`
+ * @deprecated (v27) use only `HandleDefaultProps`
*/
export interface HandleV12Props extends HandleExtensionProps, ReactFlowHandleV12Props {}
@@ -84,7 +83,7 @@ export const HandleDefault = memo(
},
},
},
- intent: intent as Intent,
+ intent: intent as IntentBlueprint,
className: `${eccgui}-graphviz__handle__tooltip-target`,
isOpen: extendedTooltipDisplayed,
};
diff --git a/src/extensions/react-flow/index.ts b/src/extensions/react-flow/index.ts
index f0d96aa2..6eaaa28c 100644
--- a/src/extensions/react-flow/index.ts
+++ b/src/extensions/react-flow/index.ts
@@ -9,16 +9,13 @@ export * from "./handles/HandleTools";
export * from "./edges/EdgeBezier";
export * from "./edges/EdgeDefault";
export * from "./edges/EdgeDefaultV12";
-export * from "./edges/EdgeDefs";
export * from "./edges/EdgeStep";
export * from "./edges/EdgeStraight";
export * from "./edges/EdgeNew";
export * from "./edges/EdgeTools";
export * from "./edges/EdgeLabel";
-export * from "./edges/EdgeDefs";
-export * from "./edges/EdgeDefaultV12";
+export type { EdgeDefaultV12DataProps, EdgeDefaultV12Props } from "./edges/EdgeDefaultV12";
export * from "./markers/ReactFlowMarkers";
export * from "./minimap/MiniMap";
-export * from "./minimap/MiniMapV12";
export * from "./minimap/utils";
export * from "./versionsupport";
diff --git a/src/extensions/react-flow/markers/MarkerArrowClosedInverse.tsx b/src/extensions/react-flow/markers/MarkerArrowClosedInverse.tsx
index 67bc0db6..0189ec1a 100644
--- a/src/extensions/react-flow/markers/MarkerArrowClosedInverse.tsx
+++ b/src/extensions/react-flow/markers/MarkerArrowClosedInverse.tsx
@@ -1,7 +1,7 @@
import React, { FC } from "react";
/**
- * @deprecated (v26) only necessary for react flow v9, support will be removed
+ * @deprecated (v27) only necessary for react flow v9, support will be removed
*/
export const MarkerArrowClosedInverse: FC = () => {
return (
diff --git a/src/extensions/react-flow/markers/ReactFlowMarkers.tsx b/src/extensions/react-flow/markers/ReactFlowMarkers.tsx
index 37cbdae8..2b6f5eba 100644
--- a/src/extensions/react-flow/markers/ReactFlowMarkers.tsx
+++ b/src/extensions/react-flow/markers/ReactFlowMarkers.tsx
@@ -28,7 +28,7 @@ interface ReactFlowMarkerProps extends React.SVGProps {
const ReactFlowMarker = ({ className, appearance = "arrow-closed", intent, reverse }: ReactFlowMarkerProps) => {
const markerDisplay: Record = {
"arrow-closed": (
-
+
),
};
@@ -59,11 +59,11 @@ const ReactFlowMarkers: FC = () => {
diff --git a/src/extensions/react-flow/minimap/MiniMap.tsx b/src/extensions/react-flow/minimap/MiniMap.tsx
index 5c28e55c..ca5e968f 100644
--- a/src/extensions/react-flow/minimap/MiniMap.tsx
+++ b/src/extensions/react-flow/minimap/MiniMap.tsx
@@ -26,7 +26,10 @@ export interface MiniMapBasicProps {
>;
}
-export interface MiniMapV9Props extends MiniMapBasicProps, ReactFlowMiniMapV9Props {
+/**
+ * @deprecated (v27) will be removed when React Flow v9 can be removed
+ */
+interface MiniMapV9Props extends MiniMapBasicProps, ReactFlowMiniMapV9Props {
/**
* React-Flow instance
*/
@@ -67,10 +70,10 @@ export const MiniMap = memo(({ flowVersion, ...otherProps }: MiniMapProps) => {
});
/**
- * Mini-map support for for React Flow v9.
- * @deprecated (v26) will be removed, use when `MiniMap` directly
+ * Mini-map support for React Flow v9.
+ * @deprecated (v27) will be removed when React Flow v9 can be removed
*/
-export const MiniMapV9 = memo(
+const MiniMapV9 = memo(
({
flowInstance,
enableNavigation = false,
diff --git a/src/extensions/react-flow/minimap/MiniMapV12.tsx b/src/extensions/react-flow/minimap/MiniMapV12.tsx
index 5d727f7e..67ac0377 100644
--- a/src/extensions/react-flow/minimap/MiniMapV12.tsx
+++ b/src/extensions/react-flow/minimap/MiniMapV12.tsx
@@ -4,11 +4,14 @@ import { MiniMap as ReactFlowMiniMap, MiniMapProps as ReactFlowMiniMapProps } fr
import { MiniMapBasicProps } from "./MiniMap";
import { miniMapUtils } from "./utils";
+/**
+ * @deprecated (v27) will be removed when React Flow v9 can be removed
+ */
export interface MiniMapV12Props extends MiniMapBasicProps, Omit {}
/**
- * Mini-map support for for React Flow v12.
- * @deprecated (v26) will be removed when `MiniMap` supports v12 directly
+ * Mini-map support for React Flow v12.
+ * @deprecated (v27) will be removed when React Flow v9 can be removed
*/
export const MiniMapV12 = memo(
({
diff --git a/src/extensions/react-flow/nodes/NodeContent.tsx b/src/extensions/react-flow/nodes/NodeContent.tsx
index 2e023a68..33352a69 100644
--- a/src/extensions/react-flow/nodes/NodeContent.tsx
+++ b/src/extensions/react-flow/nodes/NodeContent.tsx
@@ -12,16 +12,11 @@ import OverflowText from "../../../components/Typography/OverflowText";
import { CLASSPREFIX as eccgui } from "../../../configuration/constants";
import { ReacFlowVersionSupportProps, ReactFlowVersions, useReactFlowVersion } from "../versionsupport";
-import { HandleDefault, HandleDefaultProps } from "./../handles/HandleDefault";
+import { HandleDefault, HandleDefaultProps } from "../handles/HandleDefault";
import { NodeContentExtensionProps } from "./NodeContentExtension";
import { NodeDefaultProps } from "./NodeDefault";
import { NodeHighlightColor } from "./sharedTypes";
-/**
- * @deprecated (v26) use `HandleDefaultProps`
- */
-export type NodeContentHandleProps = HandleDefaultProps;
-
export type NodeDimensions = {
width?: number;
height?: number;
@@ -177,7 +172,6 @@ export interface NodeContentProps
/**
* Additional data stored in the node.
- * @deprecated (v26) is not used anymore.
*/
businessData?: never;
@@ -229,7 +223,7 @@ type MemoHandlerProps = HandleDefaultProps & {
type HandleStack = { [key: string]: HandleDefaultProps[] };
-const defaultHandles = (flowVersion: ReacFlowVersionSupportProps["flowVersion"]): NodeContentHandleProps[] => {
+const defaultHandles = (flowVersion: ReacFlowVersionSupportProps["flowVersion"]): HandleDefaultProps[] => {
switch (flowVersion) {
case "v9":
case "v12":
diff --git a/src/extensions/react-flow/nodes/NodeDefaultV12.tsx b/src/extensions/react-flow/nodes/NodeDefaultV12.tsx
deleted file mode 100644
index f70dd24e..00000000
--- a/src/extensions/react-flow/nodes/NodeDefaultV12.tsx
+++ /dev/null
@@ -1,53 +0,0 @@
-import React, { memo } from "react";
-import { NodeProps as ReactFlowNodeProps, Position } from "react-flow-renderer";
-
-import Tooltip from "../../../components/Tooltip/Tooltip";
-
-import { NodeContent, NodeContentProps } from "./NodeContent";
-
-export interface NodeDefaultProps extends ReactFlowNodeProps {
- /**
- * Contains all properties for our implementation of the React-Flow node.
- * For details pls see the `NodeContent` element documentation.
- */
- data: NodeContentProps;
-}
-
-/**
- * This element cannot be used directly, it must be connected via a `nodeTypes` definition.
- * @see https://reactflow.dev/docs/api/nodes/
- * @deprecated (v26) will be removed when `NodeDefault` supports v12 directly
- */
-export const NodeDefaultV12 = memo((node: NodeDefaultProps) => {
- const {
- data,
- targetPosition = Position.Left,
- sourcePosition = Position.Right,
- isConnectable = true,
- selected,
- } = node;
-
- const nodeEl = (
-
- );
-
- if (!selected && data?.minimalShape !== "none" && !!data?.getMinimalTooltipData) {
- const tooltipData = data?.getMinimalTooltipData(node);
- if (!!tooltipData.label || !!tooltipData.content) {
- return (
-
- {tooltipData.label &&