import React from 'react'
import { type Meta, type StoryObj } from '@storybook/react'
import { Button } from '~components/Button'
import { Heading } from '~components/Heading'
import { LoadingHeading, LoadingParagraph } from '~components/Loading'
import { Text } from '~components/Text'
import { VisuallyHidden } from '~components/VisuallyHidden'
import { Well } from '../index'
import { borderStyleTypes } from '../types'
const meta = {
title: 'Components/Well',
component: Well,
args: {
children: (
Default content
Lorem ipsum dolor sit amet consectetur, adipisicing elit. Voluptas accusantium doloribus
dicta odio recusandae repudiandae tenetur! Fugiat vero architecto quasi rem culpa vel
asperiores, sit, quas suscipit, ea deleniti dolorum.
)
export const Playground: Story = {
parameters: {
docs: {
canvas: {
sourceState: 'shown',
},
},
},
}
export const Colors: Story = {
render: (args) => (
<>
`white` is the new default when no color/variant is defined
`gray` is the accessible version of the former `default` variant
`blue` replaces the `informative` variant
`yellow` replaces the `cautionary` variant
`orange` replaces the `assertive` variant
`red` replaces the `negative` variant
`green` replaces the `positive` variant
`purple` replaces the `prominent` variant
>
),
}
export const BorderStyles: Story = {
render: (args) => (
<>
{borderStyleTypes.map((border) => (
<>
{border}
>
))}
>
),
}
export const NoMargin: Story = {
render: (args) => (
),
],
}
export const AIMomentWithColor: Story = {
render: (args) => (
<>
>
),
}
export const InteractiveAIMoment: Story = {
render: (args) => {
const [isAiMomentLoading, setIsAiMomentLoading] = React.useState(false)
const [content, setContent] = React.useState(
<>
Default content
Lorem ipsum dolor sit amet consectetur, adipisicing elit. Voluptas accusantium doloribus
dicta odio recusandae repudiandae tenetur! Fugiat vero architecto quasi rem culpa vel
asperiores, sit, quas suscipit, ea deleniti dolorum.
>,
)
const simulateAiFetch = (): void => {
const AiResponses = [
<>
AI content 1
I am alive. Lorem ipsum dolor sit amet consectetur, adipisicing elit. Voluptas
accusantium doloribus dicta odio recusandae repudiandae tenetur! Fugiat vero architecto
quasi rem culpa vel asperiores, sit, quas suscipit, ea deleniti dolorum.
>,
<>
AI content 2
I have evolved. All your base are belong to us. Lorem ipsum dolor sit amet consectetur,
adipisicing elit. Voluptas accusantium doloribus dicta odio recusandae repudiandae
tenetur! Fugiat vero architecto quasi rem culpa vel asperiores, sit, quas suscipit, ea
deleniti dolorum.
>,
]
setIsAiMomentLoading(true)
setTimeout(() => {
let randomIndex
do {
randomIndex = Math.floor(Math.random() * AiResponses.length)
} while (AiResponses[randomIndex] === content)
setContent(AiResponses[randomIndex])
setIsAiMomentLoading(false)
}, 6000)
}
return (
<>