diff --git a/libs/ui/components/src/index.ts b/libs/ui/components/src/index.ts
index 2c1817d76..a74ec9623 100644
--- a/libs/ui/components/src/index.ts
+++ b/libs/ui/components/src/index.ts
@@ -1,3 +1,4 @@
+export * from './lib/add-playlist-menu/add-playlist-menu.component';
export * from './lib/art-player/art-player.component';
export * from './lib/audio-player/audio-player.component';
export * from './lib/channel-list-container/channel-list-container.component';
diff --git a/libs/ui/components/src/lib/add-playlist-menu/add-playlist-menu.component.html b/libs/ui/components/src/lib/add-playlist-menu/add-playlist-menu.component.html
new file mode 100644
index 000000000..124fdc7bb
--- /dev/null
+++ b/libs/ui/components/src/lib/add-playlist-menu/add-playlist-menu.component.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+
+
diff --git a/libs/ui/components/src/lib/add-playlist-menu/add-playlist-menu.component.ts b/libs/ui/components/src/lib/add-playlist-menu/add-playlist-menu.component.ts
new file mode 100644
index 000000000..7da331844
--- /dev/null
+++ b/libs/ui/components/src/lib/add-playlist-menu/add-playlist-menu.component.ts
@@ -0,0 +1,22 @@
+import { Component, output, viewChild } from '@angular/core';
+import { MatDividerModule } from '@angular/material/divider';
+import { MatIconModule } from '@angular/material/icon';
+import { MatMenu, MatMenuModule } from '@angular/material/menu';
+import { TranslateModule } from '@ngx-translate/core';
+
+export type PlaylistType = 'xtream' | 'url' | 'text' | 'file' | 'stalker';
+
+@Component({
+ selector: 'app-add-playlist-menu',
+ templateUrl: './add-playlist-menu.component.html',
+ imports: [MatDividerModule, MatIconModule, MatMenuModule, TranslateModule],
+})
+export class AddPlaylistMenuComponent {
+ readonly menu = viewChild.required('addPlaylistMenu');
+
+ readonly playlistTypeSelected = output();
+
+ onPlaylistTypeClick(type: PlaylistType): void {
+ this.playlistTypeSelected.emit(type);
+ }
+}