import RuleCard from "../app/components/RuleCard"; import Image from "next/image"; export default { title: "Components/RuleCard", component: RuleCard, parameters: { layout: "centered", docs: { description: { component: "An interactive card component that displays governance templates and decision-making patterns. Features hover states, keyboard navigation, analytics tracking, and accessibility support. Use Tab key to test focus indicators and Enter/Space to activate.", }, }, }, argTypes: { title: { control: { type: "text" }, description: "The title of the governance template", }, description: { control: { type: "text" }, description: "The description of the governance pattern", }, backgroundColor: { control: { type: "select" }, options: [ "bg-[var(--color-surface-default-brand-lime)]", "bg-[var(--color-surface-default-brand-rust)]", "bg-[var(--color-surface-default-brand-red)]", "bg-[var(--color-surface-default-brand-teal)]", "bg-[var(--color-community-teal-100)]", ], description: "The background color variant for the card", }, onClick: { action: "clicked" }, }, tags: ["autodocs"], }; export const Default = { args: { title: "Consensus clusters", description: "Units called Circles have the ability to decide and act on matters in their domains, which their members agree on through a Council.", backgroundColor: "bg-[var(--color-surface-default-brand-lime)]", icon: ( Sociocracy ), }, }; export const AllVariants = { render: (args) => (
} onClick={() => console.log("Consensus clusters selected")} /> } onClick={() => console.log("Consensus selected")} /> } onClick={() => console.log("Elected Board selected")} /> } onClick={() => console.log("Petition selected")} />
), parameters: { docs: { description: { story: "All four governance template variants with their respective colors and icons. Test hover states, focus indicators, and click interactions.", }, }, }, }; export const InteractiveStates = { args: { title: "Interactive Demo", description: "Hover over this card to see the scale and shadow effects. Use Tab to focus and Enter/Space to activate.", backgroundColor: "bg-[var(--color-community-teal-100)]", icon: (
?
), }, parameters: { docs: { description: { story: "Demonstrates interactive states including hover effects, focus indicators, and keyboard navigation. Test with mouse hover and keyboard Tab/Enter/Space.", }, }, }, }; export const AccessibilityTest = { args: { title: "Accessibility Demo", description: "This card is designed for accessibility testing. Use Tab to focus, Enter/Space to activate, and screen readers to test ARIA labels.", backgroundColor: "bg-[var(--color-surface-default-brand-teal)]", icon: (
), }, parameters: { docs: { description: { story: "Specifically designed for testing accessibility features including keyboard navigation, screen reader support, and focus management.", }, }, }, };