import React from 'react'; import { Title, Subtitle, Description, Primary, Props, Stories, } from '@storybook/addon-docs/blocks'; import { DocgenButton } from '../../components/DocgenButton'; import BaseButton from '../../components/BaseButton'; import { ButtonGroup, SubGroup } from '../../components/ButtonGroup'; export default { title: 'Addons/Docs/stories docs blocks', component: DocgenButton, parameters: { docs: { page: () => ( <> <Subtitle /> <Description /> <Primary /> <Props /> <Stories /> </> ), }, }, }; export const defDocsPage = () => <div>Default docs page</div>; export const smallDocsPage = () => <div>Just primary story, </div>; smallDocsPage.story = { parameters: { docs: { page: () => ( <> <Title /> <Primary /> </> ), }, }, }; export const checkBoxProps = () => <div>Primary props displayed with a check box </div>; checkBoxProps.story = { parameters: { docs: { page: () => { const [showProps, setShowProps] = React.useState(false); return ( <> <Title /> <Subtitle /> <Description /> <Primary /> <label> <input type="checkbox" checked={showProps} onChange={() => setShowProps(!showProps)} /> <span>display props</span> </label> {showProps && <Props />} </> ); }, }, }, }; export const customLabels = () => <div>Display custom title, Subtitle, Description</div>; customLabels.story = { parameters: { docs: { page: () => ( <> <Title>Custom title Custom sub title Custom description ), }, }, }; export const customStoriesFilter = () =>
Displays ALL stories (not excluding first one)
; customStoriesFilter.story = { parameters: { docs: { page: () => ( <> stories} /> ), }, }, }; export const descriptionSlot = () =>
Adds markdown to the description
; descriptionSlot.story = { parameters: { docs: { page: () => ( <> `${description}`} /> ), }, }, }; export const multipleComponents = () => ( ); multipleComponents.story = { name: 'Many Components', parameters: { component: ButtonGroup, subcomponents: { SubGroup, 'Docgen Button': DocgenButton, 'Base Button': BaseButton, }, docs: { page: () => ( <> <Subtitle /> <Description /> <Primary slot={stories => stories.find(story => story.story === 'Many Components')} /> <Props /> </> ), }, }, }; export const componentsProps = () => <div>Display multiple prop tables in tabs</div>; componentsProps.story = { subcomponents: { 'Docgen Button': DocgenButton, 'Base Button': BaseButton, }, parameters: { docs: { page: () => ( <> <Title>Multiple prop tables Here's what happens when your component has some related components ), }, }, };