Skip to content

Commit ad30fb5

Browse files
committed
Merge tag 'v24.0.0' into develop
tag final release v24.0.0
2 parents 548d860 + 42e6098 commit ad30fb5

205 files changed

Lines changed: 6268 additions & 5213 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/dependabot.yml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
version: 2
2+
updates:
3+
# Maintain dependencies for GitHub Actions
4+
- package-ecosystem: "github-actions"
5+
directory: "/"
6+
schedule:
7+
interval: "monthly"
8+
open-pull-requests-limit: 1 # set 0 to temporarily disable automatic update requests
9+
pull-request-branch-name:
10+
separator: "/"
11+
assignees:
12+
- "haschek"
13+
# Maintain dependencies for npm
14+
- package-ecosystem: "npm"
15+
directory: "/"
16+
schedule:
17+
interval: "monthly"
18+
versioning-strategy: increase
19+
open-pull-requests-limit: 3 # set 0 to temporarily disable automatic update requests
20+
pull-request-branch-name:
21+
separator: "/"
22+
assignees:
23+
- "haschek"

.github/workflows/deployment-storybook.yml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,19 +19,20 @@ on:
1919
jobs:
2020
chromatic-deployment:
2121
runs-on: ubuntu-latest
22+
if: ${{ github.actor != 'dependabot[bot]' }}
2223
steps:
23-
- uses: actions/checkout@v3
24+
- uses: actions/checkout@main
2425
with:
2526
fetch-depth: 0
26-
- uses: actions/setup-node@v3
27+
- uses: actions/setup-node@main
2728
with:
28-
node-version: "16"
29+
node-version: "18"
2930
- name: Install dependencies
3031
run: yarn install
3132
- name: Create jest results
3233
run: yarn test:generate-output
3334
- name: Publish to Chromatic
34-
uses: chromaui/action@v1
35+
uses: chromaui/action@v11
3536
with:
3637
token: ${{ secrets.GITHUB_TOKEN }}
3738
projectToken: ${{ secrets.CHROMATIC_PROJECT_TOKEN }}

.github/workflows/release-branch.yml

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ on:
44
workflow_dispatch:
55
branches:
66
- "develop"
7-
- "feature/prepareReleaseForDM-CMEM-4151" # TODO: only for testing, remove it later
87
inputs:
98
releasetype:
109
description: "Type of release"
@@ -20,10 +19,10 @@ jobs:
2019
runs-on: ubuntu-latest
2120

2221
steps:
23-
- uses: actions/checkout@v3
24-
- uses: actions/setup-node@v3
22+
- uses: actions/checkout@main
23+
- uses: actions/setup-node@main
2524
with:
26-
node-version: "16"
25+
node-version: "18"
2726
- name: Update package.json with new release candidate version
2827
id: create-version
2928
run: |

.github/workflows/release-candidate.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,15 +30,15 @@ jobs:
3030
echo "You started it on '${{ steps.branch-name.outputs.current_branch }}'."
3131
exit 1
3232
fi
33-
- uses: actions/checkout@v3
33+
- uses: actions/checkout@main
3434
- name: Initialize mandatory git config
3535
# @see https://github.community/t/how-do-i-get-gh-username-based-on-actions-events/17882
3636
run: |
3737
git config user.name "${{ github.actor }}"
3838
git config user.email "${{ github.actor }}@users.noreply.github.com"
39-
- uses: actions/setup-node@v3
39+
- uses: actions/setup-node@main
4040
with:
41-
node-version: "16"
41+
node-version: "18"
4242
- name: Get version
4343
id: package-version
4444
run: echo "version=$(node -p -e "require('./package.json').version")" >> $GITHUB_OUTPUT

.github/workflows/release-final.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,15 @@ jobs:
1313
sha: ${{ steps.tag-revision.outputs.sha }}
1414

