Skip to main content

StudioSettingsPanel

from v9.3

StudioSettingsPanel renders a dense schema-driven settings surface with a section rail, compact mode, grouped settings, and a visual dependency-shape selector for a lineRoutingMode setting.

Import

import {
StudioSettingsPanel,
createStudioSettingsPanel,
type StudioSettingsPanelProps
} from '@deck.gl-community/panels';

Props

type StudioSettingsPanelProps = {
schema: SettingsSchema;
applicationSchema?: SettingsSchema;
fontFamily?: string;
settings: SettingsState;
onSettingsChange?: SettingsManagerOnChange;
presetLabel?: string;
settingRowLayout?: 'aligned' | 'fit-labels';
};

schema supplies visualization controls. applicationSchema is rendered as a separate rail group for app-level controls. Setting descriptors may include group to organize rows within a section and sliderDebounceMs for numeric range controls. Select options may include description alongside label and value to render supporting copy below each option label in the open menu. settingRowLayout defaults to 'aligned'; use 'fit-labels' when each row should size its label column to its content and give more width to the control.

Panel Factory

const panel = createStudioSettingsPanel({
schema,
settings,
onSettingsChange: manager.setSettings.bind(manager)
});

The factory returns a deck-independent Panel object that can be used with ModalPanelContainer, SidebarPanelContainer, or any panel container.

When deck.gl should host the panel, pass that panel into ModalPanelWidget or another named adapter from @deck.gl-community/widgets.

Remarks

  • The panel is deck.gl-independent and lives in @deck.gl-community/panels.
  • The close button emits data-modal-panel-container-close="true" so ModalPanelContainer can close from content when built-in modal chrome is hidden.
  • Compact mode is remembered in localStorage under the deck.gl-community:studio-settings:navigation-collapsed key.