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
@deck.gl-community/panels
- Breaking change: panel composition APIs no longer expose
Widget*names from@deck.gl-community/panels. - Breaking change: composite panel constructors now accept ordered
Panel[]arrays instead ofPanelRecordmaps. - Breaking change:
PanelComponentis now the root mountable panels API. - Breaking change:
Panelnow extendsPanelComponent; leaf and composite panels inherit fromPanel. - Breaking change: shell containers were renamed to
BoxPanelContainer,ModalPanelContainer,SidebarPanelContainer, andFullScreenPanelContainer. - Breaking change: shell containers accept
panelonly; descriptor-stylecontainerinputs were removed. - Breaking change:
PanelContentContainer,PanelContentRenderer, andasPanelContainerwere removed. - Breaking change:
WidgetHostwas removed. UsePanelManageroutside deck.gl andPanelWidgetadapters inside deck.gl. - Breaking change:
ToolbarPanelContainerandToastPanelContainerwere renamed toToolbarComponentandToastComponent; they are specializedPanelComponentinstances, not panel containers. - Breaking change:
BoxWidget,ModalWidget,SidebarWidget,createStudioSettingsWidget,updateStudioSettingsWidget, and widget-owned panel aliases were removed. - Breaking change: modal and sidebar trigger icons use
triggerIcon; the legacyiconaliases were removed. - Migration:
WidgetPanel->PanelWidgetPanelTheme->PanelThemeWidgetPanelThemeMode->PanelThemeModeAccordeonWidgetContainer->AccordeonPanelContainerTabbedWidgetContainer->TabbedPanelContainerColumnWidgetContainer->ColumnPanelContainerPanelBox->BoxPanelContainerPanelModal->ModalPanelContainerPanelSidebar->SidebarPanelContainerPanelFullScreen->FullScreenPanelContainerToolbarPanelContainer->ToolbarComponentToastPanelContainer->ToastComponentuseEffectiveWidgetPanelThemeMode->useEffectivePanelThemeMode
- Deck migration: wrap any
PanelComponentwithnew PanelWidget({component}), or use the thin named adaptersBoxPanelWidget,ModalPanelWidget,SidebarPanelWidget,FullScreenPanelWidget,ToolbarWidget, andToastWidget. - Deck migration: import
createStudioSettingsWidgetandupdateStudioSettingsWidgetfrom@deck.gl-community/widgetsinstead of@deck.gl-community/panels. - New API:
SplitterPanelcomposes the first panel in one resizable pane and the remaining panels in a second pane.
@deck.gl-community/trace-layers
- Breaking change: package subpaths were normalized:
@deck.gl-community/trace-layers/trace-graph->@deck.gl-community/trace-layers/trace@deck.gl-community/trace-layers/deck-trace-layers->@deck.gl-community/trace-layers/layers@deck.gl-community/trace-layers/trace-loaders->@deck.gl-community/trace-layers/loaders@deck.gl-community/trace-layers/tracevis->@deck.gl-community/trace-layers/react
- Breaking change: trace-layers no longer owns vendored community panel/widget helpers or vendored deck fast-text/view-layout helpers.
- Breaking change:
DeckTraceGraphnow accepts{engine, className?, reactConfig?}instead of the previous graph/settings/collapse/selection callback prop set. MountTraceEngine, sync durable inputs into it, and subscribe toTraceEngineUpdatewhen host persistence is needed. - Breaking change:
TraceChunkStoreno longer exposes the old store-owned window graph snapshot compatibility flow. Select descriptors, materialize immutableTraceGraphDatathrough the source-ownedTraceChunkWindowGraphMaterializer, and wrap it inTraceGraph. - Migration:
- Import panel definitions, settings managers, commands, keyboard shortcuts,
and panel containers from
@deck.gl-community/panels. - Import deck widget adapters,
OmniBoxWidget, toast/time/heap widgets, and Studio settings widget helpers from@deck.gl-community/widgets. - Import
FastTextLayer, UTF8 Arrow string-view helpers, and view-layout helpers from@deck.gl-community/infovis-layers. - Replace old
DeckTraceGraphcontrolled props withTraceEngineInputsplusDeckTraceGraphConfig. - Replace old
TraceStoreLayersources with sources that providematerializeTraceGraphData.
- Import panel definitions, settings managers, commands, keyboard shortcuts,
and panel containers from
@deck.gl-community/react
- Breaking change:
WidgetPanelwas renamed toPanel. - Migration:
WidgetPanel->PanelWidgetPanelProps->PanelPropsWidgetPanelThemeMode->PanelHostThemeMode
- The React
Panelhost now uses@deck.gl-community/panelstheme variables directly and no longer has an@deck.gl/widgetspeer dependency.
v9.3
Dependencies
- Requires
deck.gl@~9.3.0-beta.1or later. - Requires
@luma.gl/*@~9.3.2or later. - Requires
@loaders.gl/*@^4.4.1or later.
@deck.gl-community/panels / @deck.gl-community/widgets
- New package:
@deck.gl-community/panelsnow owns panel composition, standalone mounting, panel containers, theming, and related standalone UI. @deck.gl-community/widgetsis 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
- Import panel definitions and panel containers from
- New preferred widget wrapper names:
BoxPanelWidgetModalPanelWidgetSidebarPanelWidgetFullScreenPanelWidget
- Compatibility aliases
BoxWidget,ModalWidget, andSidebarWidgetwere removed in v9.4.
@deck.gl-community/editable-layers
- The
@deck.gl-community/layerspeer dependency has been bumped from^9.2.0-betato^9.3.0.
v9.2
@deck.gl-community/editable-layers
- Breaking change:
DrawPolygonMode.modeConfig.preventOverlappingLineshas been renamed toallowSelfIntersectionwith inverted logic.- Replace
{preventOverlappingLines: true}→{allowSelfIntersection: false}(or simply omit — this is now the default) - Replace
{preventOverlappingLines: false}→{allowSelfIntersection: true}
- Replace
@deck.gl-community/leaflet
- Breaking change:
DeckLayerhas been renamed toDeckOverlay.- Replace all imports and usages:
import {DeckLayer} from '@deck.gl-community/leaflet'→import {DeckOverlay} from '@deck.gl-community/leaflet'
- Replace all imports and usages:
@deck.gl-community/graph-layers
- Deprecation: Graph style constants are now defined using literals instead of objects.
- Replace deprecated
NODE_TYPE.CIRCLEwith'circle',EDGE_TYPE.LINEwith'line', etc.
- Replace deprecated
- Deprecation:
GraphLayernow groups styling under astylesheetprop.- Replace
nodeStyle/edgeStylewithstylesheet.nodesandstylesheet.edges.
- Replace
- Deprecation:
graphprop onGraphLayeris being phased out. Provide graphs via thedataprop instead (supportsGraphEngine,Graph, or raw{nodes, edges}/edge arrays) and supply alayoutwhen the layer must build the engine for you. - Breaking change:
JSONLoaderonly normalizes raw JSON payloads. PassGraphinstances directly toGraphLayer.datarather than routing them through the loader.