Skip to main content

Upgrade Guide

Modules in @deck.gl-community are independently maintained, so this page will only list occasional major changes.

Please refer the documentation of each module for detailed upgrade guides.

v9.4

Update deck.gl and luma.gl packages to ~9.4.0. Modules that use loaders.gl require @loaders.gl/*@^4.4.3.

@deck.gl-community/panels

Panel APIs now use panel-oriented names consistently:

v9.3 namev9.4 replacement
WidgetPanelPanel
WidgetPanelThemePanelTheme
WidgetPanelThemeModePanelThemeMode
AccordeonWidgetContainerAccordeonPanelContainer
TabbedWidgetContainerTabbedPanelContainer
ColumnWidgetContainerColumnPanelContainer
PanelBoxBoxPanelContainer
PanelModalModalPanelContainer
PanelSidebarSidebarPanelContainer
PanelFullScreenFullScreenPanelContainer
ToolbarPanelContainerToolbarComponent
ToastPanelContainerToastComponent
useEffectiveWidgetPanelThemeModeuseEffectivePanelThemeMode

Additional migration steps:

  • Pass ordered Panel[] arrays to composite panels instead of PanelRecord maps.
  • Pass a panel directly to shell containers. The descriptor-style container input and the PanelContentContainer, PanelContentRenderer, and asPanelContainer helpers were removed.
  • Replace WidgetHost with PanelManager outside deck.gl. Inside deck.gl, wrap a component with PanelWidget or use a named panel widget.
  • Import createStudioSettingsWidget and updateStudioSettingsWidget from @deck.gl-community/widgets.
  • Rename the icon prop on modal and sidebar containers to triggerIcon.

@deck.gl-community/react

Rename the React panel exports:

v9.3 namev9.4 replacement
WidgetPanelPanel
WidgetPanelPropsPanelProps
WidgetPanelThemeModePanelHostThemeMode

v9.3

Dependencies

  • Requires deck.gl@~9.3.0-beta.1 or later.
  • Requires @luma.gl/*@~9.3.2 or later.
  • Requires @loaders.gl/*@^4.4.1 or later.

@deck.gl-community/panels / @deck.gl-community/widgets

  • New package: @deck.gl-community/panels now owns panel composition, standalone mounting, panel containers, theming, and related standalone UI.
  • @deck.gl-community/widgets is now the deck-facing wrapper layer for panel-based deck.gl widgets.
  • Migration:
    • Import panel definitions and panel containers from @deck.gl-community/panels
    • Pass those panel definitions into wrapper widgets from @deck.gl-community/widgets
  • New preferred widget wrapper names:
    • BoxPanelWidget
    • ModalPanelWidget
    • SidebarPanelWidget
    • FullScreenPanelWidget
  • Compatibility aliases BoxWidget, ModalWidget, and SidebarWidget were removed in v9.4.

@deck.gl-community/editable-layers

  • The @deck.gl-community/layers peer dependency has been bumped from ^9.2.0-beta to ^9.3.0.

v9.2

@deck.gl-community/editable-layers

  • Breaking change: DrawPolygonMode.modeConfig.preventOverlappingLines has been renamed to allowSelfIntersection with inverted logic.
    • Replace {preventOverlappingLines: true}{allowSelfIntersection: false} (or simply omit — this is now the default)
    • Replace {preventOverlappingLines: false}{allowSelfIntersection: true}

@deck.gl-community/leaflet

  • Breaking change: DeckLayer has been renamed to DeckOverlay.
    • Replace all imports and usages: import {DeckLayer} from '@deck.gl-community/leaflet'import {DeckOverlay} from '@deck.gl-community/leaflet'

@deck.gl-community/graph-layers

  • Deprecation: Graph style constants are now defined using literals instead of objects.
    • Replace deprecated NODE_TYPE.CIRCLE with 'circle', EDGE_TYPE.LINE with 'line', etc.
  • Deprecation: GraphLayer now groups styling under a stylesheet prop.
    • Replace nodeStyle / edgeStyle with stylesheet.nodes and stylesheet.edges.
  • Deprecation: graph prop on GraphLayer is being phased out. Provide graphs via the data prop instead (supports GraphEngine, Graph, or raw {nodes, edges}/edge arrays) and supply a layout when the layer must build the engine for you.
  • Breaking change: JSONLoader only normalizes raw JSON payloads. Pass Graph instances directly to GraphLayer.data rather than routing them through the loader.