Skip to content

Releases: eccenca/gui-elements

v24.0.0

17 Dec 12:28
Compare
Choose a tag to compare

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, use flexWidth as replacement
      • iconName: was deprecated and now removed, use icon property
    • <Table/>
      • size: use only "small", "medium" or "large" as value
    • <Tag/>
      • emphasized: was deprecated and now removed, use minimal=false plus emphasis="stronger" instead
    • IconSized type: use CarbonIconType
    • TimeUnits type: use ElapsedDateTimeDisplayUnits
    • MarkdownParserProps interface: use MarkdownProps
    • elapsedTimeSegmented function: use elapsedDateTimeDisplayUtils.elapsedTimeSegmented
    • simplifiedElapsedTime function: use elapsedDateTimeDisplayUtils.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 limitHeightOpened to 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 />
    • singleColumn property to display label and value below each other
  • <Label />
    • emphasis property to control visual appearance of the label text
  • basic Storybook example for <Application* /> components
  • <CodeEditor />
    • setEditorView option for compatibility to Codemirror v6
    • supportCodeFolding optional property to fold code for the supported modes e.g: xml, json, etc.
    • shouldHighlightActiveLine optional property to highlight active line where the cursor is currently in.
    • shouldHaveMinimalSetup optional property that imports codemirror's base minimal configurations.
    • additionalExtensions optional property for additional extensions to customize the editor further.
  • <Markdown />
    • htmlContentBlockProps can now be used to configure the wrapper around the Markdown content
  • $eccgui-selector-text-spot-highlight SCSS 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--spothighlight class attached to it

Fixed

  • toggling on/off the <HandleTools/> was corrected, they kept displayed after re-entering with the cursor
  • <Pagination/>
    • change text overflow for selectors to clip because Firefox rendered ellipsis a bit too early
  • <ApplicationContainer />:
    • useDropzoneMonitor helper 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 crypto package or using Node with --openssl-legacy-provider option
    • see webpack/webpack#14532 and https://stackoverflow.com/questions/69692842/ for more info and possible solutions
  • upgrade to @carbon/react package
    • 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/react are currently not exported: AccordionItemProps, ApplicationHeaderProps, ApplicationToolbarProps, ApplicationToolbarActionProps, ApplicationToolbarPanelProps, CarbonIconType, TableCellProps, TableExpandRowProps, TableProps
  • upgrade to Typescript v5
    • your package should be compatible to Typescript 5 patterns
  • upgrade to Storybook v8
  • allow next and legacy as branch names
  • <CodeEditor />
    • setInstance interface changed to setEditorView for 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-clone and item-copy to Carbon's <Replicate/> and <Copy/>
  • Remove duplicated icon names artefact-customtask* and only keep artefact-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.

Deprecated

  • <Icon/> and <TestIcon/>
    • description and iconTitle: use title as replacement.
  • TableRowHeightSize type: use TableProps["size"] directly
  • IRenderModifiers interface: use SuggestFieldItemRendererModifierProps
  • IElementWidth type: use SuggestFieldItemRendererModifierProps["styleWidth"]
  • MultiSelectSelectionProps interface: use MultiSuggestFieldSelectionProps
  • MultiSelectProps interface: use MultiSuggestFieldProps
  • nodeTypes and edgeTypes
    • will be removed without replacement, define it yourself or use <ReactFlow/ with configuration option
  • AutoCompleteFieldProps and IAutoCompleteFieldProps interfaces: use SuggestFieldProps
  • <CodeAutocompleteField/>
    • AutoSuggestionProps: use CodeAutocompleteFieldProps instead
    • we renamed ISuggestionBase, ISuggestionWithReplacementInfo, IReplacementResult, IPartialAutoCompleteResult, IValidationResult to CodeAutocompleteFieldSuggestionBase, 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.ofType method:
    • instead of MyMultiSuggest = MultiSuggestField.ofType<MyType>() use directly <MultiSuggestField<MyType> {...props} />
    • MultiSuggestField.ofType also returns the original BlueprintJS MultiSelect element, not our version!

v24.0.0-rc.5

