mirror of
https://github.com/chillpadclub/bedolaga-cabinet.git
synced 2026-07-28 09:33:46 +00:00
refactor(theming): replace green-* / emerald-* with success-* tokens
Sweep: text/bg/border/ring/from/to/via/fill/stroke/shadow-{green,emerald}-N → success-N
(all were semantic success/active/paid states).
This commit is contained in:
@@ -226,7 +226,7 @@ export function AnalyticsTab() {
|
||||
<div className="rounded-2xl border border-dark-700/50 bg-dark-800/50 p-6">
|
||||
<div className="mb-1 flex items-center justify-between">
|
||||
<div className="flex items-center gap-3">
|
||||
<div className="flex h-10 w-10 flex-shrink-0 items-center justify-center rounded-xl bg-gradient-to-br from-blue-500/20 to-green-500/20">
|
||||
<div className="flex h-10 w-10 flex-shrink-0 items-center justify-center rounded-xl bg-gradient-to-br from-blue-500/20 to-success-500/20">
|
||||
<svg className="h-5 w-5 text-blue-400" viewBox="0 0 24 24" fill="currentColor">
|
||||
<path d="M12.87 15.07l-2.54-2.51.03-.03A17.52 17.52 0 0014.07 6H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z" />
|
||||
</svg>
|
||||
|
||||
@@ -323,7 +323,7 @@ export default function TvQuickConnect({ subscriptionUrl, isLight }: Props) {
|
||||
{toast && (
|
||||
<div
|
||||
className={`fixed bottom-6 left-1/2 z-50 -translate-x-1/2 rounded-xl px-5 py-3 text-sm font-medium shadow-lg transition-all ${
|
||||
toast.type === 'success' ? 'bg-emerald-500/90 text-white' : 'bg-error-500/90 text-white'
|
||||
toast.type === 'success' ? 'bg-success-500/90 text-white' : 'bg-error-500/90 text-white'
|
||||
}`}
|
||||
>
|
||||
{toast.text}
|
||||
|
||||
@@ -42,7 +42,7 @@ function StatusBadge({
|
||||
}
|
||||
|
||||
const color = isActive
|
||||
? 'bg-emerald-400/15 text-emerald-400 border-emerald-400/20'
|
||||
? 'bg-success-400/15 text-success-400 border-success-400/20'
|
||||
: isLimited
|
||||
? 'bg-amber-400/15 text-amber-400 border-amber-400/20'
|
||||
: 'bg-error-400/15 text-error-400 border-error-400/20';
|
||||
@@ -100,7 +100,7 @@ export default function SubscriptionListCard({
|
||||
? 'bg-error-400'
|
||||
: trafficPercent >= 70
|
||||
? 'bg-amber-400'
|
||||
: 'bg-emerald-400';
|
||||
: 'bg-success-400';
|
||||
|
||||
const isLimitedStatus = subscription.status === 'limited';
|
||||
|
||||
@@ -211,7 +211,7 @@ export default function SubscriptionListCard({
|
||||
: t('subscription.autopay', 'Автопродление');
|
||||
return (
|
||||
<span
|
||||
className={`flex items-center gap-1 ${enabled ? 'text-emerald-400/70' : 'text-error-400/50'}`}
|
||||
className={`flex items-center gap-1 ${enabled ? 'text-success-400/70' : 'text-error-400/50'}`}
|
||||
>
|
||||
<svg
|
||||
className="h-3 w-3"
|
||||
|
||||
@@ -48,7 +48,7 @@ interface StatusBadgeProps {
|
||||
|
||||
function StatusBadge({ status }: StatusBadgeProps) {
|
||||
const styles: Record<string, string> = {
|
||||
paid: 'bg-green-500/20 text-green-400',
|
||||
paid: 'bg-success-500/20 text-success-400',
|
||||
pending: 'bg-amber-500/20 text-amber-400',
|
||||
cancelled: 'bg-error-500/20 text-error-400',
|
||||
};
|
||||
@@ -77,7 +77,7 @@ function StatCard({ label, value, color, isActive, onClick }: StatCardProps) {
|
||||
const colors: Record<string, string> = {
|
||||
blue: 'border-accent-500/30 bg-accent-500/20 text-accent-400',
|
||||
amber: 'border-amber-500/30 bg-amber-500/20 text-amber-400',
|
||||
green: 'border-green-500/30 bg-green-500/20 text-green-400',
|
||||
green: 'border-success-500/30 bg-success-500/20 text-success-400',
|
||||
red: 'border-error-500/30 bg-error-500/20 text-error-400',
|
||||
};
|
||||
|
||||
@@ -457,7 +457,7 @@ export default function AdminPayments() {
|
||||
{payment.method_display}
|
||||
</span>
|
||||
{payment.is_paid && (
|
||||
<span className="rounded-full bg-green-500/20 px-2 py-0.5 text-xs font-medium text-green-400">
|
||||
<span className="rounded-full bg-success-500/20 px-2 py-0.5 text-xs font-medium text-success-400">
|
||||
{t('admin.payments.paid')}
|
||||
</span>
|
||||
)}
|
||||
@@ -587,7 +587,7 @@ export default function AdminPayments() {
|
||||
<div
|
||||
className={`mt-3 rounded-lg p-2 text-sm ${
|
||||
checkPaymentMutation.data?.status_changed
|
||||
? 'border border-green-500/30 bg-green-500/10 text-green-400'
|
||||
? 'border border-success-500/30 bg-success-500/10 text-success-400'
|
||||
: 'bg-dark-700/30 text-dark-400'
|
||||
}`}
|
||||
>
|
||||
|
||||
@@ -170,7 +170,7 @@ export default function RenewSubscription() {
|
||||
{option.period_days} {t('common.units.days', 'дней')}
|
||||
</span>
|
||||
{option.discount_percent > 0 && (
|
||||
<span className="ml-2 rounded-full bg-emerald-400/15 px-2 py-0.5 text-[10px] font-semibold text-emerald-400">
|
||||
<span className="ml-2 rounded-full bg-success-400/15 px-2 py-0.5 text-[10px] font-semibold text-success-400">
|
||||
-{option.discount_percent}%
|
||||
</span>
|
||||
)}
|
||||
|
||||
Reference in New Issue
Block a user