Skip to content

Commit 919bca3

Browse files
committed
merge develop
2 parents f8a22eb + 4c21036 commit 919bca3

File tree

177 files changed

+6382
-3462
lines changed

Some content is hidden

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

177 files changed

+6382
-3462
lines changed

.github/workflows/deployment-storybook.yml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,13 @@ jobs:
2424
- uses: actions/checkout@main
2525
with:
2626
fetch-depth: 0
27+
- name: Workflow git state
28+
run: |
29+
echo github.ref: ${{ github.ref }}
30+
echo github.event_name: ${{ github.event_name }}
31+
echo github.actor: ${{ github.actor }}
32+
git status
33+
git log --oneline -1
2734
- uses: actions/setup-node@main
2835
with:
2936
node-version: "18"
@@ -32,7 +39,7 @@ jobs:
3239
- name: Create jest results
3340
run: yarn test:generate-output
3441
- name: Publish to Chromatic
35-
uses: chromaui/action@v11
42+
uses: chromaui/action@main
3643
with:
3744
token: ${{ secrets.GITHUB_TOKEN }}
3845
projectToken: ${{ secrets.CHROMATIC_PROJECT_TOKEN }}

.storybook/main.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,12 @@ module.exports = {
6464
},
6565
webpackFinal: async (config, { configType }) => {
6666
// `configType` has a value of 'DEVELOPMENT' or 'PRODUCTION'
67-
67+
if (configType === "PRODUCTION") {
68+
// remove source maps from production storybook
69+
// this may lead to errors when it is created via github workers
70+
// reason is currently not known
71+
config.devtool = false;
72+
}
6873
config.module.rules = [
6974
{
7075
test: /\.(png|jpg|gif|svg)(\\?.*)?$/,

CHANGELOG.md

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

77
## [Unreleased]
88

9+
## [25.0.0] - 2025-12-01
10+
911
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.
1012

13+
### Migration from v24 to v25
14+
15+
- 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
16+
- in case you set your own colors before importing GUI elements you need to update your configuration to the new color palette structure, see `README.md`
17+
- change `intent="primary"` to `intent="accent"` for `<Button />`, `<IconButton />` and `<Spinner />`, if supported you may check if it is better to use `affirmative={true}` or `elevated={true}` instead of `intent`
18+
1119
### Added
1220

21+
- `<ChatContent />`
22+
- displays single chat contents in a bubble, including options to add status line and avatar
23+
- `<ChatContentCollapsed />`
24+
- can collapse (and expand) `<ChatContent />` automatically for convenience
25+
- `<ChatField />`
26+
- let the user input texts, calls `onSubmit` handler on enter key and submit button
27+
- `<ChatArea />`
28+
- combine a list of chat contents and user input box
29+
- `<TextReducer />`
30+
- reduces HTML to simple text and can display it as one ellipsed line
31+
- `<Tooltip />`
32+
- prove useage of `usePlaceholder` by jest test coverage
1333
- `<EdgeStraight />`
1434
- it's basically `<EdgeDefault />` without any special configs
1535
- `<EdgeBezier />`
1636
- only supported for v12, in v9 as straight edge is used
1737
- use `curvature` property in the edge `data` object to define the bezier layout (0..1, default: 0.25)
1838
- `<EdgeDefaultV12 />`
1939
- the `data` object provides `markerAppearance` to set and remove the edge arrows
40+
- `<EdgeDefault />`
41+
- introduced the new `arrowDirection` property, including support for bidirectional edges - supported only for `<EdgeDefaultV12 />`
2042
- `<EdgeNew />`
2143
- component for React Flow v12, displaying new connection lines
2244
- `<VisualTour />`
2345
- component to display a visual tour multi-step tour of the current view
46+
- `<Button />`
47+
- `accent` value for `intent` was added to align property with other components
48+
- `<Spinner />`
49+
- `accent` value for `intent` was added to align property with other components
50+
- `elevated` property can be used to highlight the spinner, currently the `intent="accent"` display is used
51+
- `<Modal />`:
52+
- Add `ModalContext` to track open/close state of all used application modals.
53+
- Add `modalId` property to give a modal a unique ID for tracking purposes.
54+
- `preventReactFlowEvents`: adds 'nopan', 'nowheel' and 'nodrag' classes to overlay classes in order to prevent react-flow to react to drag and pan actions in modals.
55+
- new `utils` methods
56+
- `colorCalculateDistance()`: calculates the difference between 2 colors using the simple CIE76 formula
57+
- `textToColorHash()`: calculates a color from a text string
58+
- `reduceToText`: shrinks HTML content and React elements to plain text, used for `<TextReducer />`
59+
- `decodeHtmlEntities`: decode a string of HTML text, map HTML entities back to UTF-8 chars
60+
- SCSS color functions
61+
- `eccgui-color-var`: returns a var of a custom property used for palette color
62+
- `eccgui-color-mix`: mix 2 colors in `srgb`, works with all types of color values and CSS custom properties
63+
- `eccgui-color-rgba`: like `rgba()` but it works also for CSS custom properties
64+
- Color palette: includes 4 sections with 20+ color tints in 5 weights each
65+
- indentity, semantic, layout, extra
66+
- managed via CSS custom properties
67+
- see `README.md` for more information about usage
68+
- New icons
69+
- `artefact-task-sqlupdatequeryoperator`
70+
- `artefact-task-customsqlexecution`
71+
- `item-legend`
72+
- `operation-tour`
73+
- `toggler-carettop`
74+
- `toggler-caretleft`
75+
- `toggler-micon`
76+
- `toggler-micoff`
77+
- `toggler-radio`
78+
- `toggler-radio-checked`
79+
- `state-flagged`
80+
- `state-progress`
81+
- `state-progress-error`
82+
- `state-progress-warning`
83+
- more icons for build tasks
2484

2585
### Removed
2686

2787
- support for React Flow v10 was completely removed
88+
- removed direct replacements for legacy components (imported via `@eccenca/gui-elements/src/legacy-replacements` or `LegacyReplacements`)
89+
- `<AffirmativeButton />`, `<Button />`, `<DismissiveButton />`, `<DisruptiveButton />`, `<Checkbox />`, `<RadioButton />`, `<Tabs />`, `<TextField />`
90+
- `<Button />`, `<FieldItem />`, `<FieldSet />`, `<MultiSuggestField />`
91+
- removed support for old state properties `hasStatePrimary`, `hasStateSuccess`, `hasStateWarning` and `hasStateDanger`
92+
- `<Notification />`
93+
- removed support for old state properties `neutral`, `success`, `warning` and `danger`
94+
- `<Icon />`
95+
- removed `description` and `iconTitle` properties
96+
- `<OverviewItemList />`
97+
- `densityHigh` property was removed
98+
- `<CodeEditor />`
99+
- static fallback for test id `codemirror-wrapper` was removed, add `data-test-id` (or your test id data attribute) always directly to `CodeEditor`.
100+
- `<EdgeDefault />`
101+
- removed `inversePath` property, can be replaced with `arrowDirection: "inversed"` property
102+
- `<Spinner />`
103+
- `description` property was removed because it was defined but not implemented for a very long time, but we plan to add that type of caption later
104+
- `nodeTypes` and `edgeTypes` exports were removed
105+
- use `<ReactFlow />` with `configuration`, or define it yourself
106+
- SCSS variables `$eccgui-color-application-text` and `$eccgui-color-application-background` were removed
107+
- use `$eccgui-color-workspace-text` and `$eccgui-color-workspace-background`
108+
- Removed `remark-typograf` plugin from `<Markdown />` rendering to maintain display expectation
28109

29110
### Fixed
30111

31-
- `<Modal />`:
32-
- Add 'nopan', 'nowheel' and 'nodrag' classes to Modal's overlay classes in order to always prevent react-flow to react to drag and pan actions in modals.
112+
- `<CodeAutocompleteField />`:
113+
- In multiline mode, validation errors might be highlighted incorrectly (relative line offset added).
33114

34115
### Changed
35116

36117
- `<EdgeDefault />` and `<EdgeStep />`
37118
- support now v9 and v12 of react flow
38119
- `<ReactFlowExtended />`
39120
- use `<EdgeNew />` by default for new connection lines, you can overwrite it by setting `connectionLineComponent` to `undefined`
121+
- `<Spinner />`
122+
- `color` property does not accept `intent` values anymore
123+
- `<OverflowText />`
124+
- beside explicitly specified properties it allows only basic HTML element properties and testing IDs
125+
- overrite the native SCSS `rgba()` function, so it now works for SCSS color values and CSS custom properties
126+
- `<SuggestField />`
127+
- Always add class 'nodrag' to popover content element to always prevent dragging of react-flow and dnd-kit elements when interacting with the component.
128+
- `utils.getColorConfiguration()` works with CSS custom properties
129+
- property names returned by `getColorConfiguration` were changed to kebab case because they are originally defined via CSS custom properties
130+
- e.g. `graphNode` is now `eccgui-graph-node` and `graphNodeBright` is `eccgui-graph-node-bright`
131+
- `<Button />` and `<IconButton />`
132+
- `intent` display was aligned with other components, `intent="primary"` is now `intent="accent"`, in most cases it may be better to use `affirmative={true}` or `elevated={true}` instead of primary/accent intent
133+
- `<Spinner />`
134+
- `intent` display was aligned with other components, `intent="primary"` is now `intent="accent"`, in most cases it may be better to use `elevated={true}` instead of using intent
135+
- icons: arrow directions for `list-sortasc` and `list-sortdesc` were switched, up arrow is now used for ascending sort
40136

41137
### Deprecated
42138

@@ -263,6 +359,8 @@ If you use Jest then you can use the same aliases for the `moduleNameMapper` con
263359
- use always `<Label/>` component for `label` value
264360
- `<StickyNoteNode />`
265361
- Refactored data structure position and dimension (breaking change)
362+
- `<MiniMap />`
363+
- component supports now React Flow v9 and v12
266364

267365
### Deprecated
268366

@@ -462,8 +560,6 @@ This is a major release, and it might be not compatible with your current usage
462560
- `<MultiSuggestField />`
463561
- Updated the interface with the ability to use either `selectedItems` or `prePopulateWithItems` properties, which is more logical.
464562
- Fixed deferred `selectedItems` setting.
465-
- `<StickyNoteModal/>`
466-
- static test id `data-test-id="sticky-note-modal"` will be removed with next major version
467563
- `<BreadcrumbsList />`
468564
- `onItemClick` handler is only executed if breadcrumb has `href` set because this is one callback parameter and the handler would not have any information otherwise
469565
- `<Depiction />`
@@ -490,6 +586,8 @@ This is a major release, and it might be not compatible with your current usage
490586

491587
- `<TextArea />`
492588
- `hasStatePrimary`, `hasStateSuccess`, `hasStateWarning` and `hasStateDanger` properties: use the `intent` property instead.
589+
- `<StickyNoteModal/>`
590+
- static test id `data-test-id="sticky-note-modal"` will be removed with next major version
493591

494592
## [23.6.0] - 2024-04-17
495593

README.md

Lines changed: 64 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -28,22 +28,69 @@ yarn add --dev @types/carbon-components-react
2828

2929
### Configuration
3030

31-
All [configuration variables](https://github.com/eccenca/gui-elements/blob/develop/src/configuration/_variables.scss) can be set before importing the full library or the default configuration but for the main changes you should need to change only a few parameters:
32-
33-
- Basic colors
34-
- `$eccgui-color-primary`: color for very important buttons and switches
35-
- `$eccgui-color-primary-contrast`: readable text color used on primary color areas
36-
- `$eccgui-color-accent`: color for most conformation buttons, links, etc
37-
- `$eccgui-color-accent-contrast`: readable text color used on accent color areas
38-
- `$eccgui-color-applicationheader-text`
39-
- `$eccgui-color-applicationheader-background`
40-
- `$eccgui-color-workspace-text`
41-
- `$eccgui-color-workspace-background`
42-
- Basic sizes
43-
- `$eccgui-size-typo-base`: size including absolute unit, currently only `px` is supported
44-
- `$eccgui-size-typo-base-lineheight`: only ratio to font size, no unit!
45-
- `$eccgui-size-type-levelratio`: ratio without unit! used to calculate different text sizes based on `$eccgui-size-typo-base`
46-
- `$eccgui-size-block-whitespace`: white space between block level elements, currently only `px` is supported
31+
All [configuration variables](https://github.com/eccenca/gui-elements/blob/develop/src/configuration/_variables.scss) can be set before importing the full library or the default configuration but for the main properties you should need to change only a few parameters
32+
33+
#### Colors
34+
35+
Since v25 we use a color palette as basic foundation for color configurations. The palette is defined in 4 sections containing various color tints, each tint includes 5 different weights from 100 (light color) to 900 (dark color).
36+
37+
The default palette can be overwritten if it is defined before the configuration or full library is imported to your Sass styles. The palette need to be defined entirely, we currently don't support overwriting it partly.
38+
39+
```
40+
$eccgui-color-palette-light: (
41+
"identity": (
42+
"brand": #fae1cc #f8cd99 #f6b966 #f4a533 #f29100,
43+
"accent": #e5f4fb #aecfe3 #77abca #4186b2 #0a6199,
44+
"text": #f8f8f8 #bcbcbc #818181 #434343 #090909,
45+
"background": #fff #e8e8e8 #d6d6d6 #d4d4d4 #d3d3d3,
46+
),
47+
"semantic": (
48+
"info": #e5f4fb #aecfe3 #77aaca #4086b2 #096199,
49+
"success": #e8f5e9 #b2c6b4 #7c967e #466749 #103713,
50+
"warning": #fff3e0 #fad2b3 #f5b287 #f0915a #eb702d,
51+
"danger": #fff5f6 #edbfc0 #db8989 #c95253 #b71c1c,
52+
),
53+
"layout": (
54+
"yellow": #fff6d5 #f1ecb5 #e3db79 #d4c93c #c1a500,
55+
"purple": #f4ddf3 #c8a2d1 #9d6eb8 #71378f #480e75,
56+
"magenta": #ffd8e8 #f5a6c3 #e276a4 #be4c80 #59122d,
57+
"pink": #fde4f1 #e6b4ce #d08aae #bb5f8e #711c4d,
58+
"violet": #f4e3f4 #d8b0d8 #b377b3 #904490 #570057,
59+
"indigo": #efe4fb #b89ee0 #8f72c5 #6547aa #3b1e8f,
60+
"cyan": #dff9fc #86d6e5 #5abfd4 #2da9c4 #0092b3,
61+
"teal": #d4f2ec #a3ddd3 #6dc0b2 #479d8d #104c42,
62+
"lime": #cde0d6 #bce3c2 #9dcd99 #7ba66c #87b347,
63+
"amber": #ffe7b8 #ffe9c4 #f9cd8d #eeb757 #ef8f00,
64+
"vermilion": #ffd8cc #e4c4ba #b27a6b #8c4b3a #651c09,
65+
"grey": #f5f6f7 #b7b7b7 #808080 #484848 #1c2329,
66+
),
67+
"extra": (
68+
"gold": #fff7d5 #ebd893 #dfc670 #d3b44e #c7a22b,
69+
"silver": #f0f0f0 #dedede #ccc #bababa #a8a8a8,
70+
"bronze": #fbe9db #f2d6bc #eac29d #e1af7e #d89b5f,
71+
),
72+
);
73+
```
74+
75+
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`.
76+
77+
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.
78+
79+
- `$eccgui-color-primary`: color for very important buttons and switches
80+
- `$eccgui-color-primary-contrast`: readable text color used on primary color areas
81+
- `$eccgui-color-accent`: color for most conformation buttons, links, etc
82+
- `$eccgui-color-accent-contrast`: readable text color used on accent color areas
83+
- `$eccgui-color-applicationheader-text`
84+
- `$eccgui-color-applicationheader-background`
85+
- `$eccgui-color-workspace-text`
86+
- `$eccgui-color-workspace-background`
87+
88+
#### Sizes
89+
90+
- `$eccgui-size-typo-base`: size including absolute unit, currently only `px` is supported
91+
- `$eccgui-size-typo-base-lineheight`: only ratio to font size, no unit!
92+
- `$eccgui-size-type-levelratio`: ratio without unit! used to calculate different text sizes based on `$eccgui-size-typo-base`
93+
- `$eccgui-size-block-whitespace`: white space between block level elements, currently only `px` is supported
4794

4895
## Development
4996

@@ -125,7 +172,7 @@ After you tested the GUI elements package locally you can Clean up your applicat
125172
3. Pull request from release branch into `main` need to be approved
126173
- then ["Publish: final release "](https://github.com/eccenca/gui-elements/actions/workflows/publish-final-release.yml) can be used on `main` (or `next` and `legacy`) to publish final release packages
127174
- another PR is automatically created for changes done during publishing process
128-
175+
129176
## License
130177

131178
Apache License, Version 2.0, January 2004

eslint.config.mjs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
1+
import { fixupPluginRules } from "@eslint/compat";
2+
import { FlatCompat } from "@eslint/eslintrc";
3+
import js from "@eslint/js";
14
import typescriptEslint from "@typescript-eslint/eslint-plugin";
5+
import tsParser from "@typescript-eslint/parser";
26
import react from "eslint-plugin-react";
37
import reactHooks from "eslint-plugin-react-hooks";
48
import simpleImportSort from "eslint-plugin-simple-import-sort";
5-
import { fixupPluginRules } from "@eslint/compat";
6-
import tsParser from "@typescript-eslint/parser";
79
import path from "node:path";
810
import { fileURLToPath } from "node:url";
9-
import js from "@eslint/js";
10-
import { FlatCompat } from "@eslint/eslintrc";
1111

1212
const __filename = fileURLToPath(import.meta.url);
1313
const __dirname = path.dirname(__filename);

0 commit comments

Comments
 (0)