1515
steps:
16-
- uses: actions/checkout@v3
16+
- uses: actions/checkout@main
1717
- name: Initialize mandatory git config
1818
# @see https://github.community/t/how-do-i-get-gh-username-based-on-actions-events/17882
1919
run: |
2020
git config user.name "${{ github.actor }}"
2121
git config user.email "${{ github.actor }}@users.noreply.github.com"
22-
- uses: actions/setup-node@v3
22+
- uses: actions/setup-node@main
2323
with:
24-
node-version: "16"
24+
node-version: "18"
2525
- name: Get version
2626
id: package-version
2727
run: echo "version=$(node -p -e "require('./package.json').version.split('-').shift()")" >> $GITHUB_OUTPUT
@@ -44,7 +44,7 @@ jobs:
4444
runs-on: ubuntu-latest
4545
needs: create-release-version
4646
steps:
47-
- uses: actions/checkout@v3
47+
- uses: actions/checkout@main
4848
with:
4949
ref: develop
5050
- name: Initialize mandatory git config

.github/workflows/release-publish.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,13 @@ jobs:
2626
echo ${{ inputs.ref }}
2727
echo ${{ inputs.sha }}
2828
echo ${{ inputs.sectionChangelog }}
29-
- uses: actions/checkout@v3
29+
- uses: actions/checkout@main
3030
with:
3131
fetch-depth: 0
3232
ref: ${{ inputs.ref }}
33-
- uses: actions/setup-node@v3
33+
- uses: actions/setup-node@main
3434
with:
35-
node-version: "16"
35+
node-version: "18"
3636
registry-url: "https://registry.npmjs.org"
3737
- name: Set name vars
3838
id: info-vars
@@ -56,7 +56,7 @@ jobs:
5656
# @see https://github.com/chromaui/chromatic-cli/issues/551
5757
if: inputs.sectionChangelog != 'Unreleased'
5858
id: chromatic-upload
59-
uses: chromaui/action@v1
59+
uses: chromaui/action@v11
6060
with:
6161
token: ${{ secrets.GITHUB_TOKEN }}
6262
projectToken: ${{ secrets.chromaticToken }}

.github/workflows/test-code.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,11 @@ jobs:
1515
test-code:
1616
runs-on: ubuntu-latest
1717
steps:
18-
- uses: actions/checkout@v3
18+
- uses: actions/checkout@main
1919
- name: Test using Node.js
20-
uses: actions/setup-node@v3
20+
uses: actions/setup-node@main
2121
with:
22-
node-version: "16"
22+
node-version: "18"
2323
- run: yarn install
2424
- run: yarn compile
2525
- run: yarn compile-scss

.github/workflows/test-project.yml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,29 +5,29 @@ on:
55
branches-ignore:
66
- "develop"
77
- "main"
8+
- "next"
9+
- "legacy"
810
pull_request:
911

1012
jobs:
1113
test-branch-name:
1214
runs-on: ubuntu-latest
1315
steps:
1416
- name: Test branch name
15-
# https://github.com/marketplace/actions/branch-name-rules
16-
uses: deepakputhraya/action-branch-name@master
17+
# https://github.com/marketplace/actions/enforce-branch-name
18+
uses: finleyfamily/action-enforce-branch-name@master
1719
with:
1820
regex: '([a-z])+\/([a-z]).([aA-zZ\.\-\d])+'
19-
allowed_prefixes: "feature,release,fix,bugfix,hotfix,change,temp"
20-
ignore: "main,develop"
21-
min_length: 10
22-
max_length: 100
21+
allowed_prefixes: "feature,release,fix,bugfix,hotfix,change,temp,dependabot"
22+
exclude: "main,develop,next,legacy"
2323
test-documentation:
2424
runs-on: ubuntu-latest
2525
steps:
26-
- uses: actions/checkout@v3
26+
- uses: actions/checkout@main
2727
- name: Test existence of important files
2828
# https://github.com/marketplace/actions/file-existence
2929
id: check_files
30-
uses: andstor/file-existence-action@v2
30+
uses: andstor/file-existence-action@main
3131
with:
3232
files: "package.json, LICENSE, README.md, CHANGELOG.md"
3333
- name: 'Test for "## [Unreleased]" section in changelog'