04 Dec 15:04
Compare
Choose a tag to compare
v24.0.0-rc.5 Pre-release
Pre-release

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, use flexWidth as replacement
      • iconName: was deprecated and now removed, use icon property
    • <Table/>
      • size: use only "small", "medium" or "large" as value
    • <Tag/>
      • emphasized: was deprecated and now removed, use minimal=false plus emphasis="stronger" instead
    • IconSized type: use CarbonIconType
    • TimeUnits type: use ElapsedDateTimeDisplayUnits
    • MarkdownParserProps interface: use MarkdownProps
    • elapsedTimeSegmented function: use elapsedDateTimeDisplayUtils.elapsedTimeSegmented
    • simplifiedElapsedTime function: use elapsedDateTimeDisplayUtils.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 limitHeightOpened to 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 />
    • singleColumn property to display label and value below each other
  • <Label />
    • emphasis property to control visual appearance of the label text
  • basic Storybook example for <Application* /> components
  • <CodeEditor />
    • setEditorView option for compatibility to Codemirror v6
    • supportCodeFolding optional property to fold code for the supported modes e.g: xml, json, etc.
    • shouldHighlightActiveLine optional property to highlight active line where the cursor is currently in.
    • shouldHaveMinimalSetup optional property that imports codemirror's base minimal configurations.
    • additionalExtensions optional property for additional extensions to customize the editor further.
  • <Markdown />
    • htmlContentBlockProps can now be used to configure the wrapper around the Markdown content
  • $eccgui-selector-text-spot-highlight 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--spothighlight class attached to it

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 crypto package or using Node with --openssl-legacy-provider option
    • see webpack/webpack#14532 and https://stackoverflow.com/questions/69692842/ for more info and possible solutions
  • upgrade to @carbon/react package
    • 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/react are currently not exported: AccordionItemProps, ApplicationHeaderProps, ApplicationToolbarProps, ApplicationToolbarActionProps, ApplicationToolbarPanelProps, CarbonIconType, TableCellProps, TableExpandRowProps, TableProps
  • upgrade to Typescript v5
    • your package should be compatible to Typescript 5 patterns
  • upgrade to Storybook v8
  • allow next and legacy as branch names
  • <CodeEditor />
    • setInstance interface changed to setEditorView for 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-clone and item-copy to Carbon's <Replicate/> and <Copy/>
  • Remove duplicated icon names artefact-customtask* and only keep artefact-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/>
    • description and iconTitle: use title as replacement.
  • TableRowHeightSize type: use TableProps["size"] directly
  • IRenderModifiers interface: use SuggestFieldItemRendererModifierProps
  • IElementWidth type: use SuggestFieldItemRendererModifierProps["styleWidth"]
  • MultiSelectSelectionProps interface: use MultiSuggestFieldSelectionProps
  • MultiSelectProps interface: use MultiSuggestFieldProps
  • nodeTypes and edgeTypes
    • will be removed without replacement, define it yourself or use <ReactFlow/ with configuration option
  • AutoCompleteFieldProps and IAutoCompleteFieldProps interfaces: use SuggestFieldProps
  • <CodeAutocompleteField/>
    • AutoSuggestionProps: use CodeAutocompleteFieldProps instead
    • we renamed ISuggestionBase, ISuggestionWithReplacementInfo, IReplacementResult, IPartialAutoCompleteResult, IValidationResult to CodeAutocompleteFieldSuggestionBase, 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.ofType method:
    • instead of MyMultiSuggest = MultiSuggestField.ofType<MyType>() use directly <MultiSuggestField<MyType> {...props} />
    • MultiSuggestField.ofType also returns the original BlueprintJS MultiSelect element, not our version!

v24.0.0-rc.4

