import type { Meta, StoryObj } from "@storybook/react"; import { fn } from "@storybook/test"; import { BlockEditor } from "./block-editor"; import { CodeEditor } from "./code-editor"; import { EmailBuilder } from "./email-builder"; import { MarkdownEditor } from "./markdown-editor"; import { MDXEditor } from "./mdx-editor"; import { WYSIWYGEditor } from "./wysiwyg-editor"; const meta: Meta = { title: "Widgets/Editors", parameters: { layout: "padded", }, }; export default meta; // Markdown Editor Stories export const MarkdownEditorDefault: StoryObj = { render: () => ( This is a quote [Link to somewhere](https://example.com.ai)`} onChange={fn()} defaultMode="split" height={500} /> ), }; export const MarkdownEditorEditMode: StoryObj = { render: () => ( ), }; // Code Editor Stories export const CodeEditorTypeScript: StoryObj = { render: () => ( ), }; export const CodeEditorWithLanguageSelector: StoryObj = { render: () => ( ), }; // WYSIWYG Editor Stories export const WYSIWYGEditorDefault: StoryObj = { render: () => ( ), }; export const WYSIWYGEditorReadOnly: StoryObj = { render: () => ( ), }; // Block Editor Stories export const BlockEditorDefault: StoryObj = { render: () => ( ), }; export const BlockEditorLimited: StoryObj = { render: () => ( ), }; // MDX Editor Stories export const MDXEditorDefault: StoryObj = { render: () => ( Click me! \`\`\`tsx function MyComponent() { return
Hello!
} \`\`\` `} onChange={fn()} defaultMode="split" height={500} /> ), }; // Email Builder Stories export const EmailBuilderDefault: StoryObj = { render: () => ( ), }; export const EmailBuilderWithTemplates: StoryObj = { render: () => ( Welcome {{first_name}}!

We are excited to have you on board.

", }, { id: "reset", name: "Password Reset", subject: "Reset your password", html: '

Password Reset Request

Click the link below to reset your password.

Reset Password', }, { id: "invoice", name: "Invoice", subject: "Your invoice from {{company_name}}", html: "

Invoice #{{invoice_number}}

Amount due: ${{amount}}

", }, ]} onChange={fn()} previewWidth="mobile" /> ), }; // Comparison Story export const AllEditorsComparison: StoryObj = { render: () => (

Markdown Editor

Code Editor

WYSIWYG Editor

Block Editor

), };