.storybook/main.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ module.exports = {
1515
},
1616
},
1717
},
18+
"@storybook/addon-webpack5-compiler-babel",
1819
],
1920
framework: {
2021
name: "@storybook/react-webpack5",

CHANGELOG.md

Lines changed: 119 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,120 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this p
66

77
## [Unreleased]
88

9+
## [24.0.0] - 2024-12-17
10+
11+
This is a major release, and it might be not compatible with your current usage of our library. Please read about the necessary changes in the section about how to migrate.
12+
13+
### Migration from v23 to v24
14+
15+
- upgrade Typescript to v5
16+
- upgrade Node to at least v18, see **Changed** section for more info about it
17+
- remove deprecated components, properties and imports from your project, if the info cannot be found here then it was already mentioned in **Deprecated** sections of the past changelogs
18+
- `<GridColumn/>`
19+
- `full`: was deprecated and now removed because it always uses full width if it is the only column and does not have any othe size config
20+
- `<Notification/>`
21+
- `fullWidth`: was deprecated and now removed, use `flexWidth` as replacement
22+
- `iconName`: was deprecated and now removed, use `icon` property
23+
- `<Table/>`
24+
- `size`: use only "small", "medium" or "large" as value
25+
- `<Tag/>`
26+
- `emphasized`: was deprecated and now removed, use `minimal=false` plus `emphasis="stronger"` instead
27+
- `IconSized` type: use `CarbonIconType`
28+
- `TimeUnits` type: use `ElapsedDateTimeDisplayUnits`
29+
- `MarkdownParserProps` interface: use `MarkdownProps`
30+
- `elapsedTimeSegmented` function: use `elapsedDateTimeDisplayUtils.elapsedTimeSegmented`
31+
- `simplifiedElapsedTime` function: use `elapsedDateTimeDisplayUtils.simplifiedElapsedTime`
32+
33+
### Added
34+
35+
- `<StringPreviewContentBlobToggler />`:
36+
- `noTogglerContentSuffix`: Allows to add non-string elements at the end of the content if the full description is shown, i.e. no toggler is necessary. This allows to add non-string elements to both the full-view content and the pure string content.
37+
- `<MultiSuggestField />`
38+
- An optional custom search function property has been added, it defines how to filter elements.
39+
- Added a prop `limitHeightOpened` to limit the height of the dropdown by automatically calculating the available height in vh.
40+
- `<FlexibleLayoutContainer />` and `<FlexibleLayoutItem />`
41+
- helper components to create flex layouts for positioning sub elements
42+
- stop misusing `Toolbar*` components to do that (anti pattern)
43+
- `<PropertyValueList />` and `<PropertyValuePair />`
44+
- `singleColumn` property to display label and value below each other
45+
- `<Label />`
46+
- `emphasis` property to control visual appearance of the label text
47+
- basic Storybook example for `<Application* />` components
48+
- `<CodeEditor />`
49+
- `setEditorView` option for compatibility to Codemirror v6
50+
- `supportCodeFolding` optional property to fold code for the supported modes e.g: `xml`, `json`, etc.
51+
- `shouldHighlightActiveLine` optional property to highlight active line where the cursor is currently in.
52+
- `shouldHaveMinimalSetup` optional property that imports codemirror's base minimal configurations.
53+
- `additionalExtensions` optional property for additional extensions to customize the editor further.
54+
- `<Markdown />`
55+
- `htmlContentBlockProps` can now be used to configure the wrapper around the Markdown content
56+
- `$eccgui-selector-text-spot-highlight` SCSS config variable to specify selector that is used to create shortly highlighted spots
57+
- it is highlighted when the selector is also active local anchor target or if it has the `.eccgui-typography--spothighlight` class attached to it
58+
59+
### Fixed
60+
61+
- toggling on/off the `<HandleTools/>` was corrected, they kept displayed after re-entering with the cursor
62+
- `<Pagination/>`
63+
- change text overflow for selectors to `clip` because Firefox rendered `ellipsis` a bit too early
64+
- `<ApplicationContainer />`:
65+
- `useDropzoneMonitor` helper hook process was improved so that less events are processed and the dropzone monitoring is more stable
66+
67+
### Changed
68+
69+
- GUI elements library needs node 18 or an higher version because dependencies were upgraded
70+
- you may run into problems if you try it with Node v16 or v17, or Webpack v4, mainly because of a Node bugfix regarding the OpenSSL provider
71+
- if you cannot upgrade your dependencies then you could workaround that by patching the `crypto` package or using Node with `--openssl-legacy-provider` option
72+
- see https://github.com/webpack/webpack/issues/14532 and https://stackoverflow.com/questions/69692842/ for more info and possible solutions
73+
- upgrade to `@carbon/react` package
74+
- almost all Carbon related packages were replaced by using only `@carbon/react`
75+
- some component interfaces partly lack documentation in our Storybook because their base interfaces from `@carbon/react` are currently not exported: `AccordionItemProps`, `ApplicationHeaderProps`, `ApplicationToolbarProps`, `ApplicationToolbarActionProps`, `ApplicationToolbarPanelProps`, `CarbonIconType`, `TableCellProps`, `TableExpandRowProps`, `TableProps`
76+
- upgrade to Typescript v5
77+
- your package should be compatible to Typescript 5 patterns
78+
- upgrade to Storybook v8
79+
- include a few patches for actions, see https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#implicit-actions-can-not-be-used-during-rendering-for-example-in-the-play-function
80+
- allow `next` and `legacy` as branch names
81+
- `<CodeEditor />`
82+
- `setInstance` interface changed to `setEditorView` for semantic compatibility to Codemirror v6
83+
- `<BreadcrumbItem/>`
84+
- link color and separation char were adjusted
85+
- `<Markdown/>`
86+
- align blocks for language specific code to default code blocks
87+
- switch icons for `item-clone` and `item-copy` to Carbon's `<Replicate/>` and `<Copy/>`
88+
- Remove duplicated icon names `artefact-customtask*` and only keep `artefact-task*` names.
89+
- `<OverviewItemDepiction/>`
90+
- improve examples in storybook
91+
- improve display for images that are to large for the available space (fully show them)
92+
- `<CodeAutocompleteField />`:
93+
- Add parameter `reInitOnInitialValueChange`, to allow the field to re-initialize if the initial value changes.
94+
95+
### Deprecated
96+
97+
- `<Icon/>` and `<TestIcon/>`
98+
- `description` and `iconTitle`: use `title` as replacement.
99+
- `TableRowHeightSize` type: use `TableProps["size"]` directly
100+
- `IRenderModifiers` interface: use `SuggestFieldItemRendererModifierProps`
101+
- `IElementWidth` type: use `SuggestFieldItemRendererModifierProps["styleWidth"]`
102+
- `MultiSelectSelectionProps` interface: use `MultiSuggestFieldSelectionProps`
103+
- `MultiSelectProps` interface: use `MultiSuggestFieldProps`
104+
- `nodeTypes` and `edgeTypes`
105+
- will be removed without replacement, define it yourself or use `<ReactFlow/` with `configuration` option
106+
- `AutoCompleteFieldProps` and `IAutoCompleteFieldProps` interfaces: use `SuggestFieldProps`
107+
- `<CodeAutocompleteField/>`
108+
- `AutoSuggestionProps`: use `CodeAutocompleteFieldProps` instead
109+
- we renamed `ISuggestionBase`, `ISuggestionWithReplacementInfo`, `IReplacementResult`, `IPartialAutoCompleteResult`, `IValidationResult` to `CodeAutocompleteFieldSuggestionBase`, `CodeAutocompleteFieldSuggestionWithReplacementInfo`, `CodeAutocompleteFieldReplacementResult`, `CodeAutocompleteFieldPartialAutoCompleteResult`, `CodeAutocompleteFieldValidationResult`
110+
- all legacy support components are going to be removed, you need to replace them by activily maintained components
111+
- `<ButtonReplacement/>`: switch to `<Button />`
112+
- `<AffirmativeButtonReplacement/>`: switch to `<Button affirmative />`
113+
- `<DismissiveButtonReplacement/>`: switch to `<Button dismissive />`
114+
- `<DisruptiveButtonReplacement/>`: switch to `<Button disruptive />`
115+
- `<CheckboxReplacement/>`: switch to `<Checkbox />`
116+
- `<RadioButtonReplacement/>`: switch to `<RadioButton />`
117+
- `<TabsReplacement/>`: switch to `<Tabs />`
118+
- `<TextFieldReplacement/>`: switch to `<TextField />`, `<TextArea />`, `<FieldItem />`
119+
- `MultiSuggestField.ofType` method:
120+
- instead of `MyMultiSuggest = MultiSuggestField.ofType<MyType>()` use directly `<MultiSuggestField<MyType> {...props} />`
121+
- `MultiSuggestField.ofType` also returns the original BlueprintJS `MultiSelect` element, not our version!
122+
9123
## [23.8.0] - 2024-08-19
10124

11125
### Added
@@ -53,7 +167,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this p
53167
- Element wraps the content that need to be displayed sticky.
54168
- `utils`
55169
- `getScrollParent`: method to find the scroll parent of an element
56-
- `<AutoCompleteField />`
170+
- `<SuggestField />`
57171
- Support loading more results when scrolling to the end of the result list.
58172
- `<TextArea />`
59173
- `intent` property to set the state, formerly used `hasStatePrimary`, `hasStateSuccess`, `hasStateWarning` and `hasStateDanger` properties are now deprecated
@@ -188,7 +302,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this p
188302
- `<ActivityControlWidget />`
189303
- added extra line to show timer for execution period
190304
- `<ExtendedCodeEditor />`
191-
- replaces `<SingleLineCodeEditor />` to get used for the `<AutoSuggestion />` component
305+
- replaces `<SingleLineCodeEditor />` to get used for the `<CodeAutocompleteField />` component
192306
- new icons
193307
- `data-string`, `data-url`, `data-date`, `data-time`, `data-datetime`, `data-number`
194308
@@ -236,7 +350,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this p
236350
- `loose`: can be set to `true` to prevent the box with border on the label component
237351
- `<TableExpandHeader />`
238352
- `toggleIcon`: optional icon that should be displayed instead of the default ones.
239-
- `Utilities`
353+
- `utils`
240354
- `getGlobalVar` and `setGlobalVar`: can be used to manage global variables indepentently from component states. They are stored to the `window` object under a `eccgui` "namespace". Can be used for example to manage globally increased counters. Do not use them if you need to store user session properties or confidential data!
241355
- canonical icons for `artefact-chatlog`, `entity-human`, `entity-robot` and `operation-magic`
242356
@@ -366,7 +480,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this p
366480
- `<WorkspaceHeader />`
367481
- `IWorkspaceHeaderProps` interface is now deprecated, use `WorkspaceHeaderProps` instead
368482
- `<NumericInput />`
369-
- It will be remove because beside the special arrow buttons it does not add any special. Could be done also with `<TextField />` combined with correct `type`.
483+
- It will be removed because beside the special arrow buttons it does not add any special. Could be done also with `<TextField />` combined with correct `type`.
370484
- `<Highlighter />`
371485
- `HighlighterFunctions` renamed to `highlighterUtils`
372486
- `extractSearchWords` moved to `highlighterUtils.extractSearchWords`
@@ -381,7 +495,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this p
381495
- `ReactFlow` extensions
382496
- `NodeProps`: renamed to `NodeDefaultProps`
383497
- `minimapNodeClassName`: moved to `miniMapUtils.nodeClassName`
384-
- `minimapNodeColor`: moved to `miniMapUtils.nodeClassName`
498+
- `minimapNodeColor`: moved to `miniMapUtils.nodeColor`
385499
- `nodeUtils`: renamed to `nodeDefaultUtils`
386500
- `IHandleProps`: renamed to `NodeContentHandleProps`
387501
- `NodeDimensions`: use `NodeContentProps<any>['nodeDimensions']`

0 commit comments

Comments
 (0)