14 Nov 13:03
Compare
Choose a tag to compare
v24.0.0-rc.4 Pre-release
Pre-release

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 limitHeightOpened to 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 />
    • singleColumn property to display label and value below each other
  • <Label />
    • emphasis property to control visual appearance of the label text
  • basic Storybook example for <Application* /> components
  • $eccgui-selector-text-spot-highlight 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--spothighlight class attached to it

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 crypto package or using Node with --openssl-legacy-provider option
    • see webpack/webpack#14532 and https://stackoverflow.com/questions/69692842/ for more info and possible solutions
  • upgrade to @carbon/react package
    • 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/react are currently not exported: AccordionItemProps, ApplicationHeaderProps, ApplicationToolbarProps, ApplicationToolbarActionProps, ApplicationToolbarPanelProps, CarbonIconType, TableCellProps, TableExpandRowProps, TableProps
  • upgrade to Typescript v5
    • your package should be compatible to Typescript 5 patterns
  • upgrade to Storybook v8
  • allow next and legacy as branch names
  • CodeMirror setInstance interface changed to setEditorView for semantic compatibility to version 6
  • switch icons for item-clone and item-copy to Carbon's <Replicate/> and <Copy/>
  • Added new properties to <CodeMirror>
    • supportCodeFolding optional property to fold code for the supported modes e.g: xml, json etc.
    • shouldHighlightActiveLine optional property to highlight active line where the cursor is currently in.
    • shouldHaveMinimalSetup optional property that imports codemirror's base minimal configurations.
    • additionalExtensions optional 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/>
    • description and iconTitle: use title as replacement.
  • TableRowHeightSize type: use TableProps["size"] directly
  • IRenderModifiers interface: use SuggestFieldItemRendererModifierProps
  • IElementWidth type: use SuggestFieldItemRendererModifierProps["styleWidth"]
  • MultiSelectSelectionProps interface: use MultiSuggestFieldSelectionProps
  • MultiSelectProps interface: use MultiSuggestFieldProps
  • nodeTypes and edgeTypes
    • will be removed without replacement, define it yourself or use <ReactFlow/ with configuration option
  • AutoCompleteFieldProps and IAutoCompleteFieldProps interfaces: use SuggestFieldProps
  • <CodeAutocompleteField/>
    • AutoSuggestionProps: use CodeAutocompleteFieldProps instead
    • we renamed ISuggestionBase, ISuggestionWithReplacementInfo, IReplacementResult, IPartialAutoCompleteResult, IValidationResult to CodeAutocompleteFieldSuggestionBase, 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.ofType method:
    • instead of MyMultiSuggest = MultiSuggestField.ofType<MyType>() use directly <MultiSuggestField<MyType> {...props} />
    • MultiSuggestField.ofType also returns the original BlueprintJS MultiSelect element, not our version!

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, use flexWidth as replacement
      • iconName: was deprecated and now removed, use icon property
    • <Table/>
      • size: use only "small", "medium" or "large" as value
    • <Tag/>
      • emphasized: was deprecated and now removed, use minimal=false plus emphasis="stronger" instead
    • IconSized type: use CarbonIconType
    • TimeUnits type: use ElapsedDateTimeDisplayUnits
    • MarkdownParserProps interface: use MarkdownProps
    • elapsedTimeSegmented function: use elapsedDateTimeDisplayUtils.elapsedTimeSegmented
    • simplifiedElapsedTime function: use elapsedDateTimeDisplayUtils.simplifiedElapsedTime

v24.0.0-rc.3

05 Nov 15:45
Compare
Choose a tag to compare
v24.0.0-rc.3 Pre-release
Pre-release

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 />
    • singleColumn property to display label and value below each other
  • <Label />
    • emphasis property to control visual appearance of the label text
  • basic Storybook example for <Application* /> components
  • $eccgui-selector-text-spot-highlight 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--spothighlight class attached to it

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 crypto package or using Node with --openssl-legacy-provider option
    • see webpack/webpack#14532 and https://stackoverflow.com/questions/69692842/ for more info and possible solutions
  • upgrade to @carbon/react package
    • 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/react are currently not exported: AccordionItemProps, ApplicationHeaderProps, ApplicationToolbarProps, ApplicationToolbarActionProps, ApplicationToolbarPanelProps, CarbonIconType, TableCellProps, TableExpandRowProps, TableProps
  • upgrade to Typescript v5
    • your package should be compatible to Typescript 5 patterns
  • upgrade to Storybook v8
  • allow next and legacy as branch names
  • CodeMirror setInstance interface changed to setEditorView for semantic compatibility to version 6
  • switch icons for item-clone and item-copy to Carbon's <Replicate/> and <Copy/>
  • Added new properties to <CodeMirror>
    • supportCodeFolding optional property to fold code for the supported modes e.g: xml, json etc.
    • shouldHighlightActiveLine optional property to highlight active line where the cursor is currently in.
    • shouldHaveMinimalSetup optional property that imports codemirror's base minimal configurations.
    • additionalExtensions optional property for additional extensions to customize the editor further.

