@dxc-technology/halstack-react 0.0.0-dfcca07 → 0.0.0-e01c6f9

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 (346) hide show
  1. package/BackgroundColorContext.d.ts +1 -0
  2. package/BackgroundColorContext.js +6 -26
  3. package/HalstackContext.d.ts +1235 -0
  4. package/HalstackContext.js +310 -0
  5. package/README.md +47 -0
  6. package/accordion/Accordion.d.ts +1 -1
  7. package/accordion/Accordion.js +118 -194
  8. package/accordion/Accordion.stories.tsx +283 -0
  9. package/accordion/Accordion.test.js +56 -0
  10. package/accordion/types.d.ts +12 -23
  11. package/accordion-group/AccordionGroup.d.ts +5 -4
  12. package/accordion-group/AccordionGroup.js +39 -108
  13. package/accordion-group/AccordionGroup.stories.tsx +95 -68
  14. package/accordion-group/AccordionGroup.test.js +98 -0
  15. package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
  16. package/accordion-group/AccordionGroupAccordion.js +31 -0
  17. package/accordion-group/types.d.ts +18 -23
  18. package/action-icon/ActionIcon.d.ts +4 -0
  19. package/action-icon/ActionIcon.js +43 -0
  20. package/action-icon/types.d.ts +26 -0
  21. package/alert/Alert.js +24 -60
  22. package/alert/Alert.stories.tsx +28 -0
  23. package/alert/Alert.test.js +75 -0
  24. package/alert/types.d.ts +5 -5
  25. package/badge/Badge.d.ts +4 -0
  26. package/badge/Badge.js +9 -20
  27. package/badge/types.d.ts +5 -0
  28. package/bleed/Bleed.d.ts +3 -0
  29. package/bleed/Bleed.js +43 -0
  30. package/bleed/Bleed.stories.tsx +342 -0
  31. package/bleed/types.d.ts +37 -0
  32. package/box/Box.d.ts +1 -1
  33. package/box/Box.js +31 -82
  34. package/box/Box.stories.tsx +38 -51
  35. package/box/Box.test.js +13 -0
  36. package/box/types.d.ts +3 -14
  37. package/bulleted-list/BulletedList.d.ts +7 -0
  38. package/bulleted-list/BulletedList.js +89 -0
  39. package/bulleted-list/BulletedList.stories.tsx +115 -0
  40. package/bulleted-list/types.d.ts +38 -0
  41. package/bulleted-list/types.js +5 -0
  42. package/button/Button.d.ts +1 -1
  43. package/button/Button.js +64 -123
  44. package/button/Button.stories.tsx +164 -96
  45. package/button/Button.test.js +36 -0
  46. package/button/types.d.ts +12 -12
  47. package/card/Card.d.ts +1 -1
  48. package/card/Card.js +59 -103
  49. package/card/Card.stories.tsx +13 -43
  50. package/card/Card.test.js +39 -0
  51. package/card/types.d.ts +6 -11
  52. package/checkbox/Checkbox.d.ts +2 -2
  53. package/checkbox/Checkbox.js +145 -183
  54. package/checkbox/Checkbox.stories.tsx +166 -136
  55. package/checkbox/Checkbox.test.js +199 -0
  56. package/checkbox/types.d.ts +19 -7
  57. package/chip/Chip.d.ts +4 -0
  58. package/chip/Chip.js +48 -148
  59. package/chip/Chip.stories.tsx +123 -30
  60. package/chip/Chip.test.js +41 -0
  61. package/chip/types.d.ts +45 -0
  62. package/chip/types.js +5 -0
  63. package/common/OpenSans.css +68 -80
  64. package/common/coreTokens.d.ts +237 -0
  65. package/common/coreTokens.js +184 -0
  66. package/common/utils.d.ts +1 -0
  67. package/common/utils.js +6 -12
  68. package/common/variables.d.ts +1381 -0
  69. package/common/variables.js +1006 -1331
  70. package/container/Container.d.ts +4 -0
  71. package/container/Container.js +194 -0
  72. package/container/Container.stories.tsx +214 -0
  73. package/container/types.d.ts +74 -0
  74. package/container/types.js +5 -0
  75. package/date-input/Calendar.d.ts +4 -0
  76. package/date-input/Calendar.js +214 -0
  77. package/date-input/DateInput.js +175 -313
  78. package/date-input/DateInput.stories.tsx +203 -56
  79. package/date-input/DateInput.test.js +808 -0
  80. package/date-input/DatePicker.d.ts +4 -0
  81. package/date-input/DatePicker.js +115 -0
  82. package/date-input/Icons.d.ts +6 -0
  83. package/date-input/Icons.js +58 -0
  84. package/date-input/YearPicker.d.ts +4 -0
  85. package/date-input/YearPicker.js +100 -0
  86. package/date-input/types.d.ts +86 -22
  87. package/dialog/Dialog.d.ts +1 -1
  88. package/dialog/Dialog.js +69 -130
  89. package/dialog/Dialog.stories.tsx +320 -167
  90. package/dialog/Dialog.test.js +307 -0
  91. package/dialog/types.d.ts +18 -25
  92. package/dropdown/Dropdown.d.ts +1 -1
  93. package/dropdown/Dropdown.js +245 -328
  94. package/dropdown/Dropdown.stories.tsx +438 -0
  95. package/dropdown/Dropdown.test.js +599 -0
  96. package/dropdown/DropdownMenu.d.ts +4 -0
  97. package/dropdown/DropdownMenu.js +63 -0
  98. package/dropdown/DropdownMenuItem.d.ts +4 -0
  99. package/dropdown/DropdownMenuItem.js +67 -0
  100. package/dropdown/types.d.ts +36 -27
  101. package/file-input/FileInput.d.ts +2 -2
  102. package/file-input/FileInput.js +267 -299
  103. package/file-input/FileInput.stories.tsx +618 -0
  104. package/file-input/FileInput.test.js +459 -0
  105. package/file-input/FileItem.d.ts +4 -14
  106. package/file-input/FileItem.js +52 -101
  107. package/file-input/types.d.ts +53 -11
  108. package/flex/Flex.d.ts +4 -0
  109. package/flex/Flex.js +57 -0
  110. package/flex/Flex.stories.tsx +112 -0
  111. package/flex/types.d.ts +97 -0
  112. package/flex/types.js +5 -0
  113. package/footer/Footer.d.ts +1 -1
  114. package/footer/Footer.js +60 -201
  115. package/footer/{Footer.stories.jsx → Footer.stories.tsx} +38 -37
  116. package/footer/Footer.test.js +85 -0
  117. package/footer/Icons.d.ts +2 -0
  118. package/footer/Icons.js +4 -9
  119. package/footer/types.d.ts +22 -33
  120. package/grid/Grid.d.ts +7 -0
  121. package/grid/Grid.js +76 -0
  122. package/grid/Grid.stories.tsx +219 -0
  123. package/grid/types.d.ts +115 -0
  124. package/grid/types.js +5 -0
  125. package/header/Header.d.ts +4 -3
  126. package/header/Header.js +100 -204
  127. package/header/Header.stories.tsx +152 -63
  128. package/header/Header.test.js +66 -0
  129. package/header/Icons.d.ts +2 -0
  130. package/header/Icons.js +4 -9
  131. package/header/types.d.ts +5 -19
  132. package/heading/Heading.js +11 -33
  133. package/heading/Heading.stories.tsx +3 -2
  134. package/heading/Heading.test.js +169 -0
  135. package/heading/types.d.ts +7 -7
  136. package/image/Image.d.ts +4 -0
  137. package/image/Image.js +70 -0
  138. package/image/Image.stories.tsx +127 -0
  139. package/image/types.d.ts +72 -0
  140. package/image/types.js +5 -0
  141. package/inset/Inset.d.ts +3 -0
  142. package/inset/Inset.js +43 -0
  143. package/inset/Inset.stories.tsx +230 -0
  144. package/inset/types.d.ts +37 -0
  145. package/inset/types.js +5 -0
  146. package/layout/ApplicationLayout.d.ts +20 -0
  147. package/layout/ApplicationLayout.js +83 -184
  148. package/layout/ApplicationLayout.stories.tsx +162 -0
  149. package/layout/Icons.d.ts +8 -0
  150. package/layout/Icons.js +51 -48
  151. package/layout/SidenavContext.d.ts +5 -0
  152. package/layout/SidenavContext.js +13 -0
  153. package/layout/types.d.ts +41 -0
  154. package/layout/types.js +5 -0
  155. package/link/Link.d.ts +3 -2
  156. package/link/Link.js +65 -111
  157. package/link/Link.stories.tsx +159 -52
  158. package/link/Link.test.js +63 -0
  159. package/link/types.d.ts +15 -35
  160. package/main.d.ts +15 -13
  161. package/main.js +70 -97
  162. package/nav-tabs/NavTabs.d.ts +8 -0
  163. package/nav-tabs/NavTabs.js +90 -0
  164. package/nav-tabs/NavTabs.stories.tsx +274 -0
  165. package/nav-tabs/NavTabs.test.js +75 -0
  166. package/nav-tabs/Tab.d.ts +4 -0
  167. package/nav-tabs/Tab.js +117 -0
  168. package/nav-tabs/types.d.ts +52 -0
  169. package/nav-tabs/types.js +5 -0
  170. package/number-input/NumberInput.d.ts +7 -0
  171. package/number-input/NumberInput.js +28 -47
  172. package/number-input/NumberInput.stories.tsx +44 -28
  173. package/number-input/NumberInput.test.js +830 -0
  174. package/number-input/types.d.ts +28 -15
  175. package/package.json +46 -45
  176. package/paginator/Icons.d.ts +5 -0
  177. package/paginator/Icons.js +21 -47
  178. package/paginator/Paginator.js +35 -98
  179. package/paginator/Paginator.stories.tsx +24 -0
  180. package/paginator/Paginator.test.js +335 -0
  181. package/paginator/types.d.ts +3 -3
  182. package/paragraph/Paragraph.d.ts +5 -0
  183. package/paragraph/Paragraph.js +22 -0
  184. package/paragraph/Paragraph.stories.tsx +27 -0
  185. package/password-input/Icons.d.ts +6 -0
  186. package/password-input/Icons.js +35 -0
  187. package/password-input/PasswordInput.js +58 -125
  188. package/password-input/PasswordInput.stories.tsx +3 -35
  189. package/password-input/PasswordInput.test.js +198 -0
  190. package/password-input/types.d.ts +21 -17
  191. package/progress-bar/ProgressBar.js +66 -92
  192. package/progress-bar/ProgressBar.stories.tsx +93 -0
  193. package/progress-bar/ProgressBar.test.js +93 -0
  194. package/progress-bar/types.d.ts +3 -3
  195. package/quick-nav/QuickNav.d.ts +4 -0
  196. package/quick-nav/QuickNav.js +94 -0
  197. package/quick-nav/QuickNav.stories.tsx +356 -0
  198. package/quick-nav/types.d.ts +21 -0
  199. package/quick-nav/types.js +5 -0
  200. package/radio-group/Radio.d.ts +4 -0
  201. package/radio-group/Radio.js +124 -0
  202. package/radio-group/RadioGroup.d.ts +4 -0
  203. package/radio-group/RadioGroup.js +235 -0
  204. package/radio-group/RadioGroup.stories.tsx +214 -0
  205. package/radio-group/RadioGroup.test.js +756 -0
  206. package/radio-group/types.d.ts +114 -0
  207. package/radio-group/types.js +5 -0
  208. package/resultset-table/Icons.d.ts +7 -0
  209. package/resultset-table/Icons.js +47 -0
  210. package/resultset-table/ResultsetTable.js +159 -0
  211. package/resultset-table/ResultsetTable.stories.tsx +300 -0
  212. package/resultset-table/ResultsetTable.test.js +305 -0
  213. package/{resultsetTable → resultset-table}/types.d.ts +8 -8
  214. package/resultset-table/types.js +5 -0
  215. package/select/Icons.d.ts +10 -0
  216. package/select/Icons.js +89 -0
  217. package/select/Listbox.d.ts +4 -0
  218. package/select/Listbox.js +143 -0
  219. package/select/Option.d.ts +4 -0
  220. package/select/Option.js +80 -0
  221. package/select/Select.d.ts +4 -0
  222. package/select/Select.js +227 -511
  223. package/select/Select.stories.tsx +603 -204
  224. package/select/Select.test.js +2370 -0
  225. package/select/types.d.ts +209 -0
  226. package/select/types.js +5 -0
  227. package/sidenav/Icons.d.ts +7 -0
  228. package/sidenav/Icons.js +47 -0
  229. package/sidenav/Sidenav.d.ts +6 -5
  230. package/sidenav/Sidenav.js +132 -72
  231. package/sidenav/Sidenav.stories.tsx +251 -134
  232. package/sidenav/Sidenav.test.js +37 -0
  233. package/sidenav/types.d.ts +52 -26
  234. package/slider/Slider.d.ts +2 -2
  235. package/slider/Slider.js +149 -181
  236. package/slider/Slider.test.js +254 -0
  237. package/slider/types.d.ts +11 -3
  238. package/spinner/Spinner.js +32 -76
  239. package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +53 -26
  240. package/spinner/Spinner.test.js +55 -0
  241. package/spinner/types.d.ts +3 -3
  242. package/switch/Switch.d.ts +2 -2
  243. package/switch/Switch.js +150 -115
  244. package/switch/Switch.stories.tsx +45 -68
  245. package/switch/Switch.test.js +180 -0
  246. package/switch/types.d.ts +13 -5
  247. package/table/Table.js +9 -31
  248. package/table/{Table.stories.jsx → Table.stories.tsx} +81 -1
  249. package/table/Table.test.js +21 -0
  250. package/table/types.d.ts +8 -8
  251. package/tabs/Tab.d.ts +4 -0
  252. package/tabs/Tab.js +113 -0
  253. package/tabs/Tabs.d.ts +1 -1
  254. package/tabs/Tabs.js +318 -147
  255. package/tabs/Tabs.stories.tsx +122 -17
  256. package/tabs/Tabs.test.js +294 -0
  257. package/tabs/types.d.ts +46 -24
  258. package/tag/Tag.d.ts +1 -1
  259. package/tag/Tag.js +44 -86
  260. package/tag/Tag.stories.tsx +38 -28
  261. package/tag/Tag.test.js +49 -0
  262. package/tag/types.d.ts +25 -16
  263. package/text-input/Icons.d.ts +8 -0
  264. package/text-input/Icons.js +56 -0
  265. package/text-input/Suggestion.d.ts +4 -0
  266. package/text-input/Suggestion.js +67 -0
  267. package/text-input/Suggestions.d.ts +4 -0
  268. package/text-input/Suggestions.js +84 -0
  269. package/text-input/TextInput.js +330 -544
  270. package/text-input/TextInput.stories.tsx +280 -271
  271. package/text-input/TextInput.test.js +1739 -0
  272. package/text-input/types.d.ts +71 -25
  273. package/textarea/Textarea.d.ts +4 -0
  274. package/textarea/Textarea.js +95 -177
  275. package/textarea/Textarea.stories.tsx +174 -0
  276. package/textarea/Textarea.test.js +406 -0
  277. package/textarea/types.d.ts +141 -0
  278. package/textarea/types.js +5 -0
  279. package/toggle-group/ToggleGroup.d.ts +2 -2
  280. package/toggle-group/ToggleGroup.js +97 -113
  281. package/toggle-group/ToggleGroup.stories.tsx +76 -36
  282. package/toggle-group/ToggleGroup.test.js +137 -0
  283. package/toggle-group/types.d.ts +66 -36
  284. package/typography/Typography.d.ts +4 -0
  285. package/typography/Typography.js +23 -0
  286. package/typography/Typography.stories.tsx +198 -0
  287. package/typography/types.d.ts +18 -0
  288. package/typography/types.js +5 -0
  289. package/useTheme.d.ts +1134 -0
  290. package/useTheme.js +4 -11
  291. package/useTranslatedLabels.d.ts +85 -0
  292. package/useTranslatedLabels.js +14 -0
  293. package/utils/BaseTypography.d.ts +21 -0
  294. package/utils/BaseTypography.js +94 -0
  295. package/utils/FocusLock.d.ts +13 -0
  296. package/utils/FocusLock.js +121 -0
  297. package/wizard/Wizard.d.ts +1 -1
  298. package/wizard/Wizard.js +123 -104
  299. package/wizard/{Wizard.stories.jsx → Wizard.stories.tsx} +48 -19
  300. package/wizard/Wizard.test.js +114 -0
  301. package/wizard/types.d.ts +14 -14
  302. package/ThemeContext.js +0 -246
  303. package/V3Select/V3Select.js +0 -455
  304. package/V3Select/index.d.ts +0 -27
  305. package/V3Textarea/V3Textarea.js +0 -260
  306. package/V3Textarea/index.d.ts +0 -27
  307. package/card/ice-cream.jpg +0 -0
  308. package/chip/index.d.ts +0 -22
  309. package/common/RequiredComponent.js +0 -32
  310. package/date/Date.js +0 -373
  311. package/date/index.d.ts +0 -27
  312. package/input-text/Icons.js +0 -22
  313. package/input-text/InputText.js +0 -611
  314. package/input-text/index.d.ts +0 -36
  315. package/number-input/NumberInputContext.d.ts +0 -4
  316. package/number-input/NumberInputContext.js +0 -19
  317. package/number-input/numberInputContextTypes.d.ts +0 -19
  318. package/progress-bar/ProgressBar.stories.jsx +0 -58
  319. package/radio/Radio.d.ts +0 -4
  320. package/radio/Radio.js +0 -174
  321. package/radio/Radio.stories.tsx +0 -192
  322. package/radio/types.d.ts +0 -54
  323. package/resultsetTable/ResultsetTable.js +0 -251
  324. package/select/index.d.ts +0 -131
  325. package/slider/Slider.stories.tsx +0 -177
  326. package/textarea/Textarea.stories.jsx +0 -135
  327. package/textarea/index.d.ts +0 -127
  328. package/toggle/Toggle.js +0 -186
  329. package/toggle/index.d.ts +0 -21
  330. package/upload/Upload.js +0 -201
  331. package/upload/buttons-upload/ButtonsUpload.js +0 -111
  332. package/upload/buttons-upload/Icons.js +0 -40
  333. package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
  334. package/upload/dragAndDropArea/Icons.js +0 -39
  335. package/upload/file-upload/FileToUpload.js +0 -115
  336. package/upload/file-upload/Icons.js +0 -66
  337. package/upload/files-upload/FilesToUpload.js +0 -109
  338. package/upload/index.d.ts +0 -15
  339. package/upload/transaction/Icons.js +0 -160
  340. package/upload/transaction/Transaction.js +0 -104
  341. package/upload/transactions/Transactions.js +0 -94
  342. package/wizard/Icons.js +0 -65
  343. /package/{radio → action-icon}/types.js +0 -0
  344. /package/{resultsetTable → badge}/types.js +0 -0
  345. /package/{number-input/numberInputContextTypes.js → bleed/types.js} +0 -0
  346. /package/{resultsetTable → resultset-table}/ResultsetTable.d.ts +0 -0
