@dxc-technology/halstack-react 0.0.0-12908ef → 0.0.0-1300a09

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 (399) hide show
  1. package/BackgroundColorContext.d.ts +10 -0
  2. package/BackgroundColorContext.js +47 -0
  3. package/HalstackContext.d.ts +12 -0
  4. package/HalstackContext.js +295 -0
  5. package/accordion/Accordion.d.ts +4 -0
  6. package/accordion/Accordion.js +226 -0
  7. package/accordion/Accordion.stories.tsx +307 -0
  8. package/accordion/Accordion.test.js +72 -0
  9. package/accordion/types.d.ts +68 -0
  10. package/accordion/types.js +5 -0
  11. package/accordion-group/AccordionGroup.d.ts +7 -0
  12. package/accordion-group/AccordionGroup.js +169 -0
  13. package/accordion-group/AccordionGroup.stories.tsx +225 -0
  14. package/accordion-group/AccordionGroup.test.js +151 -0
  15. package/accordion-group/types.d.ts +72 -0
  16. package/accordion-group/types.js +5 -0
  17. package/alert/Alert.d.ts +4 -0
  18. package/{dist/alert → alert}/Alert.js +43 -153
  19. package/alert/Alert.stories.tsx +170 -0
  20. package/alert/Alert.test.js +92 -0
  21. package/alert/types.d.ts +49 -0
  22. package/alert/types.js +5 -0
  23. package/badge/Badge.d.ts +4 -0
  24. package/badge/Badge.js +61 -0
  25. package/badge/types.d.ts +5 -0
  26. package/badge/types.js +5 -0
  27. package/bleed/Bleed.d.ts +3 -0
  28. package/bleed/Bleed.js +51 -0
  29. package/bleed/Bleed.stories.tsx +341 -0
  30. package/bleed/types.d.ts +37 -0
  31. package/bleed/types.js +5 -0
  32. package/box/Box.d.ts +4 -0
  33. package/box/Box.js +116 -0
  34. package/box/Box.stories.tsx +132 -0
  35. package/box/Box.test.js +18 -0
  36. package/box/types.d.ts +43 -0
  37. package/box/types.js +5 -0
  38. package/button/Button.d.ts +4 -0
  39. package/{dist/button → button}/Button.js +33 -97
  40. package/button/Button.stories.tsx +274 -0
  41. package/button/Button.test.js +35 -0
  42. package/button/types.d.ts +53 -0
  43. package/button/types.js +5 -0
  44. package/card/Card.d.ts +4 -0
  45. package/card/Card.js +161 -0
  46. package/card/Card.stories.tsx +201 -0
  47. package/card/Card.test.js +50 -0
  48. package/card/ice-cream.jpg +0 -0
  49. package/card/types.d.ts +67 -0
  50. package/card/types.js +5 -0
  51. package/checkbox/Checkbox.d.ts +4 -0
  52. package/{dist/checkbox → checkbox}/Checkbox.js +55 -98
  53. package/checkbox/Checkbox.stories.tsx +188 -0
  54. package/checkbox/Checkbox.test.js +78 -0
  55. package/checkbox/types.d.ts +64 -0
  56. package/checkbox/types.js +5 -0
  57. package/chip/Chip.d.ts +4 -0
  58. package/chip/Chip.js +161 -0
  59. package/chip/Chip.stories.tsx +119 -0
  60. package/chip/Chip.test.js +56 -0
  61. package/chip/types.d.ts +45 -0
  62. package/chip/types.js +5 -0
  63. package/{dist/common → common}/OpenSans.css +0 -0
  64. package/{dist/common → common}/RequiredComponent.js +3 -11
  65. package/{dist/common → common}/fonts/OpenSans-Bold.ttf +0 -0
  66. package/{dist/common → common}/fonts/OpenSans-BoldItalic.ttf +0 -0
  67. package/{dist/common → common}/fonts/OpenSans-ExtraBold.ttf +0 -0
  68. package/{dist/common → common}/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
  69. package/{dist/common → common}/fonts/OpenSans-Italic.ttf +0 -0
  70. package/{dist/common → common}/fonts/OpenSans-Light.ttf +0 -0
  71. package/{dist/common → common}/fonts/OpenSans-LightItalic.ttf +0 -0
  72. package/{dist/common → common}/fonts/OpenSans-Regular.ttf +0 -0
  73. package/{dist/common → common}/fonts/OpenSans-SemiBold.ttf +0 -0
  74. package/{dist/common → common}/fonts/OpenSans-SemiBoldItalic.ttf +0 -0
  75. package/{dist/common → common}/utils.js +0 -0
  76. package/{dist/common → common}/variables.js +319 -420
  77. package/date-input/DateInput.d.ts +4 -0
  78. package/{dist/date-input → date-input}/DateInput.js +80 -108
  79. package/date-input/DateInput.stories.tsx +138 -0
  80. package/date-input/DateInput.test.js +479 -0
  81. package/date-input/types.d.ts +107 -0
  82. package/date-input/types.js +5 -0
  83. package/dialog/Dialog.d.ts +4 -0
  84. package/dialog/Dialog.js +138 -0
  85. package/dialog/Dialog.stories.tsx +212 -0
  86. package/dialog/Dialog.test.js +40 -0
  87. package/dialog/types.d.ts +43 -0
  88. package/dialog/types.js +5 -0
  89. package/dropdown/Dropdown.d.ts +4 -0
  90. package/{dist/dropdown → dropdown}/Dropdown.js +54 -207
  91. package/dropdown/Dropdown.stories.tsx +249 -0
  92. package/dropdown/Dropdown.test.js +189 -0
  93. package/dropdown/types.d.ts +80 -0
  94. package/dropdown/types.js +5 -0
  95. package/file-input/FileInput.d.ts +4 -0
  96. package/file-input/FileInput.js +593 -0
  97. package/file-input/FileInput.stories.tsx +507 -0
  98. package/file-input/FileInput.test.js +457 -0
  99. package/file-input/FileItem.d.ts +14 -0
  100. package/file-input/FileItem.js +186 -0
  101. package/file-input/types.d.ts +112 -0
  102. package/file-input/types.js +5 -0
  103. package/footer/Footer.d.ts +4 -0
  104. package/footer/Footer.js +185 -0
  105. package/footer/Footer.stories.tsx +130 -0
  106. package/footer/Footer.test.js +109 -0
  107. package/footer/Icons.d.ts +2 -0
  108. package/{dist/footer → footer}/Icons.js +16 -16
  109. package/footer/types.d.ts +65 -0
  110. package/footer/types.js +5 -0
  111. package/header/Header.d.ts +7 -0
  112. package/header/Header.js +303 -0
  113. package/header/Header.stories.tsx +172 -0
  114. package/header/Header.test.js +79 -0
  115. package/header/Icons.d.ts +2 -0
  116. package/{dist/header → header}/Icons.js +7 -32
  117. package/header/types.d.ts +47 -0
  118. package/header/types.js +5 -0
  119. package/heading/Heading.d.ts +4 -0
  120. package/{dist/heading → heading}/Heading.js +25 -96
  121. package/heading/Heading.stories.tsx +54 -0
  122. package/heading/Heading.test.js +186 -0
  123. package/heading/types.d.ts +33 -0
  124. package/heading/types.js +5 -0
  125. package/inset/Inset.d.ts +3 -0
  126. package/inset/Inset.js +51 -0
  127. package/inset/Inset.stories.tsx +229 -0
  128. package/inset/types.d.ts +37 -0
  129. package/inset/types.js +5 -0
  130. package/layout/ApplicationLayout.d.ts +11 -0
  131. package/layout/ApplicationLayout.js +199 -0
  132. package/layout/ApplicationLayout.stories.tsx +126 -0
  133. package/layout/Icons.d.ts +5 -0
  134. package/{dist/layout → layout}/Icons.js +19 -8
  135. package/layout/SidenavContext.d.ts +5 -0
  136. package/layout/SidenavContext.js +19 -0
  137. package/layout/types.d.ts +52 -0
  138. package/layout/types.js +5 -0
  139. package/link/Link.d.ts +4 -0
  140. package/link/Link.js +136 -0
  141. package/link/Link.stories.tsx +186 -0
  142. package/link/Link.test.js +83 -0
  143. package/link/types.d.ts +54 -0
  144. package/link/types.js +5 -0
  145. package/list/List.d.ts +4 -0
  146. package/list/List.js +47 -0
  147. package/list/List.stories.tsx +89 -0
  148. package/list/types.d.ts +7 -0
  149. package/list/types.js +5 -0
  150. package/main.d.ts +47 -0
  151. package/{dist/main.js → main.js} +133 -99
  152. package/number-input/NumberInput.d.ts +4 -0
  153. package/number-input/NumberInput.js +76 -0
  154. package/number-input/NumberInput.stories.tsx +115 -0
  155. package/number-input/NumberInput.test.js +506 -0
  156. package/number-input/NumberInputContext.d.ts +4 -0
  157. package/{dist/number-input → number-input}/NumberInputContext.js +5 -2
  158. package/number-input/numberInputContextTypes.d.ts +19 -0
  159. package/number-input/numberInputContextTypes.js +5 -0
  160. package/number-input/types.d.ts +124 -0
  161. package/number-input/types.js +5 -0
  162. package/package.json +35 -20
  163. package/{dist/paginator → paginator}/Icons.js +9 -9
  164. package/paginator/Paginator.d.ts +4 -0
  165. package/paginator/Paginator.js +171 -0
  166. package/paginator/Paginator.stories.tsx +63 -0
  167. package/paginator/Paginator.test.js +308 -0
  168. package/paginator/types.d.ts +38 -0
  169. package/paginator/types.js +5 -0
  170. package/password-input/PasswordInput.d.ts +4 -0
  171. package/{dist/password-input → password-input}/PasswordInput.js +45 -77
  172. package/password-input/PasswordInput.stories.tsx +131 -0
  173. package/password-input/PasswordInput.test.js +180 -0
  174. package/password-input/types.d.ts +110 -0
  175. package/password-input/types.js +5 -0
  176. package/progress-bar/ProgressBar.d.ts +4 -0
  177. package/{dist/progress-bar → progress-bar}/ProgressBar.js +23 -95
  178. package/progress-bar/ProgressBar.stories.jsx +58 -0
  179. package/progress-bar/ProgressBar.test.js +65 -0
  180. package/progress-bar/types.d.ts +37 -0
  181. package/progress-bar/types.js +5 -0
  182. package/quick-nav/QuickNav.d.ts +4 -0
  183. package/quick-nav/QuickNav.js +116 -0
  184. package/quick-nav/QuickNav.stories.tsx +264 -0
  185. package/quick-nav/types.d.ts +21 -0
  186. package/quick-nav/types.js +5 -0
  187. package/radio-group/Radio.d.ts +4 -0
  188. package/radio-group/Radio.js +141 -0
  189. package/radio-group/RadioGroup.d.ts +4 -0
  190. package/radio-group/RadioGroup.js +283 -0
  191. package/radio-group/RadioGroup.stories.tsx +100 -0
  192. package/radio-group/RadioGroup.test.js +695 -0
  193. package/radio-group/types.d.ts +114 -0
  194. package/radio-group/types.js +5 -0
  195. package/resultsetTable/ResultsetTable.d.ts +4 -0
  196. package/{dist/resultsetTable → resultsetTable}/ResultsetTable.js +43 -147
  197. package/resultsetTable/ResultsetTable.stories.tsx +275 -0
  198. package/resultsetTable/ResultsetTable.test.js +348 -0
  199. package/resultsetTable/types.d.ts +67 -0
  200. package/resultsetTable/types.js +5 -0
  201. package/row/Row.d.ts +3 -0
  202. package/row/Row.js +127 -0
  203. package/row/Row.stories.tsx +237 -0
  204. package/row/types.d.ts +28 -0
  205. package/row/types.js +5 -0
  206. package/select/Icons.d.ts +10 -0
  207. package/select/Icons.js +93 -0
  208. package/select/Listbox.d.ts +4 -0
  209. package/select/Listbox.js +175 -0
  210. package/select/Option.d.ts +4 -0
  211. package/select/Option.js +110 -0
  212. package/select/Select.d.ts +4 -0
  213. package/select/Select.js +660 -0
  214. package/select/Select.stories.tsx +626 -0
  215. package/select/Select.test.js +2162 -0
  216. package/select/types.d.ts +212 -0
  217. package/select/types.js +5 -0
  218. package/sidenav/Sidenav.d.ts +9 -0
  219. package/sidenav/Sidenav.js +147 -0
  220. package/sidenav/Sidenav.stories.tsx +182 -0
  221. package/sidenav/Sidenav.test.js +56 -0
  222. package/sidenav/types.d.ts +50 -0
  223. package/sidenav/types.js +5 -0
  224. package/slider/Slider.d.ts +4 -0
  225. package/{dist/slider → slider}/Slider.js +76 -162
  226. package/slider/Slider.stories.tsx +177 -0
  227. package/slider/Slider.test.js +150 -0
  228. package/slider/types.d.ts +82 -0
  229. package/slider/types.js +5 -0
  230. package/spinner/Spinner.d.ts +4 -0
  231. package/spinner/Spinner.js +250 -0
  232. package/spinner/Spinner.stories.jsx +103 -0
  233. package/spinner/Spinner.test.js +64 -0
  234. package/spinner/types.d.ts +32 -0
  235. package/spinner/types.js +5 -0
  236. package/stack/Stack.d.ts +4 -0
  237. package/stack/Stack.js +56 -0
  238. package/stack/Stack.stories.tsx +263 -0
  239. package/stack/types.d.ts +32 -0
  240. package/stack/types.js +5 -0
  241. package/switch/Switch.d.ts +4 -0
  242. package/switch/Switch.js +195 -0
  243. package/switch/Switch.stories.tsx +160 -0
  244. package/switch/Switch.test.js +98 -0
  245. package/switch/types.d.ts +62 -0
  246. package/switch/types.js +5 -0
  247. package/table/Table.d.ts +4 -0
  248. package/{dist/table → table}/Table.js +12 -26
  249. package/table/Table.stories.jsx +277 -0
  250. package/table/Table.test.js +26 -0
  251. package/table/types.d.ts +21 -0
  252. package/table/types.js +5 -0
  253. package/tabs/Tabs.d.ts +4 -0
  254. package/tabs/Tabs.js +211 -0
  255. package/tabs/Tabs.stories.tsx +112 -0
  256. package/tabs/Tabs.test.js +140 -0
  257. package/tabs/types.d.ts +82 -0
  258. package/tabs/types.js +5 -0
  259. package/tabs-nav/NavTabs.d.ts +8 -0
  260. package/tabs-nav/NavTabs.js +125 -0
  261. package/tabs-nav/NavTabs.stories.tsx +170 -0
  262. package/tabs-nav/NavTabs.test.js +82 -0
  263. package/tabs-nav/Tab.d.ts +4 -0
  264. package/tabs-nav/Tab.js +132 -0
  265. package/tabs-nav/types.d.ts +53 -0
  266. package/tabs-nav/types.js +5 -0
  267. package/tag/Tag.d.ts +4 -0
  268. package/tag/Tag.js +183 -0
  269. package/tag/Tag.stories.tsx +142 -0
  270. package/tag/Tag.test.js +60 -0
  271. package/tag/types.d.ts +69 -0
  272. package/tag/types.js +5 -0
  273. package/text/Text.d.ts +7 -0
  274. package/text/Text.js +30 -0
  275. package/text/Text.stories.tsx +19 -0
  276. package/text-input/Suggestion.d.ts +4 -0
  277. package/text-input/Suggestion.js +55 -0
  278. package/text-input/TextInput.d.ts +4 -0
  279. package/{dist/text-input → text-input}/TextInput.js +284 -485
  280. package/text-input/TextInput.stories.tsx +474 -0
  281. package/text-input/TextInput.test.js +1712 -0
  282. package/text-input/types.d.ts +178 -0
  283. package/text-input/types.js +5 -0
  284. package/textarea/Textarea.d.ts +4 -0
  285. package/{dist/textarea → textarea}/Textarea.js +50 -142
  286. package/textarea/Textarea.stories.jsx +157 -0
  287. package/textarea/Textarea.test.js +437 -0
  288. package/textarea/types.d.ts +137 -0
  289. package/textarea/types.js +5 -0
  290. package/toggle-group/ToggleGroup.d.ts +4 -0
  291. package/{dist/toggle-group → toggle-group}/ToggleGroup.js +36 -148
  292. package/toggle-group/ToggleGroup.stories.tsx +173 -0
  293. package/toggle-group/ToggleGroup.test.js +156 -0
  294. package/toggle-group/types.d.ts +105 -0
  295. package/toggle-group/types.js +5 -0
  296. package/useTheme.d.ts +2 -0
  297. package/{dist/useTheme.js → useTheme.js} +2 -2
  298. package/useTranslatedLabels.d.ts +2 -0
  299. package/useTranslatedLabels.js +20 -0
  300. package/wizard/Wizard.d.ts +4 -0
  301. package/wizard/Wizard.js +292 -0
  302. package/wizard/Wizard.stories.tsx +214 -0
  303. package/wizard/Wizard.test.js +141 -0
  304. package/wizard/types.d.ts +64 -0
  305. package/wizard/types.js +5 -0
  306. package/README.md +0 -66
  307. package/babel.config.js +0 -8
  308. package/dist/BackgroundColorContext.js +0 -46
  309. package/dist/ThemeContext.js +0 -250
  310. package/dist/V3Textarea/V3Textarea.js +0 -264
  311. package/dist/accordion/Accordion.js +0 -353
  312. package/dist/accordion-group/AccordionGroup.js +0 -186
  313. package/dist/alert/index.d.ts +0 -51
  314. package/dist/badge/Badge.js +0 -63
  315. package/dist/box/Box.js +0 -156
  316. package/dist/card/Card.js +0 -254
  317. package/dist/chip/Chip.js +0 -265
  318. package/dist/date/Date.js +0 -379
  319. package/dist/date-input/index.d.ts +0 -95
  320. package/dist/dialog/Dialog.js +0 -218
  321. package/dist/file-input/FileInput.js +0 -644
  322. package/dist/file-input/FileItem.js +0 -280
  323. package/dist/file-input/index.d.ts +0 -81
  324. package/dist/footer/Footer.js +0 -421
  325. package/dist/header/Header.js +0 -470
  326. package/dist/input-text/Icons.js +0 -22
  327. package/dist/input-text/InputText.js +0 -705
  328. package/dist/layout/ApplicationLayout.js +0 -327
  329. package/dist/link/Link.js +0 -237
  330. package/dist/main.d.ts +0 -8
  331. package/dist/new-select/NewSelect.js +0 -836
  332. package/dist/new-select/index.d.ts +0 -53
  333. package/dist/number-input/NumberInput.js +0 -136
  334. package/dist/number-input/index.d.ts +0 -113
  335. package/dist/paginator/Paginator.js +0 -283
  336. package/dist/password-input/index.d.ts +0 -94
  337. package/dist/radio/Radio.js +0 -209
  338. package/dist/select/Select.js +0 -549
  339. package/dist/sidenav/Sidenav.js +0 -179
  340. package/dist/spinner/Spinner.js +0 -381
  341. package/dist/switch/Switch.js +0 -222
  342. package/dist/tabs/Tabs.js +0 -343
  343. package/dist/tag/Tag.js +0 -282
  344. package/dist/text-input/index.d.ts +0 -135
  345. package/dist/textarea/index.d.ts +0 -117
  346. package/dist/toggle/Toggle.js +0 -220
  347. package/dist/upload/Upload.js +0 -205
  348. package/dist/upload/buttons-upload/ButtonsUpload.js +0 -135
  349. package/dist/upload/buttons-upload/Icons.js +0 -40
  350. package/dist/upload/dragAndDropArea/DragAndDropArea.js +0 -329
  351. package/dist/upload/dragAndDropArea/Icons.js +0 -39
  352. package/dist/upload/file-upload/FileToUpload.js +0 -189
  353. package/dist/upload/file-upload/Icons.js +0 -66
  354. package/dist/upload/files-upload/FilesToUpload.js +0 -123
  355. package/dist/upload/transaction/Icons.js +0 -160
  356. package/dist/upload/transaction/Transaction.js +0 -148
  357. package/dist/upload/transactions/Transactions.js +0 -138
  358. package/dist/wizard/Icons.js +0 -65
  359. package/dist/wizard/Wizard.js +0 -405
  360. package/test/Accordion.test.js +0 -33
  361. package/test/AccordionGroup.test.js +0 -125
  362. package/test/Alert.test.js +0 -53
  363. package/test/Box.test.js +0 -10
  364. package/test/Button.test.js +0 -18
  365. package/test/Card.test.js +0 -30
  366. package/test/Checkbox.test.js +0 -45
  367. package/test/Chip.test.js +0 -25
  368. package/test/Date.test.js +0 -397
  369. package/test/DateInput.test.js +0 -242
  370. package/test/Dialog.test.js +0 -23
  371. package/test/Dropdown.test.js +0 -145
  372. package/test/FileInput.test.js +0 -201
  373. package/test/Footer.test.js +0 -94
  374. package/test/Header.test.js +0 -34
  375. package/test/Heading.test.js +0 -83
  376. package/test/InputText.test.js +0 -248
  377. package/test/Link.test.js +0 -43
  378. package/test/NumberInput.test.js +0 -259
  379. package/test/Paginator.test.js +0 -177
  380. package/test/PasswordInput.test.js +0 -83
  381. package/test/ProgressBar.test.js +0 -35
  382. package/test/Radio.test.js +0 -37
  383. package/test/ResultsetTable.test.js +0 -329
  384. package/test/Select.test.js +0 -212
  385. package/test/Sidenav.test.js +0 -45
  386. package/test/Slider.test.js +0 -74
  387. package/test/Spinner.test.js +0 -32
  388. package/test/Switch.test.js +0 -45
  389. package/test/Table.test.js +0 -36
  390. package/test/Tabs.test.js +0 -109
  391. package/test/Tag.test.js +0 -32
  392. package/test/TextInput.test.js +0 -732
  393. package/test/Textarea.test.js +0 -193
  394. package/test/ToggleGroup.test.js +0 -85
  395. package/test/Upload.test.js +0 -60
  396. package/test/V3TextArea.test.js +0 -51
  397. package/test/Wizard.test.js +0 -130
  398. package/test/mocks/pngMock.js +0 -1
  399. package/test/mocks/svgMock.js +0 -1