Deprecated

  • <Icon/> and <TestIcon/>
    • description and iconTitle: use title as replacement.
  • TableRowHeightSize type: use TableProps["size"] directly
  • IRenderModifiers interface: use SuggestFieldItemRendererModifierProps
  • IElementWidth type: use SuggestFieldItemRendererModifierProps["styleWidth"]
  • MultiSelectSelectionProps interface: use MultiSuggestFieldSelectionProps
  • MultiSelectProps interface: use MultiSuggestFieldProps
  • nodeTypes and edgeTypes
    • will be removed without replacement, define it yourself or use <ReactFlow/ with configuration option
  • AutoCompleteFieldProps and IAutoCompleteFieldProps interfaces: use SuggestFieldProps
  • <CodeAutocompleteField/>
    • AutoSuggestionProps: use CodeAutocompleteFieldProps instead
    • we renamed ISuggestionBase, ISuggestionWithReplacementInfo, IReplacementResult, IPartialAutoCompleteResult, IValidationResult to CodeAutocompleteFieldSuggestionBase, 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.ofType method:
    • instead of MyMultiSuggest = MultiSuggestField.ofType<MyType>() use directly <MultiSuggestField<MyType> {...props} />
    • MultiSuggestField.ofType also returns the original BlueprintJS MultiSelect element, not our version!

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, use flexWidth as replacement
      • iconName: was deprecated and now removed, use icon property
    • <Table/>
      • size: use only "small", "medium" or "large" as value
    • <Tag/>
      • emphasized: was deprecated and now removed, use minimal=false plus emphasis="stronger" instead
    • IconSized type: use CarbonIconType
    • TimeUnits type: use ElapsedDateTimeDisplayUnits
    • MarkdownParserProps interface: use MarkdownProps
    • elapsedTimeSegmented function: use elapsedDateTimeDisplayUtils.elapsedTimeSegmented
    • simplifiedElapsedTime function: use elapsedDateTimeDisplayUtils.simplifiedElapsedTime

v24.0.0-rc.2

09 Oct 14:36
Compare
Choose a tag to compare
v24.0.0-rc.2 Pre-release
Pre-release

NPM package: https://www.npmjs.com/package/@eccenca/gui-elements/v/24.0.0-rc.2
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 />
    • singleColumn property to display label and value below each other
  • <Label />
    • emphasis property to control visual appearance of the label text
  • basic Storybook example for <Application* /> components
  • $eccgui-selector-text-spot-highlight 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--spothighlight class attached to it

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 crypto package or using Node with --openssl-legacy-provider option
    • see webpack/webpack#14532 and https://stackoverflow.com/questions/69692842/ for more info and possible solutions
  • upgrade to @carbon/react package
    • 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/react are currently not exported: AccordionItemProps, ApplicationHeaderProps, ApplicationToolbarProps, ApplicationToolbarActionProps, ApplicationToolbarPanelProps, CarbonIconType, TableCellProps, TableExpandRowProps, TableProps
  • upgrade to Typescript v5
    • your package should be compatible to Typescript 5 patterns
  • upgrade to Storybook v8
  • allow next and legacy as branch names
  • switch icons for item-clone and item-copy to Carbon's <Replicate/> and <Copy/>

v24.0.0-rc.1

17 Sep 15:38
Compare
Choose a tag to compare
v24.0.0-rc.1 Pre-release
Pre-release

NPM package: https://www.npmjs.com/package/@eccenca/gui-elements/v/24.0.0-rc.1
Storybook:

Added

  • <MultiSuggestField />
    • An optional custom search function property has been added, it defines how to filter elements.
  • basic Storybook example for <Application* /> components

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 crypto package or using Node with --openssl-legacy-provider option
    • see webpack/webpack#14532 and https://stackoverflow.com/questions/69692842/ for more info and possible solutions
  • upgrade to @carbon/react package
    • 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/react are currently not exported: AccordionItemProps, ApplicationHeaderProps, ApplicationToolbarProps, ApplicationToolbarActionProps, ApplicationToolbarPanelProps, CarbonIconType, TableCellProps, TableExpandRowProps, TableProps
  • upgrade to Typescript v5
    • your package should be compatible to Typescript 5 patterns
  • upgrade to Storybook v8
  • allow next and legacy as branch names

v24.0.0-rc.0

09 Sep 11:25
a6f2b28
Compare
Choose a tag to compare
v24.0.0-rc.0 Pre-release
Pre-release

