@scality/core-ui 0.146.0 → 0.147.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/tests.yaml +11 -11
- package/.storybook/main.ts +18 -1
- package/.storybook/preview.js +2 -1
- package/dist/components/IconHelper.d.ts +1 -1
- package/dist/components/IconHelper.d.ts.map +1 -1
- package/dist/components/UnsuccessfulResult.component.d.ts +2 -3
- package/dist/components/UnsuccessfulResult.component.d.ts.map +1 -1
- package/dist/components/accordion/Accordion.component.d.ts +9 -0
- package/dist/components/accordion/Accordion.component.d.ts.map +1 -0
- package/dist/components/accordion/Accordion.component.js +46 -0
- package/dist/components/areachart/AreaChart.component.d.ts +1 -2
- package/dist/components/areachart/AreaChart.component.d.ts.map +1 -1
- package/dist/components/banner/Banner.component.d.ts +1 -2
- package/dist/components/banner/Banner.component.d.ts.map +1 -1
- package/dist/components/barchart/BarChart.component.d.ts +1 -2
- package/dist/components/barchart/BarChart.component.d.ts.map +1 -1
- package/dist/components/box/Box.d.ts +1 -3
- package/dist/components/box/Box.d.ts.map +1 -1
- package/dist/components/breadcrumb/Breadcrumb.component.d.ts +1 -2
- package/dist/components/breadcrumb/Breadcrumb.component.d.ts.map +1 -1
- package/dist/components/button/Button.component.d.ts +1 -2
- package/dist/components/button/Button.component.d.ts.map +1 -1
- package/dist/components/buttonv2/Buttonv2.component.d.ts +2 -11
- package/dist/components/buttonv2/Buttonv2.component.d.ts.map +1 -1
- package/dist/components/buttonv2/CopyButton.component.d.ts +3 -13
- package/dist/components/buttonv2/CopyButton.component.d.ts.map +1 -1
- package/dist/components/card/Card.component.d.ts +7 -7
- package/dist/components/card/Card.component.d.ts.map +1 -1
- package/dist/components/checkbox/Checkbox.component.d.ts +5 -5
- package/dist/components/checkbox/Checkbox.component.d.ts.map +1 -1
- package/dist/components/chips/Chips.component.d.ts +1 -2
- package/dist/components/chips/Chips.component.d.ts.map +1 -1
- package/dist/components/circularprogressbar/CircularProgressBar.component.d.ts +1 -2
- package/dist/components/circularprogressbar/CircularProgressBar.component.d.ts.map +1 -1
- package/dist/components/circularprogressbar/CircularProgressBar.component.style.d.ts +1 -1
- package/dist/components/circularprogressbar/CircularProgressBar.component.style.d.ts.map +1 -1
- package/dist/components/cloudprogressbar/CloudProgressBar.component.d.ts +1 -2
- package/dist/components/cloudprogressbar/CloudProgressBar.component.d.ts.map +1 -1
- package/dist/components/collapsiblepanel/CollapsiblePanel.component.d.ts +1 -2
- package/dist/components/collapsiblepanel/CollapsiblePanel.component.d.ts.map +1 -1
- package/dist/components/constrainedtext/Constrainedtext.component.d.ts +0 -1
- package/dist/components/constrainedtext/Constrainedtext.component.d.ts.map +1 -1
- package/dist/components/coreuithemeprovider/CoreUiThemeProvider.d.ts +1 -1
- package/dist/components/coreuithemeprovider/CoreUiThemeProvider.d.ts.map +1 -1
- package/dist/components/date/FormattedDateTime.d.ts +1 -2
- package/dist/components/date/FormattedDateTime.d.ts.map +1 -1
- package/dist/components/dropdown/Dropdown.component.d.ts +1 -2
- package/dist/components/dropdown/Dropdown.component.d.ts.map +1 -1
- package/dist/components/dropzone/Dropzone.d.ts +1 -2
- package/dist/components/dropzone/Dropzone.d.ts.map +1 -1
- package/dist/components/emptystate/Emptystate.component.d.ts +1 -2
- package/dist/components/emptystate/Emptystate.component.d.ts.map +1 -1
- package/dist/components/emptytable/Emptytable.component.d.ts +1 -1
- package/dist/components/emptytable/Emptytable.component.d.ts.map +1 -1
- package/dist/components/error-pages/ErrorPage401.component.d.ts +1 -1
- package/dist/components/error-pages/ErrorPage401.component.d.ts.map +1 -1
- package/dist/components/error-pages/ErrorPage404.component.d.ts +1 -1
- package/dist/components/error-pages/ErrorPage404.component.d.ts.map +1 -1
- package/dist/components/error-pages/ErrorPage500.component.d.ts +1 -1
- package/dist/components/error-pages/ErrorPage500.component.d.ts.map +1 -1
- package/dist/components/error-pages/ErrorPageAuth.component.d.ts +1 -2
- package/dist/components/error-pages/ErrorPageAuth.component.d.ts.map +1 -1
- package/dist/components/form/Form.component.d.ts +5 -5
- package/dist/components/form/Form.component.d.ts.map +1 -1
- package/dist/components/globalhealthbar/GlobalHealthBar.component.d.ts +1 -2
- package/dist/components/globalhealthbar/GlobalHealthBar.component.d.ts.map +1 -1
- package/dist/components/globalhealthbar/tooltip/index.d.ts.map +1 -1
- package/dist/components/healthselectorv2/HealthSelector.component.d.ts +12 -13
- package/dist/components/healthselectorv2/HealthSelector.component.d.ts.map +1 -1
- package/dist/components/icon/Icon.component.d.ts +3 -3
- package/dist/components/icon/Icon.component.d.ts.map +1 -1
- package/dist/components/infomessage/InfoMessage.component.d.ts +1 -1
- package/dist/components/infomessage/InfoMessage.component.d.ts.map +1 -1
- package/dist/components/infomessage/InfoMessageUtils.d.ts +0 -1
- package/dist/components/infomessage/InfoMessageUtils.d.ts.map +1 -1
- package/dist/components/inlineinput/InlineInput.d.ts +1 -2
- package/dist/components/inlineinput/InlineInput.d.ts.map +1 -1
- package/dist/components/inputlist/InputButtons.d.ts +2 -3
- package/dist/components/inputlist/InputButtons.d.ts.map +1 -1
- package/dist/components/inputlist/InputList.component.d.ts +8 -8
- package/dist/components/inputlist/InputList.component.d.ts.map +1 -1
- package/dist/components/inputv2/inputv2.d.ts +5 -5
- package/dist/components/inputv2/inputv2.d.ts.map +1 -1
- package/dist/components/lateralnavbarlayout/LateralNavbarLayout.component.d.ts +1 -2
- package/dist/components/lateralnavbarlayout/LateralNavbarLayout.component.d.ts.map +1 -1
- package/dist/components/layout/Layout.component.d.ts +1 -2
- package/dist/components/layout/Layout.component.d.ts.map +1 -1
- package/dist/components/layout/v2/AppContainer.d.ts +14 -13
- package/dist/components/layout/v2/AppContainer.d.ts.map +1 -1
- package/dist/components/layout/v2/index.d.ts +1 -1
- package/dist/components/layout/v2/index.d.ts.map +1 -1
- package/dist/components/layout/v2/panels.d.ts +2 -2
- package/dist/components/layout/v2/panels.d.ts.map +1 -1
- package/dist/components/linechart/LineChart.component.d.ts +1 -2
- package/dist/components/linechart/LineChart.component.d.ts.map +1 -1
- package/dist/components/linetemporalchart/ChartUtil.d.ts.map +1 -1
- package/dist/components/linetemporalchart/LineTemporalChart.component.d.ts +1 -2
- package/dist/components/linetemporalchart/LineTemporalChart.component.d.ts.map +1 -1
- package/dist/components/linetemporalchart/MetricTimespanProvider.d.ts +1 -1
- package/dist/components/linetemporalchart/MetricTimespanProvider.d.ts.map +1 -1
- package/dist/components/linetemporalchart/tooltip/index.d.ts.map +1 -1
- package/dist/components/loader/Loader.component.d.ts +1 -2
- package/dist/components/loader/Loader.component.d.ts.map +1 -1
- package/dist/components/multiselect/MultiSelect.component.d.ts +1 -2
- package/dist/components/multiselect/MultiSelect.component.d.ts.map +1 -1
- package/dist/components/navbar/Navbar.component.d.ts +1 -2
- package/dist/components/navbar/Navbar.component.d.ts.map +1 -1
- package/dist/components/notifications/Notification.component.d.ts +1 -2
- package/dist/components/notifications/Notification.component.d.ts.map +1 -1
- package/dist/components/notifications/Notifications.component.d.ts +1 -2
- package/dist/components/notifications/Notifications.component.d.ts.map +1 -1
- package/dist/components/prettybytes/PrettyBytes.component.d.ts +1 -2
- package/dist/components/prettybytes/PrettyBytes.component.d.ts.map +1 -1
- package/dist/components/progressbar/ProgressBar.component.d.ts +1 -2
- package/dist/components/progressbar/ProgressBar.component.d.ts.map +1 -1
- package/dist/components/scrollbarwrapper/ScrollbarWrapper.component.d.ts +1 -1
- package/dist/components/scrollbarwrapper/ScrollbarWrapper.component.d.ts.map +1 -1
- package/dist/components/select/Select.component.d.ts +1 -2
- package/dist/components/select/Select.component.d.ts.map +1 -1
- package/dist/components/selectv2/Selectv2.component.d.ts +1 -1
- package/dist/components/selectv2/Selectv2.component.d.ts.map +1 -1
- package/dist/components/sidebar/Sidebar.component.d.ts +1 -2
- package/dist/components/sidebar/Sidebar.component.d.ts.map +1 -1
- package/dist/components/sparkline/SparkLine.component.d.ts +1 -2
- package/dist/components/sparkline/SparkLine.component.d.ts.map +1 -1
- package/dist/components/statuswrapper/Statuswrapper.component.d.ts +1 -1
- package/dist/components/statuswrapper/Statuswrapper.component.d.ts.map +1 -1
- package/dist/components/steppers/Stepper.component.d.ts +0 -2
- package/dist/components/steppers/Stepper.component.d.ts.map +1 -1
- package/dist/components/steppers/Steppers.component.d.ts +1 -2
- package/dist/components/steppers/Steppers.component.d.ts.map +1 -1
- package/dist/components/tablev2/MultiSelectableContent.d.ts +1 -2
- package/dist/components/tablev2/MultiSelectableContent.d.ts.map +1 -1
- package/dist/components/tablev2/Search.d.ts +3 -4
- package/dist/components/tablev2/Search.d.ts.map +1 -1
- package/dist/components/tablev2/SearchWithQueryParams.d.ts +1 -2
- package/dist/components/tablev2/SearchWithQueryParams.d.ts.map +1 -1
- package/dist/components/tablev2/SingleSelectableContent.d.ts +1 -1
- package/dist/components/tablev2/SingleSelectableContent.d.ts.map +1 -1
- package/dist/components/tablev2/TableCommon.d.ts +2 -2
- package/dist/components/tablev2/TableCommon.d.ts.map +1 -1
- package/dist/components/tablev2/Tablestyle.d.ts +2 -3
- package/dist/components/tablev2/Tablestyle.d.ts.map +1 -1
- package/dist/components/tablev2/Tablev2.component.d.ts +12 -13
- package/dist/components/tablev2/Tablev2.component.d.ts.map +1 -1
- package/dist/components/tablev2/useCheckbox.d.ts.map +1 -1
- package/dist/components/tablev2/useSyncedScroll.d.ts +0 -1
- package/dist/components/tablev2/useSyncedScroll.d.ts.map +1 -1
- package/dist/components/tabsv2/StyledTabs.d.ts +9 -9
- package/dist/components/tabsv2/StyledTabs.d.ts.map +1 -1
- package/dist/components/tabsv2/Tab.d.ts +0 -1
- package/dist/components/tabsv2/Tab.d.ts.map +1 -1
- package/dist/components/tabsv2/Tabsv2.component.d.ts +1 -1
- package/dist/components/tabsv2/Tabsv2.component.d.ts.map +1 -1
- package/dist/components/tabsv2/Tabsv2.component.js +1 -5
- package/dist/components/tabsv2/useScrollingTabs.d.ts +0 -1
- package/dist/components/tabsv2/useScrollingTabs.d.ts.map +1 -1
- package/dist/components/text/Text.component.d.ts +15 -15
- package/dist/components/text/Text.component.d.ts.map +1 -1
- package/dist/components/textarea/TextArea.component.d.ts +3 -3
- package/dist/components/textarea/TextArea.component.d.ts.map +1 -1
- package/dist/components/textbadge/TextBadge.component.d.ts +1 -1
- package/dist/components/textbadge/TextBadge.component.d.ts.map +1 -1
- package/dist/components/toast/DurationBasedProgressBar.d.ts +1 -2
- package/dist/components/toast/DurationBasedProgressBar.d.ts.map +1 -1
- package/dist/components/toast/Toast.component.d.ts +1 -1
- package/dist/components/toast/Toast.component.d.ts.map +1 -1
- package/dist/components/toast/useMutationsHandler.d.ts.map +1 -1
- package/dist/components/toggle/Toggle.component.d.ts +1 -1
- package/dist/components/toggle/Toggle.component.d.ts.map +1 -1
- package/dist/components/tooltip/Tooltip.component.d.ts +1 -1
- package/dist/components/tooltip/Tooltip.component.d.ts.map +1 -1
- package/dist/components/vegachart/VegaChart.component.d.ts +1 -2
- package/dist/components/vegachart/VegaChart.component.d.ts.map +1 -1
- package/dist/components/vegachartv2/SyncedCursorCharts.d.ts +1 -1
- package/dist/components/vegachartv2/SyncedCursorCharts.d.ts.map +1 -1
- package/dist/icons/branding-logo.d.ts +1 -2
- package/dist/icons/branding-logo.d.ts.map +1 -1
- package/dist/icons/branding.d.ts +1 -2
- package/dist/icons/branding.d.ts.map +1 -1
- package/dist/icons/scality-loading.d.ts +1 -2
- package/dist/icons/scality-loading.d.ts.map +1 -1
- package/dist/next.d.ts +1 -0
- package/dist/next.d.ts.map +1 -1
- package/dist/next.js +1 -0
- package/dist/organisms/attachments/AttachmentConfirmationModal.d.ts +1 -1
- package/dist/organisms/attachments/AttachmentConfirmationModal.d.ts.map +1 -1
- package/dist/organisms/attachments/AttachmentTable.d.ts +4 -3
- package/dist/organisms/attachments/AttachmentTable.d.ts.map +1 -1
- package/dist/organisms/attachments/AttachmentTable.js +1 -0
- package/dist/spacing.d.ts +5 -7
- package/dist/spacing.d.ts.map +1 -1
- package/dist/testUtils.d.ts +1 -2
- package/dist/testUtils.d.ts.map +1 -1
- package/package.json +16 -15
- package/src/lib/components/accordion/Accordion.component.tsx +93 -0
- package/src/lib/components/accordion/Accordion.test.tsx +52 -0
- package/src/lib/components/tabsv2/Tabsv2.component.tsx +0 -1
- package/src/lib/next.ts +1 -0
- package/src/lib/organisms/attachments/AttachmentTable.tsx +3 -2
- package/stories/Accordion/accordion.guideline.mdx +26 -0
- package/stories/Accordion/accordion.stories.tsx +65 -0
- /package/stories/{spacing.stories.mdx → spacing.mdx} +0 -0
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import React, { useState } from 'react';
|
|
2
|
+
|
|
3
|
+
import { spacing, Stack } from '../../spacing';
|
|
4
|
+
import { Box } from '../box/Box';
|
|
5
|
+
import { Icon } from '../icon/Icon.component';
|
|
6
|
+
|
|
7
|
+
import styled from 'styled-components';
|
|
8
|
+
|
|
9
|
+
import { Text } from '../text/Text.component';
|
|
10
|
+
|
|
11
|
+
export type AccordionProps = {
|
|
12
|
+
title: string;
|
|
13
|
+
id: string;
|
|
14
|
+
children: React.ReactNode;
|
|
15
|
+
style?: React.CSSProperties;
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
const AccordionHeader = styled.button`
|
|
19
|
+
-webkit-appearance: none;
|
|
20
|
+
-moz-appearance: none;
|
|
21
|
+
appearance: none;
|
|
22
|
+
border: none;
|
|
23
|
+
gap: ${spacing.r8};
|
|
24
|
+
width: 100%;
|
|
25
|
+
cursor: pointer;
|
|
26
|
+
background-color: transparent;
|
|
27
|
+
color: ${(props) => props.theme.textPrimary};
|
|
28
|
+
padding: ${spacing.r4};
|
|
29
|
+
width: 100%;
|
|
30
|
+
`;
|
|
31
|
+
const AccordionContainer = styled.div<{
|
|
32
|
+
isOpen: boolean;
|
|
33
|
+
}>`
|
|
34
|
+
overflow: hidden;
|
|
35
|
+
opacity: ${(props) => (props.isOpen ? 1 : 0)};
|
|
36
|
+
transition: height 0.3s ease-in, opacity 0.3s ease-in, visibility 0.3s;
|
|
37
|
+
visibility: ${(props) => (props.isOpen ? 'visible' : 'hidden')};
|
|
38
|
+
`;
|
|
39
|
+
const Wrapper = styled.div`
|
|
40
|
+
padding-block: ${spacing.r8};
|
|
41
|
+
`;
|
|
42
|
+
|
|
43
|
+
export const Accordion = ({ title, id, style, children }: AccordionProps) => {
|
|
44
|
+
const [isOpen, setIsOpen] = useState(false);
|
|
45
|
+
|
|
46
|
+
const handleToggleContent = () => {
|
|
47
|
+
setIsOpen((prev) => !prev);
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
return (
|
|
51
|
+
<Box style={{ width: '100%', height: 'auto' }}>
|
|
52
|
+
<h3 style={{ margin: 0 }}>
|
|
53
|
+
<AccordionHeader
|
|
54
|
+
id={`Accordion-header-${id}`}
|
|
55
|
+
onClick={handleToggleContent}
|
|
56
|
+
aria-controls={id}
|
|
57
|
+
aria-expanded={isOpen}
|
|
58
|
+
onKeyDown={(e) =>
|
|
59
|
+
(e.key === 'Enter' || e.key === ' ') && handleToggleContent
|
|
60
|
+
}
|
|
61
|
+
>
|
|
62
|
+
<Stack direction="horizontal" gap="r8">
|
|
63
|
+
<Icon
|
|
64
|
+
name="Chevron-up"
|
|
65
|
+
size="lg"
|
|
66
|
+
style={{
|
|
67
|
+
transform: isOpen ? 'rotate(0deg)' : 'rotate(180deg)',
|
|
68
|
+
transition: 'transform 0.3s ease-in',
|
|
69
|
+
}}
|
|
70
|
+
/>
|
|
71
|
+
<Text isEmphazed>{title}</Text>
|
|
72
|
+
</Stack>
|
|
73
|
+
</AccordionHeader>
|
|
74
|
+
</h3>
|
|
75
|
+
|
|
76
|
+
<AccordionContainer
|
|
77
|
+
ref={(element) => {
|
|
78
|
+
if (isOpen) {
|
|
79
|
+
element?.style.setProperty('height', element.scrollHeight + 'px');
|
|
80
|
+
} else {
|
|
81
|
+
element?.style.setProperty('height', '0px');
|
|
82
|
+
}
|
|
83
|
+
}}
|
|
84
|
+
isOpen={isOpen}
|
|
85
|
+
id={id}
|
|
86
|
+
aria-labelledby={`Accordion-header-${id}`}
|
|
87
|
+
role="region"
|
|
88
|
+
>
|
|
89
|
+
<Wrapper style={style}>{children}</Wrapper>
|
|
90
|
+
</AccordionContainer>
|
|
91
|
+
</Box>
|
|
92
|
+
);
|
|
93
|
+
};
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { render, screen } from '@testing-library/react';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { Accordion } from './Accordion.component';
|
|
4
|
+
import userEvent from '@testing-library/user-event';
|
|
5
|
+
import { QueryClient, QueryClientProvider } from 'react-query';
|
|
6
|
+
|
|
7
|
+
describe('Accordion', () => {
|
|
8
|
+
const selectors = {
|
|
9
|
+
accordionToggle: () => screen.getByRole('button'),
|
|
10
|
+
accordionContainer: () => screen.getByRole('region'),
|
|
11
|
+
accordionContent: () => screen.queryByText(/Test content/i),
|
|
12
|
+
};
|
|
13
|
+
const renderAccordion = () => {
|
|
14
|
+
const queryClient = new QueryClient();
|
|
15
|
+
render(
|
|
16
|
+
<QueryClientProvider client={queryClient}>
|
|
17
|
+
<Accordion title="Advanced Testings" id="test-accordion">
|
|
18
|
+
<div>Test content</div>
|
|
19
|
+
</Accordion>
|
|
20
|
+
</QueryClientProvider>,
|
|
21
|
+
);
|
|
22
|
+
};
|
|
23
|
+
it('should render the Accordion component with title and content', () => {
|
|
24
|
+
renderAccordion();
|
|
25
|
+
|
|
26
|
+
const accordionToggle = selectors.accordionToggle();
|
|
27
|
+
expect(accordionToggle).toBeInTheDocument();
|
|
28
|
+
const accordionContent = selectors.accordionContent();
|
|
29
|
+
expect(accordionContent).toBeInTheDocument();
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
it('should toggle the content when clicking on the accordion header', () => {
|
|
33
|
+
renderAccordion();
|
|
34
|
+
const accordionToggle = selectors.accordionToggle();
|
|
35
|
+
const accordionContent = selectors.accordionContent();
|
|
36
|
+
expect(accordionContent).not.toBeVisible();
|
|
37
|
+
userEvent.click(accordionToggle);
|
|
38
|
+
expect(accordionContent).toBeVisible();
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
it('should toggle the content when pressing the enter key or space key on the accordion header', () => {
|
|
42
|
+
renderAccordion();
|
|
43
|
+
const accordionToggle = selectors.accordionToggle();
|
|
44
|
+
const accordionContent = selectors.accordionContent();
|
|
45
|
+
expect(accordionContent).not.toBeVisible();
|
|
46
|
+
accordionToggle.focus();
|
|
47
|
+
userEvent.keyboard('{enter}');
|
|
48
|
+
expect(accordionContent).toBeVisible();
|
|
49
|
+
userEvent.keyboard('{space}');
|
|
50
|
+
expect(accordionContent).not.toBeVisible();
|
|
51
|
+
});
|
|
52
|
+
});
|
|
@@ -186,7 +186,6 @@ function Tabs({
|
|
|
186
186
|
return (
|
|
187
187
|
<TabsContext.Provider value={true}>
|
|
188
188
|
<TabsContainer
|
|
189
|
-
// @ts-expect-error containerType is not yet a valid prop for react
|
|
190
189
|
style={{ containerType: 'size' }}
|
|
191
190
|
className={['sc-tabs', className].join(' ')}
|
|
192
191
|
tabLineColor={tabLineColor}
|
package/src/lib/next.ts
CHANGED
|
@@ -15,3 +15,4 @@ export { HealthSelector } from './components/healthselectorv2/HealthSelector.com
|
|
|
15
15
|
export { CoreUiThemeProvider } from './components/coreuithemeprovider/CoreUiThemeProvider';
|
|
16
16
|
export { Box } from './components/box/Box';
|
|
17
17
|
export { Input } from './components/inputv2/inputv2';
|
|
18
|
+
export { Accordion } from './components/accordion/Accordion.component';
|
|
@@ -97,8 +97,8 @@ const MenuContainer = styled.ul<{
|
|
|
97
97
|
border: 1px solid ${props.theme.selectedActive};
|
|
98
98
|
`
|
|
99
99
|
: props.searchInputIsFocused
|
|
100
|
-
|
|
101
|
-
|
|
100
|
+
? `border-bottom: 1px solid ${props.theme.selectedActive};`
|
|
101
|
+
: ''}
|
|
102
102
|
border-top: 0;
|
|
103
103
|
li {
|
|
104
104
|
padding: ${spacing.r8};
|
|
@@ -497,6 +497,7 @@ export const AttachmentTable = <
|
|
|
497
497
|
flex: 1.5,
|
|
498
498
|
marginRight: '1.5rem',
|
|
499
499
|
},
|
|
500
|
+
//@ts-expect-error
|
|
500
501
|
Cell: ({
|
|
501
502
|
value,
|
|
502
503
|
row: { original: entity },
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Meta,
|
|
3
|
+
Story,
|
|
4
|
+
Canvas,
|
|
5
|
+
Primary,
|
|
6
|
+
Controls,
|
|
7
|
+
Unstyled,
|
|
8
|
+
Source,
|
|
9
|
+
Title,
|
|
10
|
+
} from '@storybook/blocks';
|
|
11
|
+
import { Accordion } from '../../src/lib/components/accordion/Accordion.component';
|
|
12
|
+
|
|
13
|
+
import * as Stories from './accordion.stories';
|
|
14
|
+
|
|
15
|
+
<Meta of={Stories} name="Guideline" />
|
|
16
|
+
|
|
17
|
+
# Accordion
|
|
18
|
+
|
|
19
|
+
Accordions are used to toggle the visibility of content.
|
|
20
|
+
It is used to hide non essential information or to reduce the amount of information displayed on the screen.
|
|
21
|
+
|
|
22
|
+
## Playground
|
|
23
|
+
|
|
24
|
+
<Canvas of={Stories.Playground} layout="fullscreen" />
|
|
25
|
+
|
|
26
|
+
<Controls of={Stories.Playground} />
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { Meta, StoryObj } from '@storybook/react';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
|
|
4
|
+
import {
|
|
5
|
+
Accordion,
|
|
6
|
+
AccordionProps,
|
|
7
|
+
} from '../../src/lib/components/accordion/Accordion.component';
|
|
8
|
+
import { Stack } from '../../src/lib/spacing';
|
|
9
|
+
import { Button } from '../../src/lib/components/buttonv2/Buttonv2.component';
|
|
10
|
+
|
|
11
|
+
type AccordionStory = StoryObj<AccordionProps>;
|
|
12
|
+
|
|
13
|
+
const meta: Meta<AccordionProps> = {
|
|
14
|
+
title: 'Components/Accordion',
|
|
15
|
+
component: Accordion,
|
|
16
|
+
args: {
|
|
17
|
+
title: 'Accordion title',
|
|
18
|
+
children: (
|
|
19
|
+
<Stack direction="vertical" gap="r8">
|
|
20
|
+
<div>This is the content of the accordion.</div>
|
|
21
|
+
<Button label={'Check'} onClick={() => console.log('click')}></Button>
|
|
22
|
+
</Stack>
|
|
23
|
+
),
|
|
24
|
+
},
|
|
25
|
+
argTypes: {
|
|
26
|
+
children: {
|
|
27
|
+
control: { disable: true },
|
|
28
|
+
description: 'Content of the accordion',
|
|
29
|
+
table: {
|
|
30
|
+
type: { summary: 'React.ReactNode' },
|
|
31
|
+
},
|
|
32
|
+
},
|
|
33
|
+
title: {
|
|
34
|
+
control: { type: 'text' },
|
|
35
|
+
description: 'Title of the accordion',
|
|
36
|
+
table: {
|
|
37
|
+
type: { summary: 'string' },
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
style: {
|
|
41
|
+
control: { disable: true },
|
|
42
|
+
description: 'Use this to style the accordion content container',
|
|
43
|
+
table: { type: { summary: 'CSSProperties' } },
|
|
44
|
+
},
|
|
45
|
+
id: {
|
|
46
|
+
control: { disable: true },
|
|
47
|
+
table: { type: { summary: 'string' } },
|
|
48
|
+
description: 'Unique id for the accordion content container',
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
export default meta;
|
|
54
|
+
|
|
55
|
+
export const Playground: AccordionStory = {};
|
|
56
|
+
|
|
57
|
+
export const Stacked: AccordionStory = {
|
|
58
|
+
render: (args) => (
|
|
59
|
+
<Stack direction="vertical" gap="r8">
|
|
60
|
+
<Accordion {...args} />
|
|
61
|
+
<Accordion {...args} />
|
|
62
|
+
<Accordion {...args} style={{ backgroundColor: 'grey' }} />
|
|
63
|
+
</Stack>
|
|
64
|
+
),
|
|
65
|
+
};
|
|
File without changes
|