<.button_dropdown text="Actions" class="justify-center w-full sm:w-50">
  <:option>
    <span
      x-data="{ copied: false }"
      x-on:click={"
        copyWithCallbacks(
          '#{rss_feed_url(@conn, @source)}', 
          () => copied = true, 
          () => copied = false
        )
      "}
    >
      Copy RSS Feed
      <span x-show="copied" x-transition.duration.150ms><.icon name="hero-check" class="ml-2 h-4 w-4" /></span>
    </span>
  </:option>
  <:option>
    <span x-data="{ copied: false }" x-on:click={~s"
        copyWithCallbacks(
          `#{Jason.Formatter.pretty_print(Phoenix.json_library().encode!(@source))}`, 
          () => copied = true, 
          () => copied = false
        )
      "}>
      Copy JSON
      <span x-show="copied" x-transition.duration.150ms><.icon name="hero-check" class="ml-2 h-4 w-4" /></span>
    </span>
  </:option>
  <:option>
    <div class="h-px w-full bg-bodydark2"></div>
  </:option>
  <:option :if={@source.download_media}>
    <.link
      href={~p"/sources/#{@source}/force_download_pending"}
      method="post"
      data-confirm="Are you sure you want to force a download of all *pending* media items? This isn't normally needed."
    >
      Download Pending
    </.link>
  </:option>
  <:option :if={@source.download_media}>
    <.link
      href={~p"/sources/#{@source}/force_redownload"}
      method="post"
      data-confirm="Are you sure you want to re-download all currently downloaded media items? This isn't normally needed and won't change anything if the files already exist."
    >
      Redownload Existing
    </.link>
  </:option>
  <:option>
    <.link
      href={~p"/sources/#{@source}/force_index"}
      method="post"
      data-confirm="Are you sure you want to force an index of this source? This isn't normally needed."
    >
      Force Index
    </.link>
  </:option>
  <:option>
    <.link
      href={~p"/sources/#{@source}/force_metadata_refresh"}
      method="post"
      data-confirm="Are you sure you want to refresh this source's metadata?"
    >
      Refresh Metadata
    </.link>
  </:option>
  <:option>
    <div class="h-px w-full bg-bodydark2"></div>
  </:option>
  <:option>
    <.link
      href={~p"/sources/#{@source}"}
      method="delete"
      data-confirm="Are you sure you want to delete this source (leaving files in place)? This cannot be undone."
    >
      Delete Source
    </.link>
  </:option>
  <:option>
    <.link
      href={~p"/sources/#{@source}?delete_files=true"}
      method="delete"
      data-confirm="Are you sure you want to delete this source and it's files on disk? This cannot be undone."
      class="mt-5 md:mt-0"
    >
      Delete Source + Files
    </.link>
  </:option>
</.button_dropdown>
