import * as React from "react"; import { Flex, FlexItem } from "../styleUtils/layout"; import { StoryFn, Meta } from "@storybook/react"; import { SecondaryButton } from "../button"; import { Accordion, AccordionItem, AccordionItemTitle, AccordionItemContent, AccordionItemTitleInteractive, StatelessAccordion } from "./"; import ToggleInputListStoryHelper from "../toggleInputList/stories/helpers/ToggleInputListStoryHelper"; import { ToggleInputList } from ".."; import { AccordionBaseProps } from "./types"; export default { title: "Navigation/Accordion", component: Accordion, subcomponents: { AccordionItem, AccordionItemTitle, AccordionItemContent, AccordionItemTitleInteractive, StatelessAccordion }, argTypes: { "data-cy": { control: { disable: true } } } } as Meta; const Template: StoryFn = args => ( Panel 1 Content 1 has focusable content Panel 2 Content 2 Panel 3 Content 3 ); export const Default = { render: Template }; export const AccordionItemExpandedOnRender = { render: Template, args: { initialExpandedItems: ["panel1"] } }; export const AllowingMultipleAccordionItemsOpen = { render: Template, args: { allowMultipleExpanded: true } }; export const InteractiveElementsInTitle = { render: args => ( {({ getHeading }) => ( {getHeading("Panel 1")} Action )} Content 1 has focusable content Panel 2 Content 2 Panel 3 Content 3 ) }; export const WithChangeHandler = () => { const onChange = expanded => { if (expanded.length) { alert(`expanded item IDs: ${expanded.join(", ")}`); } }; return ( Panel 1 Content 1 has focusable content Panel 2 Content 2 Panel 3 Content 3 ); }; export const WithDisabledAccordionItem = { render: args => ( Panel 1 Content 1 Panel 2 Content 2 Panel 3 Content 3 ) }; export const WithAccordionItemThatHasAppearanceDanger = { render: args => ( Panel 1 Content 1 Panel 2 Content 2 Panel 3 Content 3 ) }; export const CustomPaddingSizeOnAccordionItemContent = { render: args => ( Panel 1 Content 1 has paddingSize="xxl" Panel 2 Content 2 Panel 3 Content 3 ) }; export const ControlledUsingStatelessAccordion = { render: args => ( {({ changeHandler, selectedItems }) => { return ( Panel 1 Content 1 Panel 2 Content 2 Panel 3 Content 3 ); }} ) };