diff --git a/lib/music_library_web/components/artist_components.ex b/lib/music_library_web/components/artist_components.ex
deleted file mode 100644
index c438a654..00000000
--- a/lib/music_library_web/components/artist_components.ex
+++ /dev/null
@@ -1,29 +0,0 @@
-defmodule MusicLibraryWeb.ArtistComponents do
- use MusicLibraryWeb, :html
-
- alias MusicLibrary.Assets.Transform
-
- attr :artist, :map, required: true
- attr :image_hash, :string, required: true
- attr :class, :string, required: false, default: nil
- attr :width, :integer, default: nil
- attr :rest, :global
-
- def artist_image(assigns) do
- payload =
- Transform.new(hash: assigns.image_hash, width: assigns.width)
- |> Transform.encode!()
-
- assigns = assign(assigns, :payload, payload)
-
- ~H"""
- ~p"/images/cover-not-found.png" <> "';"}
- {@rest}
- />
- """
- end
-end
diff --git a/lib/music_library_web/components/record_components.ex b/lib/music_library_web/components/record_components.ex
index 24b04b21..29586fb7 100644
--- a/lib/music_library_web/components/record_components.ex
+++ b/lib/music_library_web/components/record_components.ex
@@ -6,6 +6,27 @@ defmodule MusicLibraryWeb.RecordComponents do
alias MusicLibrary.Records
alias Phoenix.LiveView.JS
+ attr :record, :map, required: true
+ attr :size, :atom, values: [:sm, :md], default: :sm
+
+ def release_groups_badge(assigns) do
+ ~H"""
+ 0}
+ class={[
+ "absolute right-0 bottom-0 rounded-br-lg rounded-tl-lg",
+ "font-medium",
+ "border border-zinc-600/20 dark:border-zinc-500/20",
+ @size == :sm &&
+ "px-1 text-xs bg-zinc-200/80 dark:bg-zinc-500/70 text-zinc-700 dark:text-zinc-200",
+ @size == :md && "px-2 text-sm bg-zinc-50 dark:bg-zinc-500/10 text-zinc-700 dark:text-zinc-400"
+ ]}
+ >
+ {Records.Record.included_release_groups_count(@record)}
+
+ """
+ end
+
attr :record, :map, required: true
attr :class, :string, required: false, default: "rounded-lg"
attr :width, :integer, default: nil
@@ -67,18 +88,7 @@ defmodule MusicLibraryWeb.RecordComponents do