合并 master 最新变更
Project CI / Repository checks (pull_request) Successful in 6m28s
Project CI / Frontend tests (pull_request) Successful in 10m58s
Project CI / Backend tests (pull_request) Successful in 23m10s
Project CI / Native shell tests (pull_request) Successful in 25m43s

保留共享组件库与 UI 组件复用规范变更

整合 AGC 自主构建与项目工具链最新变更

合并 decision-log 两侧有效决策记录
This commit is contained in:
2026-08-31 14:06:51 +08:00
507 changed files with 20676 additions and 6155 deletions
@@ -1,12 +1,6 @@
/* @vitest-environment jsdom */
import {
act,
fireEvent,
render,
screen,
within,
} from '@testing-library/react';
import { act, fireEvent, render, screen, within } from '@testing-library/react';
import userEvent from '@testing-library/user-event';
import { expect, test, vi } from 'vitest';
@@ -48,7 +42,7 @@ test('shows only permanent and daily free points in the shared wallet panel', as
await user.hover(balanceButton);
const details = screen.getByRole('dialog', { name: '泥点账户详情' });
expect(details.className).toContain('rounded-[1.12rem]');
expect(details.className).toContain('rounded-[1.25rem]');
expect(within(details).getByText('不限时泥点')).toBeTruthy();
expect(within(details).getByText('按量充值、兑换码获得')).toBeTruthy();
expect(within(details).getByText('100')).toBeTruthy();
@@ -34,7 +34,7 @@ function MudPointBalanceRow({
detail?: string | null;
}) {
return (
<div className="flex min-h-[3.25rem] items-center justify-between gap-4 border-t border-[var(--platform-subpanel-border)] px-4 py-2.5">
<div className="flex min-h-[3.25rem] items-center justify-between gap-4 border-t border-[rgba(194,145,111,0.28)] px-4 py-2.5">
<div className="min-w-0">
<div className="text-[13px] font-bold text-[var(--platform-text-strong)]">
{label}
@@ -174,7 +174,7 @@ export function PlatformMudPointWalletEntry({
onBlurCapture={closeAfterFocusLeaves}
>
<div
className={`flex items-stretch overflow-hidden rounded-full border border-[rgba(214,184,159,0.78)] bg-[rgba(255,250,244,0.9)] text-[#6f3d24] shadow-[0_0.18rem_0.55rem_rgba(112,62,32,0.08)] ${
className={`flex items-stretch overflow-hidden rounded-full border border-[rgba(194,145,111,0.46)] bg-[rgba(255,250,244,0.94)] text-[#6f3d24] shadow-[0_0.18rem_0.55rem_rgba(112,62,32,0.07)] ${
isCompact ? 'h-8 text-[11px]' : 'h-9 text-xs'
}`}
>
@@ -211,7 +211,7 @@ export function PlatformMudPointWalletEntry({
</span>
</button>
<span
className="my-1.5 w-px shrink-0 bg-[rgba(196,153,120,0.62)]"
className="my-1.5 w-px shrink-0 bg-[rgba(196,153,120,0.36)]"
aria-hidden="true"
/>
<button
@@ -231,7 +231,7 @@ export function PlatformMudPointWalletEntry({
role="dialog"
aria-label="泥点账户详情"
onMouseEnter={isCompact ? undefined : cancelPendingClose}
className="absolute right-0 top-[calc(100%+0.5rem)] z-[95] w-[min(19rem,calc(100vw-1rem))] overflow-hidden rounded-[1.12rem] border border-[var(--platform-subpanel-border)] bg-[#fffaf4] text-left shadow-[0_1rem_2.8rem_rgba(76,44,27,0.2)]"
className="absolute right-0 top-[calc(100%+0.5rem)] z-[95] w-[min(19rem,calc(100vw-1rem))] overflow-hidden rounded-[1.25rem] border border-[rgba(194,145,111,0.46)] bg-[linear-gradient(180deg,#fffdfa,#fff7ef)] text-left shadow-[0_1.15rem_2.8rem_rgba(76,44,27,0.14),0_0.18rem_0.55rem_rgba(112,62,32,0.07)]"
>
<div className="flex items-center justify-between gap-3 px-4 py-3">
<div className="text-[15px] font-black text-[var(--platform-text-strong)]">
@@ -264,14 +264,14 @@ export function PlatformMudPointWalletEntry({
/>
</>
) : (
<div className="border-t border-[var(--platform-subpanel-border)] px-4 py-6 text-center text-xs font-semibold text-[var(--platform-text-soft)]">
<div className="border-t border-[rgba(194,145,111,0.28)] px-4 py-6 text-center text-xs font-semibold text-[var(--platform-text-soft)]">
{isLoading ? '余额读取中' : error || '余额明细暂不可用'}
</div>
)}
<button
type="button"
className="flex w-full items-center justify-center gap-2 border-t border-[var(--platform-subpanel-border)] px-4 py-3 text-[13px] font-black text-[var(--platform-text-strong)] outline-none transition-colors hover:bg-white/45 focus-visible:bg-white/55"
className="flex w-full items-center justify-center gap-2 border-t border-[rgba(194,145,111,0.28)] px-4 py-3 text-[13px] font-black text-[var(--platform-text-strong)] outline-none transition-colors hover:bg-white/55 focus-visible:bg-white/65"
onClick={() => {
closeDetails();
onOpenLedger();