import type { Meta, StoryObj } from '@storybook/nextjs-vite'
import { InfoCardRow } from '../components/ui/info-card-row'
import { CheckCircleIcon } from '../components/icons-v2-generated/signs-and-symbols/check-circle-icon'
import { TagIcon } from '../components/icons-v2-generated/shopping/tag-icon'
// Stand-in company logo — the lead `icon` fills the 40px bordered avatar box.
// In real usage this is typically an `
` logo (rendered with object-cover).
const companyLogo = (
)
const meta = {
title: 'UI/InfoCardRow',
component: InfoCardRow,
parameters: {
layout: 'padded',
docs: {
description: {
component:
'A responsive summary row: a 50%-width lead section (icon + title/caption) and two 25%-width stat sections (title + caption + right icon). On mobile the two stat sections wrap into their own row beneath the lead (76px rows on desktop/tablet, 60px on mobile), and each stat icon drops onto the caption line. Neighbouring sections share inner borders; only the outer edges are rounded. Each section takes a required `title` and `caption`, and an optional `icon`.',
},
},
},
tags: ['autodocs'],
argTypes: {
lead: { control: false, description: 'Lead section (50% width): { title, caption, icon? }' },
stats: {
control: false,
description: 'Two stat sections (25% width each): { title, caption, icon? }',
},
},
decorators: [
(Story) => (
),
],
} satisfies Meta
export default meta
type Story = StoryObj
/** Full row — lead logo + name/devices, and two stats with icons. Matches Figma. */
export const Default: Story = {
args: {
lead: { title: 'Precision Accounting Partners', caption: '847 devices', icon: companyLogo },
stats: [
{
title: 'Resolved this week',
caption: '312',
icon: ,
},
{ title: 'Open tickets', caption: '2', icon: },
],
},
}
/** Icons omitted — text-only sections. */
export const WithoutIcons: Story = {
args: {
lead: { title: 'Precision Accounting Partners', caption: '847 devices' },
stats: [
{ title: 'Resolved this week', caption: '312' },
{ title: 'Open tickets', caption: '2' },
],
},
}