From b700b6521f01289e1f38f4b5b34df9ed90496f0d Mon Sep 17 00:00:00 2001 From: "goodbounties-nanoclaw-agent[bot]" <307944451+goodbounties-nanoclaw-agent[bot]@users.noreply.github.com> Date: Wed, 5 Aug 2026 12:47:36 +0000 Subject: [PATCH 1/3] feat(ui): add Scorecard KPI card component MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds a reusable Scorecard component to packages/ui — a single-metric KPI card with label, formatted value, optional trend indicator, and bare/card variants. Implements #139's compact/decimal/none formatting modes via a shared formatMetricValue utility, and a golden-ratio modular typography scale (base 24px, ratio 1.618, 12px floor) across sm/md/lg sizes. Co-Authored-By: Claude Sonnet 5 --- .../design-system/Scorecard.stories.tsx | 76 ++++ packages/ui/package.json | 1 + packages/ui/src/components/Scorecard.tsx | 236 ++++++++++++ packages/ui/src/index.ts | 6 + packages/ui/src/utils/formatMetricValue.ts | 58 +++ pnpm-lock.yaml | 340 ++++++++++++++---- tests/design-system/smoke.spec.ts | 8 + .../test-results/story-scorecard-default.png | Bin 0 -> 27342 bytes 8 files changed, 661 insertions(+), 64 deletions(-) create mode 100644 examples/storybook/src/stories/design-system/Scorecard.stories.tsx create mode 100644 packages/ui/src/components/Scorecard.tsx create mode 100644 packages/ui/src/utils/formatMetricValue.ts create mode 100644 tests/design-system/test-results/story-scorecard-default.png diff --git a/examples/storybook/src/stories/design-system/Scorecard.stories.tsx b/examples/storybook/src/stories/design-system/Scorecard.stories.tsx new file mode 100644 index 00000000..acd09aea --- /dev/null +++ b/examples/storybook/src/stories/design-system/Scorecard.stories.tsx @@ -0,0 +1,76 @@ +/** + * Scorecard — KPI card showing a single metric with optional trend indicator. + */ +import React from 'react' +import type { Meta, StoryObj } from '@storybook/react' +import { Scorecard, XStack } from '@goodwidget/ui' +import { withDefaultPreset } from '../helpers/withDefaultPreset' + +const meta: Meta = { + title: 'Design System/Primitives/Scorecard', + component: Scorecard, + tags: ['autodocs', 'showcase'], + parameters: { layout: 'padded' }, + decorators: [withDefaultPreset], + argTypes: { + value: { control: 'number', description: 'The metric value to display' }, + label: { control: 'text', description: 'What the metric represents' }, + prefix: { control: 'text', description: 'Unit before the value' }, + suffix: { control: 'text', description: 'Unit after the value' }, + format: { + control: 'select', + options: ['compact', 'decimal', 'none'], + description: 'Number formatting mode', + }, + decimals: { control: 'number', description: 'Decimal precision' }, + variant: { + control: 'select', + options: ['bare', 'card'], + description: 'Chrome-less vs. card-wrapped face', + }, + size: { + control: 'select', + options: ['sm', 'md', 'lg'], + description: 'Typography size preset', + }, + }, +} +export default meta +type Story = StoryObj + +/** All 5 mock-data rows from #139, each rendered in both variants. */ +export const Default: Story = { + args: { + label: 'Total G$ Spent', + value: 1900, + prefix: 'G$', + format: 'compact', + }, + render: (args) => ( + + + + + + + + ), +} + +/** Controllable instance — edit args in the Controls panel. */ +export const Controllable: Story = { + args: { + label: 'Total G$ Spent', + value: 1900, + prefix: 'G$', + format: 'compact', + variant: 'card', + size: 'md', + }, +} diff --git a/packages/ui/package.json b/packages/ui/package.json index 3a6982dd..5b2ee608 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -36,6 +36,7 @@ "@tamagui/core": "1.121.0", "@tamagui/lucide-icons": "1.121.0", "@tamagui/themes": "1.121.0", + "react-native-svg": "15.15.5", "tamagui": "1.121.0" }, "devDependencies": { diff --git a/packages/ui/src/components/Scorecard.tsx b/packages/ui/src/components/Scorecard.tsx new file mode 100644 index 00000000..b2478414 --- /dev/null +++ b/packages/ui/src/components/Scorecard.tsx @@ -0,0 +1,236 @@ +/** + * Scorecard — reusable KPI card: a single metric value with a label and an + * optional trend indicator. First of 5 planned analytics chart components + * (packages/ui hosts all of them, per #139/#141). + * + * Structural pattern follows FundingDistributionChart (governance-widget): + * @goodwidget/ui primitives + useTheme() for color, react-native-svg for the + * one graphical element (the trend arrow), so it renders identically on + * React web, React Native, and Web Components. + */ +import React from 'react' +import Svg, { Path } from 'react-native-svg' +import { Text as TamaguiText, useTheme, XStack, YStack } from 'tamagui' +import { createComponent } from '../createComponent' +import { Card } from './Card' +import { formatMetricValue } from '../utils/formatMetricValue' +import type { MetricFormat } from '../utils/formatMetricValue' + +export type ScorecardVariant = 'bare' | 'card' +export type ScorecardSize = 'sm' | 'md' | 'lg' + +export interface ScorecardTrend { + value: number + direction: 'up' | 'down' | 'neutral' +} + +export interface ScorecardProps { + value: number + label: string + prefix?: string + suffix?: string + format?: MetricFormat + decimals?: number + trend?: ScorecardTrend + trendLabel?: string + variant?: ScorecardVariant + size?: ScorecardSize + testID?: string +} + +/** + * Golden-ratio modular type scale: every size step is the base value + * multiplied or divided by GOLDEN_RATIO, so the whole scale can be re-tuned + * later by adjusting these two constants instead of per-step pixel values. + */ +const SCORECARD_BASE_SIZE_PX = 24 +const GOLDEN_RATIO = 1.618 +const MIN_FONT_SIZE_PX = 12 + +const clampFontSize = (px: number): number => Math.max(px, MIN_FONT_SIZE_PX) + +const VALUE_SIZE_PX: Record = { + lg: clampFontSize(SCORECARD_BASE_SIZE_PX * GOLDEN_RATIO), + md: clampFontSize(SCORECARD_BASE_SIZE_PX), + sm: clampFontSize(SCORECARD_BASE_SIZE_PX / GOLDEN_RATIO), +} + +/** Label and trend text share the row below the value, one ratio step down. */ +const SECONDARY_SIZE_PX: Record = { + lg: clampFontSize(VALUE_SIZE_PX.lg / GOLDEN_RATIO), + md: clampFontSize(VALUE_SIZE_PX.md / GOLDEN_RATIO), + sm: clampFontSize(VALUE_SIZE_PX.sm / GOLDEN_RATIO), +} + +const TREND_DIRECTION_COLOR_TOKEN: Record = { + up: '$success', + down: '$error', + neutral: '$colorDim', +} + +/** + * Unwraps a Tamagui theme token to its raw color string. react-native-svg's + * fill/stroke props aren't part of Tamagui's styling system, so they need + * the resolved value rather than a "$token" reference. + */ +function resolveThemeColor(theme: Record, token: string): string { + const key = token.replace('$', '') + const themeValue = theme[key] + + if (themeValue && typeof themeValue === 'object' && 'val' in themeValue) { + return String((themeValue as { val: unknown }).val) + } + + return typeof themeValue === 'string' ? themeValue : '' +} + +const ScorecardFrame = createComponent(YStack, { + name: 'Scorecard', + alignItems: 'center', + gap: '$2', +}) + +const ScorecardLabelText = createComponent(TamaguiText, { + name: 'ScorecardLabelText', + fontFamily: '$body', + color: '$placeholderColor', + textAlign: 'center', + + variants: { + size: { + sm: { fontSize: SECONDARY_SIZE_PX.sm }, + md: { fontSize: SECONDARY_SIZE_PX.md }, + lg: { fontSize: SECONDARY_SIZE_PX.lg }, + }, + } as const, + + defaultVariants: { size: 'md' }, +}) + +const ScorecardValueRow = createComponent(XStack, { + name: 'ScorecardValueRow', + alignItems: 'baseline', + gap: '$1', +}) + +const ScorecardValueText = createComponent(TamaguiText, { + name: 'ScorecardValueText', + fontFamily: '$body', + fontWeight: '700', + color: '$primary', + + variants: { + size: { + sm: { fontSize: VALUE_SIZE_PX.sm }, + md: { fontSize: VALUE_SIZE_PX.md }, + lg: { fontSize: VALUE_SIZE_PX.lg }, + }, + } as const, + + defaultVariants: { size: 'md' }, +}) + +const ScorecardTrendRow = createComponent(XStack, { + name: 'ScorecardTrendRow', + alignItems: 'center', + gap: '$1', +}) + +const ScorecardTrendText = createComponent(TamaguiText, { + name: 'ScorecardTrendText', + fontFamily: '$body', + fontWeight: '500', + + variants: { + size: { + sm: { fontSize: SECONDARY_SIZE_PX.sm }, + md: { fontSize: SECONDARY_SIZE_PX.md }, + lg: { fontSize: SECONDARY_SIZE_PX.lg }, + }, + } as const, + + defaultVariants: { size: 'md' }, +}) + +/** Up/down/neutral arrow glyph, drawn with react-native-svg for cross-platform rendering. */ +function TrendGlyph({ direction, color, size }: { direction: ScorecardTrend['direction']; color: string; size: number }) { + const path = + direction === 'up' + ? 'M6 2 L10.5 9 L1.5 9 Z' + : direction === 'down' + ? 'M6 10 L10.5 3 L1.5 3 Z' + : 'M2 6 H10' + + if (direction === 'neutral') { + return ( + + + + ) + } + + return ( + + + + ) +} + +function formatTrendPercentage(trendValue: number, direction: ScorecardTrend['direction']): string { + const magnitude = Math.abs(trendValue).toFixed(1) + if (direction === 'up') return `+${magnitude}%` + if (direction === 'down') return `-${magnitude}%` + return `${magnitude}%` +} + +function ScorecardContent({ + value, + label, + prefix, + suffix, + format = 'compact', + decimals, + trend, + trendLabel, + size = 'md', + testID, +}: Omit) { + const theme = useTheme() + const formattedValue = formatMetricValue(value, format, decimals) + + return ( + + {label} + + {prefix ? {prefix} : null} + {formattedValue} + {suffix ? {suffix} : null} + + {trend ? ( + + , TREND_DIRECTION_COLOR_TOKEN[trend.direction])} + size={SECONDARY_SIZE_PX[size]} + /> + + {formatTrendPercentage(trend.value, trend.direction)} + {trendLabel ? ` ${trendLabel}` : ''} + + + ) : null} + + ) +} + +export function Scorecard({ variant = 'bare', ...contentProps }: ScorecardProps) { + if (variant === 'card') { + return ( + + + + ) + } + + return +} diff --git a/packages/ui/src/index.ts b/packages/ui/src/index.ts index faa698e9..662861f0 100644 --- a/packages/ui/src/index.ts +++ b/packages/ui/src/index.ts @@ -95,6 +95,12 @@ export { } from './components/Dialog' export type { DialogConfig, DialogStatus } from './components/Dialog' +// Analytics +export { Scorecard } from './components/Scorecard' +export type { ScorecardProps, ScorecardTrend, ScorecardVariant } from './components/Scorecard' +export { formatMetricValue } from './utils/formatMetricValue' +export type { MetricFormat } from './utils/formatMetricValue' + // Web3 export { AddressDisplay } from './components-test/AddressDisplay' export { TokenAmount } from './components/TokenAmount' diff --git a/packages/ui/src/utils/formatMetricValue.ts b/packages/ui/src/utils/formatMetricValue.ts new file mode 100644 index 00000000..396fea0b --- /dev/null +++ b/packages/ui/src/utils/formatMetricValue.ts @@ -0,0 +1,58 @@ +/** + * formatMetricValue — shared numeric formatter for analytics chart components + * (Scorecard is the first of 5 planned; all need the same compact K/M/B/T rules). + */ + +export type MetricFormat = 'compact' | 'decimal' | 'none' + +/** Ordered largest-first so the first matching threshold wins. */ +const COMPACT_THRESHOLDS = [ + { threshold: 1_000_000_000_000, suffix: 'T' }, + { threshold: 1_000_000_000, suffix: 'B' }, + { threshold: 1_000_000, suffix: 'M' }, + { threshold: 1_000, suffix: 'K' }, +] as const + +function assertNonNegativeInteger(decimals: number): void { + if (!Number.isInteger(decimals) || decimals < 0) { + throw new Error(`formatMetricValue: "decimals" must be a non-negative integer, received ${decimals}`) + } +} + +function formatCompact(value: number, decimals: number): string { + const absValue = Math.abs(value) + const match = COMPACT_THRESHOLDS.find(({ threshold }) => absValue >= threshold) + + if (!match) { + return value.toFixed(decimals) + } + + return `${(value / match.threshold).toFixed(decimals)}${match.suffix}` +} + +function formatDecimal(value: number, decimals: number): string { + return new Intl.NumberFormat('en-US', { + minimumFractionDigits: decimals, + maximumFractionDigits: decimals, + useGrouping: true, + }).format(value) +} + +/** + * Formats a raw metric value per the K/M/B/T "compact" scale, a full + * comma-grouped "decimal" form, or a "none" passthrough. + * + * `decimals` defaults to 1 for "compact" and 2 for "decimal" (per #139's spec) + * and must be a non-negative integer — invalid input is a developer error, + * not a runtime state, so it throws rather than silently clamping. + */ +export function formatMetricValue(value: number, format: MetricFormat = 'compact', decimals?: number): string { + if (format === 'none') { + return String(value) + } + + const resolvedDecimals = decimals ?? (format === 'compact' ? 1 : 2) + assertNonNegativeInteger(resolvedDecimals) + + return format === 'compact' ? formatCompact(value, resolvedDecimals) : formatDecimal(value, resolvedDecimals) +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 33a08a66..1d66fdd9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -101,7 +101,7 @@ importers: version: link:../../packages/ui '@reown/appkit': specifier: ^1.8.22 - version: 1.8.22(@types/react@18.3.28)(@vercel/blob@2.4.0)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.6.0(react@18.3.1))(zod@4.1.11) + version: 1.8.22(@types/react@18.3.28)(@vercel/blob@2.4.0)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.6.0(react@18.3.1))(zod@3.25.76) '@tamagui/core': specifier: 1.121.0 version: 1.121.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -491,19 +491,19 @@ importers: version: 2.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@reown/appkit': specifier: ^1.8.22 - version: 1.8.22(@types/react@18.3.28)(@vercel/blob@2.4.0)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(zod@3.25.76) + version: 1.8.22(@types/react@18.3.28)(@vercel/blob@2.4.0)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(zod@4.1.11) '@reown/appkit-adapter-wagmi': specifier: ^1.8.22 - version: 1.8.22(isknxadknpp2cdfgti7v5vosu4) + version: 1.8.22(v6adbyiuvbtrgqm65ozlnb246m) '@tanstack/react-query': specifier: ^5.101.2 version: 5.101.2(react@18.3.1) viem: specifier: ^2.0.0 - version: 2.48.4(typescript@5.9.3)(zod@3.25.76) + version: 2.48.4(typescript@5.9.3)(zod@4.1.11) wagmi: specifier: ^3.7.1 - version: 3.7.1(@coinbase/wallet-sdk@4.3.6(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(zod@3.25.76))(@safe-global/safe-apps-provider@0.18.6(typescript@5.9.3)(zod@3.25.76))(@safe-global/safe-apps-sdk@9.1.0(typescript@5.9.3)(zod@3.25.76))(@tanstack/query-core@5.101.2)(@tanstack/react-query@5.101.2(react@18.3.1))(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(viem@2.48.4(typescript@5.9.3)(zod@3.25.76)) + version: 3.7.1(@coinbase/wallet-sdk@4.3.6(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(zod@4.1.11))(@safe-global/safe-apps-provider@0.18.6(typescript@5.9.3)(zod@4.1.11))(@safe-global/safe-apps-sdk@9.1.0(typescript@5.9.3)(zod@4.1.11))(@tanstack/query-core@5.101.2)(@tanstack/react-query@5.101.2(react@18.3.1))(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(viem@2.48.4(typescript@5.9.3)(zod@4.1.11)) devDependencies: '@types/react': specifier: ^18.3.0 @@ -726,6 +726,9 @@ importers: '@tamagui/themes': specifier: 1.121.0 version: 1.121.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react-native-svg: + specifier: 15.15.5 + version: 15.15.5(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@18.3.28)(react@18.3.1))(react@18.3.1) tamagui: specifier: 1.121.0 version: 1.121.0(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@18.3.28)(react@18.3.1))(react@18.3.1) @@ -2048,7 +2051,7 @@ packages: '@expo/bunyan@4.0.1': resolution: {integrity: sha512-+Lla7nYSiHZirgK+U/uYzsLv/X+HaJienbD5AKX1UQZHYfWaP+9uuQluRB4GrEVWF0GZ7vEVp/jzaOT9k/SQlg==} - engines: {node: '>=0.10.0'} + engines: {'0': node >=0.10.0} '@expo/cli@0.22.28': resolution: {integrity: sha512-lvt72KNitGuixYD2l3SZmRKVu2G4zJpmg5V7WfUBNpmUU5oODBw/6qmiJ6kSLAlfDozscUk+BBGknBBzxUrwrA==} @@ -10728,7 +10731,31 @@ snapshots: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.28.5 - '@base-org/account@2.4.0(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(zod@3.25.76)': + '@base-org/account@2.4.0(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(zod@4.1.11)': + dependencies: + '@coinbase/cdp-sdk': 1.52.0(typescript@5.9.3) + '@noble/hashes': 1.4.0 + clsx: 1.2.1 + eventemitter3: 5.0.1 + idb-keyval: 6.2.1 + ox: 0.6.9(typescript@5.9.3)(zod@4.1.11) + preact: 10.24.2 + viem: 2.48.4(typescript@5.9.3)(zod@4.1.11) + zustand: 5.0.3(@types/react@18.3.28)(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)) + transitivePeerDependencies: + - '@types/react' + - bufferutil + - debug + - fastestsmallesttextencoderdecoder + - immer + - react + - typescript + - use-sync-external-store + - utf-8-validate + - zod + optional: true + + '@base-org/account@2.4.0(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.6.0(react@18.3.1))(zod@3.25.76)': dependencies: '@coinbase/cdp-sdk': 1.52.0(typescript@5.9.3) '@noble/hashes': 1.4.0 @@ -10738,7 +10765,7 @@ snapshots: ox: 0.6.9(typescript@5.9.3)(zod@3.25.76) preact: 10.24.2 viem: 2.48.4(typescript@5.9.3)(zod@3.25.76) - zustand: 5.0.3(@types/react@18.3.28)(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)) + zustand: 5.0.3(@types/react@18.3.28)(react@18.3.1)(use-sync-external-store@1.6.0(react@18.3.1)) transitivePeerDependencies: - '@types/react' - bufferutil @@ -10802,7 +10829,28 @@ snapshots: - utf-8-validate optional: true - '@coinbase/wallet-sdk@4.3.6(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(zod@3.25.76)': + '@coinbase/wallet-sdk@4.3.6(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(zod@4.1.11)': + dependencies: + '@noble/hashes': 1.4.0 + clsx: 1.2.1 + eventemitter3: 5.0.1 + idb-keyval: 6.2.1 + ox: 0.6.9(typescript@5.9.3)(zod@4.1.11) + preact: 10.24.2 + viem: 2.48.4(typescript@5.9.3)(zod@4.1.11) + zustand: 5.0.3(@types/react@18.3.28)(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)) + transitivePeerDependencies: + - '@types/react' + - bufferutil + - immer + - react + - typescript + - use-sync-external-store + - utf-8-validate + - zod + optional: true + + '@coinbase/wallet-sdk@4.3.6(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.6.0(react@18.3.1))(zod@3.25.76)': dependencies: '@noble/hashes': 1.4.0 clsx: 1.2.1 @@ -10811,7 +10859,7 @@ snapshots: ox: 0.6.9(typescript@5.9.3)(zod@3.25.76) preact: 10.24.2 viem: 2.48.4(typescript@5.9.3)(zod@3.25.76) - zustand: 5.0.3(@types/react@18.3.28)(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)) + zustand: 5.0.3(@types/react@18.3.28)(react@18.3.1)(use-sync-external-store@1.6.0(react@18.3.1)) transitivePeerDependencies: - '@types/react' - bufferutil @@ -12359,22 +12407,22 @@ snapshots: '@renovatebot/pep440@4.2.1': {} - '@reown/appkit-adapter-wagmi@1.8.22(isknxadknpp2cdfgti7v5vosu4)': + '@reown/appkit-adapter-wagmi@1.8.22(v6adbyiuvbtrgqm65ozlnb246m)': dependencies: - '@reown/appkit': 1.8.22(@types/react@18.3.28)(@vercel/blob@2.4.0)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(zod@3.25.76) - '@reown/appkit-common': 1.8.22(typescript@5.9.3)(zod@3.25.76) - '@reown/appkit-controllers': 1.8.22(@types/react@18.3.28)(@vercel/blob@2.4.0)(react@18.3.1)(typescript@5.9.3)(zod@3.25.76) + '@reown/appkit': 1.8.22(@types/react@18.3.28)(@vercel/blob@2.4.0)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(zod@4.1.11) + '@reown/appkit-common': 1.8.22(typescript@5.9.3)(zod@4.1.11) + '@reown/appkit-controllers': 1.8.22(@types/react@18.3.28)(@vercel/blob@2.4.0)(react@18.3.1)(typescript@5.9.3)(zod@4.1.11) '@reown/appkit-polyfills': 1.8.22 - '@reown/appkit-scaffold-ui': 1.8.22(@types/react@18.3.28)(@vercel/blob@2.4.0)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(valtio@2.1.7(@types/react@18.3.28)(react@18.3.1))(zod@3.25.76) - '@reown/appkit-utils': 1.8.22(@types/react@18.3.28)(@vercel/blob@2.4.0)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(valtio@2.1.7(@types/react@18.3.28)(react@18.3.1))(zod@3.25.76) + '@reown/appkit-scaffold-ui': 1.8.22(@types/react@18.3.28)(@vercel/blob@2.4.0)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(valtio@2.1.7(@types/react@18.3.28)(react@18.3.1))(zod@4.1.11) + '@reown/appkit-utils': 1.8.22(@types/react@18.3.28)(@vercel/blob@2.4.0)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(valtio@2.1.7(@types/react@18.3.28)(react@18.3.1))(zod@4.1.11) '@reown/appkit-wallet': 1.8.22(typescript@5.9.3) - '@wagmi/core': 3.6.1(@tanstack/query-core@5.101.2)(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.48.4(typescript@5.9.3)(zod@3.25.76)) - '@walletconnect/universal-provider': 2.23.7(@vercel/blob@2.4.0)(typescript@5.9.3)(zod@3.25.76) + '@wagmi/core': 3.6.1(@tanstack/query-core@5.101.2)(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.48.4(typescript@5.9.3)(zod@4.1.11)) + '@walletconnect/universal-provider': 2.23.7(@vercel/blob@2.4.0)(typescript@5.9.3)(zod@4.1.11) valtio: 2.1.7(@types/react@18.3.28)(react@18.3.1) - viem: 2.48.4(typescript@5.9.3)(zod@3.25.76) - wagmi: 3.7.1(@coinbase/wallet-sdk@4.3.6(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(zod@3.25.76))(@safe-global/safe-apps-provider@0.18.6(typescript@5.9.3)(zod@3.25.76))(@safe-global/safe-apps-sdk@9.1.0(typescript@5.9.3)(zod@3.25.76))(@tanstack/query-core@5.101.2)(@tanstack/react-query@5.101.2(react@18.3.1))(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(viem@2.48.4(typescript@5.9.3)(zod@3.25.76)) + viem: 2.48.4(typescript@5.9.3)(zod@4.1.11) + wagmi: 3.7.1(@coinbase/wallet-sdk@4.3.6(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(zod@4.1.11))(@safe-global/safe-apps-provider@0.18.6(typescript@5.9.3)(zod@4.1.11))(@safe-global/safe-apps-sdk@9.1.0(typescript@5.9.3)(zod@4.1.11))(@tanstack/query-core@5.101.2)(@tanstack/react-query@5.101.2(react@18.3.1))(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(viem@2.48.4(typescript@5.9.3)(zod@4.1.11)) optionalDependencies: - '@wagmi/connectors': 8.0.8(@coinbase/wallet-sdk@4.3.6(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(zod@3.25.76))(@safe-global/safe-apps-provider@0.18.6(typescript@5.9.3)(zod@3.25.76))(@safe-global/safe-apps-sdk@9.1.0(typescript@5.9.3)(zod@3.25.76))(@wagmi/core@3.6.1(@tanstack/query-core@5.101.2)(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.48.4(typescript@5.9.3)(zod@3.25.76)))(typescript@5.9.3)(viem@2.48.4(typescript@5.9.3)(zod@3.25.76)) + '@wagmi/connectors': 8.0.8(@coinbase/wallet-sdk@4.3.6(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(zod@4.1.11))(@safe-global/safe-apps-provider@0.18.6(typescript@5.9.3)(zod@4.1.11))(@safe-global/safe-apps-sdk@9.1.0(typescript@5.9.3)(zod@4.1.11))(@wagmi/core@3.6.1(@tanstack/query-core@5.101.2)(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.48.4(typescript@5.9.3)(zod@4.1.11)))(typescript@5.9.3)(viem@2.48.4(typescript@5.9.3)(zod@4.1.11)) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -12518,12 +12566,52 @@ snapshots: - utf-8-validate - zod - '@reown/appkit-pay@1.8.22(@types/react@18.3.28)(@vercel/blob@2.4.0)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(zod@3.25.76)': + '@reown/appkit-pay@1.8.22(@types/react@18.3.28)(@vercel/blob@2.4.0)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(zod@4.1.11)': + dependencies: + '@reown/appkit-common': 1.8.22(typescript@5.9.3)(zod@4.1.11) + '@reown/appkit-controllers': 1.8.22(@types/react@18.3.28)(@vercel/blob@2.4.0)(react@18.3.1)(typescript@5.9.3)(zod@4.1.11) + '@reown/appkit-ui': 1.8.22(@types/react@18.3.28)(@vercel/blob@2.4.0)(react@18.3.1)(typescript@5.9.3)(zod@4.1.11) + '@reown/appkit-utils': 1.8.22(@types/react@18.3.28)(@vercel/blob@2.4.0)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(valtio@2.1.7(@types/react@18.3.28)(react@18.3.1))(zod@4.1.11) + lit: 3.3.0 + valtio: 2.1.7(@types/react@18.3.28)(react@18.3.1) + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@deno/kv' + - '@netlify/blobs' + - '@planetscale/database' + - '@react-native-async-storage/async-storage' + - '@types/react' + - '@upstash/redis' + - '@vercel/blob' + - '@vercel/functions' + - '@vercel/kv' + - aws4fetch + - bufferutil + - db0 + - debug + - encoding + - fastestsmallesttextencoderdecoder + - immer + - ioredis + - react + - typescript + - uploadthing + - use-sync-external-store + - utf-8-validate + - zod + + '@reown/appkit-pay@1.8.22(@types/react@18.3.28)(@vercel/blob@2.4.0)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.6.0(react@18.3.1))(zod@3.25.76)': dependencies: '@reown/appkit-common': 1.8.22(typescript@5.9.3)(zod@3.25.76) '@reown/appkit-controllers': 1.8.22(@types/react@18.3.28)(@vercel/blob@2.4.0)(react@18.3.1)(typescript@5.9.3)(zod@3.25.76) '@reown/appkit-ui': 1.8.22(@types/react@18.3.28)(@vercel/blob@2.4.0)(react@18.3.1)(typescript@5.9.3)(zod@3.25.76) - '@reown/appkit-utils': 1.8.22(@types/react@18.3.28)(@vercel/blob@2.4.0)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(valtio@2.1.7(@types/react@18.3.28)(react@18.3.1))(zod@3.25.76) + '@reown/appkit-utils': 1.8.22(@types/react@18.3.28)(@vercel/blob@2.4.0)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.6.0(react@18.3.1))(valtio@2.1.7(@types/react@18.3.28)(react@18.3.1))(zod@3.25.76) lit: 3.3.0 valtio: 2.1.7(@types/react@18.3.28)(react@18.3.1) transitivePeerDependencies: @@ -12602,13 +12690,55 @@ snapshots: dependencies: buffer: 6.0.3 - '@reown/appkit-scaffold-ui@1.8.22(@types/react@18.3.28)(@vercel/blob@2.4.0)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(valtio@2.1.7(@types/react@18.3.28)(react@18.3.1))(zod@3.25.76)': + '@reown/appkit-scaffold-ui@1.8.22(@types/react@18.3.28)(@vercel/blob@2.4.0)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(valtio@2.1.7(@types/react@18.3.28)(react@18.3.1))(zod@4.1.11)': + dependencies: + '@reown/appkit-common': 1.8.22(typescript@5.9.3)(zod@4.1.11) + '@reown/appkit-controllers': 1.8.22(@types/react@18.3.28)(@vercel/blob@2.4.0)(react@18.3.1)(typescript@5.9.3)(zod@4.1.11) + '@reown/appkit-pay': 1.8.22(@types/react@18.3.28)(@vercel/blob@2.4.0)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(zod@4.1.11) + '@reown/appkit-ui': 1.8.22(@types/react@18.3.28)(@vercel/blob@2.4.0)(react@18.3.1)(typescript@5.9.3)(zod@4.1.11) + '@reown/appkit-utils': 1.8.22(@types/react@18.3.28)(@vercel/blob@2.4.0)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(valtio@2.1.7(@types/react@18.3.28)(react@18.3.1))(zod@4.1.11) + '@reown/appkit-wallet': 1.8.22(typescript@5.9.3) + lit: 3.3.0 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@deno/kv' + - '@netlify/blobs' + - '@planetscale/database' + - '@react-native-async-storage/async-storage' + - '@types/react' + - '@upstash/redis' + - '@vercel/blob' + - '@vercel/functions' + - '@vercel/kv' + - aws4fetch + - bufferutil + - db0 + - debug + - encoding + - fastestsmallesttextencoderdecoder + - immer + - ioredis + - react + - typescript + - uploadthing + - use-sync-external-store + - utf-8-validate + - valtio + - zod + + '@reown/appkit-scaffold-ui@1.8.22(@types/react@18.3.28)(@vercel/blob@2.4.0)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.6.0(react@18.3.1))(valtio@2.1.7(@types/react@18.3.28)(react@18.3.1))(zod@3.25.76)': dependencies: '@reown/appkit-common': 1.8.22(typescript@5.9.3)(zod@3.25.76) '@reown/appkit-controllers': 1.8.22(@types/react@18.3.28)(@vercel/blob@2.4.0)(react@18.3.1)(typescript@5.9.3)(zod@3.25.76) - '@reown/appkit-pay': 1.8.22(@types/react@18.3.28)(@vercel/blob@2.4.0)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(zod@3.25.76) + '@reown/appkit-pay': 1.8.22(@types/react@18.3.28)(@vercel/blob@2.4.0)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.6.0(react@18.3.1))(zod@3.25.76) '@reown/appkit-ui': 1.8.22(@types/react@18.3.28)(@vercel/blob@2.4.0)(react@18.3.1)(typescript@5.9.3)(zod@3.25.76) - '@reown/appkit-utils': 1.8.22(@types/react@18.3.28)(@vercel/blob@2.4.0)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(valtio@2.1.7(@types/react@18.3.28)(react@18.3.1))(zod@3.25.76) + '@reown/appkit-utils': 1.8.22(@types/react@18.3.28)(@vercel/blob@2.4.0)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.6.0(react@18.3.1))(valtio@2.1.7(@types/react@18.3.28)(react@18.3.1))(zod@3.25.76) '@reown/appkit-wallet': 1.8.22(typescript@5.9.3) lit: 3.3.0 transitivePeerDependencies: @@ -12758,7 +12888,55 @@ snapshots: - utf-8-validate - zod - '@reown/appkit-utils@1.8.22(@types/react@18.3.28)(@vercel/blob@2.4.0)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(valtio@2.1.7(@types/react@18.3.28)(react@18.3.1))(zod@3.25.76)': + '@reown/appkit-utils@1.8.22(@types/react@18.3.28)(@vercel/blob@2.4.0)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(valtio@2.1.7(@types/react@18.3.28)(react@18.3.1))(zod@4.1.11)': + dependencies: + '@reown/appkit-common': 1.8.22(typescript@5.9.3)(zod@4.1.11) + '@reown/appkit-controllers': 1.8.22(@types/react@18.3.28)(@vercel/blob@2.4.0)(react@18.3.1)(typescript@5.9.3)(zod@4.1.11) + '@reown/appkit-polyfills': 1.8.22 + '@reown/appkit-wallet': 1.8.22(typescript@5.9.3) + '@wallet-standard/wallet': 1.1.0 + '@walletconnect/logger': 3.0.2 + '@walletconnect/universal-provider': 2.23.7(@vercel/blob@2.4.0)(typescript@5.9.3)(zod@4.1.11) + valtio: 2.1.7(@types/react@18.3.28)(react@18.3.1) + viem: 2.48.4(typescript@5.9.3)(zod@4.1.11) + optionalDependencies: + '@base-org/account': 2.4.0(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(zod@4.1.11) + '@coinbase/wallet-sdk': 4.3.6(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(zod@4.1.11) + '@safe-global/safe-apps-provider': 0.18.6(typescript@5.9.3)(zod@4.1.11) + '@safe-global/safe-apps-sdk': 9.1.0(typescript@5.9.3)(zod@4.1.11) + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@deno/kv' + - '@netlify/blobs' + - '@planetscale/database' + - '@react-native-async-storage/async-storage' + - '@types/react' + - '@upstash/redis' + - '@vercel/blob' + - '@vercel/functions' + - '@vercel/kv' + - aws4fetch + - bufferutil + - db0 + - debug + - encoding + - fastestsmallesttextencoderdecoder + - immer + - ioredis + - react + - typescript + - uploadthing + - use-sync-external-store + - utf-8-validate + - zod + + '@reown/appkit-utils@1.8.22(@types/react@18.3.28)(@vercel/blob@2.4.0)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.6.0(react@18.3.1))(valtio@2.1.7(@types/react@18.3.28)(react@18.3.1))(zod@3.25.76)': dependencies: '@reown/appkit-common': 1.8.22(typescript@5.9.3)(zod@3.25.76) '@reown/appkit-controllers': 1.8.22(@types/react@18.3.28)(@vercel/blob@2.4.0)(react@18.3.1)(typescript@5.9.3)(zod@3.25.76) @@ -12770,8 +12948,8 @@ snapshots: valtio: 2.1.7(@types/react@18.3.28)(react@18.3.1) viem: 2.48.4(typescript@5.9.3)(zod@3.25.76) optionalDependencies: - '@base-org/account': 2.4.0(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(zod@3.25.76) - '@coinbase/wallet-sdk': 4.3.6(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(zod@3.25.76) + '@base-org/account': 2.4.0(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.6.0(react@18.3.1))(zod@3.25.76) + '@coinbase/wallet-sdk': 4.3.6(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.6.0(react@18.3.1))(zod@3.25.76) '@safe-global/safe-apps-provider': 0.18.6(typescript@5.9.3)(zod@3.25.76) '@safe-global/safe-apps-sdk': 9.1.0(typescript@5.9.3)(zod@3.25.76) transitivePeerDependencies: @@ -12865,15 +13043,64 @@ snapshots: - typescript - utf-8-validate - '@reown/appkit@1.8.22(@types/react@18.3.28)(@vercel/blob@2.4.0)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(zod@3.25.76)': + '@reown/appkit@1.8.22(@types/react@18.3.28)(@vercel/blob@2.4.0)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(zod@4.1.11)': + dependencies: + '@reown/appkit-common': 1.8.22(typescript@5.9.3)(zod@4.1.11) + '@reown/appkit-controllers': 1.8.22(@types/react@18.3.28)(@vercel/blob@2.4.0)(react@18.3.1)(typescript@5.9.3)(zod@4.1.11) + '@reown/appkit-pay': 1.8.22(@types/react@18.3.28)(@vercel/blob@2.4.0)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(zod@4.1.11) + '@reown/appkit-polyfills': 1.8.22 + '@reown/appkit-scaffold-ui': 1.8.22(@types/react@18.3.28)(@vercel/blob@2.4.0)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(valtio@2.1.7(@types/react@18.3.28)(react@18.3.1))(zod@4.1.11) + '@reown/appkit-ui': 1.8.22(@types/react@18.3.28)(@vercel/blob@2.4.0)(react@18.3.1)(typescript@5.9.3)(zod@4.1.11) + '@reown/appkit-utils': 1.8.22(@types/react@18.3.28)(@vercel/blob@2.4.0)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(valtio@2.1.7(@types/react@18.3.28)(react@18.3.1))(zod@4.1.11) + '@reown/appkit-wallet': 1.8.22(typescript@5.9.3) + '@walletconnect/universal-provider': 2.23.7(@vercel/blob@2.4.0)(typescript@5.9.3)(zod@4.1.11) + bs58: 6.0.0 + semver: 7.7.2 + valtio: 2.1.7(@types/react@18.3.28)(react@18.3.1) + viem: 2.48.4(typescript@5.9.3)(zod@4.1.11) + optionalDependencies: + '@lit/react': 1.0.8(@types/react@18.3.28) + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@deno/kv' + - '@netlify/blobs' + - '@planetscale/database' + - '@react-native-async-storage/async-storage' + - '@types/react' + - '@upstash/redis' + - '@vercel/blob' + - '@vercel/functions' + - '@vercel/kv' + - aws4fetch + - bufferutil + - db0 + - debug + - encoding + - fastestsmallesttextencoderdecoder + - immer + - ioredis + - react + - typescript + - uploadthing + - use-sync-external-store + - utf-8-validate + - zod + + '@reown/appkit@1.8.22(@types/react@18.3.28)(@vercel/blob@2.4.0)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.6.0(react@18.3.1))(zod@3.25.76)': dependencies: '@reown/appkit-common': 1.8.22(typescript@5.9.3)(zod@3.25.76) '@reown/appkit-controllers': 1.8.22(@types/react@18.3.28)(@vercel/blob@2.4.0)(react@18.3.1)(typescript@5.9.3)(zod@3.25.76) - '@reown/appkit-pay': 1.8.22(@types/react@18.3.28)(@vercel/blob@2.4.0)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(zod@3.25.76) + '@reown/appkit-pay': 1.8.22(@types/react@18.3.28)(@vercel/blob@2.4.0)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.6.0(react@18.3.1))(zod@3.25.76) '@reown/appkit-polyfills': 1.8.22 - '@reown/appkit-scaffold-ui': 1.8.22(@types/react@18.3.28)(@vercel/blob@2.4.0)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(valtio@2.1.7(@types/react@18.3.28)(react@18.3.1))(zod@3.25.76) + '@reown/appkit-scaffold-ui': 1.8.22(@types/react@18.3.28)(@vercel/blob@2.4.0)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.6.0(react@18.3.1))(valtio@2.1.7(@types/react@18.3.28)(react@18.3.1))(zod@3.25.76) '@reown/appkit-ui': 1.8.22(@types/react@18.3.28)(@vercel/blob@2.4.0)(react@18.3.1)(typescript@5.9.3)(zod@3.25.76) - '@reown/appkit-utils': 1.8.22(@types/react@18.3.28)(@vercel/blob@2.4.0)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(valtio@2.1.7(@types/react@18.3.28)(react@18.3.1))(zod@3.25.76) + '@reown/appkit-utils': 1.8.22(@types/react@18.3.28)(@vercel/blob@2.4.0)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.6.0(react@18.3.1))(valtio@2.1.7(@types/react@18.3.28)(react@18.3.1))(zod@3.25.76) '@reown/appkit-wallet': 1.8.22(typescript@5.9.3) '@walletconnect/universal-provider': 2.23.7(@vercel/blob@2.4.0)(typescript@5.9.3)(zod@3.25.76) bs58: 6.0.0 @@ -15993,14 +16220,14 @@ snapshots: loupe: 3.2.1 tinyrainbow: 1.2.0 - '@wagmi/connectors@8.0.22(@coinbase/wallet-sdk@4.3.6(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(zod@3.25.76))(@safe-global/safe-apps-provider@0.18.6(typescript@5.9.3)(zod@3.25.76))(@safe-global/safe-apps-sdk@9.1.0(typescript@5.9.3)(zod@3.25.76))(@wagmi/core@3.6.1(@tanstack/query-core@5.101.2)(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.48.4(typescript@5.9.3)(zod@3.25.76)))(typescript@5.9.3)(viem@2.48.4(typescript@5.9.3)(zod@3.25.76))': + '@wagmi/connectors@8.0.22(@coinbase/wallet-sdk@4.3.6(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(zod@4.1.11))(@safe-global/safe-apps-provider@0.18.6(typescript@5.9.3)(zod@4.1.11))(@safe-global/safe-apps-sdk@9.1.0(typescript@5.9.3)(zod@4.1.11))(@wagmi/core@3.6.1(@tanstack/query-core@5.101.2)(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.48.4(typescript@5.9.3)(zod@4.1.11)))(typescript@5.9.3)(viem@2.48.4(typescript@5.9.3)(zod@4.1.11))': dependencies: - '@wagmi/core': 3.6.1(@tanstack/query-core@5.101.2)(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.48.4(typescript@5.9.3)(zod@3.25.76)) - viem: 2.48.4(typescript@5.9.3)(zod@3.25.76) + '@wagmi/core': 3.6.1(@tanstack/query-core@5.101.2)(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.48.4(typescript@5.9.3)(zod@4.1.11)) + viem: 2.48.4(typescript@5.9.3)(zod@4.1.11) optionalDependencies: - '@coinbase/wallet-sdk': 4.3.6(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(zod@3.25.76) - '@safe-global/safe-apps-provider': 0.18.6(typescript@5.9.3)(zod@3.25.76) - '@safe-global/safe-apps-sdk': 9.1.0(typescript@5.9.3)(zod@3.25.76) + '@coinbase/wallet-sdk': 4.3.6(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(zod@4.1.11) + '@safe-global/safe-apps-provider': 0.18.6(typescript@5.9.3)(zod@4.1.11) + '@safe-global/safe-apps-sdk': 9.1.0(typescript@5.9.3)(zod@4.1.11) typescript: 5.9.3 '@wagmi/connectors@8.0.22(@coinbase/wallet-sdk@4.3.6(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.6.0(react@18.3.1))(zod@4.1.11))(@safe-global/safe-apps-provider@0.18.6(typescript@5.9.3)(zod@4.1.11))(@safe-global/safe-apps-sdk@9.1.0(typescript@5.9.3)(zod@4.1.11))(@wagmi/core@3.6.1(@tanstack/query-core@5.101.2)(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.48.4(typescript@5.9.3)(zod@4.1.11)))(typescript@5.9.3)(viem@2.48.4(typescript@5.9.3)(zod@4.1.11))': @@ -16013,32 +16240,17 @@ snapshots: '@safe-global/safe-apps-sdk': 9.1.0(typescript@5.9.3)(zod@4.1.11) typescript: 5.9.3 - '@wagmi/connectors@8.0.8(@coinbase/wallet-sdk@4.3.6(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(zod@3.25.76))(@safe-global/safe-apps-provider@0.18.6(typescript@5.9.3)(zod@3.25.76))(@safe-global/safe-apps-sdk@9.1.0(typescript@5.9.3)(zod@3.25.76))(@wagmi/core@3.6.1(@tanstack/query-core@5.101.2)(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.48.4(typescript@5.9.3)(zod@3.25.76)))(typescript@5.9.3)(viem@2.48.4(typescript@5.9.3)(zod@3.25.76))': + '@wagmi/connectors@8.0.8(@coinbase/wallet-sdk@4.3.6(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(zod@4.1.11))(@safe-global/safe-apps-provider@0.18.6(typescript@5.9.3)(zod@4.1.11))(@safe-global/safe-apps-sdk@9.1.0(typescript@5.9.3)(zod@4.1.11))(@wagmi/core@3.6.1(@tanstack/query-core@5.101.2)(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.48.4(typescript@5.9.3)(zod@4.1.11)))(typescript@5.9.3)(viem@2.48.4(typescript@5.9.3)(zod@4.1.11))': dependencies: - '@wagmi/core': 3.6.1(@tanstack/query-core@5.101.2)(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.48.4(typescript@5.9.3)(zod@3.25.76)) - viem: 2.48.4(typescript@5.9.3)(zod@3.25.76) + '@wagmi/core': 3.6.1(@tanstack/query-core@5.101.2)(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.48.4(typescript@5.9.3)(zod@4.1.11)) + viem: 2.48.4(typescript@5.9.3)(zod@4.1.11) optionalDependencies: - '@coinbase/wallet-sdk': 4.3.6(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(zod@3.25.76) - '@safe-global/safe-apps-provider': 0.18.6(typescript@5.9.3)(zod@3.25.76) - '@safe-global/safe-apps-sdk': 9.1.0(typescript@5.9.3)(zod@3.25.76) + '@coinbase/wallet-sdk': 4.3.6(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(zod@4.1.11) + '@safe-global/safe-apps-provider': 0.18.6(typescript@5.9.3)(zod@4.1.11) + '@safe-global/safe-apps-sdk': 9.1.0(typescript@5.9.3)(zod@4.1.11) typescript: 5.9.3 optional: true - '@wagmi/core@3.6.1(@tanstack/query-core@5.101.2)(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.48.4(typescript@5.9.3)(zod@3.25.76))': - dependencies: - eventemitter3: 5.0.1 - mipd: 0.0.7(typescript@5.9.3) - viem: 2.48.4(typescript@5.9.3)(zod@3.25.76) - zustand: 5.0.0(@types/react@18.3.28)(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)) - optionalDependencies: - '@tanstack/query-core': 5.101.2 - typescript: 5.9.3 - transitivePeerDependencies: - - '@types/react' - - immer - - react - - use-sync-external-store - '@wagmi/core@3.6.1(@tanstack/query-core@5.101.2)(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.48.4(typescript@5.9.3)(zod@4.1.11))': dependencies: eventemitter3: 5.0.1 @@ -21921,14 +22133,14 @@ snapshots: w-json@1.3.11: {} - wagmi@3.7.1(@coinbase/wallet-sdk@4.3.6(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(zod@3.25.76))(@safe-global/safe-apps-provider@0.18.6(typescript@5.9.3)(zod@3.25.76))(@safe-global/safe-apps-sdk@9.1.0(typescript@5.9.3)(zod@3.25.76))(@tanstack/query-core@5.101.2)(@tanstack/react-query@5.101.2(react@18.3.1))(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(viem@2.48.4(typescript@5.9.3)(zod@3.25.76)): + wagmi@3.7.1(@coinbase/wallet-sdk@4.3.6(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(zod@4.1.11))(@safe-global/safe-apps-provider@0.18.6(typescript@5.9.3)(zod@4.1.11))(@safe-global/safe-apps-sdk@9.1.0(typescript@5.9.3)(zod@4.1.11))(@tanstack/query-core@5.101.2)(@tanstack/react-query@5.101.2(react@18.3.1))(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(viem@2.48.4(typescript@5.9.3)(zod@4.1.11)): dependencies: '@tanstack/react-query': 5.101.2(react@18.3.1) - '@wagmi/connectors': 8.0.22(@coinbase/wallet-sdk@4.3.6(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(zod@3.25.76))(@safe-global/safe-apps-provider@0.18.6(typescript@5.9.3)(zod@3.25.76))(@safe-global/safe-apps-sdk@9.1.0(typescript@5.9.3)(zod@3.25.76))(@wagmi/core@3.6.1(@tanstack/query-core@5.101.2)(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.48.4(typescript@5.9.3)(zod@3.25.76)))(typescript@5.9.3)(viem@2.48.4(typescript@5.9.3)(zod@3.25.76)) - '@wagmi/core': 3.6.1(@tanstack/query-core@5.101.2)(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.48.4(typescript@5.9.3)(zod@3.25.76)) + '@wagmi/connectors': 8.0.22(@coinbase/wallet-sdk@4.3.6(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(zod@4.1.11))(@safe-global/safe-apps-provider@0.18.6(typescript@5.9.3)(zod@4.1.11))(@safe-global/safe-apps-sdk@9.1.0(typescript@5.9.3)(zod@4.1.11))(@wagmi/core@3.6.1(@tanstack/query-core@5.101.2)(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.48.4(typescript@5.9.3)(zod@4.1.11)))(typescript@5.9.3)(viem@2.48.4(typescript@5.9.3)(zod@4.1.11)) + '@wagmi/core': 3.6.1(@tanstack/query-core@5.101.2)(@types/react@18.3.28)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.48.4(typescript@5.9.3)(zod@4.1.11)) react: 18.3.1 use-sync-external-store: 1.4.0(react@18.3.1) - viem: 2.48.4(typescript@5.9.3)(zod@3.25.76) + viem: 2.48.4(typescript@5.9.3)(zod@4.1.11) optionalDependencies: typescript: 5.9.3 transitivePeerDependencies: diff --git a/tests/design-system/smoke.spec.ts b/tests/design-system/smoke.spec.ts index f9297c25..d16eed3d 100644 --- a/tests/design-system/smoke.spec.ts +++ b/tests/design-system/smoke.spec.ts @@ -110,3 +110,11 @@ test('Stepper/Default story renders active-step hierarchy', async ({ page }) => await expect(frame.getByTestId('Stepper-default')).toBeVisible() await screenshotStory(page, 'tests/design-system/test-results/story-stepper-default.png') }) + +test('Scorecard/Default story renders all mock-data rows', async ({ page }) => { + await gotoStory(page, 'design-system-primitives-scorecard--default') + const frame = getStoryFrame(page) + await expect(frame.getByTestId('Scorecard-default')).toBeVisible() + await expect(frame.getByTestId('Scorecard-bare')).toBeVisible() + await screenshotStory(page, 'tests/design-system/test-results/story-scorecard-default.png') +}) diff --git a/tests/design-system/test-results/story-scorecard-default.png b/tests/design-system/test-results/story-scorecard-default.png new file mode 100644 index 0000000000000000000000000000000000000000..6f07a4750898205ca2edeae5cee3c16a04ef9c15 GIT binary patch literal 27342 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 yd;I$qxZ3~sA6!a-b6#GO2eEsCH+a}( Date: Wed, 5 Aug 2026 16:13:04 +0000 Subject: [PATCH 2/3] Address review feedback on Scorecard: rounding, testID, a11y, peer dep - formatMetricValue: fix a rounding-boundary bug where a scaled value could round up to the next unit's threshold without promoting (e.g. 999_950 -> "1000.0K" instead of "1.0M"); guard non-finite input (NaN/Infinity) with a "--" fallback shared by all consumers; note the intentional en-US locale. - Scorecard: set both testID and data-testid so React Native test tooling and web DOM queries both work; mark the trend arrow SVG as decorative (accessible=false / aria-hidden) since adjacent text already conveys direction; give resolveThemeColor a visible fallback and dev warning instead of silently rendering an empty fill; type its theme param via ReturnType instead of an unsafe double cast. - package.json: move react-native-svg to peerDependencies (kept in devDependencies for local build/test) to avoid native-module duplication for consumers. - Storybook story + smoke test: render all 5 mock-data rows in both the bare and card variants with per-row testIDs, and assert all 10 are visible so the test matches what it claims to cover. Co-Authored-By: Claude --- .../design-system/Scorecard.stories.tsx | 50 ++++++++++-------- packages/ui/package.json | 3 +- packages/ui/src/components/Scorecard.tsx | 40 ++++++++++---- packages/ui/src/utils/formatMetricValue.ts | 29 ++++++++-- pnpm-lock.yaml | 10 ++-- tests/design-system/smoke.spec.ts | 14 ++++- .../test-results/story-scorecard-default.png | Bin 27342 -> 46559 bytes 7 files changed, 103 insertions(+), 43 deletions(-) diff --git a/examples/storybook/src/stories/design-system/Scorecard.stories.tsx b/examples/storybook/src/stories/design-system/Scorecard.stories.tsx index acd09aea..c7ed1130 100644 --- a/examples/storybook/src/stories/design-system/Scorecard.stories.tsx +++ b/examples/storybook/src/stories/design-system/Scorecard.stories.tsx @@ -3,9 +3,22 @@ */ import React from 'react' import type { Meta, StoryObj } from '@storybook/react' -import { Scorecard, XStack } from '@goodwidget/ui' +import { Scorecard, XStack, YStack } from '@goodwidget/ui' +import type { ScorecardProps } from '@goodwidget/ui' import { withDefaultPreset } from '../helpers/withDefaultPreset' +/** The 5 mock-data rows from #139, reused to render both the bare and card variants. */ +const MOCK_ROWS: Array<{ slug: string; props: Omit }> = [ + { slug: 'total-spent', props: { label: 'Total G$ Spent', value: 1900, prefix: 'G$', format: 'compact' } }, + { slug: 'ai-credits', props: { label: 'AI Credits Used', value: 284.5, prefix: '$', format: 'decimal', decimals: 2 } }, + { slug: 'active-days', props: { label: 'Active Days', value: 28, format: 'none' } }, + { + slug: 'unique-wallets', + props: { label: 'Unique Wallets', value: 47, trend: { value: 15.3, direction: 'up' }, trendLabel: 'vs last 7d' }, + }, + { slug: 'daily-flow-rate', props: { label: 'Daily Flow Rate', value: 2450000, prefix: 'G$', suffix: '/day', format: 'compact' } }, +] + const meta: Meta = { title: 'Design System/Primitives/Scorecard', component: Scorecard, @@ -38,28 +51,21 @@ const meta: Meta = { export default meta type Story = StoryObj -/** All 5 mock-data rows from #139, each rendered in both variants. */ +/** All 5 mock-data rows from #139, each rendered in both the bare and card variant. */ export const Default: Story = { - args: { - label: 'Total G$ Spent', - value: 1900, - prefix: 'G$', - format: 'compact', - }, - render: (args) => ( - - - - - - - + render: () => ( + + + {MOCK_ROWS.map(({ slug, props }) => ( + + ))} + + + {MOCK_ROWS.map(({ slug, props }) => ( + + ))} + + ), } diff --git a/packages/ui/package.json b/packages/ui/package.json index 5b2ee608..86a135c5 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -21,6 +21,7 @@ "peerDependencies": { "react": ">=18.0.0", "react-native": ">=0.76.0", + "react-native-svg": ">=15.0.0", "@react-native-clipboard/clipboard": ">=1.14.0" }, "peerDependenciesMeta": { @@ -36,13 +37,13 @@ "@tamagui/core": "1.121.0", "@tamagui/lucide-icons": "1.121.0", "@tamagui/themes": "1.121.0", - "react-native-svg": "15.15.5", "tamagui": "1.121.0" }, "devDependencies": { "@types/react": "^18.3.0", "react": "^18.3.0", "react-native": "0.76.9", + "react-native-svg": "15.15.5", "react-native-web": "^0.19.13", "tsup": "^8.4.0", "typescript": "^5.7.0" diff --git a/packages/ui/src/components/Scorecard.tsx b/packages/ui/src/components/Scorecard.tsx index b2478414..a6d78447 100644 --- a/packages/ui/src/components/Scorecard.tsx +++ b/packages/ui/src/components/Scorecard.tsx @@ -72,16 +72,30 @@ const TREND_DIRECTION_COLOR_TOKEN: Record = * Unwraps a Tamagui theme token to its raw color string. react-native-svg's * fill/stroke props aren't part of Tamagui's styling system, so they need * the resolved value rather than a "$token" reference. + * + * Falls back to the theme's base `$color` token if the requested token is + * missing, so a bad token renders in a visible (if wrong) color instead of + * silently disappearing as black-on-web / transparent-on-native. */ -function resolveThemeColor(theme: Record, token: string): string { +function resolveThemeColor(theme: ReturnType, token: string): string { + const themeRecord = theme as unknown as Record const key = token.replace('$', '') - const themeValue = theme[key] + const themeValue = themeRecord[key] + const resolved = + themeValue && typeof themeValue === 'object' && 'val' in themeValue + ? String(themeValue.val) + : typeof themeValue === 'string' + ? themeValue + : undefined - if (themeValue && typeof themeValue === 'object' && 'val' in themeValue) { - return String((themeValue as { val: unknown }).val) + if (resolved) { + return resolved } - return typeof themeValue === 'string' ? themeValue : '' + console.warn(`Scorecard: theme token "${token}" not found, falling back to "$color"`) + + const fallback = themeRecord.color + return fallback && typeof fallback === 'object' && 'val' in fallback ? String(fallback.val) : '#000000' } const ScorecardFrame = createComponent(YStack, { @@ -152,7 +166,11 @@ const ScorecardTrendText = createComponent(TamaguiText, { defaultVariants: { size: 'md' }, }) -/** Up/down/neutral arrow glyph, drawn with react-native-svg for cross-platform rendering. */ +/** + * Up/down/neutral arrow glyph, drawn with react-native-svg for cross-platform + * rendering. Marked decorative (accessible={false} on native, aria-hidden on + * web) since the adjacent trend text already conveys the direction in words. + */ function TrendGlyph({ direction, color, size }: { direction: ScorecardTrend['direction']; color: string; size: number }) { const path = direction === 'up' @@ -163,14 +181,14 @@ function TrendGlyph({ direction, color, size }: { direction: ScorecardTrend['dir if (direction === 'neutral') { return ( - + ) } return ( - + ) @@ -199,7 +217,9 @@ function ScorecardContent({ const formattedValue = formatMetricValue(value, format, decimals) return ( - + // testID (React Native) and data-testid (web/DOM) both set so the same + // identifier works with either platform's test tooling. + {label} {prefix ? {prefix} : null} @@ -210,7 +230,7 @@ function ScorecardContent({ , TREND_DIRECTION_COLOR_TOKEN[trend.direction])} + color={resolveThemeColor(theme, TREND_DIRECTION_COLOR_TOKEN[trend.direction])} size={SECONDARY_SIZE_PX[size]} /> diff --git a/packages/ui/src/utils/formatMetricValue.ts b/packages/ui/src/utils/formatMetricValue.ts index 396fea0b..833f2c37 100644 --- a/packages/ui/src/utils/formatMetricValue.ts +++ b/packages/ui/src/utils/formatMetricValue.ts @@ -5,6 +5,9 @@ export type MetricFormat = 'compact' | 'decimal' | 'none' +/** Non-finite values (NaN, Infinity) have no sensible numeric rendering. */ +const NON_FINITE_FALLBACK = '--' + /** Ordered largest-first so the first matching threshold wins. */ const COMPACT_THRESHOLDS = [ { threshold: 1_000_000_000_000, suffix: 'T' }, @@ -21,16 +24,32 @@ function assertNonNegativeInteger(decimals: number): void { function formatCompact(value: number, decimals: number): string { const absValue = Math.abs(value) - const match = COMPACT_THRESHOLDS.find(({ threshold }) => absValue >= threshold) + let thresholdIndex = COMPACT_THRESHOLDS.findIndex(({ threshold }) => absValue >= threshold) - if (!match) { + if (thresholdIndex === -1) { return value.toFixed(decimals) } - return `${(value / match.threshold).toFixed(decimals)}${match.suffix}` + // Rounding the scaled value can carry it up to the next unit (e.g. 999_950 → "1000.0K" + // instead of "1.0M"). Walk up to the next larger threshold (lower index) until the + // rounded value fits under 1000, or there's no larger unit left. + while (thresholdIndex > 0) { + const scaled = Number((value / COMPACT_THRESHOLDS[thresholdIndex].threshold).toFixed(decimals)) + + if (Math.abs(scaled) < 1000) { + break + } + + thresholdIndex -= 1 + } + + const { threshold, suffix } = COMPACT_THRESHOLDS[thresholdIndex] + + return `${(value / threshold).toFixed(decimals)}${suffix}` } function formatDecimal(value: number, decimals: number): string { + // Intentionally hardcoded to en-US for v1; take a locale param once i18n is in scope. return new Intl.NumberFormat('en-US', { minimumFractionDigits: decimals, maximumFractionDigits: decimals, @@ -47,6 +66,10 @@ function formatDecimal(value: number, decimals: number): string { * not a runtime state, so it throws rather than silently clamping. */ export function formatMetricValue(value: number, format: MetricFormat = 'compact', decimals?: number): string { + if (!Number.isFinite(value)) { + return NON_FINITE_FALLBACK + } + if (format === 'none') { return String(value) } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1d66fdd9..cb6a4890 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -49,7 +49,7 @@ importers: version: link:../../packages/ui '@reown/appkit': specifier: ^1.8.22 - version: 1.8.22(@types/react@18.3.28)(@vercel/blob@2.4.0)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.6.0(react@18.3.1))(zod@4.1.11) + version: 1.8.22(@types/react@18.3.28)(@vercel/blob@2.4.0)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.6.0(react@18.3.1))(zod@3.25.76) '@tamagui/core': specifier: 1.121.0 version: 1.121.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -101,7 +101,7 @@ importers: version: link:../../packages/ui '@reown/appkit': specifier: ^1.8.22 - version: 1.8.22(@types/react@18.3.28)(@vercel/blob@2.4.0)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.6.0(react@18.3.1))(zod@3.25.76) + version: 1.8.22(@types/react@18.3.28)(@vercel/blob@2.4.0)(react@18.3.1)(typescript@5.9.3)(use-sync-external-store@1.6.0(react@18.3.1))(zod@4.1.11) '@tamagui/core': specifier: 1.121.0 version: 1.121.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -726,9 +726,6 @@ importers: '@tamagui/themes': specifier: 1.121.0 version: 1.121.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react-native-svg: - specifier: 15.15.5 - version: 15.15.5(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@18.3.28)(react@18.3.1))(react@18.3.1) tamagui: specifier: 1.121.0 version: 1.121.0(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@18.3.28)(react@18.3.1))(react@18.3.1) @@ -742,6 +739,9 @@ importers: react-native: specifier: 0.76.9 version: 0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@18.3.28)(react@18.3.1) + react-native-svg: + specifier: 15.15.5 + version: 15.15.5(react-native@0.76.9(@babel/core@7.29.0)(@babel/preset-env@7.29.2(@babel/core@7.29.0))(@types/react@18.3.28)(react@18.3.1))(react@18.3.1) react-native-web: specifier: ^0.19.13 version: 0.19.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1) diff --git a/tests/design-system/smoke.spec.ts b/tests/design-system/smoke.spec.ts index d16eed3d..4ab8d3ac 100644 --- a/tests/design-system/smoke.spec.ts +++ b/tests/design-system/smoke.spec.ts @@ -111,10 +111,20 @@ test('Stepper/Default story renders active-step hierarchy', async ({ page }) => await screenshotStory(page, 'tests/design-system/test-results/story-stepper-default.png') }) -test('Scorecard/Default story renders all mock-data rows', async ({ page }) => { +test('Scorecard/Default story renders all 5 mock-data rows in both variants', async ({ page }) => { + // Taller than the default viewport so both the bare and card rows fit + // without clipping — 10 cards across two rows need more vertical space + // than a single-row story. + await page.setViewportSize({ width: 1280, height: 900 }) await gotoStory(page, 'design-system-primitives-scorecard--default') const frame = getStoryFrame(page) await expect(frame.getByTestId('Scorecard-default')).toBeVisible() - await expect(frame.getByTestId('Scorecard-bare')).toBeVisible() + + const rowSlugs = ['total-spent', 'ai-credits', 'active-days', 'unique-wallets', 'daily-flow-rate'] + for (const slug of rowSlugs) { + await expect(frame.getByTestId(`Scorecard-${slug}-bare`)).toBeVisible() + await expect(frame.getByTestId(`Scorecard-${slug}-card`)).toBeVisible() + } + await screenshotStory(page, 'tests/design-system/test-results/story-scorecard-default.png') }) diff --git a/tests/design-system/test-results/story-scorecard-default.png b/tests/design-system/test-results/story-scorecard-default.png index 6f07a4750898205ca2edeae5cee3c16a04ef9c15..d3f5eb51e19a3dd2399bd35771f2dfb3ba595058 100644 GIT binary patch literal 46559 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 yd;I$qxZ3~sA6!a-b6#GO2eEsCH+a}( Date: Wed, 5 Aug 2026 17:35:42 +0000 Subject: [PATCH 3/3] Fix whole-number formatting, card centering, and apply Scorecard styling pass - formatMetricValue: whole numbers below the compact threshold render without decimals ("47", not "47.0"). - Scorecard card variant: vertically centers content regardless of whether a trend row is present. - Value text uses $color instead of $primary; prefix/suffix render at fontWeight 400 in $placeholderColor, subordinate to the value. - Card variant elevation now uses a lightness-overlay + top highlight instead of a hard border, scoped to Scorecard's call site so the shared Card primitive is untouched. - Spacing (label-to-value gap, value-to-trend gap, card padding) now derives from the same golden-ratio constants as the type scale. - Bump the Scorecard smoke test's viewport height to fit the taller card layout without clipping the screenshot. Co-Authored-By: Claude --- packages/ui/src/components/Scorecard.tsx | 83 ++++++++++++++++-- packages/ui/src/utils/formatMetricValue.ts | 5 +- tests/design-system/smoke.spec.ts | 5 +- .../test-results/story-scorecard-default.png | Bin 46559 -> 43274 bytes 4 files changed, 85 insertions(+), 8 deletions(-) diff --git a/packages/ui/src/components/Scorecard.tsx b/packages/ui/src/components/Scorecard.tsx index a6d78447..9185fa97 100644 --- a/packages/ui/src/components/Scorecard.tsx +++ b/packages/ui/src/components/Scorecard.tsx @@ -62,6 +62,20 @@ const SECONDARY_SIZE_PX: Record = { sm: clampFontSize(VALUE_SIZE_PX.sm / GOLDEN_RATIO), } +/** + * Vertical rhythm derived from the same base/ratio as the type scale, so + * spacing and typography stay on one proportional system instead of mixing + * in unrelated design tokens. + */ +const LABEL_TO_VALUE_GAP_PX = SCORECARD_BASE_SIZE_PX / GOLDEN_RATIO ** 2 +const VALUE_TO_TREND_GAP_PX = SCORECARD_BASE_SIZE_PX / GOLDEN_RATIO +const CARD_PADDING_PX = SCORECARD_BASE_SIZE_PX + +/** Semi-transparent white applied over the card background to lift it off the canvas by lightness rather than a border. */ +const CARD_ELEVATION_OVERLAY_COLOR = 'rgba(255,255,255,0.045)' +/** Simulates a light source hitting the card's top edge, replacing a hard border. */ +const CARD_TOP_HIGHLIGHT_COLOR = 'rgba(255,255,255,0.06)' + const TREND_DIRECTION_COLOR_TOKEN: Record = { up: '$success', down: '$error', @@ -101,7 +115,7 @@ function resolveThemeColor(theme: ReturnType, token: string): s const ScorecardFrame = createComponent(YStack, { name: 'Scorecard', alignItems: 'center', - gap: '$2', + justifyContent: 'center', }) const ScorecardLabelText = createComponent(TamaguiText, { @@ -125,13 +139,38 @@ const ScorecardValueRow = createComponent(XStack, { name: 'ScorecardValueRow', alignItems: 'baseline', gap: '$1', + marginTop: LABEL_TO_VALUE_GAP_PX, }) const ScorecardValueText = createComponent(TamaguiText, { name: 'ScorecardValueText', fontFamily: '$body', fontWeight: '700', - color: '$primary', + // Theme text color, not $primary — $primary reads as an interactive/link + // hue, and the value is a headline, not a call to action. + color: '$color', + + variants: { + size: { + sm: { fontSize: VALUE_SIZE_PX.sm }, + md: { fontSize: VALUE_SIZE_PX.md }, + lg: { fontSize: VALUE_SIZE_PX.lg }, + }, + } as const, + + defaultVariants: { size: 'md' }, +}) + +/** + * Prefix/suffix (e.g. "G$", "/day") — same font size as the value since it's + * still part of the value row, but lighter weight and dimmer color so it + * stays subordinate to the value instead of competing with it. + */ +const ScorecardAffixText = createComponent(TamaguiText, { + name: 'ScorecardAffixText', + fontFamily: '$body', + fontWeight: '400', + color: '$placeholderColor', variants: { size: { @@ -148,6 +187,7 @@ const ScorecardTrendRow = createComponent(XStack, { name: 'ScorecardTrendRow', alignItems: 'center', gap: '$1', + marginTop: VALUE_TO_TREND_GAP_PX, }) const ScorecardTrendText = createComponent(TamaguiText, { @@ -194,6 +234,22 @@ function TrendGlyph({ direction, color, size }: { direction: ScorecardTrend['dir ) } +/** + * Elevation-by-lightness overlay for the card variant: an absolutely + * positioned semi-transparent white layer over the canvas-colored card, + * standing in for a shadow/border so depth reads from tone, not an outline. + * Sits as a sibling behind ScorecardContent inside a position:relative Card. + */ +const ScorecardCardOverlay = createComponent(YStack, { + name: 'ScorecardCardOverlay', + position: 'absolute', + top: 0, + left: 0, + right: 0, + bottom: 0, + backgroundColor: CARD_ELEVATION_OVERLAY_COLOR, +}) + function formatTrendPercentage(trendValue: number, direction: ScorecardTrend['direction']): string { const magnitude = Math.abs(trendValue).toFixed(1) if (direction === 'up') return `+${magnitude}%` @@ -222,9 +278,9 @@ function ScorecardContent({ {label} - {prefix ? {prefix} : null} + {prefix ? {prefix} : null} {formattedValue} - {suffix ? {suffix} : null} + {suffix ? {suffix} : null} {trend ? ( @@ -246,7 +302,24 @@ function ScorecardContent({ export function Scorecard({ variant = 'bare', ...contentProps }: ScorecardProps) { if (variant === 'card') { return ( - + // Overrides scoped to this call site only — Card.ts itself stays + // untouched since it's shared by ~26 other widget-package consumers. + // position:relative + overflow:hidden host the absolutely positioned + // elevation overlay; justifyContent:center keeps content centered + // whether or not a trend row is present, so cards with/without a + // trend row still align evenly in a row layout. + + ) diff --git a/packages/ui/src/utils/formatMetricValue.ts b/packages/ui/src/utils/formatMetricValue.ts index 833f2c37..9e9ea5c1 100644 --- a/packages/ui/src/utils/formatMetricValue.ts +++ b/packages/ui/src/utils/formatMetricValue.ts @@ -27,7 +27,10 @@ function formatCompact(value: number, decimals: number): string { let thresholdIndex = COMPACT_THRESHOLDS.findIndex(({ threshold }) => absValue >= threshold) if (thresholdIndex === -1) { - return value.toFixed(decimals) + // Below the smallest compact threshold: whole-number metrics (wallet + // counts, day counts, etc.) render without decimal places regardless of + // the requested precision — "47", not "47.0". + return Number.isInteger(value) ? String(value) : value.toFixed(decimals) } // Rounding the scaled value can carry it up to the next unit (e.g. 999_950 → "1000.0K" diff --git a/tests/design-system/smoke.spec.ts b/tests/design-system/smoke.spec.ts index 4ab8d3ac..a430f898 100644 --- a/tests/design-system/smoke.spec.ts +++ b/tests/design-system/smoke.spec.ts @@ -114,8 +114,9 @@ test('Stepper/Default story renders active-step hierarchy', async ({ page }) => test('Scorecard/Default story renders all 5 mock-data rows in both variants', async ({ page }) => { // Taller than the default viewport so both the bare and card rows fit // without clipping — 10 cards across two rows need more vertical space - // than a single-row story. - await page.setViewportSize({ width: 1280, height: 900 }) + // than a single-row story. 1000 (rather than 900) accounts for the + // increased card padding/spacing from the golden-ratio spacing pass. + await page.setViewportSize({ width: 1280, height: 1000 }) await gotoStory(page, 'design-system-primitives-scorecard--default') const frame = getStoryFrame(page) await expect(frame.getByTestId('Scorecard-default')).toBeVisible() diff --git a/tests/design-system/test-results/story-scorecard-default.png b/tests/design-system/test-results/story-scorecard-default.png index d3f5eb51e19a3dd2399bd35771f2dfb3ba595058..42b722d1ad894bc01a62a4c3d738e5f416bc695f 100644 GIT binary patch literal 43274 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 iM+-^{Dq2cOK|`f_u* literal 46559 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