mirror of
https://github.com/we-promise/sure.git
synced 2026-05-25 21:44:56 +00:00
* chore(design-system): swap raw gray classes for semantic tokens in holdings/ Continues the raw-color sweep on the holdings/ domain plus the related account activity feed component. 11 occurrences across 5 files. Token additions: - button-bg-secondary-strong (gray-200 / gray-700) and -hover (gray-300 / gray-600). Holdings CTAs (Add Trade, Add Holding, Edit Cost Basis, Sync Prices, etc.) used a hand-rolled "secondary-strong" pattern that doesn't match the existing button-bg-secondary token (which is gray-50 / gray-700, much subtler). Adding the strong variant preserves the intentional visual weight of these CTAs and gives future PRs a name to reuse. - $version bump 1.0.0 -> 1.1.0 (additive). Mappings: - 8x text-primary bg-gray-200 hover:bg-gray-300 theme-dark:bg-gray-700 theme-dark:hover:bg-gray-600 (holdings/show + sync_prices + cost_basis_cell) -> text-primary button-bg-secondary-strong hover:button-bg-secondary-strong-hover - 1x bg-gray-50 theme-dark:bg-gray-700 hover:bg-gray-100 theme-dark:hover:bg-gray-600 (holdings/index search button) -> button-bg-secondary hover:button-bg-secondary-hover - 1x hover:bg-gray-100 theme-dark:hover:bg-gray-700 (cost_basis_cell hover row) -> hover:bg-container-inset-hover - 1x focus-within:border-gray-900 (activity_feed search wrapper) -> focus-within:border-primary Left intentionally: - bg-gray-300 status indicator dot in show.html.erb (same pattern as the settings pilot; no semantic equivalent for "neutral inactive indicator" yet). - bg-gray-700 in _missing_price_tooltip.html.erb (already fixed in PR #1626; would conflict on rebase). - focus-within:ring-gray-100 (subtle effect that works in both modes; ring-color tokens are a separate concern). * chore(design-system): bump $version to 2.1.0 for additive token additions Per the design tokens semver contract: PR #1626 already bumped to 2.0.0 (major / breaking when fg-* utilities were removed). This PR adds button-bg-secondary-strong + hover without removing or changing existing tokens, so the correct bump is minor (2.0.0 → 2.1.0). Spotted by CodeRabbit on the rebased branch. * fix(design-system): drop dead focus-within:ring-gray-100 on activity feed search The focus-within:ring-gray-100 class only sets --tw-ring-color, but the parent has no ring-width utility, so it produces no visible ring — dead code from before the focus-within:border-primary swap landed. Same issue spotted on app/views/accounts/show/_activity.html.erb in the finalize sweep PR; applying the equivalent fix here for the holdings activity feed component. --------- Signed-off-by: Guillem Arias Fauste <gariasf@proton.me>
42 lines
1.8 KiB
Plaintext
42 lines
1.8 KiB
Plaintext
<%= turbo_frame_tag dom_id(@account, "holdings") do %>
|
|
<div class="bg-container space-y-4 px-3 py-4 lg:p-4 rounded-xl shadow-border-xs">
|
|
<div class="flex items-center justify-between">
|
|
<%= tag.h2 t(".holdings"), class: "font-medium text-lg" %>
|
|
<%= link_to new_trade_path(account_id: @account.id),
|
|
id: dom_id(@account, "new_trade"),
|
|
data: { turbo_frame: :modal },
|
|
class: "flex gap-1 font-medium items-center button-bg-secondary hover:button-bg-secondary-hover text-primary p-2 rounded-lg" do %>
|
|
<span class="text-primary">
|
|
<%= icon("plus", color: "current") %>
|
|
</span>
|
|
<%= tag.span t(".new_holding"), class: "text-sm" %>
|
|
<% end %>
|
|
</div>
|
|
|
|
<div class="bg-container-inset rounded-xl p-1 overflow-x-auto">
|
|
<div class="w-max lg:w-full">
|
|
<div class="grid grid-cols-12 items-center uppercase text-xs font-medium text-secondary px-4 py-2">
|
|
<%= tag.p t(".name"), class: "col-span-4" %>
|
|
<%= tag.p t(".weight"), class: "col-span-2 justify-self-end" %>
|
|
<%= tag.p t(".average_cost"), class: "col-span-2 justify-self-end" %>
|
|
<%= tag.p t(".holdings"), class: "col-span-2 justify-self-end" %>
|
|
<%= tag.p t(".return"), class: "col-span-2 justify-self-end" %>
|
|
</div>
|
|
|
|
<div class="bg-container rounded-lg shadow-border-xs">
|
|
<% if @account.cash_balance.to_d > 0 %>
|
|
<%= render "holdings/cash", account: @account %>
|
|
<%= render "shared/ruler" %>
|
|
<% end %>
|
|
|
|
<% if @account.current_holdings.any? %>
|
|
<%= render partial: "holdings/holding",
|
|
collection: @account.current_holdings,
|
|
spacer_template: "shared/ruler" %>
|
|
<% end %>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<% end %>
|