diff --git a/src/components/accordion/accordion-test.stories.tsx b/src/components/accordion/accordion-test.stories.tsx
index c4f6f6c443..a2f4a69e20 100644
--- a/src/components/accordion/accordion-test.stories.tsx
+++ b/src/components/accordion/accordion-test.stories.tsx
@@ -3,10 +3,6 @@ import { action } from "@storybook/addon-actions";
import { Accordion, AccordionGroup } from ".";
import Textbox from "../textbox";
import Box from "../box";
-import Button from "../button/button.component";
-import { Checkbox } from "../checkbox";
-import { Dl, Dt, Dd } from "../definition-list";
-import Link from "../link/link.component";
export default {
title: "Accordion/Test",
@@ -54,6 +50,11 @@ export default {
type: "select",
},
},
+ disableContentPadding: {
+ control: {
+ type: "boolean",
+ },
+ },
},
};
@@ -111,519 +112,3 @@ export const Grouped = ({ ...args }) => (
);
Grouped.storyName = "grouped";
-
-const errorVal = "error";
-const warningVal = "warning";
-const infoVal = "info";
-
-interface ValidationObject {
- one: string;
- two: string;
- three: string;
-}
-
-type Validations = keyof ValidationObject;
-
-// stories for component testing
-export const AccordionComponent = ({ ...props }) => {
- return (
- {}}
- subTitle="Sub Title"
- title="Title"
- width="100%"
- {...props}
- >
- Content
- Content
- Content
-
- );
-};
-
-export const AccordionWithIcon = () => {
- const [errors] = React.useState({
- one: errorVal,
- });
- const [warnings] = React.useState({
- one: warningVal,
- });
-
- const [expanded, setExpanded] = React.useState({
- one: false,
- });
-
- return (
-
-
- setExpanded((previousState) => ({
- ...previousState,
- one: !previousState.one,
- }))
- }
- error={errors.one}
- warning={warnings.one}
- >
-
-
-
- );
-};
-
-export const AccordionGroupWithError = () => {
- const [errors] = React.useState({
- one: errorVal,
- two: errorVal,
- three: errorVal,
- });
-
- return (
-
-
-
-
-
-
-
-
-
- );
-};
-
-export const AccordionGroupWithWarning = () => {
- const [warnings] = React.useState({
- one: warningVal,
- });
-
- return (
-
-
-
-
-
-
-
-
-
- );
-};
-
-export const AccordionGroupWithInfo = () => {
- const [infos] = React.useState({
- one: infoVal,
- });
-
- return (
-
-
-
-
-
-
-
-
-
- );
-};
-
-export const AccordionGroupComponent = () => {
- return (
-
- {}} width="100%">
-
-
-
-
- {}} width="100%">
-
-
-
-
- {}} width="100%">
- Content
-
-
- );
-};
-
-export const DynamicContent = () => {
- const [contentCount, setContentCount] = React.useState(3);
- const modifyContentCount = (modifier: number) => {
- if (modifier === 1) {
- setContentCount(contentCount + 1);
- }
- if (modifier === -1 && contentCount > 0) {
- setContentCount(contentCount - 1);
- }
- };
- return (
- <>
-
-
-
- {Array.from(Array(contentCount).keys()).map((value) => (
- Content
- ))}
-
- >
- );
-};
-
-// stories from storybook to import
-export const AccordionDefault = ({ ...props }) => {
- return (
-
- Content
- Content
- Content
-
- );
-};
-
-export const AccordionWithBoxAndDifferentPaddings = () => {
- return (
-
-
-
-
- This is example content inside of the Box component with gray
- background
-
-
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla in
- ornare neque. Maecenas pellentesque et erat tincidunt mollis. Etiam
- diam nisi, elementum efficitur ipsum et, imperdiet iaculis ligula.
- Cras eget lorem aliquam lorem mollis fringilla a sit amet nisl.
- Donec semper odio elit, tempus ultrices est molestie id. Ut sit amet
- sollicitudin ipsum, eu tristique ligula. Praesent velit velit,
- finibus ut odio sit amet, fringilla iaculis lacus. Aliquam facilisis
- libero nec ipsum tincidunt imperdiet. Ut commodo mi ac odio blandit,
- ac molestie ante dapibus. Ut molestie auctor turpis, quis ultrices
- ante aliquet eu. Aenean et condimentum arcu, non malesuada elit.
- Cras a magna vestibulum, semper tortor id, molestie eros.
-
-
-
-
-
-
- This is example content inside of the Box component with gray
- background
-
-
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla in
- ornare neque. Maecenas pellentesque et erat tincidunt mollis. Etiam
- diam nisi, elementum efficitur ipsum et, imperdiet iaculis ligula.
- Cras eget lorem aliquam lorem mollis fringilla a sit amet nisl.
- Donec semper odio elit, tempus ultrices est molestie id. Ut sit amet
- sollicitudin ipsum, eu tristique ligula. Praesent velit velit,
- finibus ut odio sit amet, fringilla iaculis lacus. Aliquam facilisis
- libero nec ipsum tincidunt imperdiet. Ut commodo mi ac odio blandit,
- ac molestie ante dapibus. Ut molestie auctor turpis, quis ultrices
- ante aliquet eu. Aenean et condimentum arcu, non malesuada elit.
- Cras a magna vestibulum, semper tortor id, molestie eros.
-
-
-
-
- );
-};
-
-export const AccordionOpeningButton = () => {
- return (
-
-
- Content
- Content
- Content
-
-
-
- Content
- Content
- Content
-
-
-
- Content
- Content
- Content
-
-
-
- Content
- Content
- Content
-
-
- );
-};
-
-export const AccordionGroupDefault = () => {
- return (
-
-
-
-
-
-
-
-
-
-
-
-
-
- Content
- Content
- Content
-
-
-
- );
-};
-
-export const AccordionGroupValidation = () => {
- const [errors, setErrors] = React.useState({
- one: errorVal,
- two: errorVal,
- three: errorVal,
- });
- const [warnings, setWarnings] = React.useState({
- one: warningVal,
- two: warningVal,
- three: warningVal,
- });
- const [infos, setInfos] = React.useState({
- one: infoVal,
- two: infoVal,
- three: infoVal,
- });
- const [expanded, setExpanded] = React.useState({
- one: false,
- two: false,
- three: true,
- });
-
- const handleChange = (
- id: Validations,
- type: ValidationObject,
- setter: React.Dispatch>,
- msg: string
- ) => {
- const update = type[id] ? undefined : msg;
- setter((previous: ValidationObject) => ({ ...previous, [id]: update }));
- };
-
- return (
-
-
-
- setExpanded((previousState) => ({
- ...previousState,
- one: !previousState.one,
- }))
- }
- error={errors.one}
- warning={warnings.one}
- info={infos.one}
- >
-
- handleChange("one", errors, setErrors, "error")}
- checked={!!errors.one}
- />
-
- handleChange("one", warnings, setWarnings, "warning")
- }
- />
- handleChange("one", infos, setInfos, "info")}
- />
-
-
-
- setExpanded((previousState) => ({
- ...previousState,
- two: !previousState.two,
- }))
- }
- subTitle="Sub title"
- error={errors.two}
- warning={warnings.two}
- info={infos.two}
- >
-
- handleChange("two", errors, setErrors, "error")}
- checked={!!errors.two}
- />
-
- handleChange("two", warnings, setWarnings, "warning")
- }
- />
- handleChange("two", infos, setInfos, "info")}
- />
-
-
-
- setExpanded((previousState) => ({
- ...previousState,
- three: !previousState.three,
- }))
- }
- subTitle="This is a longer sub title"
- error={errors.three}
- warning={warnings.three}
- info={infos.three}
- >
-
- handleChange("three", errors, setErrors, "error")}
- checked={!!errors.three}
- />
-
- handleChange("three", warnings, setWarnings, "warning")
- }
- />
- handleChange("three", infos, setInfos, "info")}
- />
-
-
-
-
- );
-};
-
-export const AccordionWithDefinitionList = () => {
- return (
-
-
- - Drink
- - Coffee
- - Brew Method
- - Stove Top Moka Pot
- - Brand of Coffee
- - Magic Coffee Beans
- - Website
- -
- Magic Coffee Beans Website
-
- - Email
- -
- magic@coffeebeans.com
-
- - Main and Registered Address
- - Magic Coffee Beans,
- - In The Middle of Our Street,
- - Madness,
- - CO4 3VE
- -
-
-
-
-
- );
-};
diff --git a/src/components/accordion/accordion.spec.tsx b/src/components/accordion/accordion.spec.tsx
index da1f2bb0b4..9e7768fb6e 100644
--- a/src/components/accordion/accordion.spec.tsx
+++ b/src/components/accordion/accordion.spec.tsx
@@ -655,7 +655,6 @@ describe("Accordion", () => {
assertStyleMatch(
{
border: "none",
- alignItems: "flex-start",
},
wrapper.find(StyledAccordionContainer)
);
diff --git a/src/components/accordion/accordion.style.ts b/src/components/accordion/accordion.style.ts
index b8fb638991..0b45b338c9 100644
--- a/src/components/accordion/accordion.style.ts
+++ b/src/components/accordion/accordion.style.ts
@@ -27,7 +27,7 @@ const StyledAccordionContainer = styled.div`
${space}
display: flex;
align-items: ${({ buttonHeading, variant }) =>
- buttonHeading || variant === "subtle" ? "flex-start" : "stretch"};
+ (!buttonHeading || variant !== "subtle") && "stretch"};
justify-content: center;
flex-direction: column;
box-sizing: border-box;
@@ -187,6 +187,7 @@ const StyledAccordionTitleContainer = styled.div`
padding-top: var(--spacing100);
overflow: hidden;
- ${({ disableContentPadding }) =>
- disableContentPadding &&
- css`
- padding: 0;
- `}
-
${({ variant }) =>
variant === "subtle" &&
css`
@@ -298,6 +293,12 @@ const StyledAccordionContent = styled.div`
padding: var(--spacing100) var(--spacing200) var(--spacing300);
border-left: 2px solid var(--colorsUtilityMajor100);
`}
+
+ ${({ disableContentPadding }) =>
+ disableContentPadding &&
+ css`
+ padding: 0;
+ `}
`;
StyledAccordionGroup.defaultProps = {
diff --git a/src/components/accordion/components.test-pw.tsx b/src/components/accordion/components.test-pw.tsx
index d7e53230c5..8d684227ed 100644
--- a/src/components/accordion/components.test-pw.tsx
+++ b/src/components/accordion/components.test-pw.tsx
@@ -7,28 +7,6 @@ import { Checkbox } from "../checkbox";
import { Dl, Dt, Dd } from "../definition-list";
import Link from "../link/link.component";
-export const Grouped = () => (
-
-
-
-
-
-
-
-
-
-
-
-
-
- Content
- Content
- Content
-
-
-
-);
-
const errorVal = "error";
const warningVal = "warning";
const infoVal = "info";