import Modal, { ModalDismissButton, ModalProps } from '.' import { OverlayProvider } from '@react-aria/overlays' import { useOverlayTriggerState } from 'react-stately' import Button from '../Button' import { ModalAlign, ModalBody, ModalButtons, ModalHeader, } from './ModalPlumbing' import TextField from '../TextField' import DropdownSelector from '../DropdownSelector' import Checkbox from '../Checkbox' import DropdownMenuItem from '../DropdownSelector/DropdownMenuItem' import { Meta, StoryObj } from '@storybook/react-vite' export default { title: 'react/Modal', component: Modal, args: { title: 'react/Title', }, argTypes: { size: { options: ['S', 'M', 'L'], control: { type: 'inline-radio', }, defaultValue: 'M', }, bottomSheet: { options: ['full', 'true', 'false'], mapping: { full: 'full', true: true, false: false }, control: { type: 'inline-radio', }, defaultValue: false, }, }, render: function Render(args) { const state = useOverlayTriggerState({}) return ( // Application must be wrapped in an OverlayProvider so that it can be // hidden from screen readers when a modal opens. state.close()} /> ) }, } as Meta const M = (props: ModalProps) => { return ( Lorem ipsum dolor sit amet consectetur adipisicing elit. Quod placeat tenetur, necessitatibus laudantium cumque exercitationem provident. Quaerat iure enim, eveniet dolores earum odio quo possimus fugiat aspernatur, numquam, commodi repellat. null} value="10" showLabel label="Fruits" placeholder="Apple" > Apple Banana Orange ) } const ModalVStack = (props: Omit, 'style'>) => { return (
) } const StyledModalText = (props: Omit, 'style'>) => { return (
) } export const Default: StoryObj = {} export const FullBottomSheet: StoryObj = { args: { bottomSheet: 'full', }, render: function Render(args) { const state = useOverlayTriggerState({}) return ( // Application must be wrapped in an OverlayProvider so that it can be // hidden from screen readers when a modal opens. state.close()} > Lorem ipsum dolor sit amet consectetur adipisicing elit. Quod placeat tenetur, necessitatibus laudantium cumque exercitationem provident. Quaerat iure enim, eveniet dolores earum odio quo possimus fugiat aspernatur, numquam, commodi repellat. ) }, } export const BottomSheet: StoryObj = { render: function Render(args) { const state = useOverlayTriggerState({}) return ( // Application must be wrapped in an OverlayProvider so that it can be // hidden from screen readers when a modal opens. state.close()} bottomSheet isDismissable > Lorem ipsum dolor sit amet consectetur adipisicing elit. Quod placeat tenetur, necessitatibus laudantium cumque exercitationem provident. Quaerat iure enim, eveniet dolores earum odio quo possimus fugiat aspernatur, numquam, commodi repellat. test checkbox キャンセル ) }, } export const NotDismmissableStory: StoryObj = { render: function Render(args) { const state = useOverlayTriggerState({}) return ( state.close()}> Lorem ipsum dolor sit amet consectetur adipisicing elit. Quod placeat tenetur, necessitatibus laudantium cumque exercitationem provident. Quaerat iure enim, eveniet dolores earum odio quo possimus fugiat aspernatur, numquam, commodi repellat. ) }, } export const BackgroundScroll: StoryObj = { render: function Render(args) { const state = useOverlayTriggerState({}) return (
state.close()} />
) }, }