Skip to content

Commit 36fcc9b

Browse files
authored
REC-25 add a new accordion alert component (#1268)
1 parent 5f7684b commit 36fcc9b

File tree

6 files changed

+61
-2
lines changed

6 files changed

+61
-2
lines changed

src/Accordion/Accordion.mdx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,3 +65,7 @@ When multiple Cards are stacked, you want to ensure there is proper content alig
6565
### Disabled
6666

6767
<Canvas of={ComponentStories.Disabled} />
68+
69+
### Alert
70+
71+
<Canvas of={ComponentStories.AccordionAlert} />

src/Accordion/Accordion.stories.tsx

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -390,3 +390,27 @@ Disabled.args = {
390390
helperText: 'helper text',
391391
title: 'Accordion Toggle -- disabled',
392392
};
393+
394+
export const AccordionAlert = (args) => (
395+
<Accordion>
396+
<AccordionItem borderless eventKey="0" variant="info">
397+
<AccordionToggle
398+
eventKey="0"
399+
{...args}
400+
/>
401+
<AccordionCollapse eventKey="0" variant="info">
402+
<div>
403+
Add content here.
404+
</div>
405+
</AccordionCollapse>
406+
</AccordionItem>
407+
</Accordion>
408+
);
409+
410+
AccordionAlert.args = {
411+
chevronLateral: true,
412+
chevronLeft: true,
413+
disabled: false,
414+
helperText: 'helper text',
415+
title: 'Accordion Alert',
416+
};

src/Accordion/AccordionCollapse.scss

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,13 @@
66
&__container {
77
padding: 16px 24px;
88
}
9+
10+
&--info {
11+
border-top: none !important;
12+
color: var(--ux-gray-900);
13+
}
14+
15+
&--noTopPadding {
16+
padding-top: 0px !important;
17+
}
918
}

src/Accordion/AccordionCollapse.tsx

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import RBAccordionCollapse from 'react-bootstrap/AccordionCollapse';
66
import './AccordionCollapse.scss';
77

88
type AccordionCollapseProps = {
9+
variant?: string;
910
children: React.ReactNode;
1011
/**
1112
A unique key used to control this item's collapse/expand.
@@ -16,6 +17,7 @@ type AccordionCollapseProps = {
1617
};
1718

1819
const AccordionCollapse = ({
20+
variant,
1921
children,
2022
eventKey,
2123

@@ -25,17 +27,28 @@ const AccordionCollapse = ({
2527
...props
2628
}: AccordionCollapseProps) => (
2729
<RBAccordionCollapse
28-
className={classNames(UNSAFE_className, 'AccordionCollapse')}
30+
className={classNames(
31+
UNSAFE_className,
32+
'AccordionCollapse',
33+
variant === 'info' && 'AccordionCollapse--info',
34+
)}
2935
eventKey={eventKey}
3036
{...props}
3137
>
32-
<div className="AccordionCollapse__container">
38+
<div
39+
className={classNames(
40+
UNSAFE_className,
41+
'AccordionCollapse__container',
42+
variant === 'info' && 'AccordionCollapse--noTopPadding',
43+
)}
44+
>
3345
{children}
3446
</div>
3547
</RBAccordionCollapse>
3648
);
3749

3850
AccordionCollapse.defaultProps = {
51+
variant: undefined,
3952
UNSAFE_className: undefined,
4053
};
4154

src/Accordion/AccordionItem.scss

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,9 @@
1717
&--borderless {
1818
border: none;
1919
}
20+
21+
&--info {
22+
background-color: var(--ux-blue-100);
23+
color: var(--ux-blue-800);
24+
}
2025
}

src/Accordion/AccordionItem.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,11 @@ type AccordionItemProps = {
1818
UNSAFE_className?: string;
1919
children: React.ReactNode;
2020
eventKey: string;
21+
variant?: string;
2122
};
2223

2324
const AccordionItem = ({
25+
variant,
2426
as,
2527
borderless,
2628
children,
@@ -33,6 +35,7 @@ const AccordionItem = ({
3335
className={classNames(
3436
UNSAFE_className,
3537
'AccordionItem',
38+
variant === 'info' && 'AccordionItem--info',
3639
borderless && 'AccordionItem--borderless',
3740
)}
3841
eventKey={eventKey}
@@ -42,6 +45,7 @@ const AccordionItem = ({
4245
);
4346

4447
AccordionItem.defaultProps = {
48+
variant: undefined,
4549
as: undefined,
4650
borderless: undefined,
4751
UNSAFE_className: undefined,

0 commit comments

Comments
 (0)