Releases: eccenca/gui-elements
v24.1.0-rc.4
NPM package: https://www.npmjs.com/package/@eccenca/gui-elements/v/24.1.0-rc.4
Storybook:
Added
<ContentGroup />component- Manage display of a grouped content section.
- Add info, actions and context annotations by using its properties.
- Can be nested into each other.
<CodeEditor />- implemented support for linting which is enabled via
useLintingprop turtleandjavascriptare currently supported languages for linting- editor is focused on load if
autoFocusprop is set totrue - implemented support for
disabledstate in code editor - implemented support for
intentstates in code editor
- implemented support for linting which is enabled via
<Label />additionalElementsproperty to display elements at the end of the labelinlineproperty to display the label component as inline block
<NodeContent />resizeDirectionsto specifiy the axis that can be used to resize the noderesizeMaxDimensionsto add maximum values for resizing height/width
<CardActions />noWrapproperty to display them without wrapping its children on multiple lines
<SimpleDialog />actionsPropsproperty to forwardCardActionsproperties, e.g.noWrap
<MenutItem />tooltipproperty to dislay tooltip on menu item label
<NodeContent />resizeDirectionsto specifiy the axis that can be used to resize the noderesizeMaxDimensionsto add maximum values for resizing height/width
- New icons:
- "item-magic-edit": icon for "magic" edit suggestions
- "artefact-task-concatenatetofile": icon for "Concatenate to file" operator
Fixed
<CodeAutocompleteField />:- Code editor resets to initial value on every code editor instance re-init
<OverviewItemActions />hiddenInteractionsstay visible if they contain focused elements or opened overlays (e.g. context menus)
<TagList />- do not create empty list items
Changed
<ReactFlow />- property color for
graphconfiguration was adjusted
- property color for
<Switch />- use always
<Label/>component forlabelvalue
- use always
<StickyNoteNode />- Refactored data structure position and dimension (breaking change)
v24.1.0-rc.3
NPM package: https://www.npmjs.com/package/@eccenca/gui-elements/v/24.1.0-rc.3
Storybook:
Added
ContentGroupcomponent- Manage display of a grouped content section.
- Add info, actions and context annotations by using its properties.
- Can be nested into each other.
<CodeEditor />- implemented support for linting which is enabled via
useLintingprop turtleandjavascriptare currently supported languages for linting- editor is focused on load if
autoFocusprop is set totrue - implemented support for
disabledstate in code editor - implemented support for
intentstates in code editor
- implemented support for linting which is enabled via
<Label />- added
additionalElementsproperty to display elements at the end of the label
- added
v24.1.0-rc.2
NPM package: https://www.npmjs.com/package/@eccenca/gui-elements/v/24.1.0-rc.2
Storybook:
Added
CntentGroupcomponent- Manage display of a grouped content section.
- Add info, actions and context annotations by using its properties.
- Can be nested into each other.
<CodeEditor />- implemented support for linting which is enabled via
useLintingprop turtleandjavascriptare currently supported languages for linting- editor is focused on load if
autoFocusprop is set totrue - implemented support for
disabledstate in code editor - implemented support for
intentstates in code editor
- implemented support for linting which is enabled via
v24.0.1
NPM package: https://www.npmjs.com/package/@eccenca/gui-elements/v/24.0.1
Storybook: https://62150dbccb2d77003a2a5093-zfmddzvmin.chromatic.com/
Changed
eslintlibraries were upgraded to v9, sonodev18.18 or higher is required
Fixed
MultiSelect:- Old suggestions might be shown for a very short time when typing in a new search query.
CodeEditor:- Broken highlighting for editor modes that leveraged adapted legacy modes.
v24.1.0-rc.1
NPM package: https://www.npmjs.com/package/@eccenca/gui-elements/v/24.1.0-rc.1
Storybook:
Added
CntentGroupcomponent- Manage display of a grouped content section.
- Add info, actions and context annotations by using its properties.
- Can be nested into each other.
<CodeEditor />- implemented support for linting which is enabled via
useLintingprop turtleandjavascriptare currently supported languages for linting- editor is focused on load if
autoFocusprop is set totrue - implemented support for
disabledstate in code editor - implemented support for
intentstates in code editor
- implemented support for linting which is enabled via
Fixed
MultiSelect:- Old suggestions might be shown for a very short time when typing in a new search query.
Changed
eslintlibraries were upgraded to v9, sonodev18.18 or higher is required
v24.1.0-rc.0
NPM package: https://www.npmjs.com/package/@eccenca/gui-elements/v/24.1.0-rc.0
Storybook:
Changed
eslintlibraries were upgraded to v9, sonodev18.18 or higher is required
Fixed
MultiSelect:- Old suggestions might be shown for a very short time when typing in a new search query.
v24.0.0
NPM package: https://www.npmjs.com/package/@eccenca/gui-elements/v/24.0.0
Storybook: https://62150dbccb2d77003a2a5093-auumvvztlk.chromatic.com/
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.
Migration from v23 to v24
- upgrade Typescript to v5
- upgrade Node to at least v18, see Changed section for more info about it
- 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
<GridColumn/>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
<Notification/>fullWidth: was deprecated and now removed, useflexWidthas replacementiconName: was deprecated and now removed, useiconproperty
<Table/>size: use only "small", "medium" or "large" as value
<Tag/>emphasized: was deprecated and now removed, useminimal=falseplusemphasis="stronger"instead
IconSizedtype: useCarbonIconTypeTimeUnitstype: useElapsedDateTimeDisplayUnitsMarkdownParserPropsinterface: useMarkdownPropselapsedTimeSegmentedfunction: useelapsedDateTimeDisplayUtils.elapsedTimeSegmentedsimplifiedElapsedTimefunction: useelapsedDateTimeDisplayUtils.simplifiedElapsedTime
Added
<StringPreviewContentBlobToggler />: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.
<MultiSuggestField />- An optional custom search function property has been added, it defines how to filter elements.
- Added a prop
limitHeightOpenedto limit the height of the dropdown by automatically calculating the available height in vh.
<FlexibleLayoutContainer />and<FlexibleLayoutItem />- helper components to create flex layouts for positioning sub elements
- stop misusing
Toolbar*components to do that (anti pattern)
<PropertyValueList />and<PropertyValuePair />singleColumnproperty to display label and value below each other
<Label />emphasisproperty to control visual appearance of the label text
- basic Storybook example for
<Application* />components <CodeEditor />setEditorViewoption for compatibility to Codemirror v6supportCodeFoldingoptional property to fold code for the supported modes e.g:xml,json, etc.shouldHighlightActiveLineoptional property to highlight active line where the cursor is currently in.shouldHaveMinimalSetupoptional property that imports codemirror's base minimal configurations.additionalExtensionsoptional property for additional extensions to customize the editor further.
<Markdown />htmlContentBlockPropscan now be used to configure the wrapper around the Markdown content
$eccgui-selector-text-spot-highlightSCSS config variable to specify selector that is used to create shortly highlighted spots- it is highlighted when the selector is also active local anchor target or if it has the
.eccgui-typography--spothighlightclass attached to it
- it is highlighted when the selector is also active local anchor target or if it has the
Fixed
- toggling on/off the
<HandleTools/>was corrected, they kept displayed after re-entering with the cursor <Pagination/>- change text overflow for selectors to
clipbecause Firefox renderedellipsisa bit too early
- change text overflow for selectors to
<ApplicationContainer />:useDropzoneMonitorhelper hook process was improved so that less events are processed and the dropzone monitoring is more stable
Changed
- GUI elements library needs node 18 or an higher version because dependencies were upgraded
- 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
- if you cannot upgrade your dependencies then you could workaround that by patching the
cryptopackage or using Node with--openssl-legacy-provideroption - see webpack/webpack#14532 and https://stackoverflow.com/questions/69692842/ for more info and possible solutions
- upgrade to
@carbon/reactpackage- almost all Carbon related packages were replaced by using only
@carbon/react - some component interfaces partly lack documentation in our Storybook because their base interfaces from
@carbon/reactare currently not exported:AccordionItemProps,ApplicationHeaderProps,ApplicationToolbarProps,ApplicationToolbarActionProps,ApplicationToolbarPanelProps,CarbonIconType,TableCellProps,TableExpandRowProps,TableProps
- almost all Carbon related packages were replaced by using only
- upgrade to Typescript v5
- your package should be compatible to Typescript 5 patterns
- upgrade to Storybook v8
- 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
- allow
nextandlegacyas branch names <CodeEditor />setInstanceinterface changed tosetEditorViewfor semantic compatibility to Codemirror v6
<BreadcrumbItem/>- link color and separation char were adjusted
<Markdown/>- align blocks for language specific code to default code blocks
- switch icons for
item-cloneanditem-copyto Carbon's<Replicate/>and<Copy/> - Remove duplicated icon names
artefact-customtask*and only keepartefact-task*names. <OverviewItemDepiction/>- improve examples in storybook
- improve display for images that are to large for the available space (fully show them)
<CodeAutocompleteField />:- Add parameter
reInitOnInitialValueChange, to allow the field to re-initialize if the initial value changes.
- Add parameter
Deprecated
<Icon/>and<TestIcon/>descriptionandiconTitle: usetitleas replacement.
TableRowHeightSizetype: useTableProps["size"]directlyIRenderModifiersinterface: useSuggestFieldItemRendererModifierPropsIElementWidthtype: useSuggestFieldItemRendererModifierProps["styleWidth"]MultiSelectSelectionPropsinterface: useMultiSuggestFieldSelectionPropsMultiSelectPropsinterface: useMultiSuggestFieldPropsnodeTypesandedgeTypes- will be removed without replacement, define it yourself or use
<ReactFlow/withconfigurationoption
- will be removed without replacement, define it yourself or use
AutoCompleteFieldPropsandIAutoCompleteFieldPropsinterfaces: useSuggestFieldProps<CodeAutocompleteField/>AutoSuggestionProps: useCodeAutocompleteFieldPropsinstead- we renamed
ISuggestionBase,ISuggestionWithReplacementInfo,IReplacementResult,IPartialAutoCompleteResult,IValidationResulttoCodeAutocompleteFieldSuggestionBase,CodeAutocompleteFieldSuggestionWithReplacementInfo,CodeAutocompleteFieldReplacementResult,CodeAutocompleteFieldPartialAutoCompleteResult,CodeAutocompleteFieldValidationResult
- all legacy support components are going to be removed, you need to replace them by activily maintained components
<ButtonReplacement/>: switch to<Button /><AffirmativeButtonReplacement/>: switch to<Button affirmative /><DismissiveButtonReplacement/>: switch to<Button dismissive /><DisruptiveButtonReplacement/>: switch to<Button disruptive /><CheckboxReplacement/>: switch to<Checkbox /><RadioButtonReplacement/>: switch to<RadioButton /><TabsReplacement/>: switch to<Tabs /><TextFieldReplacement/>: switch to<TextField />,<TextArea />,<FieldItem />
MultiSuggestField.ofTypemethod:- instead of
MyMultiSuggest = MultiSuggestField.ofType<MyType>()use directly<MultiSuggestField<MyType> {...props} /> MultiSuggestField.ofTypealso returns the original BlueprintJSMultiSelectelement, not our version!
- instead of
v24.0.0-rc.5
NPM package: https://www.npmjs.com/package/@eccenca/gui-elements/v/24.0.0-rc.5
Storybook:
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.
Migration from v23 to v24
- upgrade Typescript to v5
- upgrade Node to at least v18, see Changed section for more info about it
- 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
<GridColumn/>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
<Notification/>fullWidth: was deprecated and now removed, useflexWidthas replacementiconName: was deprecated and now removed, useiconproperty
<Table/>size: use only "small", "medium" or "large" as value
<Tag/>emphasized: was deprecated and now removed, useminimal=falseplusemphasis="stronger"instead
IconSizedtype: useCarbonIconTypeTimeUnitstype: useElapsedDateTimeDisplayUnitsMarkdownParserPropsinterface: useMarkdownPropselapsedTimeSegmentedfunction: useelapsedDateTimeDisplayUtils.elapsedTimeSegmentedsimplifiedElapsedTimefunction: useelapsedDateTimeDisplayUtils.simplifiedElapsedTime
Added
<StringPreviewContentBlobToggler />: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.
<MultiSuggestField />- An optional custom search function property has been added, it defines how to filter elements.
- Added a prop
limitHeightOpenedto limit the height of the dropdown by automatically calculating the available height in vh.
<FlexibleLayoutContainer />and<FlexibleLayoutItem />- helper components to create flex layouts for positioning sub elements
- stop misusing
Toolbar*components to do that (anti pattern)
<PropertyValueList />and<PropertyValuePair />singleColumnproperty to display label and value below each other
<Label />emphasisproperty to control visual appearance of the label text
- basic Storybook example for
<Application* />components <CodeEditor />setEditorViewoption for compatibility to Codemirror v6supportCodeFoldingoptional property to fold code for the supported modes e.g:xml,json, etc.shouldHighlightActiveLineoptional property to highlight active line where the cursor is currently in.shouldHaveMinimalSetupoptional property that imports codemirror's base minimal configurations.additionalExtensionsoptional property for additional extensions to customize the editor further.
<Markdown />htmlContentBlockPropscan now be used to configure the wrapper around the Markdown content
$eccgui-selector-text-spot-highlightconfig variable to specify selector that is used to create shortly highlighted spots- it is highlighted when the selector is also active local anchor target or if it has the
.eccgui-typography--spothighlightclass attached to it
- it is highlighted when the selector is also active local anchor target or if it has the
Fixed
- toggling on/off the
<HandleTools/>was corrected, they kept displayed after re-entering with the cursor
Changed
- GUI elements library needs node 18 or an higher version because dependencies were upgraded
- 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
- if you cannot upgrade your dependencies then you could workaround that by patching the
cryptopackage or using Node with--openssl-legacy-provideroption - see webpack/webpack#14532 and https://stackoverflow.com/questions/69692842/ for more info and possible solutions
- upgrade to
@carbon/reactpackage- almost all Carbon related packages were replaced by using only
@carbon/react - some component interfaces partly lack documentation in our Storybook because their base interfaces from
@carbon/reactare currently not exported:AccordionItemProps,ApplicationHeaderProps,ApplicationToolbarProps,ApplicationToolbarActionProps,ApplicationToolbarPanelProps,CarbonIconType,TableCellProps,TableExpandRowProps,TableProps
- almost all Carbon related packages were replaced by using only
- upgrade to Typescript v5
- your package should be compatible to Typescript 5 patterns
- upgrade to Storybook v8
- 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
- allow
nextandlegacyas branch names <CodeEditor />setInstanceinterface changed tosetEditorViewfor semantic compatibility to Codemirror v6
<BreadcrumbItem/>- link color and separation char were adjusted
<Markdown/>- align blocks for language specific code to default code blocks
- switch icons for
item-cloneanditem-copyto Carbon's<Replicate/>and<Copy/> - Remove duplicated icon names
artefact-customtask*and only keepartefact-task*names. <OverviewItemDepiction/>- improve examples in storybook
- improve display for images that are to large for the available space (fully show them)
Deprecated
<Icon/>and<TestIcon/>descriptionandiconTitle: usetitleas replacement.
TableRowHeightSizetype: useTableProps["size"]directlyIRenderModifiersinterface: useSuggestFieldItemRendererModifierPropsIElementWidthtype: useSuggestFieldItemRendererModifierProps["styleWidth"]MultiSelectSelectionPropsinterface: useMultiSuggestFieldSelectionPropsMultiSelectPropsinterface: useMultiSuggestFieldPropsnodeTypesandedgeTypes- will be removed without replacement, define it yourself or use
<ReactFlow/withconfigurationoption
- will be removed without replacement, define it yourself or use
AutoCompleteFieldPropsandIAutoCompleteFieldPropsinterfaces: useSuggestFieldProps<CodeAutocompleteField/>AutoSuggestionProps: useCodeAutocompleteFieldPropsinstead- we renamed
ISuggestionBase,ISuggestionWithReplacementInfo,IReplacementResult,IPartialAutoCompleteResult,IValidationResulttoCodeAutocompleteFieldSuggestionBase,CodeAutocompleteFieldSuggestionWithReplacementInfo,CodeAutocompleteFieldReplacementResult,CodeAutocompleteFieldPartialAutoCompleteResult,CodeAutocompleteFieldValidationResult
- all legacy support components are going to be removed, you need to replace them by activily maintained components
<ButtonReplacement/>: switch to<Button /><AffirmativeButtonReplacement/>: switch to<Button affirmative /><DismissiveButtonReplacement/>: switch to<Button dismissive /><DisruptiveButtonReplacement/>: switch to<Button disruptive /><CheckboxReplacement/>: switch to<Checkbox /><RadioButtonReplacement/>: switch to<RadioButton /><TabsReplacement/>: switch to<Tabs /><TextFieldReplacement/>: switch to<TextField />,<TextArea />,<FieldItem />
MultiSuggestField.ofTypemethod:- instead of
MyMultiSuggest = MultiSuggestField.ofType<MyType>()use directly<MultiSuggestField<MyType> {...props} /> MultiSuggestField.ofTypealso returns the original BlueprintJSMultiSelectelement, not our version!
- instead of
v24.0.0-rc.4
NPM package: https://www.npmjs.com/package/@eccenca/gui-elements/v/24.0.0-rc.4
Storybook:
Added
<StringPreviewContentBlobToggler />: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.
<MultiSuggestField />- An optional custom search function property has been added, it defines how to filter elements.
- Added a prop
limitHeightOpenedto limit the height of the dropdown by automatically calculating the available height in vh.
<FlexibleLayoutContainer />and<FlexibleLayoutItem />- helper components to create flex layouts for positioning sub elements
- stop misusing
Toolbar*components to do that (anti pattern)
<PropertyValueList />and<PropertyValuePair />singleColumnproperty to display label and value below each other
<Label />emphasisproperty to control visual appearance of the label text
- basic Storybook example for
<Application* />components $eccgui-selector-text-spot-highlightconfig variable to specify selector that is used to create shortly highlighted spots- it is highlighted when the selector is also active local anchor target or if it has the
.eccgui-typography--spothighlightclass attached to it
- it is highlighted when the selector is also active local anchor target or if it has the
Changed
- GUI elements library needs node 18 or an higher version because dependencies were upgraded
- 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
- if you cannot upgrade your dependencies then you could workaround that by patching the
cryptopackage or using Node with--openssl-legacy-provideroption - see webpack/webpack#14532 and https://stackoverflow.com/questions/69692842/ for more info and possible solutions
- upgrade to
@carbon/reactpackage- almost all Carbon related packages were replaced by using only
@carbon/react - some component interfaces partly lack documentation in our Storybook because their base interfaces from
@carbon/reactare currently not exported:AccordionItemProps,ApplicationHeaderProps,ApplicationToolbarProps,ApplicationToolbarActionProps,ApplicationToolbarPanelProps,CarbonIconType,TableCellProps,TableExpandRowProps,TableProps
- almost all Carbon related packages were replaced by using only
- upgrade to Typescript v5
- your package should be compatible to Typescript 5 patterns
- upgrade to Storybook v8
- 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
- allow
nextandlegacyas branch names - CodeMirror
setInstanceinterface changed tosetEditorViewfor semantic compatibility to version 6 - switch icons for
item-cloneanditem-copyto Carbon's<Replicate/>and<Copy/> - Added new properties to
<CodeMirror>supportCodeFoldingoptional property to fold code for the supported modes e.g: xml, json etc.shouldHighlightActiveLineoptional property to highlight active line where the cursor is currently in.shouldHaveMinimalSetupoptional property that imports codemirror's base minimal configurations.additionalExtensionsoptional property for additional extensions to customize the editor further.
<BreadcrumbItem/>- link color and separation char were adjusted
<Markdown/>- align blocks for language specific code to default code blocks
Deprecated
<Icon/>and<TestIcon/>descriptionandiconTitle: usetitleas replacement.
TableRowHeightSizetype: useTableProps["size"]directlyIRenderModifiersinterface: useSuggestFieldItemRendererModifierPropsIElementWidthtype: useSuggestFieldItemRendererModifierProps["styleWidth"]MultiSelectSelectionPropsinterface: useMultiSuggestFieldSelectionPropsMultiSelectPropsinterface: useMultiSuggestFieldPropsnodeTypesandedgeTypes- will be removed without replacement, define it yourself or use
<ReactFlow/withconfigurationoption
- will be removed without replacement, define it yourself or use
AutoCompleteFieldPropsandIAutoCompleteFieldPropsinterfaces: useSuggestFieldProps<CodeAutocompleteField/>AutoSuggestionProps: useCodeAutocompleteFieldPropsinstead- we renamed
ISuggestionBase,ISuggestionWithReplacementInfo,IReplacementResult,IPartialAutoCompleteResult,IValidationResulttoCodeAutocompleteFieldSuggestionBase,CodeAutocompleteFieldSuggestionWithReplacementInfo,CodeAutocompleteFieldReplacementResult,CodeAutocompleteFieldPartialAutoCompleteResult,CodeAutocompleteFieldValidationResult
- all legacy support components are going to be removed, you need to replace them by activily maintained components
<ButtonReplacement/>: switch to<Button /><AffirmativeButtonReplacement/>: switch to<Button affirmative /><DismissiveButtonReplacement/>: switch to<Button dismissive /><DisruptiveButtonReplacement/>: switch to<Button disruptive /><CheckboxReplacement/>: switch to<Checkbox /><RadioButtonReplacement/>: switch to<RadioButton /><TabsReplacement/>: switch to<Tabs /><TextFieldReplacement/>: switch to<TextField />,<TextArea />,<FieldItem />
MultiSuggestField.ofTypemethod:- instead of
MyMultiSuggest = MultiSuggestField.ofType<MyType>()use directly<MultiSuggestField<MyType> {...props} /> MultiSuggestField.ofTypealso returns the original BlueprintJSMultiSelectelement, not our version!
- instead of
Migration from v23 to v24
- upgrade Typescript to v5
- upgrade Node to at least v18, see Changed section for more info about it
- 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
<GridColumn/>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
<Notification/>fullWidth: was deprecated and now removed, useflexWidthas replacementiconName: was deprecated and now removed, useiconproperty
<Table/>size: use only "small", "medium" or "large" as value
<Tag/>emphasized: was deprecated and now removed, useminimal=falseplusemphasis="stronger"instead
IconSizedtype: useCarbonIconTypeTimeUnitstype: useElapsedDateTimeDisplayUnitsMarkdownParserPropsinterface: useMarkdownPropselapsedTimeSegmentedfunction: useelapsedDateTimeDisplayUtils.elapsedTimeSegmentedsimplifiedElapsedTimefunction: useelapsedDateTimeDisplayUtils.simplifiedElapsedTime
v24.0.0-rc.3
NPM package: https://www.npmjs.com/package/@eccenca/gui-elements/v/24.0.0-rc.3
Storybook:
Added
<StringPreviewContentBlobToggler />: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.
<MultiSuggestField />- An optional custom search function property has been added, it defines how to filter elements.
<FlexibleLayoutContainer />and<FlexibleLayoutItem />- helper components to create flex layouts for positioning sub elements
- stop misusing
Toolbar*components to do that (anti pattern)
<PropertyValueList />and<PropertyValuePair />singleColumnproperty to display label and value below each other
<Label />emphasisproperty to control visual appearance of the label text
- basic Storybook example for
<Application* />components $eccgui-selector-text-spot-highlightconfig variable to specify selector that is used to create shortly highlighted spots- it is highlighted when the selector is also active local anchor target or if it has the
.eccgui-typography--spothighlightclass attached to it
- it is highlighted when the selector is also active local anchor target or if it has the
Changed
- GUI elements library needs node 18 or an higher version because dependencies were upgraded
- 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
- if you cannot upgrade your dependencies then you could workaround that by patching the
cryptopackage or using Node with--openssl-legacy-provideroption - see webpack/webpack#14532 and https://stackoverflow.com/questions/69692842/ for more info and possible solutions
- upgrade to
@carbon/reactpackage- almost all Carbon related packages were replaced by using only
@carbon/react - some component interfaces partly lack documentation in our Storybook because their base interfaces from
@carbon/reactare currently not exported:AccordionItemProps,ApplicationHeaderProps,ApplicationToolbarProps,ApplicationToolbarActionProps,ApplicationToolbarPanelProps,CarbonIconType,TableCellProps,TableExpandRowProps,TableProps
- almost all Carbon related packages were replaced by using only
- upgrade to Typescript v5
- your package should be compatible to Typescript 5 patterns
- upgrade to Storybook v8
- 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
- allow
nextandlegacyas branch names - CodeMirror
setInstanceinterface changed tosetEditorViewfor semantic compatibility to version 6 - switch icons for
item-cloneanditem-copyto Carbon's<Replicate/>and<Copy/> - Added new properties to
<CodeMirror>supportCodeFoldingoptional property to fold code for the supported modes e.g: xml, json etc.shouldHighlightActiveLineoptional property to highlight active line where the cursor is currently in.shouldHaveMinimalSetupoptional property that imports codemirror's base minimal configurations.additionalExtensionsoptional property for additional extensions to customize the editor further.
Deprecated
<Icon/>and<TestIcon/>descriptionandiconTitle: usetitleas replacement.
TableRowHeightSizetype: useTableProps["size"]directlyIRenderModifiersinterface: useSuggestFieldItemRendererModifierPropsIElementWidthtype: useSuggestFieldItemRendererModifierProps["styleWidth"]MultiSelectSelectionPropsinterface: useMultiSuggestFieldSelectionPropsMultiSelectPropsinterface: useMultiSuggestFieldPropsnodeTypesandedgeTypes- will be removed without replacement, define it yourself or use
<ReactFlow/withconfigurationoption
- will be removed without replacement, define it yourself or use
AutoCompleteFieldPropsandIAutoCompleteFieldPropsinterfaces: useSuggestFieldProps<CodeAutocompleteField/>AutoSuggestionProps: useCodeAutocompleteFieldPropsinstead- we renamed
ISuggestionBase,ISuggestionWithReplacementInfo,IReplacementResult,IPartialAutoCompleteResult,IValidationResulttoCodeAutocompleteFieldSuggestionBase,CodeAutocompleteFieldSuggestionWithReplacementInfo,CodeAutocompleteFieldReplacementResult,CodeAutocompleteFieldPartialAutoCompleteResult,CodeAutocompleteFieldValidationResult
- all legacy support components are going to be removed, you need to replace them by activily maintained components
<ButtonReplacement/>: switch to<Button /><AffirmativeButtonReplacement/>: switch to<Button affirmative /><DismissiveButtonReplacement/>: switch to<Button dismissive /><DisruptiveButtonReplacement/>: switch to<Button disruptive /><CheckboxReplacement/>: switch to<Checkbox /><RadioButtonReplacement/>: switch to<RadioButton /><TabsReplacement/>: switch to<Tabs /><TextFieldReplacement/>: switch to<TextField />,<TextArea />,<FieldItem />
MultiSuggestField.ofTypemethod:- instead of
MyMultiSuggest = MultiSuggestField.ofType<MyType>()use directly<MultiSuggestField<MyType> {...props} /> MultiSuggestField.ofTypealso returns the original BlueprintJSMultiSelectelement, not our version!
- instead of
Migration from v23 to v24
- upgrade Typescript to v5
- upgrade Node to at least v18, see Changed section for more info about it
- 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
<GridColumn/>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
<Notification/>fullWidth: was deprecated and now removed, useflexWidthas replacementiconName: was deprecated and now removed, useiconproperty
<Table/>size: use only "small", "medium" or "large" as value
<Tag/>emphasized: was deprecated and now removed, useminimal=falseplusemphasis="stronger"instead
IconSizedtype: useCarbonIconTypeTimeUnitstype: useElapsedDateTimeDisplayUnitsMarkdownParserPropsinterface: useMarkdownPropselapsedTimeSegmentedfunction: useelapsedDateTimeDisplayUtils.elapsedTimeSegmentedsimplifiedElapsedTimefunction: useelapsedDateTimeDisplayUtils.simplifiedElapsedTime