@@ -0,0 +1,226 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof3 = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports["default"] = void 0;
11
+
12
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
13
+
14
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
15
+
16
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
+
18
+ var _react = _interopRequireWildcard(require("react"));
19
+
20
+ var _styledComponents = _interopRequireWildcard(require("styled-components"));
21
+
22
+ var _ExpansionPanel = _interopRequireDefault(require("@material-ui/core/ExpansionPanel"));
23
+
24
+ var _ExpansionPanelSummary = _interopRequireDefault(require("@material-ui/core/ExpansionPanelSummary"));
25
+
26
+ var _ExpansionPanelDetails = _interopRequireDefault(require("@material-ui/core/ExpansionPanelDetails"));
27
+
28
+ var _ExpandMore = _interopRequireDefault(require("@material-ui/icons/ExpandMore"));
29
+
30
+ var _utils = require("../common/utils.js");
31
+
32
+ var _variables = require("../common/variables.js");
33
+
34
+ var _useTheme = _interopRequireDefault(require("../useTheme"));
35
+
36
+ var _BackgroundColorContext = require("../BackgroundColorContext");
37
+
38
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7;
39
+
40
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
41
+
42
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
43
+
44
+ var DxcAccordion = function DxcAccordion(_ref) {
45
+ var _ref$label = _ref.label,
46
+ label = _ref$label === void 0 ? "" : _ref$label,
47
+ defaultIsExpanded = _ref.defaultIsExpanded,
48
+ isExpanded = _ref.isExpanded,
49
+ icon = _ref.icon,
50
+ _ref$assistiveText = _ref.assistiveText,
51
+ assistiveText = _ref$assistiveText === void 0 ? "" : _ref$assistiveText,
52
+ _ref$disabled = _ref.disabled,
53
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
54
+ onChange = _ref.onChange,
55
+ children = _ref.children,
56
+ margin = _ref.margin,
57
+ padding = _ref.padding,
58
+ _ref$tabIndex = _ref.tabIndex,
59
+ tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
60
+
61
+ var _useState = (0, _react.useState)(defaultIsExpanded !== null && defaultIsExpanded !== void 0 ? defaultIsExpanded : false),
62
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
63
+ innerIsExpanded = _useState2[0],
64
+ setInnerIsExpanded = _useState2[1];
65
+
66
+ var colorsTheme = (0, _useTheme["default"])();
67
+
68
+ var handlerAccordion = function handlerAccordion() {
69
+ if (isExpanded == null) {
70
+ setInnerIsExpanded(!innerIsExpanded);
71
+ }
72
+
73
+ if (typeof onChange === "function") {
74
+ onChange(isExpanded == null ? !innerIsExpanded : !isExpanded);
75
+ }
76
+ };
77
+
78
+ return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
79
+ theme: colorsTheme.accordion
80
+ }, /*#__PURE__*/_react["default"].createElement(DXCAccordion, {
81
+ padding: padding,
82
+ margin: margin,
83
+ disabled: disabled,
84
+ icon: icon
85
+ }, /*#__PURE__*/_react["default"].createElement(_ExpansionPanel["default"], {
86
+ disabled: disabled,
87
+ onChange: handlerAccordion,
88
+ expanded: isExpanded != null ? isExpanded : innerIsExpanded
89
+ }, /*#__PURE__*/_react["default"].createElement(_ExpansionPanelSummary["default"], {
90
+ expandIcon: /*#__PURE__*/_react["default"].createElement(_ExpandMore["default"], null),
91
+ tabIndex: disabled ? -1 : tabIndex
92
+ }, /*#__PURE__*/_react["default"].createElement(AccordionInfo, {
93
+ disabled: disabled
94
+ }, icon && /*#__PURE__*/_react["default"].createElement(IconContainer, {
95
+ disabled: disabled
96
+ }, typeof icon === "string" ? /*#__PURE__*/_react["default"].createElement(AccordionIcon, {
97
+ src: icon
98
+ }) : icon), /*#__PURE__*/_react["default"].createElement(AccordionLabel, null, label)), assistiveText && /*#__PURE__*/_react["default"].createElement(AccordionAssistiveText, {
99
+ disabled: disabled
100
+ }, assistiveText)), /*#__PURE__*/_react["default"].createElement(_ExpansionPanelDetails["default"], null, /*#__PURE__*/_react["default"].createElement(AccordionContent, {
101
+ disabled: disabled
102
+ }, /*#__PURE__*/_react["default"].createElement(_BackgroundColorContext.BackgroundColorProvider, {
103
+ color: colorsTheme.accordion.backgroundColor
104
+ }, children))))));
105
+ };
106
+
107
+ var calculateWidth = function calculateWidth(margin) {
108
+ return "calc(100% - ".concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")");
109
+ };
110
+
111
+ var DXCAccordion = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n min-width: 280px;\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n width: ", ";\n cursor: ", ";\n\n .MuiPaper-root {\n min-width: 0;\n display: flex;\n left: 85px;\n background-color: ", " !important;\n box-shadow: ", ";\n position: static;\n width: 100%;\n border-radius: ", ";\n\n &.Mui-expanded {\n border-radius: ", ";\n }\n &.MuiExpansionPanel-root {\n display: flex;\n flex-direction: column;\n min-height: 48px;\n }\n &.MuiExpansionPanel-rounded {\n border-radius: ", ";\n }\n .MuiButtonBase-root.MuiExpansionPanelSummary-root {\n min-height: 48px;\n height: 48px;\n\n :focus {\n outline-color: ", ";\n outline-style: ", ";\n outline-width: ", ";\n background-color: ", ";\n }\n :hover {\n background-color: ", ";\n }\n :active {\n background-color: ", ";\n }\n &.Mui-disabled {\n opacity: 1;\n }\n }\n .MuiButtonBase-root {\n border-radius: ", ";\n\n &.Mui-expanded {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n .MuiSvgIcon-root {\n opacity: 1;\n }\n }\n &.MuiIconButton-root {\n height: auto;\n }\n .MuiExpansionPanelSummary-content {\n padding-top: ", ";\n padding-bottom: ", ";\n padding-right: ", ";\n padding-left: ", ";\n min-width: 0;\n &.Mui-expanded {\n div:nth-child(2) {\n opacity: 1;\n }\n }\n :hover {\n div {\n opacity: 1;\n }\n }\n }\n }\n .MuiTouchRipple-root {\n display: none;\n }\n }\n .MuiCollapse-hidden {\n display: none;\n }\n .MuiCollapse-container {\n border-radius: 0px 0px 4px 4px;\n cursor: default;\n width: 100%;\n }\n .MuiIconButton-label {\n & > .MuiSvgIcon-root {\n color: ", ";\n }\n }\n .MuiExpansionPanelDetails-root {\n padding: ", ";\n padding-top: ", ";\n padding-right: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n }\n"])), function (props) {
112
+ return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
113
+ }, function (props) {
114
+ return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.top ? _variables.spaces[props.margin.top] : "";
115
+ }, function (props) {
116
+ return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.right ? _variables.spaces[props.margin.right] : "";
117
+ }, function (props) {
118
+ return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.bottom ? _variables.spaces[props.margin.bottom] : "";
119
+ }, function (props) {
120
+ return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
121
+ }, function (props) {
122
+ return calculateWidth(props.margin);
123
+ }, function (props) {
124
+ return props.disabled && "not-allowed" || "pointer";
125
+ }, function (props) {
126
+ return props.theme.backgroundColor;
127
+ }, function (props) {
128
+ return "".concat(props.theme.boxShadowOffsetX, " ").concat(props.theme.boxShadowOffsetY, " ").concat(props.theme.boxShadowBlur, " ").concat(props.theme.boxShadowColor);
129
+ }, function (props) {
130
+ return props.theme.borderRadius;
131
+ }, function (props) {
132
+ return props.theme.borderRadius;
133
+ }, function (props) {
134
+ return props.theme.borderRadius;
135
+ }, function (props) {
136
+ return props.theme.focusBorderColor;
137
+ }, function (props) {
138
+ return props.theme.focusBorderStyle;
139
+ }, function (props) {
140
+ return props.theme.focusBorderThickness;
141
+ }, function (props) {
142
+ return props.theme.backgroundColor;
143
+ }, function (props) {
144
+ return "".concat(props.theme.hoverBackgroundColor);
145
+ }, function (props) {
146
+ return "".concat(props.theme.hoverBackgroundColor);
147
+ }, function (props) {
148
+ return props.theme.borderRadius;
149
+ }, function (props) {
150
+ return props.theme.titleLabelPaddingTop;
151
+ }, function (props) {
152
+ return props.theme.titleLabelPaddingBottom;
153
+ }, function (props) {
154
+ return props.theme.titleLabelPaddingRight;
155
+ }, function (props) {
156
+ return props.theme.titleLabelPaddingLeft;
157
+ }, function (props) {
158
+ return props.disabled ? props.theme.disabledArrowColor : props.theme.arrowColor;
159
+ }, function (props) {
160
+ return props.padding && (0, _typeof2["default"])(props.padding) !== "object" ? _variables.spaces[props.padding] : "0px";
161
+ }, function (props) {
162
+ return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.top ? _variables.spaces[props.padding.top] : "";
163
+ }, function (props) {
164
+ return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.right ? _variables.spaces[props.padding.right] : "";
165
+ }, function (props) {
166
+ return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.bottom ? _variables.spaces[props.padding.bottom] : "";
167
+ }, function (props) {
168
+ return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.left ? _variables.spaces[props.padding.left] : "";
169
+ });
170
+
171
+ var AccordionInfo = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n padding-left: ", ";\n padding-right: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n color: ", ";\n"])), function (props) {
172
+ return props.theme.titlePaddingLeft;
173
+ }, function (props) {
174
+ return props.theme.titlePaddingRight;
175
+ }, function (props) {
176
+ return props.theme.titleLabelFontFamily;
177
+ }, function (props) {
178
+ return props.theme.titleLabelFontSize;
179
+ }, function (props) {
180
+ return props.theme.titleLabelFontStyle;
181
+ }, function (props) {
182
+ return props.theme.titleFonLabeltWeight;
183
+ }, function (props) {
184
+ return props.disabled ? props.theme.disabledTitleLabelFontColor : props.theme.titleLabelFontColor;
185
+ });
186
+
187
+ var AccordionLabel = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])([""])));
188
+
189
+ var AccordionContent = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n width: 100%;\n"])));
190
+
191
+ var AccordionAssistiveText = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n padding-left: ", ";\n padding-right: ", ";\n font-size: ", ";\n font-family: ", ";\n font-style: ", ";\n font-weight: ", ";\n color: ", ";\n letter-spacing: ", ";\n flex: 1;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n min-width: ", ";\n text-align: end;\n"])), function (props) {
192
+ return props.theme.assistiveTextPaddingLeft;
193
+ }, function (props) {
194
+ return props.theme.assistiveTextPaddingRight;
195
+ }, function (props) {
196
+ return props.theme.assistiveTextFontSize;
197
+ }, function (props) {
198
+ return props.theme.assistiveTextFontFamily;
199
+ }, function (props) {
200
+ return props.theme.assistiveTextFontStyle;
201
+ }, function (props) {
202
+ return props.theme.assistiveTextFontWeight;
203
+ }, function (props) {
204
+ return props.disabled ? props.theme.disabledAssistiveTextFontColor : props.theme.assistiveTextFontColor;
205
+ }, function (props) {
206
+ return props.theme.assistiveTextLetterSpacing;
207
+ }, function (props) {
208
+ return props.theme.assistiveTextMinWidth;
209
+ });
210
+
211
+ var IconContainer = _styledComponents["default"].div(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n height: ", ";\n width: ", ";\n margin-left: ", ";\n margin-right: ", ";\n overflow: hidden;\n color: ", ";\n\n img,\n svg {\n height: 100%;\n width: 100%;\n }\n"])), function (props) {
212
+ return props.theme.iconSize;
213
+ }, function (props) {
214
+ return props.theme.iconSize;
215
+ }, function (props) {
216
+ return props.theme.iconMarginLeft;
217
+ }, function (props) {
218
+ return props.theme.iconMarginRigth;
219
+ }, function (props) {
220
+ return props.disabled ? props.theme.disabledIconColor : props.theme.iconColor;
221
+ });
222
+
223
+ var AccordionIcon = _styledComponents["default"].img(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])([""])));
224
+
225
+ var _default = DxcAccordion;
226
+ exports["default"] = _default;
@@ -0,0 +1,307 @@
1
+ import React from "react";
2
+ import DxcAccordion from "./Accordion";
3
+ import DxcHeading from "../heading/Heading";
4
+ import DxcTextInput from "../text-input/TextInput";
5
+ import DxcButton from "../button/Button";
6
+ import Title from "../../.storybook/components/Title";
7
+ import ExampleContainer from "../../.storybook/components/ExampleContainer";
8
+ import { HalstackProvider } from "../HalstackContext";
9
+
10
+ export default {
11
+ title: "Accordion",
12
+ component: DxcAccordion,
13
+ };
14
+
15
+ const folderIcon = (
16
+ <svg
17
+ xmlns="http://www.w3.org/2000/svg"
18
+ enableBackground="new 0 0 24 24"
19
+ height="24px"
20
+ viewBox="0 0 24 24"
21
+ width="24px"
22
+ fill="currentColor"
23
+ >
24
+ <g>
25
+ <rect fill="none" height="24" width="24" />
26
+ </g>
27
+ <g>
28
+ <path d="M20,6h-8l-2-2H4C2.9,4,2.01,4.9,2.01,6L2,18c0,1.1,0.9,2,2,2h16c1.1,0,2-0.9,2-2V8C22,6.9,21.1,6,20,6z M16,16h2v-2h-2v-2 h2v-2h-2V8h4v10h-4V16z M16,16h-2v2H4V6h5.17l2,2H14v2h2v2h-2v2h2V16z" />
29
+ </g>
30
+ </svg>
31
+ );
32
+
33
+ const thumbIcon = (
34
+ <svg xmlns="http://www.w3.org/2000/svg" height="48px" viewBox="0 0 24 24" width="48px" fill="currentColor">
35
+ <path d="M0 0h24v24H0V0z" fill="none" />
36
+ <path d="M1 21h4V9H1v12zm22-11c0-1.1-.9-2-2-2h-6.31l.95-4.57.03-.32c0-.41-.17-.79-.44-1.06L14.17 1 7.59 7.59C7.22 7.95 7 8.45 7 9v10c0 1.1.9 2 2 2h9c.83 0 1.54-.5 1.84-1.22l3.02-7.05c.09-.23.14-.47.14-.73v-2z" />
37
+ </svg>
38
+ );
39
+
40
+ const advancedTheme = {
41
+ accordion: {
42
+ backgroundColor: "#000000",
43
+ assistiveTextFontColor: "#ffffff",
44
+ titleLabelFontColor: "#ffffff",
45
+ arrowColor: "#5f249f",
46
+ iconColor: "#5f249f",
47
+ },
48
+ };
49
+
50
+ export const Chromatic = () => (
51
+ <>
52
+ <Title title="Component anatomy" theme="light" level={2} />
53
+ <ExampleContainer>
54
+ <Title title="With label" theme="light" level={4} />
55
+ <DxcAccordion label="Accordion">
56
+ <div>
57
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo
58
+ lobortis eget.
59
+ </div>
60
+ </DxcAccordion>
61
+ </ExampleContainer>
62
+ <ExampleContainer>
63
+ <Title title="With assistive text" theme="light" level={4} />
64
+ <DxcAccordion label="Accordion" assistiveText="Assistive text">
65
+ <div>
66
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo
67
+ lobortis eget.
68
+ </div>
69
+ </DxcAccordion>
70
+ </ExampleContainer>
71
+ <ExampleContainer>
72
+ <Title title="With icon" theme="light" level={4} />
73
+ <DxcAccordion label="Accordion" assistiveText="Assistive text" icon={folderIcon}>
74
+ <div>
75
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo
76
+ lobortis eget.
77
+ </div>
78
+ </DxcAccordion>
79
+ </ExampleContainer>
80
+ <ExampleContainer>
81
+ <Title title="With bigger icon 48x48" theme="light" level={4} />
82
+ <DxcAccordion label="Accordion" assistiveText="Assistive text" icon={thumbIcon}>
83
+ <div>
84
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo
85
+ lobortis eget.
86
+ </div>
87
+ </DxcAccordion>
88
+ </ExampleContainer>
89
+ <Title title="States" theme="light" level={2} />
90
+ <ExampleContainer pseudoState="pseudo-focus">
91
+ <Title title="Focused" theme="light" level={4} />
92
+ <DxcAccordion label="Focused">
93
+ <div>
94
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo
95
+ lobortis eget.
96
+ </div>
97
+ </DxcAccordion>
98
+ </ExampleContainer>
99
+ <ExampleContainer pseudoState="pseudo-hover">
100
+ <Title title="Hovered" theme="light" level={4} />
101
+ <DxcAccordion label="Hovered">
102
+ <div>
103
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo
104
+ lobortis eget.
105
+ </div>
106
+ </DxcAccordion>
107
+ </ExampleContainer>
108
+ <ExampleContainer pseudoState="pseudo-active">
109
+ <Title title="Active" theme="light" level={4} />
110
+ <DxcAccordion label="Active">
111
+ <div>
112
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo
113
+ lobortis eget.
114
+ </div>
115
+ </DxcAccordion>
116
+ </ExampleContainer>
117
+ <ExampleContainer>
118
+ <Title title="Disabled" theme="light" level={4} />
119
+ <DxcAccordion label="Disabled" assistiveText="Assistive text" icon={folderIcon} disabled>
120
+ <div>
121
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo
122
+ lobortis eget.
123
+ </div>
124
+ </DxcAccordion>
125
+ </ExampleContainer>
126
+ <ExampleContainer>
127
+ <Title title="Background color provider over accordion content" theme="light" level={4} />
128
+ <HalstackProvider advancedTheme={advancedTheme}>
129
+ <DxcAccordion
130
+ label="Dark Accordion"
131
+ defaultIsExpanded
132
+ assistiveText="Assistive text"
133
+ icon={folderIcon}
134
+ padding="medium"
135
+ >
136
+ <div style={{ display: "flex", flexDirection: "column" }}>
137
+ <DxcTextInput
138
+ label="Label"
139
+ helperText="HelperText"
140
+ placeholder="Placeholder"
141
+ size="fillParent"
142
+ margin={{ bottom: "medium" }}
143
+ />
144
+ <DxcButton label="Submit" size="medium" />
145
+ </div>
146
+ </DxcAccordion>
147
+ </HalstackProvider>
148
+ </ExampleContainer>
149
+ <Title title="Paddings" theme="light" level={2} />
150
+ <ExampleContainer>
151
+ <Title title="Xxsmall padding" theme="light" level={4} />
152
+ <DxcAccordion label="Xxsmall padding" defaultIsExpanded padding="xxsmall">
153
+ <div>
154
+ <DxcHeading level={5} text="Content header" margin={{ bottom: "xxsmall" }} />
155
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
156
+ magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
157
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
158
+ pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id
159
+ est laborum.
160
+ </div>
161
+ </DxcAccordion>
162
+ </ExampleContainer>
163
+ <ExampleContainer>
164
+ <Title title="Xsmall padding" theme="light" level={4} />
165
+ <DxcAccordion label="Xsmall padding" defaultIsExpanded padding="xsmall">
166
+ <div>
167
+ <DxcHeading level={5} text="Content header" margin={{ bottom: "xxsmall" }} />
168
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
169
+ magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
170
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
171
+ pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id
172
+ est laborum.
173
+ </div>
174
+ </DxcAccordion>
175
+ </ExampleContainer>
176
+ <ExampleContainer>
177
+ <Title title="Small padding" theme="light" level={4} />
178
+ <DxcAccordion label="Small padding" defaultIsExpanded padding="small">
179
+ <div>
180
+ <DxcHeading level={5} text="Content header" margin={{ bottom: "xxsmall" }} />
181
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
182
+ magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
183
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
184
+ pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id
185
+ est laborum.
186
+ </div>
187
+ </DxcAccordion>
188
+ </ExampleContainer>
189
+ <ExampleContainer>
190
+ <Title title="Medium padding" theme="light" level={4} />
191
+ <DxcAccordion label="Medium padding" defaultIsExpanded padding="medium">
192
+ <div>
193
+ <DxcHeading level={5} text="Content header" margin={{ bottom: "xxsmall" }} />
194
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
195
+ magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
196
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
197
+ pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id
198
+ est laborum.
199
+ </div>
200
+ </DxcAccordion>
201
+ </ExampleContainer>
202
+ <ExampleContainer>
203
+ <Title title="Large padding" theme="light" level={4} />
204
+ <DxcAccordion label="Large padding" defaultIsExpanded padding="large">
205
+ <div>
206
+ <DxcHeading level={5} text="Content header" margin={{ bottom: "xxsmall" }} />
207
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
208
+ magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
209
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
210
+ pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id
211
+ est laborum.
212
+ </div>
213
+ </DxcAccordion>
214
+ </ExampleContainer>
215
+ <ExampleContainer>
216
+ <Title title="Xlarge padding" theme="light" level={4} />
217
+ <DxcAccordion label="Xlarge padding" defaultIsExpanded padding="xlarge">
218
+ <div>
219
+ <DxcHeading level={5} text="Content header" margin={{ bottom: "xxsmall" }} />
220
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
221
+ magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
222
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
223
+ pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id
224
+ est laborum.
225
+ </div>
226
+ </DxcAccordion>
227
+ </ExampleContainer>
228
+ <ExampleContainer>
229
+ <Title title="Xxlarge padding" theme="light" level={4} />
230
+ <DxcAccordion label="Xxlarge padding" defaultIsExpanded padding="xxlarge">
231
+ <div>
232
+ <DxcHeading level={5} text="Content header" margin={{ bottom: "xxsmall" }} />
233
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
234
+ magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
235
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
236
+ pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id
237
+ est laborum.
238
+ </div>
239
+ </DxcAccordion>
240
+ </ExampleContainer>
241
+ <Title title="Margins" theme="light" level={2} />
242
+ <ExampleContainer>
243
+ <Title title="Xxsmall margin" theme="light" level={4} />
244
+ <DxcAccordion label="Xxsmall margin" margin="xxsmall">
245
+ <div>
246
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo
247
+ lobortis eget.
248
+ </div>
249
+ </DxcAccordion>
250
+ </ExampleContainer>
251
+ <ExampleContainer>
252
+ <Title title="Xsmall margin" theme="light" level={4} />
253
+ <DxcAccordion label="Xsmall margin" margin="xsmall">
254
+ <div>
255
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo
256
+ lobortis eget.
257
+ </div>
258
+ </DxcAccordion>
259
+ </ExampleContainer>
260
+ <ExampleContainer>
261
+ <Title title="Small margin" theme="light" level={4} />
262
+ <DxcAccordion label="Small margin" margin="small">
263
+ <div>
264
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo
265
+ lobortis eget.
266
+ </div>
267
+ </DxcAccordion>
268
+ </ExampleContainer>
269
+ <ExampleContainer>
270
+ <Title title="Medium margin" theme="light" level={4} />
271
+ <DxcAccordion label="Medium margin" margin="medium">
272
+ <div>
273
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo
274
+ lobortis eget.
275
+ </div>
276
+ </DxcAccordion>
277
+ </ExampleContainer>
278
+ <ExampleContainer>
279
+ <Title title="Large margin" theme="light" level={4} />
280
+ <DxcAccordion label="Large margin" margin="large">
281
+ <div>
282
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo
283
+ lobortis eget.
284
+ </div>
285
+ </DxcAccordion>
286
+ </ExampleContainer>
287
+ <ExampleContainer>
288
+ <Title title="Xlarge margin" theme="light" level={4} />
289
+ <DxcAccordion label="Xlarge margin" margin="xlarge">
290
+ <div>
291
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo
292
+ lobortis eget.
293
+ </div>
294
+ </DxcAccordion>
295
+ </ExampleContainer>
296
+ <ExampleContainer>
297
+ <Title title="Xxlarge margin" theme="light" level={4} />
298
+ <DxcAccordion label="Xxlarge margin" margin="xxlarge">
299
+ <div>
300
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo
301
+ lobortis eget.
302
+ </div>
303
+ </DxcAccordion>
304
+ <hr />
305
+ </ExampleContainer>
306
+ </>
307
+ );
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _react = _interopRequireDefault(require("react"));
6
+
7
+ var _react2 = require("@testing-library/react");
8
+
9
+ var _Accordion = _interopRequireDefault(require("./Accordion"));
10
+
11
+ describe("Accordion component tests", function () {
12
+ test("Accordion renders with correct text", function () {
13
+ var onChange = jest.fn();
14
+
15
+ var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Accordion["default"], {
16
+ label: "Accordion",
17
+ assistiveText: "Assistive text",
18
+ onChange: onChange
19
+ })),
20
+ getByText = _render.getByText;
21
+
22
+ expect(getByText("Accordion")).toBeTruthy();
23
+ expect(getByText("Assistive text")).toBeTruthy();
24
+ });
25
+ test("Accordion renders expanded by default when it is uncontrolled", function () {
26
+ var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Accordion["default"], {
27
+ label: "Accordion",
28
+ defaultIsExpanded: true
29
+ }, /*#__PURE__*/_react["default"].createElement("div", null, "test-expanded"))),
30
+ getByRole = _render2.getByRole;
31
+
32
+ var accordion = getByRole("button");
33
+ expect(accordion.getAttribute("aria-expanded")).toBe("true");
34
+ });
35
+ test("Calls correct function on click", function () {
36
+ var onChange = jest.fn();
37
+
38
+ var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Accordion["default"], {
39
+ label: "Accordion",
40
+ onChange: onChange
41
+ })),
42
+ getByText = _render3.getByText;
43
+
44
+ _react2.fireEvent.click(getByText("Accordion"));
45
+
46
+ expect(onChange).toHaveBeenCalled();
47
+ });
48
+ test("Controlled accordion", function () {
49
+ var onChange = jest.fn();
50
+
51
+ var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Accordion["default"], {
52
+ label: "Accordion",
53
+ onChange: onChange,
54
+ isExpanded: true
55
+ })),
56
+ getByText = _render4.getByText,
57
+ getByRole = _render4.getByRole;
58
+
59
+ expect(getByRole("button").getAttribute("aria-expanded")).toBe("true");
60
+
61
+ _react2.fireEvent.click(getByText("Accordion"));
62
+
63
+ _react2.fireEvent.click(getByText("Accordion"));
64
+
65
+ _react2.fireEvent.click(getByText("Accordion"));
66
+
67
+ expect(onChange).toHaveBeenCalledTimes(3);
68
+ expect(onChange.mock.calls[0][0]).toBe(false);
69
+ expect(onChange.mock.calls[1][0]).toBe(false);
70
+ expect(onChange.mock.calls[2][0]).toBe(false);
71
+ });
72
+ });