import type { Meta, StoryObj } from '@storybook/web-components-vite'; import { html } from 'lit'; import './index.ts'; import '../icon/index.ts'; import type { USAIconList } from './usa-icon-list.js'; const meta: Meta = { title: 'Data Display/Icon List', component: 'usa-icon-list', parameters: { layout: 'padded', docs: { description: { component: ` The Icon List component reinforces the meaning and visibility of individual list items with a leading icon. ## Usage Use icon lists to: - Highlight do-and-don't lists - Emphasize features or metadata - Mark important tasks or requirements - Create printable checklists ## Accessibility - Icons are decorative and use aria-hidden="true" - Ensure the text content conveys the primary meaning - Icons should reinforce, not replace, textual information `, }, }, }, argTypes: { items: { control: 'object', description: 'Array of icon list items', }, color: { control: { type: 'select' }, options: ['', 'primary', 'secondary', 'success', 'warning', 'error', 'info'], description: 'Color variant for all icons', }, size: { control: { type: 'select' }, options: ['', 'lg', 'xl'], description: 'Size variant for icons', }, }, }; export default meta; type Story = StoryObj; export const Default: Story = { args: { items: [ { icon: 'check_circle', content: 'Item has been completed' }, { icon: 'close', content: 'Item requires attention' }, { icon: 'help', content: 'Item needs clarification' }, { icon: 'flag', content: 'Item is flagged for review' }, ], }, }; export const DoAndDont: Story = { parameters: { docs: { description: { story: 'Use contrasting icons and colors to highlight do-and-don\'t lists.', }, }, }, render: () => html`

Do

Don't

`, }; export const Features: Story = { parameters: { docs: { description: { story: 'Highlight product or service features with appropriate icons.', }, }, }, args: { size: 'lg', items: [ { icon: 'check_circle', content: 'Mobile-responsive design out of the box', iconColor: 'text-primary' }, { icon: 'check_circle', content: 'Accessibility-first approach', iconColor: 'text-primary' }, { icon: 'check_circle', content: 'Comprehensive component library', iconColor: 'text-primary' }, { icon: 'check_circle', content: 'Based on USWDS standards', iconColor: 'text-primary' }, ], }, }; export const Checklist: Story = { parameters: { docs: { description: { story: 'Create task lists and checklists.', }, }, }, render: () => html`

Pre-launch Checklist

`, }; export const SizeVariants: Story = { parameters: { controls: { disable: true }, docs: { description: { story: 'Icon lists support different size variants.', }, }, }, render: () => html`

Default Size

Large Size

Extra Large Size

`, }; export const Requirements: Story = { parameters: { docs: { description: { story: 'Mark important requirements or criteria.', }, }, }, render: () => html`

Application Requirements

`, };