panes defines one entry per projected neu-splitter-pane, in the same order. size is a percentage; min and max are pixel constraints. Omitted sizes share the remaining percentage. orientation chooses side-by-side or stacked layout. Give the container a definite height for vertical layouts. Accept sizesChange by updating pane sizes to preserve a resize after a drag ends.
These inputs require a model or function, not a checkbox. Edit the same-named field in the Source component and bind it in the template; data already used by this preview appears in the state above.
sizesChange proposes percentages in pane order. resizeStart reports the beginning of a pointer drag and resize reports valid pointer previews. Keyboard resizing emits sizesChange. Pane content is projected as neu-splitter-pane elements; that tag is a content slot, not an exported Angular component.
Each handle is a focusable separator with orientation and current/minimum/maximum values. Left/Right resize horizontal panes and Up/Down resize vertical panes by 2%. Horizontal movement respects RTL. Ensure pane constraints leave usable space for the content.
Key
Action
Tab
Focus an enabled separator handle.
ArrowLeft / ArrowRight
Resize horizontal panes by 2%, respecting constraints and RTL.
ArrowUp / ArrowDown
Resize vertical panes by 2%, respecting their constraints.
Pane percentages and pixel min/max constraints, in projection order.
Outputs
Listen to an event with (event)="handler($event)". The table explains the data your handler receives and how to use it.
Name
Payload
Template binding
Description
resize
readonly number[]
(resize)="onResize($event)"
Reports a valid pointer resize preview.
resizeStart
readonly number[]
(resizeStart)="onResizeStart($event)"
Reports applied sizes at pointer drag start.
sizesChange
readonly number[]
(sizesChange)="onSizesChange($event)"
Proposes pane percentages; update panes to accept them.
Templates
ng-content projects content into the component. TemplateRef inputs receive a template; ng-template directives identify templates with a typed context. A directive shared by an entrypoint is not necessarily a slot of this component.
Provide one neu-splitter-pane per panes entry, in the same order. The tag is a projection slot.
<ng-content select="neu-splitter-pane" />
Context used: โ
Each example demonstrates a different template. Switch between Demo and Code to inspect its implementation, imports and state.
Pane content
neu-splitter-pane
Pane content
Folders
Orders
Invoices
Details
Resize the panels using the separator.
Public Types
Open a type to inspect its definition and interface fields.
NeuSplitterDirection.d.ts
import type { NeuSplitterDirection } from '@neural-ui/core/splitter';
// Public declaration (reference only)
export type NeuSplitterDirection = 'horizontal' | 'vertical';
NeuSplitterPane.d.ts
import type { NeuSplitterPane } from '@neural-ui/core/splitter';
// Public declaration (reference only)
export interface NeuSplitterPane {
max?: number;
min?: number;
size?: number;
}