mirror of
https://github.com/we-promise/sure.git
synced 2026-05-29 15:34:58 +00:00
refactor(design-system): extend DS::Alert and migrate 9 inline alert blocks (#1731)
* feat(design-system): add info semantic color token Mirrors success/warning/destructive: --color-info maps to blue-600 in light mode, blue-500 in dark mode. Unblocks the DS::Alert info variant from carrying a raw 'blue-600' literal in icon_color and lets surface tokens use bg-info/N alpha modifiers like the rest of the system. Refs #1715 * refactor(design-system): adopt semantic tokens and add body slot in DS::Alert Replaces the bg-{blue,green,yellow,red}-50 / text-{...}-700 / border-{...}-200 palette block in DS::Alert with semantic alpha-modifier surfaces (bg-{info,success,warning,destructive}/10 + matching /20 borders). Drops the 'blue-600' literal that icon_color was returning for the info variant; helpers#icon now accepts color: :info backed by the new --color-info token. Adds an optional title: kwarg and an opt-in block-content slot so rich alerts (title + paragraph, lists, embedded actions) can render without callers reaching for a hand-rolled flex layout. The existing message: API stays backward-compatible — nothing in the codebase that already calls DS::Alert.new(message: ..., variant: ...) needs to change. Lookbook gains with_title and with_body_slot examples covering the new shapes. Refs #1715 * refactor(views): migrate api_keys, hostings, lunchflow alerts to DS::Alert Cleans up nine bespoke alert blocks that hand-rolled the same flex + icon + bordered-surface shape DS::Alert already provides: - settings/api_keys/{new,created,created.turbo_stream}.html.erb — three near-identical 'Security Warning' / 'Important Security Note' boxes using the broken bg-warning-50 / text-warning-700 raw-palette pair. - settings/hostings/{_alpha_vantage,_eodhd,_yahoo_finance,_twelve_data,_provider_selection}_settings.html.erb — five amber-50 / amber-200 warning boxes covering rate-limit notes, health-check failure messaging, and the env-configured override banner. The twelve_data plan-restriction block keeps its bullet list and pricing link inside the new DS::Alert body slot. - lunchflow_items/{_api_error,_setup_required}.html.erb — two modal alert headers whose flex+icon scaffolding now collapses onto DS::Alert. The surrounding bg-surface 'Common issues' / 'Setup steps' info cards stay as-is; this PR only touches the alert shape itself. No functional or behavioural changes. Locale keys preserved. amber-* palette uses on the alerts disappear; remaining bg-amber-* hits in the codebase live outside the alert pattern and stay for follow-up sub-PRs of #1715. Refs #1715
This commit is contained in:
committed by
GitHub
parent
712d6baca9
commit
57d71cd55e
@@ -1,7 +1,34 @@
|
||||
class AlertComponentPreview < Lookbook::Preview
|
||||
# @param message text
|
||||
# @param title text
|
||||
# @param variant select [info, success, warning, error]
|
||||
def default(message: "This is an alert message.", variant: :info)
|
||||
render DS::Alert.new(message: message, variant: variant.to_sym)
|
||||
def default(message: "This is an alert message.", title: nil, variant: :info)
|
||||
render DS::Alert.new(message: message, title: title.presence, variant: variant.to_sym)
|
||||
end
|
||||
|
||||
# @param variant select [info, success, warning, error]
|
||||
def with_title(variant: :warning)
|
||||
render DS::Alert.new(
|
||||
message: "Heads up — this account hasn't synced in 7 days.",
|
||||
title: "Stale connection",
|
||||
variant: variant.to_sym
|
||||
)
|
||||
end
|
||||
|
||||
# @param variant select [info, success, warning, error]
|
||||
def with_body_slot(variant: :error)
|
||||
render DS::Alert.new(title: "We couldn't process this request", variant: variant.to_sym) do
|
||||
tag.div do
|
||||
safe_join([
|
||||
tag.p("Verify the values you submitted and try again. If the issue persists, contact support.", class: "text-secondary"),
|
||||
tag.ul(class: "list-disc list-inside text-secondary") do
|
||||
safe_join([
|
||||
tag.li("Check that all required fields are populated."),
|
||||
tag.li("Confirm the dates fall within an open period.")
|
||||
])
|
||||
end
|
||||
])
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user