diff --git a/src/dataDisplay/Accordion/accordion.stories.tsx b/src/dataDisplay/Accordion/accordion.stories.tsx
index 71663c8d..d4b69ce7 100644
--- a/src/dataDisplay/Accordion/accordion.stories.tsx
+++ b/src/dataDisplay/Accordion/accordion.stories.tsx
@@ -1,6 +1,6 @@
import React from 'react';
-import Accordion from './index';
+import { Accordion, AccordionSummary, AccordionDetails } from './index';
import { Card, Text, IconText } from '../../index';
export default {
@@ -13,54 +13,54 @@ export default {
export const SimpleAccordion = (): React.ReactElement => (
-
+
- }
- detailsContent={
+
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse
malesuada lacus ex, sit amet blandit leo lobortis eget.
- }
- />
-
+
+
+
- }
- detailsContent={
+
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse
malesuada lacus ex, sit amet blandit leo lobortis eget.
- }
- />
-
+
+
+
- }
- detailsContent={
+
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse
malesuada lacus ex, sit amet blandit leo lobortis eget.
- }
- />
+
+
);
@@ -73,39 +73,53 @@ export const CompactAccordion = (): React.ReactElement => (
alignItems: 'center',
flexDirection: 'column',
}}>
-
+
- }
- detailsContent={
+
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse
malesuada lacus ex, sit amet blandit leo lobortis eget.
- }
- />
-
+
+
+
- }
- detailsContent={
+
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse
malesuada lacus ex, sit amet blandit leo lobortis eget.
- }
- />
+
+
+
+
+
+
+
+
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse
+ malesuada lacus ex, sit amet blandit leo lobortis eget.
+
+
+
);
diff --git a/src/dataDisplay/Accordion/index.tsx b/src/dataDisplay/Accordion/index.tsx
index 45ba9738..8dc64ec2 100644
--- a/src/dataDisplay/Accordion/index.tsx
+++ b/src/dataDisplay/Accordion/index.tsx
@@ -1,16 +1,19 @@
-import React, { ReactNode, ReactElement } from 'react';
-import AccordionMUI from '@material-ui/core/Accordion';
-import AccordionSummaryMUI from '@material-ui/core/AccordionSummary';
-import AccordionDetailsMUI from '@material-ui/core/AccordionDetails';
+import React, { ReactElement } from 'react';
+import AccordionMUI, {
+ AccordionProps as AccordionMUIProps,
+} from '@material-ui/core/Accordion';
+import AccordionSummaryMUI, {
+ AccordionSummaryProps as AccordionSummaryMUIProps,
+} from '@material-ui/core/AccordionSummary';
import styled from 'styled-components';
import FixedIcon from '../FixedIcon';
-type AccordionProps = {
+type StyledAccordionProps = AccordionMUIProps & {
compact?: boolean;
};
-export const StyledAccordion = styled(AccordionMUI)`
+const StyledAccordion = styled(AccordionMUI)`
&.MuiAccordion-root {
border-radius: ${({ compact }) => (compact ? '8px' : '0')};
border: ${({ compact, theme }) =>
@@ -30,20 +33,23 @@ export const StyledAccordion = styled(AccordionMUI)`
&.Mui-expanded {
margin: ${({ compact }) => (compact ? '0 0 16px 0' : '0')};
}
+
+ .MuiAccordionDetails-root {
+ padding: 16px;
+ }
}
`;
-export const AccordionSummary = styled(AccordionSummaryMUI)`
+
+const StyledAccordionSummary = styled(AccordionSummaryMUI)`
&.MuiAccordionSummary-root {
&.Mui-expanded {
min-height: 48px;
border-bottom: 2px solid ${({ theme }) => theme.colors.separator};
- margin-bottom: ${({ compact }) => (compact ? '16px' : '0')};
background-color: ${({ theme }) => theme.colors.background};
}
&:hover {
background-color: ${({ theme }) => theme.colors.background};
- border-radius: ${({ compact }) => (compact ? '8px' : '0')};
}
.MuiAccordionSummary-content {
@@ -57,46 +63,31 @@ export const AccordionSummary = styled(AccordionSummaryMUI)`
}
}
`;
-export const AccordionDetails = styled(AccordionDetailsMUI)``;
-
-type Props = {
- compact?: boolean;
- id?: string;
- onChange?: (
- event: React.ChangeEvent>,
- expanded: boolean,
- id?: string
- ) => void;
- summaryContent: ReactNode;
- detailsContent: ReactNode;
-};
-const Accordion = ({
+export const Accordion = ({
compact,
- id,
- onChange,
- summaryContent,
- detailsContent,
+ children,
...props
-}: Props): ReactElement => {
+}: StyledAccordionProps): ReactElement => {
return (
- {
- onChange?.(event, expanded, id);
- }}>
- }
- aria-controls="panel1a-content"
- id="panel1a-header">
- {summaryContent}
-
- {detailsContent}
+
+ {children}
);
};
-export default Accordion;
+export const AccordionSummary = ({
+ children,
+ ...props
+}: AccordionSummaryMUIProps): ReactElement => {
+ return (
+ }
+ {...props}>
+ {children}
+
+ );
+};
+
+export { default as AccordionActions } from '@material-ui/core/AccordionActions';
+export { default as AccordionDetails } from '@material-ui/core/AccordionDetails';
diff --git a/src/dataDisplay/index.ts b/src/dataDisplay/index.ts
index bb6afd7c..5a38ec43 100644
--- a/src/dataDisplay/index.ts
+++ b/src/dataDisplay/index.ts
@@ -1,5 +1,5 @@
export { default as Card } from './Card';
-export { default as Accordion } from './Accordion';
+export * from './Accordion';
export { default as Divider } from './Divider';
export { default as Dot } from './Dot';
export { default as FixedIcon } from './FixedIcon';