<%# locals: (snaptrade_item:) %> <%= tag.div id: dom_id(snaptrade_item) do %>
<%= icon "chevron-right", class: "group-open:transform group-open:rotate-90" %>
<% if snaptrade_item.logo.attached? %> <%= image_tag snaptrade_item.logo, class: "rounded-full h-full w-full", loading: "lazy" %> <% else %>
<%= tag.p snaptrade_item.name.first.upcase, class: "text-success text-xs font-medium" %>
<% end %>
<% unlinked_count = snaptrade_item.unlinked_accounts_count %>
<%= tag.p snaptrade_item.name, class: "font-medium text-primary" %> <% if snaptrade_item.scheduled_for_deletion? %>

<%= t(".deletion_in_progress") %>

<% end %>
<% if snaptrade_item.snaptrade_accounts.any? %>

<%= snaptrade_item.brokerage_summary %>

<% end %> <% if snaptrade_item.syncing? %>
<%= icon "loader", size: "sm", class: "animate-spin" %> <%= tag.span t(".syncing") %>
<% elsif snaptrade_item.requires_update? %>
<%= icon "alert-triangle", size: "sm", color: "warning" %> <%= tag.span t(".requires_update") %>
<% elsif snaptrade_item.sync_error.present? %>
<%= render DS::Tooltip.new(text: snaptrade_item.sync_error, icon: "alert-circle", size: "sm", color: "destructive") %> <%= tag.span t(".error"), class: "text-destructive" %>
<% else %>

<% if snaptrade_item.last_synced_at %> <%= t(".status", timestamp: time_ago_in_words(snaptrade_item.last_synced_at), summary: snaptrade_item.sync_status_summary) %> <% else %> <%= t(".status_never") %> <% end %>

<% end %>
<% if snaptrade_item.requires_update? || !snaptrade_item.user_registered? %> <%= render DS::Link.new( text: t(".reconnect"), icon: "link", variant: "secondary", href: connect_snaptrade_item_path(snaptrade_item) ) %> <% else %> <%= icon( "refresh-cw", as_button: true, href: sync_snaptrade_item_path(snaptrade_item), disabled: snaptrade_item.syncing? ) %> <% end %> <%= render DS::Menu.new do |menu| %> <% menu.with_item( variant: "link", text: t(".connect_brokerage"), icon: "plus", href: connect_snaptrade_item_path(snaptrade_item) ) %> <% if unlinked_count > 0 %> <% menu.with_item( variant: "link", text: t(".setup_accounts_menu"), icon: "settings", href: setup_accounts_snaptrade_item_path(snaptrade_item), frame: :modal ) %> <% end %> <% menu.with_item( variant: "link", text: t(".manage_connections"), icon: "cable", href: settings_providers_path(manage: "1") ) %> <% menu.with_item( variant: "button", text: t(".delete"), icon: "trash-2", href: snaptrade_item_path(snaptrade_item), method: :delete, confirm: CustomConfirm.for_resource_deletion(snaptrade_item.name, high_severity: true) ) %> <% end %>
<% unless snaptrade_item.scheduled_for_deletion? %>
<% if snaptrade_item.accounts.any? %> <%= render "accounts/index/account_groups", accounts: snaptrade_item.accounts %> <% end %> <%# Sync summary (collapsible) - using shared ProviderSyncSummary component %> <% stats = snaptrade_item.syncs.ordered.first&.sync_stats || {} %> <% activities_pending = snaptrade_item.snaptrade_accounts.any?(&:activities_fetch_pending) %> <%= render ProviderSyncSummary.new( stats: stats, provider_item: snaptrade_item, institutions_count: snaptrade_item.snaptrade_accounts.map(&:brokerage_name).uniq.compact.size, activities_pending: activities_pending ) %> <% if unlinked_count > 0 && snaptrade_item.accounts.empty? %> <%# No accounts imported yet - show prominent setup prompt %>

<%= t(".setup_needed") %>

<%= t(".setup_description") %>

<%= render DS::Link.new( text: t(".setup_action"), icon: "settings", variant: "primary", href: setup_accounts_snaptrade_item_path(snaptrade_item), frame: :modal ) %>
<% elsif snaptrade_item.snaptrade_accounts.empty? %>

<%= t(".no_accounts_title") %>

<%= t(".no_accounts_description") %>

<%= render DS::Link.new( text: t(".connect_brokerage"), icon: "link", variant: "primary", href: connect_snaptrade_item_path(snaptrade_item) ) %>
<% end %>
<% end %>
<% end %>