Rebar UI

1.0

opinion

LayersPanel

A tree of layers and groups with drag-to-reorder, inline rename and lock and hide toggles.

Harbour homepage layersRename, lock, hide, drag to reorder
Empty
No layers
Locked and hidden

In context

Design editorThe canvas on the left, its layers on the right
Harbour rebrand: homepage
LayersHarbour rebrand

Props

PropTypeRequiredDefault
layersLayerNode[]Yes—
onRename((id: string, name: string) => void) | undefinedNo—
onToggleLocked((id: string, locked: boolean) => void) | undefinedNo—
onToggleHidden((id: string, hidden: boolean) => void) | undefinedNo—
onReorder((draggedId: string, targetId: string, position: LayerDropPosition) => void) | undefinedNo—
selectedIdstring | undefinedNo—
defaultSelectedIdstring | undefinedNo—
onSelectedIdChange((id: string) => void) | undefinedNo—
defaultExpandedstring[] | undefinedNo[]

data-rebar-* attributes

data-rebar-component="layers-panel", role="tree"; rows carry data-rebar-part="group" | "layer" and data-rebar-drop-position while a drag is over them.

Migrating to Ant Design

Not codemod-covered — compose AntD's own Tree (with draggable) + a custom row renderer for the lock/hide toggles.