import type { Meta, StoryObj } from "@storybook/react" import { Callout } from "./Callout" /** * Displays important information in a highlighted box. * * ## Props * - `Root`: Container for the callout * - `Icon`: Icon displayed in the callout * - `Text`: Text content of the callout * * ### Root Props * - `size`: "1" | "2" | "3" (default: "2") * - `variant`: "soft" | "surface" | "outline" (default: "soft") * - `color`: "gray" | "gold" | "bronze" | "brown" | "yellow" | "amber" | "orange" | "tomato" | "red" | "ruby" | "crimson" | "pink" | "plum" | "purple" | "violet" | "iris" | "indigo" | "blue" | "cyan" | "teal" | "jade" | "green" | "grass" | "lime" | "mint" | "sky" (default: "gray") * - `highContrast`: boolean */ const meta = { title: "base/components/Callout", component: Callout.Root, tags: ["autodocs"], parameters: { layout: "centered", }, } satisfies Meta export default meta type Story = StoryObj /** * Basic callout with icon and text. */ export const Default: Story = { render: () => ( 💡 This is a basic callout with an icon and some text content. ), } /** * Callout with different sizes. */ export const Sizes: Story = { render: () => (
â„šī¸ This is a small callout with minimal padding and compact text. 💡 This is a medium callout with balanced padding and comfortable text size. đŸŽ¯ This is a large callout with generous padding and prominent text for important information.
), } /** * Callout with different variants. */ export const Variants: Story = { render: () => (
💡 This is a soft callout with subtle background styling. 📋 This is a surface callout with elevated appearance and border. 🔍 This is an outline callout with border-only styling.
), } /** * Callout with different colors. */ export const Colors: Story = { render: () => (
â„šī¸ This is an informational callout with blue styling. ✅ This is a success callout with green styling. âš ī¸ This is a warning callout with yellow styling. 🚨 This is an error callout with red styling. 🎨 This is a custom callout with purple styling.
), } /** * Callout with high contrast. */ export const HighContrast: Story = { render: () => (
💡 This is a regular callout without high contrast. 💡 This is a callout with high contrast for better accessibility.
), } /** * Information callout. */ export const Information: Story = { render: () => ( â„šī¸ Information: This callout provides important information that users should be aware of. It uses a blue color scheme to indicate informational content. ), } /** * Success callout. */ export const Success: Story = { render: () => ( ✅ Success! Your changes have been saved successfully. The operation completed without any errors. ), } /** * Warning callout. */ export const Warning: Story = { render: () => ( âš ī¸ Warning: Please review your input before proceeding. Some fields may require attention. ), } /** * Error callout. */ export const ErrorCallout: Story = { render: () => ( 🚨 Error: Something went wrong while processing your request. Please try again or contact support if the problem persists. ), } /** * Tip callout. */ export const Tip: Story = { render: () => ( 💡 Pro Tip: You can use keyboard shortcuts to navigate faster. Press{" "} Ctrl +{" "} K to open the command palette. ), } /** * Callout with custom icon. */ export const CustomIcon: Story = { render: () => (
This callout uses a custom SVG icon instead of an emoji. Another example with a different custom icon.
), } /** * Callout without icon. */ export const WithoutIcon: Story = { render: () => ( This callout doesn't have an icon, just text content. ), } /** * Callout with multiple paragraphs. */ export const MultipleParagraphs: Story = { render: () => ( 📚
Documentation Update: We've recently updated our documentation to include new features and improvements. The new sections cover advanced usage patterns, best practices, and troubleshooting guides. We recommend reviewing these updates to get the most out of our platform. If you have any questions or feedback, please don't hesitate to reach out to our support team.
), } /** * Callout with action buttons. */ export const WithActions: Story = { render: () => ( 🔔
New Feature Available: We've just released a new analytics dashboard that provides deeper insights into your data.
), } /** * Callout in different contexts. */ export const Contexts: Story = { render: () => (

Form Validation

❌ Please fill in all required fields marked with an asterisk (*).

Feature Announcement

🎉 Exciting News! We've just launched our new mobile app. Download it now to access all features on the go.

Maintenance Notice

🔧 Scheduled Maintenance: Our servers will be undergoing maintenance on Sunday, March 15th from 2:00 AM to 4:00 AM EST. Some features may be temporarily unavailable.

Help & Support

đŸ’Ŧ Need Help? Our support team is available 24/7. You can reach us via live chat, email, or phone.
), }