import * as React from "react"; import { Flex, FlexItem } from "../styleUtils/layout"; import { Story, 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: Story = args => ( Panel 1 Content 1 has focusable content Panel 2 Content 2 Panel 3 Content 3 ); export const Default = Template.bind({}); export const AccordionItemExpandedOnRender = Template.bind({}); AccordionItemExpandedOnRender.args = { initialExpandedItems: ["panel1"] }; export const AllowingMultipleAccordionItemsOpen = Template.bind({}); AllowingMultipleAccordionItemsOpen.args = { allowMultipleExpanded: true }; export const InteractiveElementsInTitle = 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 = args => ( Panel 1 Content 1 Panel 2 Content 2 Panel 3 Content 3 ); export const WithAccordionItemThatHasAppearanceDanger = args => ( Panel 1 Content 1 Panel 2 Content 2 Panel 3 Content 3 ); export const CustomPaddingSizeOnAccordionItemContent = args => ( Panel 1 Content 1 has paddingSize="xxl" Panel 2 Content 2 Panel 3 Content 3 ); export const ControlledUsingStatelessAccordion = args => ( {({ changeHandler, selectedItems }) => { return ( Panel 1 Content 1 Panel 2 Content 2 Panel 3 Content 3 ); }} );