@@ -1,10 +1,11 @@
1
1
  import React from "react";
2
2
  import DxcAccordionGroup from "./AccordionGroup";
3
+ import DxcInset from "../inset/Inset";
3
4
  import Title from "../../.storybook/components/Title";
4
5
  import ExampleContainer from "../../.storybook/components/ExampleContainer";
5
6
 
6
7
  export default {
7
- title: "Accordion group",
8
+ title: "Accordion Group",
8
9
  component: DxcAccordionGroup,
9
10
  };
10
11
 
@@ -14,69 +15,95 @@ export const Chromatic = () => (
14
15
  <ExampleContainer>
15
16
  <Title title="Default" theme="light" level={4} />
16
17
  <DxcAccordionGroup>
17
- <DxcAccordionGroup.Accordion label="Accordion1" assistiveText="Assistive text" padding="medium">
18
- <div>
18
+ <DxcAccordionGroup.Accordion label="Accordion1" assistiveText="Assistive text">
19
+ <DxcInset space="2rem">
19
20
  Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit
20
21
  leo lobortis eget.
21
- </div>
22
+ </DxcInset>
22
23
  </DxcAccordionGroup.Accordion>
23
- <DxcAccordionGroup.Accordion label="Accordion2" assistiveText="Assistive text" padding="medium">
24
- <div>
24
+ <DxcAccordionGroup.Accordion label="Accordion2" assistiveText="Assistive text">
25
+ <DxcInset space="2rem">
25
26
  Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit
26
27
  leo lobortis eget.
27
- </div>
28
+ </DxcInset>
28
29
  </DxcAccordionGroup.Accordion>
29
- <DxcAccordionGroup.Accordion label="Accordion2" assistiveText="Assistive text" padding="medium">
30
- <div>
30
+ <DxcAccordionGroup.Accordion label="Accordion2" assistiveText="Assistive text">
31
+ <DxcInset space="2rem">
31
32
  Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit
32
33
  leo lobortis eget.
33
- </div>
34
+ </DxcInset>
34
35
  </DxcAccordionGroup.Accordion>
35
36
  </DxcAccordionGroup>
36
37
  </ExampleContainer>
37
38
  <ExampleContainer>
38
39
  <Title title="Expanded" theme="light" level={4} />
39
- <DxcAccordionGroup indexActive={1}>
40
- <DxcAccordionGroup.Accordion label="Accordion1" padding="medium">
41
- <div>
40
+ <DxcAccordionGroup defaultIndexActive={1}>
41
+ <DxcAccordionGroup.Accordion label="Accordion1">
42
+ <DxcInset space="2rem">
42
43
  Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et
43
44
  dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex
44
45
  ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat
45
46
  nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit
46
47
  anim id est laborum.
47
- </div>
48
+ </DxcInset>
48
49
  </DxcAccordionGroup.Accordion>
49
- <DxcAccordionGroup.Accordion label="Accordion2" padding="medium">
50
- <div>
50
+ <DxcAccordionGroup.Accordion label="Accordion2">
51
+ <DxcInset space="2rem">
51
52
  Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit
52
53
  leo lobortis eget.
53
- </div>
54
+ </DxcInset>
54
55
  </DxcAccordionGroup.Accordion>
55
- <DxcAccordionGroup.Accordion label="Accordion2" padding="medium">
56
- <div>
56
+ <DxcAccordionGroup.Accordion label="Accordion2">
57
+ <DxcInset space="2rem">
57
58
  Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit
58
59
  leo lobortis eget.
59
- </div>
60
+ </DxcInset>
60
61
  </DxcAccordionGroup.Accordion>
61
62
  </DxcAccordionGroup>
62
63
  </ExampleContainer>
63
64
  <ExampleContainer>
64
65
  <Title title="Disabled" theme="light" level={4} />
65
66
  <DxcAccordionGroup disabled>
66
- <DxcAccordionGroup.Accordion label="Accordion1" padding="medium">
67
- <div>
67
+ <DxcAccordionGroup.Accordion label="Accordion1">
68
+ <DxcInset space="2rem">
68
69
  Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et
69
70
  dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex
70
71
  ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat
71
72
  nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit
72
73
  anim id est laborum.
73
- </div>
74
+ </DxcInset>
74
75
  </DxcAccordionGroup.Accordion>
75
- <DxcAccordionGroup.Accordion label="Accordion2" padding="medium">
76
- <div>
76
+ <DxcAccordionGroup.Accordion label="Accordion2">
77
+ <DxcInset space="2rem">
77
78
  Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit
78
79
  leo lobortis eget.
79
- </div>
80
+ </DxcInset>
81
+ </DxcAccordionGroup.Accordion>
82
+ </DxcAccordionGroup>
83
+ </ExampleContainer>
84
+ <ExampleContainer pseudoState="pseudo-focus">
85
+ <Title title="Focused" theme="light" level={4} />
86
+ <DxcAccordionGroup defaultIndexActive={2}>
87
+ <DxcAccordionGroup.Accordion label="Accordion1">
88
+ <DxcInset space="2rem">
89
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et
90
+ dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex
91
+ ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat
92
+ nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit
93
+ anim id est laborum.
94
+ </DxcInset>
95
+ </DxcAccordionGroup.Accordion>
96
+ <DxcAccordionGroup.Accordion label="Accordion2">
97
+ <DxcInset space="2rem">
98
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit
99
+ leo lobortis eget.
100
+ </DxcInset>
101
+ </DxcAccordionGroup.Accordion>
102
+ <DxcAccordionGroup.Accordion label="Accordion2">
103
+ <DxcInset space="2rem">
104
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit
105
+ leo lobortis eget.
106
+ </DxcInset>
80
107
  </DxcAccordionGroup.Accordion>
81
108
  </DxcAccordionGroup>
82
109
  </ExampleContainer>
@@ -84,140 +111,140 @@ export const Chromatic = () => (
84
111
  <ExampleContainer>
85
112
  <Title title="Xxsmall" theme="light" level={4} />
86
113
  <DxcAccordionGroup margin="xxsmall">
87
- <DxcAccordionGroup.Accordion label="Accordion1" padding="medium">
88
- <div>
114
+ <DxcAccordionGroup.Accordion label="Accordion1">
115
+ <DxcInset space="2rem">
89
116
  Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et
90
117
  dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex
91
118
  ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat
92
119
  nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit
93
120
  anim id est laborum.
94
- </div>
121
+ </DxcInset>
95
122
  </DxcAccordionGroup.Accordion>
96
- <DxcAccordionGroup.Accordion label="Accordion2" padding="medium">
97
- <div>
123
+ <DxcAccordionGroup.Accordion label="Accordion2">
124
+ <DxcInset space="2rem">
98
125
  Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit
99
126
  leo lobortis eget.
100
- </div>
127
+ </DxcInset>
101
128
  </DxcAccordionGroup.Accordion>
102
129
  </DxcAccordionGroup>
103
130
  </ExampleContainer>
104
131
  <ExampleContainer>
105
132
  <Title title="Xsmall" theme="light" level={4} />
106
133
  <DxcAccordionGroup margin="xsmall">
107
- <DxcAccordionGroup.Accordion label="Accordion1" padding="medium">
108
- <div>
134
+ <DxcAccordionGroup.Accordion label="Accordion1">
135
+ <DxcInset space="2rem">
109
136
  Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et
110
137
  dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex
111
138
  ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat
112
139
  nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit
113
140
  anim id est laborum.
114
- </div>
141
+ </DxcInset>
115
142
  </DxcAccordionGroup.Accordion>
116
- <DxcAccordionGroup.Accordion label="Accordion2" padding="medium">
117
- <div>
143
+ <DxcAccordionGroup.Accordion label="Accordion2">
144
+ <DxcInset space="2rem">
118
145
  Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit
119
146
  leo lobortis eget.
120
- </div>
147
+ </DxcInset>
121
148
  </DxcAccordionGroup.Accordion>
122
149
  </DxcAccordionGroup>
123
150
  </ExampleContainer>
124
151
  <ExampleContainer>
125
152
  <Title title="Small" theme="light" level={4} />
126
153
  <DxcAccordionGroup margin="small">
127
- <DxcAccordionGroup.Accordion label="Accordion1" padding="medium">
128
- <div>
154
+ <DxcAccordionGroup.Accordion label="Accordion1">
155
+ <DxcInset space="2rem">
129
156
  Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et
130
157
  dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex
131
158
  ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat
132
159
  nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit
133
160
  anim id est laborum.
134
- </div>
161
+ </DxcInset>
135
162
  </DxcAccordionGroup.Accordion>
136
- <DxcAccordionGroup.Accordion label="Accordion2" padding="medium">
137
- <div>
163
+ <DxcAccordionGroup.Accordion label="Accordion2">
164
+ <DxcInset space="2rem">
138
165
  Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit
139
166
  leo lobortis eget.
140
- </div>
167
+ </DxcInset>
141
168
  </DxcAccordionGroup.Accordion>
142
169
  </DxcAccordionGroup>
143
170
  </ExampleContainer>
144
171
  <ExampleContainer>
145
172
  <Title title="Medium" theme="light" level={4} />
146
173
  <DxcAccordionGroup margin="medium">
147
- <DxcAccordionGroup.Accordion label="Accordion1" padding="medium">
148
- <div>
174
+ <DxcAccordionGroup.Accordion label="Accordion1">
175
+ <DxcInset space="2rem">
149
176
  Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et
150
177
  dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex
151
178
  ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat
152
179
  nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit
153
180
  anim id est laborum.
154
- </div>
181
+ </DxcInset>
155
182
  </DxcAccordionGroup.Accordion>
156
- <DxcAccordionGroup.Accordion label="Accordion2" padding="medium">
157
- <div>
183
+ <DxcAccordionGroup.Accordion label="Accordion2">
184
+ <DxcInset space="2rem">
158
185
  Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit
159
186
  leo lobortis eget.
160
- </div>
187
+ </DxcInset>
161
188
  </DxcAccordionGroup.Accordion>
162
189
  </DxcAccordionGroup>
163
190
  </ExampleContainer>
164
191
  <ExampleContainer>
165
192
  <Title title="Large" theme="light" level={4} />
166
193
  <DxcAccordionGroup margin="large">
167
- <DxcAccordionGroup.Accordion label="Accordion1" padding="medium">
168
- <div>
194
+ <DxcAccordionGroup.Accordion label="Accordion1">
195
+ <DxcInset space="2rem">
169
196
  Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et
170
197
  dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex
171
198
  ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat
172
199
  nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit
173
200
  anim id est laborum.
174
- </div>
201
+ </DxcInset>
175
202
  </DxcAccordionGroup.Accordion>
176
- <DxcAccordionGroup.Accordion label="Accordion2" padding="medium">
177
- <div>
203
+ <DxcAccordionGroup.Accordion label="Accordion2">
204
+ <DxcInset space="2rem">
178
205
  Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit
179
206
  leo lobortis eget.
180
- </div>
207
+ </DxcInset>
181
208
  </DxcAccordionGroup.Accordion>
182
209
  </DxcAccordionGroup>
183
210
  </ExampleContainer>
184
211
  <ExampleContainer>
185
212
  <Title title="Xlarge" theme="light" level={4} />
186
213
  <DxcAccordionGroup margin="xlarge">
187
- <DxcAccordionGroup.Accordion label="Accordion1" padding="medium">
188
- <div>
214
+ <DxcAccordionGroup.Accordion label="Accordion1">
215
+ <DxcInset space="2rem">
189
216
  Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et
190
217
  dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex
191
218
  ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat
192
219
  nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit
193
220
  anim id est laborum.
194
- </div>
221
+ </DxcInset>
195
222
  </DxcAccordionGroup.Accordion>
196
- <DxcAccordionGroup.Accordion label="Accordion2" padding="medium">
197
- <div>
223
+ <DxcAccordionGroup.Accordion label="Accordion2">
224
+ <DxcInset space="2rem">
198
225
  Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit
199
226
  leo lobortis eget.
200
- </div>
227
+ </DxcInset>
201
228
  </DxcAccordionGroup.Accordion>
202
229
  </DxcAccordionGroup>
203
230
  </ExampleContainer>
204
231
  <ExampleContainer>
205
232
  <Title title="Xxlarge" theme="light" level={4} />
206
233
  <DxcAccordionGroup margin="xxlarge">
207
- <DxcAccordionGroup.Accordion label="Accordion1" padding="medium">
208
- <div>
234
+ <DxcAccordionGroup.Accordion label="Accordion1">
235
+ <DxcInset space="2rem">
209
236
  Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et
210
237
  dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex
211
238
  ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat
212
239
  nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit
213
240
  anim id est laborum.
214
- </div>
241
+ </DxcInset>
215
242
  </DxcAccordionGroup.Accordion>
216
- <DxcAccordionGroup.Accordion label="Accordion2" padding="medium">
217
- <div>
243
+ <DxcAccordionGroup.Accordion label="Accordion2">
244
+ <DxcInset space="2rem">
218
245
  Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit
219
246
  leo lobortis eget.
220
- </div>
247
+ </DxcInset>
221
248
  </DxcAccordionGroup.Accordion>
222
249
  </DxcAccordionGroup>
223
250
  </ExampleContainer>
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _react = _interopRequireDefault(require("react"));
5
+ var _react2 = require("@testing-library/react");
6
+ var _AccordionGroup = _interopRequireDefault(require("./AccordionGroup.tsx"));
7
+ describe("Accordion component tests", function () {
8
+ test("Uncontrolled accordion group calls correct function on click", function () {
9
+ var onActiveChange = jest.fn();
10
+ var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_AccordionGroup["default"], {
11
+ margin: "large",
12
+ onActiveChange: onActiveChange
13
+ }, /*#__PURE__*/_react["default"].createElement(_AccordionGroup["default"].Accordion, {
14
+ label: "Accordion1",
15
+ margin: "large"
16
+ }, /*#__PURE__*/_react["default"].createElement("div", null, "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo lobortis eget.")), /*#__PURE__*/_react["default"].createElement(_AccordionGroup["default"].Accordion, {
17
+ label: "Accordion2"
18
+ }, /*#__PURE__*/_react["default"].createElement("div", null, "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo lobortis eget.")))),
19
+ getByText = _render.getByText,
20
+ getAllByRole = _render.getAllByRole;
21
+ expect(getAllByRole("button")[0].getAttribute("aria-expanded")).toBe("false");
22
+ expect(getAllByRole("button")[1].getAttribute("aria-expanded")).toBe("false");
23
+ _react2.fireEvent.click(getByText("Accordion1"));
24
+ expect(onActiveChange).toHaveBeenCalled();
25
+ expect(getAllByRole("button")[0].getAttribute("aria-expanded")).toBe("true");
26
+ expect(getAllByRole("button")[1].getAttribute("aria-expanded")).toBe("false");
27
+ });
28
+ test("Uncontrolled accordion group renders initially with an accordion expanded using defaultIndexActive", function () {
29
+ var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_AccordionGroup["default"], {
30
+ defaultIndexActive: 1
31
+ }, /*#__PURE__*/_react["default"].createElement(_AccordionGroup["default"].Accordion, {
32
+ label: "Accordion1"
33
+ }, /*#__PURE__*/_react["default"].createElement("div", null, "First accordion")), /*#__PURE__*/_react["default"].createElement(_AccordionGroup["default"].Accordion, {
34
+ label: "Accordion2"
35
+ }, /*#__PURE__*/_react["default"].createElement("div", null, "Second accordion")))),
36
+ queryByText = _render2.queryByText,
37
+ getByText = _render2.getByText,
38
+ getAllByRole = _render2.getAllByRole;
39
+ expect(getAllByRole("button")[0].getAttribute("aria-expanded")).toBe("false");
40
+ expect(getAllByRole("button")[1].getAttribute("aria-expanded")).toBe("true");
41
+ expect(getByText("Second accordion")).toBeTruthy();
42
+ expect(queryByText("First accordion")).toBeFalsy();
43
+ });
44
+ test("Controlled accordion with indexActive change", function () {
45
+ var onActiveChange = jest.fn();
46
+ var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_AccordionGroup["default"], {
47
+ margin: "large",
48
+ indexActive: 1,
49
+ onActiveChange: onActiveChange
50
+ }, /*#__PURE__*/_react["default"].createElement(_AccordionGroup["default"].Accordion, {
51
+ label: "Accordion1",
52
+ margin: "large"
53
+ }, /*#__PURE__*/_react["default"].createElement("div", null, "Text1")), /*#__PURE__*/_react["default"].createElement(_AccordionGroup["default"].Accordion, {
54
+ label: "Accordion2"
55
+ }, /*#__PURE__*/_react["default"].createElement("div", null, "Text2")))),
56
+ queryByText = _render3.queryByText,
57
+ getByText = _render3.getByText,
58
+ getAllByRole = _render3.getAllByRole,
59
+ rerender = _render3.rerender;
60
+ expect(queryByText("Text1")).toBeFalsy();
61
+ expect(getByText("Text2")).toBeTruthy();
62
+ _react2.fireEvent.click(getByText("Accordion1"));
63
+ _react2.fireEvent.click(getByText("Accordion2"));
64
+ expect(onActiveChange.mock.calls[0][0]).toBe(0);
65
+ expect(onActiveChange.mock.calls[1][0]).toBe(1);
66
+ expect(getAllByRole("button")[0].getAttribute("aria-expanded")).toBe("false");
67
+ expect(getAllByRole("button")[1].getAttribute("aria-expanded")).toBe("true");
68
+ rerender( /*#__PURE__*/_react["default"].createElement(_AccordionGroup["default"], {
69
+ margin: "large",
70
+ indexActive: 0,
71
+ onActiveChange: onActiveChange
72
+ }, /*#__PURE__*/_react["default"].createElement(_AccordionGroup["default"].Accordion, {
73
+ label: "Accordion1",
74
+ margin: "large"
75
+ }, /*#__PURE__*/_react["default"].createElement("div", null, "Text1")), /*#__PURE__*/_react["default"].createElement(_AccordionGroup["default"].Accordion, {
76
+ label: "Accordion2"
77
+ }, /*#__PURE__*/_react["default"].createElement("div", null, "Text2"))));
78
+ expect(getAllByRole("button")[0].getAttribute("aria-expanded")).toBe("true");
79
+ expect(getAllByRole("button")[1].getAttribute("aria-expanded")).toBe("false");
80
+ });
81
+ test("Disabled uncontrolled accordion group", function () {
82
+ var onActiveChange = jest.fn();
83
+ var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_AccordionGroup["default"], {
84
+ margin: "large",
85
+ onActiveChange: onActiveChange,
86
+ disabled: true
87
+ }, /*#__PURE__*/_react["default"].createElement(_AccordionGroup["default"].Accordion, {
88
+ label: "Accordion1",
89
+ margin: "large"
90
+ }, /*#__PURE__*/_react["default"].createElement("div", null, "Text1")), /*#__PURE__*/_react["default"].createElement(_AccordionGroup["default"].Accordion, {
91
+ label: "Accordion2"
92
+ }, /*#__PURE__*/_react["default"].createElement("div", null, "Text2")))),
93
+ getByText = _render4.getByText;
94
+ _react2.fireEvent.click(getByText("Accordion1"));
95
+ _react2.fireEvent.click(getByText("Accordion2"));
96
+ expect(onActiveChange).toHaveBeenCalledTimes(0);
97
+ });
98
+ });
@@ -0,0 +1,4 @@
1
+ /// <reference types="react" />
2
+ import { AccordionPropsType } from "./types";
3
+ declare const AccordionGroupAccordion: ({ ...childProps }: AccordionPropsType) => JSX.Element;
4
+ export default AccordionGroupAccordion;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+ var _objectDestructuringEmpty2 = _interopRequireDefault(require("@babel/runtime/helpers/objectDestructuringEmpty"));
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+ var _react = _interopRequireWildcard(require("react"));
12
+ var _Accordion = _interopRequireDefault(require("../accordion/Accordion"));
13
+ var _AccordionGroup = require("./AccordionGroup");
14
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
15
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
16
+ var AccordionGroupAccordion = function AccordionGroupAccordion(_ref) {
17
+ var childProps = (0, _extends2["default"])({}, ((0, _objectDestructuringEmpty2["default"])(_ref), _ref));
18
+ var _useContext = (0, _react.useContext)(_AccordionGroup.AccordionGroupAccordionContext),
19
+ activeIndex = _useContext.activeIndex,
20
+ handlerActiveChange = _useContext.handlerActiveChange,
21
+ disabled = _useContext.disabled,
22
+ index = _useContext.index;
23
+ return /*#__PURE__*/_react["default"].createElement(_Accordion["default"], (0, _extends2["default"])({
24
+ isExpanded: activeIndex === index,
25
+ onChange: function onChange() {
26
+ handlerActiveChange(index);
27
+ },
28
+ disabled: disabled
29
+ }, childProps), childProps.children);
30
+ };
31
+ var _default = exports["default"] = AccordionGroupAccordion;
@@ -1,31 +1,21 @@
1
1
  /// <reference types="react" />
