Skip to content

Releases: iTwin/appui

v4.15.3

15 Jul 12:12
Compare
Choose a tag to compare

Release notes

Changes

  • Fix PopupContextMenu in StatusBarPopover (#914)

Full changelog: 4.15.2...4.15.3

v4.15.2

10 Jul 11:55
Compare
Choose a tag to compare

Release notes

Changes

  • Fix FrontstageDef.create() to handle FrontstageProvider shaped objects (#908)

Full changelog: 4.15.1...4.15.2

v4.15.1

09 Jul 09:23
Compare
Choose a tag to compare

Release notes

Changes

  • Remove ConditionalIconItem.isConditionalIconItem() workaround (#903)

Full changelog: 4.15.0...4.15.1

v4.15.0

28 Jun 09:10
Compare
Choose a tag to compare

4.15.0 Change Notes

Table of contents:

@itwin/appui-react

Deprecations

  • All Redux associated APIs are deprecated. The necessity for a Redux store will be eliminated in the upcoming releases. Instead, new applications should use their preferred state management library instead. For existing applications it is recommended to continue wrapping the application with Redux Provider and FrameworkState to maintain the compatibility with the existing redux specific APIs and components, until component libraries migrate away from the deprecated APIs. #853
    • Action, ActionCreatorsObject, ActionsUnion, ActionTypes, ActionWithPayload, CombinedReducerState, combineReducers, CombineReducersFunction, createAction, DeepReadonly, DeepReadonlyArray, DeepReadonlyObject, FunctionType, NameToReducerMap, Reducer, ReducerActions, ReducerMapActions, ReducerRegistry, ReducerRegistryInstance, StateType, StateManager APIs that are specific to Redux. Use APIs from redux ecosystem i.e. @reduxjs/toolkit or your preferred state management library instead.
    • ConfigurableUiActionId, ConfigurableUiActions, ConfigurableUiActionsUnion, ConfigurableUiReducer, ConfigurableUiState, SessionState, SessionStateActionId, SessionStateActions, SessionStateActionsProps, SessionStateActionsUnion, sessionStateMapDispatchToProps, SessionStateReducer, FrameworkReducer, FrameworkState, connectIModelConnection, connectIModelConnectionAndViewState, PresentationSelectionScope APIs that are related to AppUI framework store. Use replacements suggested for SessionState and ConfigurableUiState properties instead.
    • AppUiSettings, InitialAppUiSettings APIs. Use UiStateStorage to persist UI settings instead.
    • UiSettingsPage component. Use iTwinUI components to build a settings page.
    • IModelConnectedViewport component. Use ViewportComponent instead.
    • IModelConnectedViewSelector component. Use ViewSelector instead.
    • SelectionInfoField component. Use SelectionCountField instead.
    • Static methods and properties of UiFramework related to redux store.
  • Deprecated StandardMessageBox in favor of iTwinUI Dialog. #866
  • Deprecated provideToolbarItems, provideStatusBarItems, provideWidgets and provideBackstageItems methods of UiItemsProvider. Use getToolbarItems, getStatusBarItems, getWidgets and getBackstageItems methods of UiItemsProvider instead. #874
  • Deprecated AccuDrawCommandItems. Use KeyboardShortcutUtilities or ToolbarItemUtilities instead. #875
  • Deprecated AnyItemDef. Use type specific item definitions instead, i.e. ToolbarItem. #875
  • Deprecated areNoFeatureOverridesActive, featureOverridesActiveStateFunc, getFeatureOverrideSyncEventIds, getIsHiddenIfFeatureOverridesActive, getIsHiddenIfSelectionNotActive, getSelectionContextSyncEventIds, isNoSelectionActive, selectionContextStateFunc. Use ToolbarItems or a custom conditional value instead. #875
  • Deprecated BackstageManager. Use UiFramework.backstage instead. #875
  • Deprecated BaseItemState. Define a custom state for your React components. #875
  • Deprecated ActionButtonItemDef, CustomItemDef, CustomItemProps, CommandHandler, CommandItemDef, CommandItemProps, GroupItemDef, GroupItemProps, ItemDefBase, ItemProps, ToolItemDef, ToolItemProps. Use specific item types instead, i.e. ToolbarActionItem. #875
  • Deprecated CoreTools, SelectionContextToolDefinitions classes. Use functions from ToolbarItems namespace instead. #875
  • Deprecated FrameworkBackstage.getBackstageToggleCommand() method. Use BackstageAppButton component instead. #875
  • Deprecated FrameworkKeyboardShortcut.item property. Use properties of FrameworkKeyboardShortcut object instead. #875
  • Deprecated ItemList, ItemMap classes. Use Array or Map to store your objects. #875
  • Deprecated KeyboardShortcut class. Use KeyboardShortcutProps or FrameworkKeyboardShortcut instead. #875
  • Deprecated KeyboardShortcutContainer class. Use FrameworkKeyboardShortcutContainer instead. #875
  • Deprecated KeyboardShortcutMenu component and KeyboardShortcutMenuState interface. This component is used internally via UiFramework.keyboardShortcuts APIs to display keyboard shortcuts in a context menu. #875
  • Deprecated MenuItem, MenuItemHelpers classes. Use @itwin/core-react#ContextMenuItem and @itwin/core-react#ContextSubMenu components instead. #875
  • Deprecated NestedFrontstage class. Use NestedFrontstageAppButton component instead. #875
  • Deprecated ToolbarHelper class. Use functions from ToolbarItemUtilities namespace instead. #875
  • Deprecated KeyboardShortcutProps.item, CursorMenuItemProps.item properties. Use properties of the object instead. #875
  • Deprecated all APIs associated with FrontstageProvider class which added unnecessary bloat and layer of complication as it would always map to a single frontstage and forced API consumers to use inheritance. #878
    • addFrontstageProvider() property of FrameworkFrontstages interface. Use FrameworkFrontstages.addFrontstage() instead.
    • frontstageProvider getter of FrontstageDef class. Use FrontstageDef.id to look up a frontstage.
    • FrontstageProvider class. Use Frontstage interface instead.
    • StandardFrontstageProvider class. Use FrontstageUtilities.createStandardFrontstage() function instead.
    • FrontstageConfig interface. Use Frontstage type instead.
  • Deprecated ContentDialog, ModelessDialog and UiDataProvidedDialog in favor of iTwinUI Dialog. #883
  • Deprecated dialogId prop of AccuDrawDialogProps. This prop is no longer needed. #883
  • Deprecated dialogs prop of FrameworkContent. Use UiFramework.dialogs.modal or UiFramework.dialogs.modeless instead to control dialogs. #883

Additions

  • Added additional APIs to support Redux store deprecation in backwards compatible way. #853
    • animateToolSettings, collapsePanels, toolAsToolSettingsLabel, toolbarOpacity, viewOverlay, widgetIcon, widgetOpacity props to ConfigurableUiContent component.
    • activeScope, selectionScopes, onChange props to SelectionScopeField component.
    • snapMode, onChange props to SnapModeField component.
    • theme prop to ThemeManager component.
    • getNumItemsSelected, setNumItemsSelected static methods to UiFramework to facilitate selection count in conditional values.
  • Added KeyboardShortcutUtilities namespace to provide utilities for creating keyboard shortcuts. #875
  • Added NestedFrontstageAppButton component which should be used to close a nested frontstage. #875
  • Added ToolbarItems namespace with functions to create commonly used toolbar items. #875
  • Added ToolbarItemUtilities.createForTool() function to create a toolbar item for a specified tool type.#875
  • Added KeyboardShortcutProps.execute(), CursorMenuItemProps.execute() properties to replace execute action of deprecated item properties. #875
  • Added additional APIs to support FrontstageProvider deprecation. #878
    • Added FrontstageUtilities namespace to provide utilities for creating frontstages.
    • addFrontstage() property to FrameworkFrontstages interface.
    • Frontstage alias type to rename existing FrontstageConfig.
    • Expanded a union type of a static FrontstageDef.create() method to allow Frontstage type together with FrontstageProvider.

Changes

  • Bumped getToolbarItems, getStatusBarItems, getWidgets and getBackstageItems methods of UiItemsProvider, layouts property of CommonToolbarItem and Widget, StandardLayoutToolbarItem, StandardLayoutWidget, ToolbarItemLayouts, WidgetLayouts to @public. #874
  • Changed StandardMessageBox from a class to a functional component. #883
  • Changed components to use iTwinUI dialogs. #883

Fixes

  • Fixed unexpected popout widget transition when popover is opened. [#88...
Read more

v4.14.1

11 Jun 15:58
Compare
Choose a tag to compare

Release notes

Changes

  • Fix ElementTooltip to correctly render in a popup window (backport #868) (#871)
  • Re-open popout widgets in electron app (#872)

Full changelog: 4.14.0...4.14.1

v4.14.0

06 Jun 08:24
Compare
Choose a tag to compare

4.14.0 Change Notes

Table of contents:

@itwin/appui-react

Deprecations

  • Deprecated StatusBar component in favor of StatusBarComposer. #848
  • Deprecated StatusBar namespace. Please use the components directly. #848
    • Deprecated StatusBar.Popup and StatusBarPopup in favor of StatusBarPopover.
    • Deprecated StatusBar.Field and StatusBarField in favor of iTwinUI Button.
  • Deprecated StatusBarIndicator in favor of iTwinUI Button (or other components) and AppUI StatusBarPopover. #848
  • Deprecated StatusBarLabelIndicator in favor of iTwinUI Label and AppUI Icon. #848

Additions

  • controlWidgetVisibility preview feature. When enabled, additional UI elements are rendered to allow the end user of the layout to control widget visibility. #856

    Currently applications might use WidgetState to control widget visibility programmatically and expect the widgets to stay hidden until a certain condition is met. Since this preview feature adds UI elements to control widget visibility, it might conflict with the application's logic. To avoid this, the application should use UiItemsManager.register() and UiItemsManager.unregister() to strictly manage what widgets are available to the end-user.

    Additionally an array of widget ids can be specified to only expose visibility controls for specific widgets. This allows applications to experiment with other use-cases, like keeping at least one widget visible at all times.

  • Added StatusBarPopover to replace StatusBar.Popup. The component uses iTwinUI Popover with some consistent styling for all StatusBar fields. StatusBarPopover should wrap the element that triggers it (e.g. a button). #848

  • Added StatusBarPopover.ExpandIndicator which adds an indicator to show that a button has expandable content. StatusBarPopover.ExpandIndicator is supposed to be used in StatusBarPopover trigger buttons. #848

    Usage example:

    // With iTwinUI Button
    <StatusBarPopover>
      <Button styleType="borderless">
        {label}
        <StatusBarPopover.ExpandIndicator />
      </Button>
    </StatusBarPopover>
    
    // With iTwinUI IconButton
    <StatusBarPopover>
      <IconButton styleType="borderless">
        <SvgLightbulbHollow />
        <StatusBarPopover.ExpandIndicator />
      </IconButton>
    </StatusBarPopover>

Changes

  • The dropdown menu of widgetActionDropdown preview feature will close once one of the menu items is activated. #856
  • The labels for the buttons in the widget title bar will be rendered as tooltips, rather than using the title attribute. #856
  • Started using iTwinUI components for StatusBar field components. That includes both the button and the popup. #848

Fixes

  • Fixed StatusBarComposer overflow item order. Now status fields should always go into overflow from right to left. #848

@itwin/components-react

Deprecations

  • Deprecated DoublePropertyValueRenderer and NavigationPropertyValueRenderer in favor of default PrimitivePropertyValueRenderer. #832
  • Deprecated RadialMenu and RadialButton components that were designed for a retired design pattern in favor of ContextMenu or iTwinUI dropdown menu. #850

Changes

  • Updated VirtualizedPropertyGrid component #849:
    • Enable user selection for property records
    • Display browser context menu on property records if onPropertyContextMenu and isPropertySelectionOnRightClickEnabled props are not set
    • Increased area of an element separator to avoid column overlap
  • Changed handlers of VirtualizedPropertyGrid and UrlPropertyValueRenderer components to open links with pw scheme in a new window. #860

@itwin/core-react

Fixes

  • Fixed SVG icon alignment in ContextMenuItem component. #840
  • Fixed ContextSubMenu to correctly render provided SVG icon. #840

v4.13.4

21 May 08:22
Compare
Choose a tag to compare

Release notes

Changes

  • Fix save restore of frontstage layout (backport #846) (#847)

Full changelog: 4.13.3...4.13.4

v4.13.3

17 May 09:43
Compare
Choose a tag to compare

Release notes

Changes

  • ts5.3.3; update @itwin/build-tools to update doc generation (backport #834) (#839)
  • Added button.label.settings Translation to UiIModelComponents.json (#844)

Full changelog: 4.13.2...4.13.3

v4.13.2

08 May 08:25
Compare
Choose a tag to compare

Release notes

Changes

  • Change DockedBar position to relative (#837)

Full changelog: 4.13.1...4.13.2

v4.13.1

07 May 15:02
Compare
Choose a tag to compare

Release notes

Changes

  • PropertyGrid: render display value when available (#833)

Full changelog: 4.13.0...4.13.1