Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
30b6a1c
feat(splitter): initial structure implementation
MonikaKirkova Nov 4, 2025
857ca99
feat(splitter): add initial poc styles
ddaribo Nov 4, 2025
f62528e
chore: fix initial styles, add spec file
ddaribo Nov 4, 2025
fea9e07
feat(splitter): add splitter-pane props
MonikaKirkova Nov 4, 2025
b1f82e4
chore: minor changes; add nested story; test nested
ddaribo Nov 5, 2025
5b3d2fe
feat(splitter): add args for each pane to default story
ddaribo Nov 5, 2025
5d7907d
feat(splitter): add nonCollapsible prop
MonikaKirkova Nov 5, 2025
0abf7b8
feat(splitter): add initial resize logic
MonikaKirkova Nov 6, 2025
96a7364
refactor(splitter): alternative approach to render bars and handle pr…
ddaribo Nov 7, 2025
33d0b78
fix(splitter): make resize work after changes; add updateTarget optio…
ddaribo Nov 10, 2025
edee68f
chore: style splitter bar through horizontal/vertical part
ddaribo Nov 10, 2025
b7b4e8d
fix(splitter): modify flex prop to allow different sizes
MonikaKirkova Nov 12, 2025
a05d121
fix(splitter): revert changes from previous commit
MonikaKirkova Nov 12, 2025
59b3285
chore: style tweaks; more tests; resize fix
ddaribo Nov 12, 2025
da506d4
fix: handle shrink differently to reflect proper percentage sizes?
ddaribo Nov 12, 2025
9184867
feat(splitter): implement keyboard navigation
MonikaKirkova Nov 12, 2025
65685bd
feat(splitter): implement splitter events
MonikaKirkova Nov 13, 2025
2e6130d
refactor(splitter): rename to nonResizable; port skip fn for key bind…
ddaribo Nov 13, 2025
5839690
refactor(splitter): move all logic to splitter with start/end slots
MonikaKirkova Nov 17, 2025
c3ffbde
refactor existing tests; add initial resize tests; minor refactor
ddaribo Nov 18, 2025
f6474e2
chore(splitter): more tests checkpoint
ddaribo Nov 20, 2025
5c61571
checkpoint: refactor key bindings and others
ddaribo Nov 21, 2025
d6e61c4
feat: add test for px resize panes exceeding splitter size
ddaribo Nov 24, 2025
5f6da39
fix: add logic to fit pane in splitter
ddaribo Nov 24, 2025
b6249d9
Merge branch 'master' into mkirkova/splitter-component
rkaraivanov Nov 25, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions src/components/common/context.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { createContext } from '@lit/context';
import type { Ref } from 'lit/directives/ref.js';
import type { IgcSplitterComponent } from '../../index.js';
import type IgcCarouselComponent from '../carousel/carousel.js';
import type { ChatState } from '../chat/chat-state.js';
import type IgcTileManagerComponent from '../tile-manager/tile-manager.js';
Expand All @@ -24,9 +25,14 @@ const chatUserInputContext = createContext<ChatState>(
Symbol('chat-user-input-context')
);

const splitterContext = createContext<IgcSplitterComponent>(
Symbol('splitter-context')
);

export {
carouselContext,
tileManagerContext,
chatContext,
chatUserInputContext,
splitterContext,
};
2 changes: 2 additions & 0 deletions src/components/common/definitions/defineAllComponents.ts
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ import IgcRangeSliderComponent from '../../slider/range-slider.js';
import IgcSliderComponent from '../../slider/slider.js';
import IgcSliderLabelComponent from '../../slider/slider-label.js';
import IgcSnackbarComponent from '../../snackbar/snackbar.js';
import IgcSplitterComponent from '../../splitter/splitter.js';
import IgcStepComponent from '../../stepper/step.js';
import IgcStepperComponent from '../../stepper/stepper.js';
import IgcTabComponent from '../../tabs/tab.js';
Expand Down Expand Up @@ -134,6 +135,7 @@ const allComponents: IgniteComponent[] = [
IgcCircularGradientComponent,
IgcSnackbarComponent,
IgcDateTimeInputComponent,
IgcSplitterComponent,
IgcStepperComponent,
IgcStepComponent,
IgcTextareaComponent,
Expand Down
9 changes: 7 additions & 2 deletions src/components/resize-container/resize-controller.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ class ResizeController implements ReactiveController {

private readonly _options: ResizeControllerConfiguration = {
enabled: true,
updateTarget: true,
layer: getDefaultLayer,
};

Expand Down Expand Up @@ -166,7 +167,9 @@ class ResizeController implements ReactiveController {
const parameters = { event, state: this._stateParameters };
this._options.resize?.call(this._host, parameters);
this._state.current = parameters.state.current;
this._updatePosition(this._isDeferred ? this._ghost : this._resizeTarget);
if (this._options.updateTarget) {
this._updatePosition(this._isDeferred ? this._ghost : this._resizeTarget);
}
}

private _handlePointerEnd(event: PointerEvent): void {
Expand All @@ -175,7 +178,9 @@ class ResizeController implements ReactiveController {
this._options.end?.call(this._host, parameters);
this._state.current = parameters.state.current;

parameters.state.commit?.() ?? this._updatePosition(this._resizeTarget);
if (this._options.updateTarget) {
parameters.state.commit?.() ?? this._updatePosition(this._resizeTarget);
}
this.dispose();
}

Expand Down
1 change: 1 addition & 0 deletions src/components/resize-container/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ export type ResizeControllerConfiguration = {
enabled?: boolean;
ref?: Ref<HTMLElement>[];
mode?: ResizeMode;
updateTarget?: boolean;
deferredFactory?: ResizeGhostFactory;
layer?: () => HTMLElement;
/** Callback invoked at the start of a resize operation. */
Expand Down
Loading