diff --git a/projects/demo-playwright/tests/kit/action-bar/action-bar.pw.spec.ts b/projects/demo-playwright/tests/kit/action-bar/action-bar.pw.spec.ts
index c4b7bfc2e941..4c294464c93a 100644
--- a/projects/demo-playwright/tests/kit/action-bar/action-bar.pw.spec.ts
+++ b/projects/demo-playwright/tests/kit/action-bar/action-bar.pw.spec.ts
@@ -17,4 +17,15 @@ test.describe('ActionBar', () => {
await expect(actionBarExample).toHaveScreenshot('01-actions-bar.png');
});
+
+ test('should show on top', async ({page}) => {
+ await tuiGoto(page, DemoRoute.ActionBar);
+ const example = page.locator('#top-position');
+ const showActionBarButton = example.getByTestId('open-table-bar-on-top').first();
+
+ await showActionBarButton.click();
+ const actionBarExample = page.locator('tui-action-bar');
+
+ await expect(actionBarExample).toHaveScreenshot('02-actions-bar.png');
+ });
});
diff --git a/projects/demo/src/modules/components/action-bar/examples/3/index.html b/projects/demo/src/modules/components/action-bar/examples/3/index.html
new file mode 100644
index 000000000000..f12e14f54971
--- /dev/null
+++ b/projects/demo/src/modules/components/action-bar/examples/3/index.html
@@ -0,0 +1,20 @@
+
+
+
+ Table bar on top opened
+
+
diff --git a/projects/demo/src/modules/components/action-bar/examples/3/index.less b/projects/demo/src/modules/components/action-bar/examples/3/index.less
new file mode 100644
index 000000000000..a10172b03ec1
--- /dev/null
+++ b/projects/demo/src/modules/components/action-bar/examples/3/index.less
@@ -0,0 +1,4 @@
+tui-action-bar {
+ top: 1rem;
+ bottom: unset;
+}
diff --git a/projects/demo/src/modules/components/action-bar/examples/3/index.ts b/projects/demo/src/modules/components/action-bar/examples/3/index.ts
new file mode 100644
index 000000000000..7a90c225f69b
--- /dev/null
+++ b/projects/demo/src/modules/components/action-bar/examples/3/index.ts
@@ -0,0 +1,24 @@
+import {NgIf} from '@angular/common';
+import {Component, inject, signal} from '@angular/core';
+import {toSignal} from '@angular/core/rxjs-interop';
+import {changeDetection} from '@demo/emulate/change-detection';
+import {encapsulation} from '@demo/emulate/encapsulation';
+import {TuiBreakpointService, TuiButton} from '@taiga-ui/core';
+import {TuiActionBar} from '@taiga-ui/kit';
+import {map} from 'rxjs';
+
+@Component({
+ standalone: true,
+ imports: [NgIf, TuiActionBar, TuiButton],
+ templateUrl: './index.html',
+ styleUrls: ['./index.less'],
+ encapsulation,
+ changeDetection,
+})
+export default class Example {
+ protected open = signal(false);
+
+ protected readonly isMobile = toSignal(
+ inject(TuiBreakpointService).pipe(map((size) => size === 'mobile')),
+ );
+}
diff --git a/projects/demo/src/modules/components/action-bar/index.ts b/projects/demo/src/modules/components/action-bar/index.ts
index 2759645d6635..b89380ef6d1e 100644
--- a/projects/demo/src/modules/components/action-bar/index.ts
+++ b/projects/demo/src/modules/components/action-bar/index.ts
@@ -10,5 +10,5 @@ import {TuiDemo} from '@demo/utils';
changeDetection,
})
export default class Page {
- protected readonly examples = ['Size M', 'Size S'];
+ protected readonly examples = ['Size M', 'Size S', 'Top position'];
}