2
- declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
3
- declare type Margin = {
2
+ type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
3
+ type Margin = {
4
4
  top?: Space;
5
5
  bottom?: Space;
6
6
  left?: Space;
7
7
  right?: Space;
8
8
  };
9
- declare type Padding = {
10
- top?: Space;
11
- bottom?: Space;
12
- left?: Space;
13
- right?: Space;
14
- };
15
- declare type SVG = React.SVGProps<SVGSVGElement> | React.FunctionComponent<React.SVGProps<SVGSVGElement>>;
16
- export declare type AccordionPropsType = {
9
+ type SVG = React.ReactNode & React.SVGProps<SVGSVGElement>;
10
+ export type AccordionPropsType = {
17
11
  /**
18
12
  * The panel label.
19
13
  */
20
- label?: string;
21
- /**
22
- * Element used as the icon that will be placed next to panel label.
23
- */
24
- icon?: SVG;
14
+ label: string;
25
15
  /**
26
- * @deprecated URL of the icon that will be placed next to panel label.
16
+ * Element or path used as the icon that will be placed next to panel label.
27
17
  */
28
- iconSrc?: string;
18
+ icon?: string | SVG;
29
19
  /**
30
20
  * Assistive text to be placed on the right side of the panel.
31
21
  */
@@ -34,18 +24,17 @@ export declare type AccordionPropsType = {
34
24
  * If true, the component will be disabled.
35
25
  */
36
26
  disabled?: boolean;
37
- /**
38
- * Size of the padding to be applied to the custom area ('xxsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge').
39
- * You can pass an object with 'top', 'bottom', 'left' and 'right' properties in order to specify different padding sizes.
40
- */
41
- padding?: Space | Padding;
42
27
  /**
43
28
  * The expanded panel of the accordion. This area can be used to render
44
29
  * custom content.
45
30
  */
46
31
  children: React.ReactNode;
47
32
  };
48
- declare type Props = {
33
+ type Props = {
34
+ /**
35
+ * Initially active accordion, only when it is uncontrolled.
36
+ */
37
+ defaultIndexActive?: number;
49
38
  /**
50
39
  * The index of the active accordion. If undefined, the component will be uncontrolled and the active accordion will be managed internally by the component.
51
40
  * If null, the component will be controlled and all accordions will be closed.
@@ -69,4 +58,10 @@ declare type Props = {
69
58
  */
70
59
  children: React.ReactElement<AccordionPropsType>[] | React.ReactElement<AccordionPropsType>;
71
60
  };
61
+ export type AccordionGroupAccordionContextProps = {
62
+ activeIndex: number;
63
+ handlerActiveChange: (index: number) => void;
64
+ disabled: boolean;
65
+ index: number;
66
+ };
72
67
  export default Props;
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ import ActionIconProps from "./types";
3
+ declare const DxcActionIcon: React.ForwardRefExoticComponent<ActionIconProps & React.RefAttributes<HTMLButtonElement>>;
4
+ export default DxcActionIcon;
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = void 0;
8
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
11
+ var _templateObject;
12
+ var DxcActionIcon = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
13
+ var _ref$disabled = _ref.disabled,
14
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
15
+ title = _ref.title,
16
+ icon = _ref.icon,
17
+ onClick = _ref.onClick,
18
+ tabIndex = _ref.tabIndex;
19
+ return /*#__PURE__*/_react["default"].createElement(ActionIcon, {
20
+ "aria-label": title,
21
+ disabled: disabled,
22
+ onClick: onClick,
23
+ onMouseDown: function onMouseDown(event) {
24
+ event.stopPropagation();
25
+ },
26
+ tabIndex: tabIndex,
27
+ title: title,
28
+ type: "button",
29
+ ref: ref
30
+ }, typeof icon === "string" ? /*#__PURE__*/_react["default"].createElement("img", {
31
+ src: icon
32
+ }) : icon);
33
+ });
34
+ var ActionIcon = _styledComponents["default"].button(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n border: none;\n border-radius: 2px;\n width: 24px;\n height: 24px;\n padding: 3px;\n ", "\n\n box-shadow: 0 0 0 2px transparent;\n background-color: ", ";\n color: ", ";\n\n ", "\n\n img, svg {\n width: 16px;\n height: 16px;\n }\n"])), function (props) {
35
+ return props.disabled ? "cursor: not-allowed;" : "cursor: pointer;";
36
+ }, function (props) {
37
+ return props.disabled ? props.theme.disabledActionBackgroundColor : props.theme.actionBackgroundColor;
38
+ }, function (props) {
39
+ return props.disabled ? props.theme.disabledActionIconColor : props.theme.actionIconColor;
40
+ }, function (props) {
41
+ return !props.disabled && "\n &:focus,\n &:focus-visible {\n outline: none;\n box-shadow: 0 0 0 2px ".concat(props.theme.focusActionBorderColor, ";\n color: ").concat(props.theme.focusActionIconColor, ";\n }\n &:hover {\n background-color: ").concat(props.theme.hoverActionBackgroundColor, ";\n color: ").concat(props.theme.hoverActionIconColor, ";\n }\n &:active {\n background-color: ").concat(props.theme.activeActionBackgroundColor, ";\n color: ").concat(props.theme.activeActionIconColor, ";\n }\n ");
42
+ });
43
+ var _default = exports["default"] = DxcActionIcon;
@@ -0,0 +1,26 @@
1
+ /// <reference types="react" />
2
+ type SVG = React.ReactNode & React.SVGProps<SVGSVGElement>;
3
+ type Props = {
4
+ /**
5
+ * If true, the component will be disabled.
6
+ */
7
+ disabled?: boolean;
8
+ /**
9
+ * Value for the HTML properties title and aria-label.
10
+ */
11
+ title: string;
12
+ /**
13
+ * Element or path used as the icon that will be placed next to the label.
14
+ */
15
+ icon: string | SVG;
16
+ /**
17
+ * This function will be called when the user clicks the button.
18
+ */
19
+ onClick?: () => void;
20
+ /**
21
+ * Value of the tabindex attribute.
22
+ */
23
+ tabIndex?: number;
24
+ };
25
+ export type RefType = HTMLButtonElement;
26
+ export default Props;