NPM package: https://www.npmjs.com/package/@eccenca/gui-elements/v/24.0.0-rc.0
Storybook:

Added

  • <MultiSuggestField />
    • An optional custom search function property has been added, it defines how to filter elements.

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 crypto package or using Node with --openssl-legacy-provider option
    • see webpack/webpack#14532 and https://stackoverflow.com/questions/69692842/ for more info and possible solutions
  • upgrade to @carbon/react package
    • 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/react are currently not exported: AccordionItemProps, ApplicationHeaderProps, ApplicationToolbarProps, ApplicationToolbarActionProps, ApplicationToolbarPanelProps, CarbonIconType, TableCellProps, TableExpandRowProps, TableProps
  • upgrade to Typescript v5
    • your package should be compatible to Typescript 5 patterns
  • upgrade to Storybook v8
  • allow next and legacy as branch names

v23.8.0

19 Aug 14:02
Compare
Choose a tag to compare

NPM package: https://www.npmjs.com/package/@eccenca/gui-elements/v/23.8.0
Storybook: https://62150dbccb2d77003a2a5093-dmwubdagxv.chromatic.com/

Added

  • <ApplicationContainer />:
    • monitorDropzonesFor property can be used to monitor application wide dropzones for dragged elements via data attributes attached to body element containing the data transfer type of drag over events.
  • <ReactFlow />
    • dropzoneFor property can be used to mark react flow canvas as matching area to drop dragged elements.
  • <Accordion />, <AccordionItem />
    • whitespaceSize property to define how much whitespace is used on top and bottom inside the header and content of an accordion item.
    • separationSize property defines how much space is used for the separation between an accordion item and the next one.
  • class name prefixes are now available by variables with more readable names:
    • BlueprintJS: $prefix-blueprintjs (current value is bp5)
    • Carbon Design System: $prefix-carbon (current value is cds)
    • eccenca GUI elements: $prefix-eccgui (current value is eccgui)

Fixed

  • <ElapsedDateTimeDisplay />
    • negative values are not shown (e.g. in case server and browser clocks are apart)

Changed

  • <TextArea />
    • improve visual alignment to TextField regarding whitespace and colors
  • basic styles for Uppy widget were improved and moved to its own component folder

Deprecated

  • <Accordion />
    • size property in favour of whitespaceSize
  • <AccordionItem />
    • condensed property in favour of whitespaceSize="none"

v23.8.0-rc.1

14 Aug 10:58
Compare
Choose a tag to compare
v23.8.0-rc.1 Pre-release
Pre-release

NPM package: https://www.npmjs.com/package/@eccenca/gui-elements/v/23.8.0-rc.1
Storybook:

Added

  • <ApplicationContainer />:
    • monitorDropzonesFor property can be used to monitor application wide dropzones for dragged elements via data attributes attached to body element containing the data transfer type of drag over events.
  • <ReactFlow />
    • dropzoneFor property can be used to mark react flow canvas as matching area to drop dragged elements.
  • <Accordion />, <AccordionItem />
    • whitespaceSize property to define how much whitespace is used on top and bottom inside the header and content of an accordion item.
    • separationSize property defines how much space is used for the separation between an accordion item and the next one.
  • class name prefixes are now available by variables with more readable names:
    • BlueprintJS: $prefix-blueprintjs (current value is bp5)
    • Carbon Design System: $prefix-carbon (current value is cds)
    • eccenca GUI elements: $prefix-eccgui (current value is eccgui)

Fixed

  • <ElapsedDateTimeDisplay />
    • negative values are not shown (e.g. in case server and browser clocks are apart)
  • <TextArea />
    • improve visual alignment to TextField regarding whitespace and colors

Changed

  • basic styles for Uppy widget were improved and moved to its own component folder

Deprecated

  • <Accordion />
    • size property in favour of whitespaceSize
  • <AccordionItem />
    • condensed property in favour of whitespaceSize="none"

v23.8.0-rc.0

31 Jul 09:21
Compare
Choose a tag to compare
v23.8.0-rc.0 Pre-release
Pre-release

NPM package: https://www.npmjs.com/package/@eccenca/gui-elements/v/23.8.0-rc.0
Storybook:

Fixed

  • <TextArea />
    • improve visual alignment to TextField regarding whitespace and colors