@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.
Files changed (203) hide show
  1. package/.github/workflows/tests.yaml +11 -11
  2. package/.storybook/main.ts +18 -1
  3. package/.storybook/preview.js +2 -1
  4. package/dist/components/IconHelper.d.ts +1 -1
  5. package/dist/components/IconHelper.d.ts.map +1 -1
  6. package/dist/components/UnsuccessfulResult.component.d.ts +2 -3
  7. package/dist/components/UnsuccessfulResult.component.d.ts.map +1 -1
  8. package/dist/components/accordion/Accordion.component.d.ts +9 -0
  9. package/dist/components/accordion/Accordion.component.d.ts.map +1 -0
  10. package/dist/components/accordion/Accordion.component.js +46 -0
  11. package/dist/components/areachart/AreaChart.component.d.ts +1 -2
  12. package/dist/components/areachart/AreaChart.component.d.ts.map +1 -1
  13. package/dist/components/banner/Banner.component.d.ts +1 -2
  14. package/dist/components/banner/Banner.component.d.ts.map +1 -1
  15. package/dist/components/barchart/BarChart.component.d.ts +1 -2
  16. package/dist/components/barchart/BarChart.component.d.ts.map +1 -1
  17. package/dist/components/box/Box.d.ts +1 -3
  18. package/dist/components/box/Box.d.ts.map +1 -1
  19. package/dist/components/breadcrumb/Breadcrumb.component.d.ts +1 -2
  20. package/dist/components/breadcrumb/Breadcrumb.component.d.ts.map +1 -1
  21. package/dist/components/button/Button.component.d.ts +1 -2
  22. package/dist/components/button/Button.component.d.ts.map +1 -1
  23. package/dist/components/buttonv2/Buttonv2.component.d.ts +2 -11
  24. package/dist/components/buttonv2/Buttonv2.component.d.ts.map +1 -1
  25. package/dist/components/buttonv2/CopyButton.component.d.ts +3 -13
  26. package/dist/components/buttonv2/CopyButton.component.d.ts.map +1 -1
  27. package/dist/components/card/Card.component.d.ts +7 -7
  28. package/dist/components/card/Card.component.d.ts.map +1 -1
  29. package/dist/components/checkbox/Checkbox.component.d.ts +5 -5
  30. package/dist/components/checkbox/Checkbox.component.d.ts.map +1 -1
  31. package/dist/components/chips/Chips.component.d.ts +1 -2
  32. package/dist/components/chips/Chips.component.d.ts.map +1 -1
  33. package/dist/components/circularprogressbar/CircularProgressBar.component.d.ts +1 -2
  34. package/dist/components/circularprogressbar/CircularProgressBar.component.d.ts.map +1 -1
  35. package/dist/components/circularprogressbar/CircularProgressBar.component.style.d.ts +1 -1
  36. package/dist/components/circularprogressbar/CircularProgressBar.component.style.d.ts.map +1 -1
  37. package/dist/components/cloudprogressbar/CloudProgressBar.component.d.ts +1 -2
  38. package/dist/components/cloudprogressbar/CloudProgressBar.component.d.ts.map +1 -1
  39. package/dist/components/collapsiblepanel/CollapsiblePanel.component.d.ts +1 -2
  40. package/dist/components/collapsiblepanel/CollapsiblePanel.component.d.ts.map +1 -1
  41. package/dist/components/constrainedtext/Constrainedtext.component.d.ts +0 -1
  42. package/dist/components/constrainedtext/Constrainedtext.component.d.ts.map +1 -1
  43. package/dist/components/coreuithemeprovider/CoreUiThemeProvider.d.ts +1 -1
  44. package/dist/components/coreuithemeprovider/CoreUiThemeProvider.d.ts.map +1 -1
  45. package/dist/components/date/FormattedDateTime.d.ts +1 -2
  46. package/dist/components/date/FormattedDateTime.d.ts.map +1 -1
  47. package/dist/components/dropdown/Dropdown.component.d.ts +1 -2
  48. package/dist/components/dropdown/Dropdown.component.d.ts.map +1 -1
  49. package/dist/components/dropzone/Dropzone.d.ts +1 -2
  50. package/dist/components/dropzone/Dropzone.d.ts.map +1 -1
  51. package/dist/components/emptystate/Emptystate.component.d.ts +1 -2
  52. package/dist/components/emptystate/Emptystate.component.d.ts.map +1 -1
  53. package/dist/components/emptytable/Emptytable.component.d.ts +1 -1
  54. package/dist/components/emptytable/Emptytable.component.d.ts.map +1 -1
  55. package/dist/components/error-pages/ErrorPage401.component.d.ts +1 -1
  56. package/dist/components/error-pages/ErrorPage401.component.d.ts.map +1 -1
  57. package/dist/components/error-pages/ErrorPage404.component.d.ts +1 -1
  58. package/dist/components/error-pages/ErrorPage404.component.d.ts.map +1 -1
  59. package/dist/components/error-pages/ErrorPage500.component.d.ts +1 -1
  60. package/dist/components/error-pages/ErrorPage500.component.d.ts.map +1 -1
  61. package/dist/components/error-pages/ErrorPageAuth.component.d.ts +1 -2
  62. package/dist/components/error-pages/ErrorPageAuth.component.d.ts.map +1 -1
  63. package/dist/components/form/Form.component.d.ts +5 -5
  64. package/dist/components/form/Form.component.d.ts.map +1 -1
  65. package/dist/components/globalhealthbar/GlobalHealthBar.component.d.ts +1 -2
  66. package/dist/components/globalhealthbar/GlobalHealthBar.component.d.ts.map +1 -1
  67. package/dist/components/globalhealthbar/tooltip/index.d.ts.map +1 -1
  68. package/dist/components/healthselectorv2/HealthSelector.component.d.ts +12 -13
  69. package/dist/components/healthselectorv2/HealthSelector.component.d.ts.map +1 -1
  70. package/dist/components/icon/Icon.component.d.ts +3 -3
  71. package/dist/components/icon/Icon.component.d.ts.map +1 -1
  72. package/dist/components/infomessage/InfoMessage.component.d.ts +1 -1
  73. package/dist/components/infomessage/InfoMessage.component.d.ts.map +1 -1
  74. package/dist/components/infomessage/InfoMessageUtils.d.ts +0 -1
  75. package/dist/components/infomessage/InfoMessageUtils.d.ts.map +1 -1
  76. package/dist/components/inlineinput/InlineInput.d.ts +1 -2
  77. package/dist/components/inlineinput/InlineInput.d.ts.map +1 -1
  78. package/dist/components/inputlist/InputButtons.d.ts +2 -3
  79. package/dist/components/inputlist/InputButtons.d.ts.map +1 -1
  80. package/dist/components/inputlist/InputList.component.d.ts +8 -8
  81. package/dist/components/inputlist/InputList.component.d.ts.map +1 -1
  82. package/dist/components/inputv2/inputv2.d.ts +5 -5
  83. package/dist/components/inputv2/inputv2.d.ts.map +1 -1
  84. package/dist/components/lateralnavbarlayout/LateralNavbarLayout.component.d.ts +1 -2
  85. package/dist/components/lateralnavbarlayout/LateralNavbarLayout.component.d.ts.map +1 -1
  86. package/dist/components/layout/Layout.component.d.ts +1 -2
  87. package/dist/components/layout/Layout.component.d.ts.map +1 -1
  88. package/dist/components/layout/v2/AppContainer.d.ts +14 -13
  89. package/dist/components/layout/v2/AppContainer.d.ts.map +1 -1
  90. package/dist/components/layout/v2/index.d.ts +1 -1
  91. package/dist/components/layout/v2/index.d.ts.map +1 -1
  92. package/dist/components/layout/v2/panels.d.ts +2 -2
  93. package/dist/components/layout/v2/panels.d.ts.map +1 -1
  94. package/dist/components/linechart/LineChart.component.d.ts +1 -2
  95. package/dist/components/linechart/LineChart.component.d.ts.map +1 -1
  96. package/dist/components/linetemporalchart/ChartUtil.d.ts.map +1 -1
  97. package/dist/components/linetemporalchart/LineTemporalChart.component.d.ts +1 -2
  98. package/dist/components/linetemporalchart/LineTemporalChart.component.d.ts.map +1 -1
  99. package/dist/components/linetemporalchart/MetricTimespanProvider.d.ts +1 -1
  100. package/dist/components/linetemporalchart/MetricTimespanProvider.d.ts.map +1 -1
  101. package/dist/components/linetemporalchart/tooltip/index.d.ts.map +1 -1
  102. package/dist/components/loader/Loader.component.d.ts +1 -2
  103. package/dist/components/loader/Loader.component.d.ts.map +1 -1
  104. package/dist/components/multiselect/MultiSelect.component.d.ts +1 -2
  105. package/dist/components/multiselect/MultiSelect.component.d.ts.map +1 -1
  106. package/dist/components/navbar/Navbar.component.d.ts +1 -2
  107. package/dist/components/navbar/Navbar.component.d.ts.map +1 -1
  108. package/dist/components/notifications/Notification.component.d.ts +1 -2
  109. package/dist/components/notifications/Notification.component.d.ts.map +1 -1
  110. package/dist/components/notifications/Notifications.component.d.ts +1 -2
  111. package/dist/components/notifications/Notifications.component.d.ts.map +1 -1
  112. package/dist/components/prettybytes/PrettyBytes.component.d.ts +1 -2
  113. package/dist/components/prettybytes/PrettyBytes.component.d.ts.map +1 -1
  114. package/dist/components/progressbar/ProgressBar.component.d.ts +1 -2
  115. package/dist/components/progressbar/ProgressBar.component.d.ts.map +1 -1
  116. package/dist/components/scrollbarwrapper/ScrollbarWrapper.component.d.ts +1 -1
  117. package/dist/components/scrollbarwrapper/ScrollbarWrapper.component.d.ts.map +1 -1
  118. package/dist/components/select/Select.component.d.ts +1 -2
  119. package/dist/components/select/Select.component.d.ts.map +1 -1
  120. package/dist/components/selectv2/Selectv2.component.d.ts +1 -1
  121. package/dist/components/selectv2/Selectv2.component.d.ts.map +1 -1
  122. package/dist/components/sidebar/Sidebar.component.d.ts +1 -2
  123. package/dist/components/sidebar/Sidebar.component.d.ts.map +1 -1
  124. package/dist/components/sparkline/SparkLine.component.d.ts +1 -2
  125. package/dist/components/sparkline/SparkLine.component.d.ts.map +1 -1
  126. package/dist/components/statuswrapper/Statuswrapper.component.d.ts +1 -1
  127. package/dist/components/statuswrapper/Statuswrapper.component.d.ts.map +1 -1
  128. package/dist/components/steppers/Stepper.component.d.ts +0 -2
  129. package/dist/components/steppers/Stepper.component.d.ts.map +1 -1
  130. package/dist/components/steppers/Steppers.component.d.ts +1 -2
  131. package/dist/components/steppers/Steppers.component.d.ts.map +1 -1
  132. package/dist/components/tablev2/MultiSelectableContent.d.ts +1 -2
  133. package/dist/components/tablev2/MultiSelectableContent.d.ts.map +1 -1
  134. package/dist/components/tablev2/Search.d.ts +3 -4
  135. package/dist/components/tablev2/Search.d.ts.map +1 -1
  136. package/dist/components/tablev2/SearchWithQueryParams.d.ts +1 -2
  137. package/dist/components/tablev2/SearchWithQueryParams.d.ts.map +1 -1
  138. package/dist/components/tablev2/SingleSelectableContent.d.ts +1 -1
  139. package/dist/components/tablev2/SingleSelectableContent.d.ts.map +1 -1
  140. package/dist/components/tablev2/TableCommon.d.ts +2 -2
  141. package/dist/components/tablev2/TableCommon.d.ts.map +1 -1
  142. package/dist/components/tablev2/Tablestyle.d.ts +2 -3
  143. package/dist/components/tablev2/Tablestyle.d.ts.map +1 -1
  144. package/dist/components/tablev2/Tablev2.component.d.ts +12 -13
  145. package/dist/components/tablev2/Tablev2.component.d.ts.map +1 -1
  146. package/dist/components/tablev2/useCheckbox.d.ts.map +1 -1
  147. package/dist/components/tablev2/useSyncedScroll.d.ts +0 -1
  148. package/dist/components/tablev2/useSyncedScroll.d.ts.map +1 -1
  149. package/dist/components/tabsv2/StyledTabs.d.ts +9 -9
  150. package/dist/components/tabsv2/StyledTabs.d.ts.map +1 -1
  151. package/dist/components/tabsv2/Tab.d.ts +0 -1
  152. package/dist/components/tabsv2/Tab.d.ts.map +1 -1
  153. package/dist/components/tabsv2/Tabsv2.component.d.ts +1 -1
  154. package/dist/components/tabsv2/Tabsv2.component.d.ts.map +1 -1
  155. package/dist/components/tabsv2/Tabsv2.component.js +1 -5
  156. package/dist/components/tabsv2/useScrollingTabs.d.ts +0 -1
  157. package/dist/components/tabsv2/useScrollingTabs.d.ts.map +1 -1
  158. package/dist/components/text/Text.component.d.ts +15 -15
  159. package/dist/components/text/Text.component.d.ts.map +1 -1
  160. package/dist/components/textarea/TextArea.component.d.ts +3 -3
  161. package/dist/components/textarea/TextArea.component.d.ts.map +1 -1
  162. package/dist/components/textbadge/TextBadge.component.d.ts +1 -1
  163. package/dist/components/textbadge/TextBadge.component.d.ts.map +1 -1
  164. package/dist/components/toast/DurationBasedProgressBar.d.ts +1 -2
  165. package/dist/components/toast/DurationBasedProgressBar.d.ts.map +1 -1
  166. package/dist/components/toast/Toast.component.d.ts +1 -1
  167. package/dist/components/toast/Toast.component.d.ts.map +1 -1
  168. package/dist/components/toast/useMutationsHandler.d.ts.map +1 -1
  169. package/dist/components/toggle/Toggle.component.d.ts +1 -1
  170. package/dist/components/toggle/Toggle.component.d.ts.map +1 -1
  171. package/dist/components/tooltip/Tooltip.component.d.ts +1 -1
  172. package/dist/components/tooltip/Tooltip.component.d.ts.map +1 -1
  173. package/dist/components/vegachart/VegaChart.component.d.ts +1 -2
  174. package/dist/components/vegachart/VegaChart.component.d.ts.map +1 -1
  175. package/dist/components/vegachartv2/SyncedCursorCharts.d.ts +1 -1
  176. package/dist/components/vegachartv2/SyncedCursorCharts.d.ts.map +1 -1
  177. package/dist/icons/branding-logo.d.ts +1 -2
  178. package/dist/icons/branding-logo.d.ts.map +1 -1
  179. package/dist/icons/branding.d.ts +1 -2
  180. package/dist/icons/branding.d.ts.map +1 -1
  181. package/dist/icons/scality-loading.d.ts +1 -2
  182. package/dist/icons/scality-loading.d.ts.map +1 -1
  183. package/dist/next.d.ts +1 -0
  184. package/dist/next.d.ts.map +1 -1
  185. package/dist/next.js +1 -0
  186. package/dist/organisms/attachments/AttachmentConfirmationModal.d.ts +1 -1
  187. package/dist/organisms/attachments/AttachmentConfirmationModal.d.ts.map +1 -1
  188. package/dist/organisms/attachments/AttachmentTable.d.ts +4 -3
  189. package/dist/organisms/attachments/AttachmentTable.d.ts.map +1 -1
  190. package/dist/organisms/attachments/AttachmentTable.js +1 -0
  191. package/dist/spacing.d.ts +5 -7
  192. package/dist/spacing.d.ts.map +1 -1
  193. package/dist/testUtils.d.ts +1 -2
  194. package/dist/testUtils.d.ts.map +1 -1
  195. package/package.json +16 -15
  196. package/src/lib/components/accordion/Accordion.component.tsx +93 -0
  197. package/src/lib/components/accordion/Accordion.test.tsx +52 -0
  198. package/src/lib/components/tabsv2/Tabsv2.component.tsx +0 -1
  199. package/src/lib/next.ts +1 -0
  200. package/src/lib/organisms/attachments/AttachmentTable.tsx +3 -2
  201. package/stories/Accordion/accordion.guideline.mdx +26 -0
  202. package/stories/Accordion/accordion.stories.tsx +65 -0
  203. /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
- ? `border-bottom: 1px solid ${props.theme.selectedActive};`
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