@dxc-technology/halstack-react 0.0.0-4e1277a → 0.0.0-4e3dbad

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 (363) hide show
  1. package/BackgroundColorContext.js +1 -1
  2. package/HalstackContext.d.ts +42 -5
  3. package/HalstackContext.js +28 -18
  4. package/accordion/Accordion.accessibility.test.d.ts +1 -0
  5. package/accordion/Accordion.accessibility.test.js +71 -0
  6. package/accordion/Accordion.js +16 -30
  7. package/accordion/Accordion.stories.tsx +7 -49
  8. package/accordion/Accordion.test.d.ts +1 -0
  9. package/accordion/Accordion.test.js +3 -3
  10. package/accordion/types.d.ts +1 -1
  11. package/accordion-group/AccordionGroup.accessibility.test.d.ts +1 -0
  12. package/accordion-group/AccordionGroup.accessibility.test.js +82 -0
  13. package/accordion-group/AccordionGroup.js +1 -1
  14. package/accordion-group/AccordionGroup.stories.tsx +23 -23
  15. package/accordion-group/AccordionGroup.test.d.ts +1 -0
  16. package/accordion-group/AccordionGroup.test.js +5 -9
  17. package/accordion-group/AccordionGroupAccordion.js +1 -1
  18. package/accordion-group/types.d.ts +1 -1
  19. package/action-icon/ActionIcon.accessibility.test.d.ts +1 -0
  20. package/action-icon/ActionIcon.accessibility.test.js +63 -0
  21. package/action-icon/ActionIcon.js +4 -3
  22. package/action-icon/ActionIcon.stories.tsx +3 -3
  23. package/action-icon/ActionIcon.test.d.ts +1 -0
  24. package/action-icon/ActionIcon.test.js +1 -1
  25. package/action-icon/types.d.ts +1 -1
  26. package/alert/Alert.accessibility.test.d.ts +1 -0
  27. package/alert/Alert.accessibility.test.js +95 -0
  28. package/alert/Alert.js +21 -72
  29. package/alert/Alert.test.d.ts +1 -0
  30. package/alert/Alert.test.js +1 -1
  31. package/badge/Badge.accessibility.test.d.ts +1 -0
  32. package/badge/Badge.accessibility.test.js +129 -0
  33. package/badge/Badge.js +6 -4
  34. package/badge/Badge.stories.tsx +11 -11
  35. package/badge/Badge.test.d.ts +1 -0
  36. package/badge/Badge.test.js +2 -2
  37. package/badge/types.d.ts +1 -1
  38. package/bar-chart/BarChart.d.ts +4 -0
  39. package/bar-chart/BarChart.js +152 -0
  40. package/bar-chart/BarChart.stories.tsx +281 -0
  41. package/bar-chart/BarChart.test.d.ts +1 -0
  42. package/bar-chart/BarChart.test.js +194 -0
  43. package/bar-chart/theme.d.ts +3 -0
  44. package/bar-chart/theme.js +31 -0
  45. package/bar-chart/types.d.ts +118 -0
  46. package/bar-chart/types.js +5 -0
  47. package/bleed/Bleed.stories.tsx +0 -1
  48. package/box/Box.accessibility.test.d.ts +1 -0
  49. package/box/Box.accessibility.test.js +33 -0
  50. package/box/Box.js +1 -1
  51. package/box/Box.test.d.ts +1 -0
  52. package/box/Box.test.js +1 -1
  53. package/breadcrumbs/Breadcrumbs.accessibility.test.d.ts +1 -0
  54. package/breadcrumbs/Breadcrumbs.accessibility.test.js +96 -0
  55. package/breadcrumbs/Breadcrumbs.d.ts +4 -0
  56. package/breadcrumbs/Breadcrumbs.js +79 -0
  57. package/breadcrumbs/Breadcrumbs.stories.tsx +194 -0
  58. package/breadcrumbs/Breadcrumbs.test.d.ts +1 -0
  59. package/breadcrumbs/Breadcrumbs.test.js +168 -0
  60. package/breadcrumbs/Item.d.ts +4 -0
  61. package/breadcrumbs/Item.js +52 -0
  62. package/breadcrumbs/dropdownTheme.d.ts +53 -0
  63. package/breadcrumbs/dropdownTheme.js +62 -0
  64. package/breadcrumbs/types.d.ts +40 -0
  65. package/breadcrumbs/types.js +5 -0
  66. package/bulleted-list/BulletedList.accessibility.test.d.ts +1 -0
  67. package/bulleted-list/BulletedList.accessibility.test.js +119 -0
  68. package/bulleted-list/BulletedList.js +7 -4
  69. package/bulleted-list/BulletedList.stories.tsx +1 -1
  70. package/button/Button.accessibility.test.d.ts +1 -0
  71. package/button/Button.accessibility.test.js +127 -0
  72. package/button/Button.js +2 -2
  73. package/button/Button.stories.tsx +3 -4
  74. package/button/Button.test.d.ts +1 -0
  75. package/button/Button.test.js +1 -1
  76. package/card/Card.accessibility.test.d.ts +1 -0
  77. package/card/Card.accessibility.test.js +36 -0
  78. package/card/Card.js +3 -2
  79. package/card/Card.stories.tsx +1 -1
  80. package/card/Card.test.d.ts +1 -0
  81. package/card/Card.test.js +1 -1
  82. package/checkbox/Checkbox.accessibility.test.d.ts +1 -0
  83. package/checkbox/Checkbox.accessibility.test.js +87 -0
  84. package/checkbox/Checkbox.js +10 -13
  85. package/checkbox/Checkbox.test.d.ts +1 -0
  86. package/checkbox/Checkbox.test.js +1 -1
  87. package/chip/Chip.accessibility.test.d.ts +1 -0
  88. package/chip/Chip.accessibility.test.js +67 -0
  89. package/chip/Chip.js +11 -6
  90. package/chip/Chip.stories.tsx +6 -25
  91. package/chip/Chip.test.d.ts +1 -0
  92. package/chip/Chip.test.js +5 -5
  93. package/common/coreTokens.d.ts +0 -1
  94. package/common/coreTokens.js +3 -4
  95. package/common/variables.d.ts +48 -5
  96. package/common/variables.js +110 -73
  97. package/container/Container.stories.tsx +3 -3
  98. package/container/types.d.ts +113 -11
  99. package/contextual-menu/ContextualMenu.accessibility.test.d.ts +1 -0
  100. package/contextual-menu/ContextualMenu.accessibility.test.js +98 -0
  101. package/contextual-menu/ContextualMenu.d.ts +3 -5
  102. package/contextual-menu/ContextualMenu.js +118 -53
  103. package/contextual-menu/ContextualMenu.stories.tsx +124 -75
  104. package/contextual-menu/ContextualMenu.test.d.ts +1 -0
  105. package/contextual-menu/ContextualMenu.test.js +200 -24
  106. package/contextual-menu/GroupItem.d.ts +4 -0
  107. package/contextual-menu/GroupItem.js +67 -0
  108. package/contextual-menu/ItemAction.d.ts +4 -0
  109. package/contextual-menu/ItemAction.js +88 -0
  110. package/contextual-menu/MenuItem.d.ts +4 -0
  111. package/contextual-menu/MenuItem.js +29 -0
  112. package/contextual-menu/SingleItem.d.ts +4 -0
  113. package/contextual-menu/SingleItem.js +38 -0
  114. package/contextual-menu/types.d.ts +54 -11
  115. package/date-input/Calendar.js +47 -31
  116. package/date-input/DateInput.accessibility.test.d.ts +1 -0
  117. package/date-input/DateInput.accessibility.test.js +229 -0
  118. package/date-input/DateInput.js +28 -23
  119. package/date-input/DateInput.stories.tsx +18 -12
  120. package/date-input/DateInput.test.d.ts +1 -0
  121. package/date-input/DateInput.test.js +39 -39
  122. package/date-input/DatePicker.js +13 -7
  123. package/date-input/YearPicker.js +10 -5
  124. package/dialog/Dialog.accessibility.test.d.ts +1 -0
  125. package/dialog/Dialog.accessibility.test.js +69 -0
  126. package/dialog/Dialog.js +9 -20
  127. package/dialog/Dialog.stories.tsx +8 -4
  128. package/dialog/Dialog.test.d.ts +1 -0
  129. package/dialog/Dialog.test.js +112 -49
  130. package/divider/Divider.accessibility.test.d.ts +1 -0
  131. package/divider/Divider.accessibility.test.js +33 -0
  132. package/divider/Divider.stories.tsx +2 -1
  133. package/divider/Divider.test.d.ts +1 -0
  134. package/dropdown/Dropdown.accessibility.test.d.ts +1 -0
  135. package/dropdown/Dropdown.accessibility.test.js +183 -0
  136. package/dropdown/Dropdown.js +31 -66
  137. package/dropdown/Dropdown.stories.tsx +16 -27
  138. package/dropdown/Dropdown.test.d.ts +1 -0
  139. package/dropdown/Dropdown.test.js +101 -72
  140. package/dropdown/DropdownMenu.js +4 -4
  141. package/dropdown/DropdownMenuItem.js +8 -4
  142. package/dropdown/types.d.ts +2 -4
  143. package/file-input/FileInput.accessibility.test.d.ts +1 -0
  144. package/file-input/FileInput.accessibility.test.js +167 -0
  145. package/file-input/FileInput.js +6 -47
  146. package/file-input/FileInput.test.d.ts +1 -0
  147. package/file-input/FileInput.test.js +51 -106
  148. package/file-input/FileItem.js +18 -28
  149. package/file-input/types.d.ts +0 -4
  150. package/footer/Footer.accessibility.test.d.ts +1 -0
  151. package/footer/Footer.accessibility.test.js +125 -0
  152. package/footer/Footer.js +8 -6
  153. package/footer/Footer.stories.tsx +40 -3
  154. package/footer/Footer.test.d.ts +1 -0
  155. package/footer/Footer.test.js +1 -1
  156. package/footer/Icons.js +2 -30
  157. package/footer/types.d.ts +1 -1
  158. package/grid/Grid.stories.tsx +3 -1
  159. package/header/Header.accessibility.test.d.ts +1 -0
  160. package/header/Header.accessibility.test.js +94 -0
  161. package/header/Header.js +12 -22
  162. package/header/Header.stories.tsx +17 -1
  163. package/header/Header.test.d.ts +1 -0
  164. package/header/Header.test.js +1 -1
  165. package/header/Icons.js +1 -6
  166. package/heading/Heading.accessibility.test.d.ts +1 -0
  167. package/heading/Heading.accessibility.test.js +33 -0
  168. package/heading/Heading.js +1 -1
  169. package/heading/Heading.test.d.ts +1 -0
  170. package/heading/Heading.test.js +1 -14
  171. package/icon/Icon.accessibility.test.d.ts +1 -0
  172. package/icon/Icon.accessibility.test.js +30 -0
  173. package/icon/Icon.js +1 -1
  174. package/icon/Icon.stories.tsx +6 -4
  175. package/image/Image.accessibility.test.d.ts +1 -0
  176. package/image/Image.accessibility.test.js +56 -0
  177. package/image/Image.js +1 -1
  178. package/layout/ApplicationLayout.js +9 -6
  179. package/layout/Icons.d.ts +0 -1
  180. package/layout/Icons.js +1 -11
  181. package/link/Link.accessibility.test.d.ts +1 -0
  182. package/link/Link.accessibility.test.js +108 -0
  183. package/link/Link.js +8 -6
  184. package/link/Link.stories.tsx +4 -4
  185. package/link/Link.test.d.ts +1 -0
  186. package/link/Link.test.js +1 -1
  187. package/link/types.d.ts +1 -1
  188. package/main.d.ts +3 -1
  189. package/main.js +15 -1
  190. package/nav-tabs/NavTabs.accessibility.test.d.ts +1 -0
  191. package/nav-tabs/NavTabs.accessibility.test.js +44 -0
  192. package/nav-tabs/NavTabs.js +19 -4
  193. package/nav-tabs/NavTabs.stories.tsx +41 -23
  194. package/nav-tabs/NavTabs.test.d.ts +1 -0
  195. package/nav-tabs/NavTabs.test.js +10 -9
  196. package/nav-tabs/Tab.js +17 -18
  197. package/nav-tabs/types.d.ts +1 -1
  198. package/number-input/NumberInput.accessibility.test.d.ts +1 -0
  199. package/number-input/NumberInput.accessibility.test.js +227 -0
  200. package/number-input/NumberInput.js +6 -3
  201. package/number-input/NumberInput.stories.tsx +11 -16
  202. package/number-input/NumberInput.test.d.ts +1 -0
  203. package/number-input/NumberInput.test.js +6 -7
  204. package/package.json +34 -28
  205. package/paginator/Paginator.accessibility.test.d.ts +1 -0
  206. package/paginator/Paginator.accessibility.test.js +78 -0
  207. package/paginator/Paginator.js +13 -10
  208. package/paginator/Paginator.test.d.ts +1 -0
  209. package/paginator/Paginator.test.js +2 -3
  210. package/paragraph/Paragraph.accessibility.test.d.ts +1 -0
  211. package/paragraph/Paragraph.accessibility.test.js +28 -0
  212. package/password-input/PasswordInput.accessibility.test.d.ts +1 -0
  213. package/password-input/PasswordInput.accessibility.test.js +152 -0
  214. package/password-input/PasswordInput.js +11 -8
  215. package/password-input/PasswordInput.stories.tsx +10 -1
  216. package/password-input/PasswordInput.test.d.ts +1 -0
  217. package/password-input/PasswordInput.test.js +6 -7
  218. package/progress-bar/ProgressBar.accessibility.test.d.ts +1 -0
  219. package/progress-bar/ProgressBar.accessibility.test.js +35 -0
  220. package/progress-bar/ProgressBar.js +6 -4
  221. package/progress-bar/ProgressBar.test.d.ts +1 -0
  222. package/progress-bar/ProgressBar.test.js +1 -1
  223. package/quick-nav/QuickNav.accessibility.test.d.ts +1 -0
  224. package/quick-nav/QuickNav.accessibility.test.js +57 -0
  225. package/quick-nav/QuickNav.js +1 -1
  226. package/radio-group/Radio.js +6 -9
  227. package/radio-group/RadioGroup.accessibility.test.d.ts +1 -0
  228. package/radio-group/RadioGroup.accessibility.test.js +97 -0
  229. package/radio-group/RadioGroup.js +14 -16
  230. package/radio-group/RadioGroup.test.d.ts +1 -0
  231. package/radio-group/RadioGroup.test.js +3 -5
  232. package/resultset-table/ResultsetTable.accessibility.test.d.ts +1 -0
  233. package/resultset-table/ResultsetTable.accessibility.test.js +284 -0
  234. package/resultset-table/ResultsetTable.d.ts +1 -1
  235. package/resultset-table/ResultsetTable.js +47 -15
  236. package/resultset-table/ResultsetTable.stories.tsx +19 -3
  237. package/resultset-table/ResultsetTable.test.d.ts +1 -0
  238. package/resultset-table/ResultsetTable.test.js +111 -32
  239. package/resultset-table/types.d.ts +41 -13
  240. package/select/Listbox.d.ts +3 -3
  241. package/select/Listbox.js +33 -29
  242. package/select/Option.d.ts +3 -3
  243. package/select/Option.js +21 -15
  244. package/select/Select.accessibility.test.d.ts +1 -0
  245. package/select/Select.accessibility.test.js +227 -0
  246. package/select/Select.js +85 -192
  247. package/select/Select.stories.tsx +74 -117
  248. package/select/Select.test.d.ts +1 -0
  249. package/select/Select.test.js +348 -550
  250. package/select/selectUtils.d.ts +41 -0
  251. package/select/selectUtils.js +129 -0
  252. package/select/types.d.ts +1 -1
  253. package/sidenav/Sidenav.accessibility.test.d.ts +1 -0
  254. package/sidenav/Sidenav.accessibility.test.js +59 -0
  255. package/sidenav/Sidenav.js +16 -12
  256. package/sidenav/Sidenav.stories.tsx +5 -10
  257. package/sidenav/Sidenav.test.d.ts +1 -0
  258. package/sidenav/Sidenav.test.js +1 -1
  259. package/sidenav/types.d.ts +2 -2
  260. package/slider/Slider.accessibility.test.d.ts +1 -0
  261. package/slider/Slider.accessibility.test.js +103 -0
  262. package/slider/Slider.js +11 -13
  263. package/slider/Slider.stories.tsx +180 -0
  264. package/slider/Slider.test.d.ts +1 -0
  265. package/slider/Slider.test.js +13 -11
  266. package/spinner/Spinner.accessibility.test.d.ts +1 -0
  267. package/spinner/Spinner.accessibility.test.js +96 -0
  268. package/spinner/Spinner.d.ts +1 -1
  269. package/spinner/Spinner.js +32 -47
  270. package/spinner/Spinner.test.d.ts +1 -0
  271. package/spinner/Spinner.test.js +1 -1
  272. package/status-light/StatusLight.accessibility.test.d.ts +1 -0
  273. package/status-light/StatusLight.accessibility.test.js +157 -0
  274. package/status-light/StatusLight.test.d.ts +1 -0
  275. package/status-light/StatusLight.test.js +1 -1
  276. package/switch/Switch.accessibility.test.d.ts +1 -0
  277. package/switch/Switch.accessibility.test.js +98 -0
  278. package/switch/Switch.js +6 -9
  279. package/switch/Switch.stories.tsx +12 -0
  280. package/switch/Switch.test.d.ts +1 -0
  281. package/switch/Switch.test.js +1 -1
  282. package/table/Table.accessibility.test.d.ts +1 -0
  283. package/table/Table.accessibility.test.js +92 -0
  284. package/table/Table.js +2 -11
  285. package/table/Table.stories.tsx +15 -10
  286. package/table/Table.test.d.ts +1 -0
  287. package/table/Table.test.js +2 -4
  288. package/table/types.d.ts +1 -15
  289. package/tabs/Tab.js +6 -5
  290. package/tabs/Tabs.accessibility.test.d.ts +1 -0
  291. package/tabs/Tabs.accessibility.test.js +56 -0
  292. package/tabs/Tabs.js +9 -20
  293. package/tabs/Tabs.stories.tsx +7 -3
  294. package/tabs/Tabs.test.d.ts +1 -0
  295. package/tabs/Tabs.test.js +20 -38
  296. package/tabs/types.d.ts +2 -2
  297. package/tag/Tag.accessibility.test.d.ts +1 -0
  298. package/tag/Tag.accessibility.test.js +69 -0
  299. package/tag/Tag.js +7 -7
  300. package/tag/Tag.stories.tsx +5 -8
  301. package/tag/Tag.test.d.ts +1 -0
  302. package/tag/Tag.test.js +5 -13
  303. package/tag/types.d.ts +2 -2
  304. package/text-input/Suggestion.js +1 -1
  305. package/text-input/Suggestions.js +17 -7
  306. package/text-input/TextInput.accessibility.test.d.ts +1 -0
  307. package/text-input/TextInput.accessibility.test.js +320 -0
  308. package/text-input/TextInput.js +56 -73
  309. package/text-input/TextInput.stories.tsx +20 -8
  310. package/text-input/TextInput.test.d.ts +1 -0
  311. package/text-input/TextInput.test.js +2 -3
  312. package/textarea/Textarea.accessibility.test.d.ts +1 -0
  313. package/textarea/Textarea.accessibility.test.js +155 -0
  314. package/textarea/Textarea.js +14 -13
  315. package/textarea/Textarea.test.d.ts +1 -0
  316. package/textarea/Textarea.test.js +1 -1
  317. package/toggle-group/ToggleGroup.accessibility.test.d.ts +1 -0
  318. package/toggle-group/ToggleGroup.accessibility.test.js +107 -0
  319. package/toggle-group/ToggleGroup.js +10 -12
  320. package/toggle-group/ToggleGroup.stories.tsx +4 -4
  321. package/toggle-group/ToggleGroup.test.d.ts +1 -0
  322. package/toggle-group/ToggleGroup.test.js +1 -1
  323. package/toggle-group/types.d.ts +2 -2
  324. package/tooltip/Tooltip.accessibility.test.d.ts +1 -0
  325. package/tooltip/Tooltip.accessibility.test.js +144 -0
  326. package/tooltip/Tooltip.d.ts +4 -0
  327. package/tooltip/Tooltip.js +50 -0
  328. package/tooltip/Tooltip.stories.tsx +111 -0
  329. package/tooltip/Tooltip.test.d.ts +1 -0
  330. package/tooltip/Tooltip.test.js +112 -0
  331. package/tooltip/types.d.ts +16 -0
  332. package/tooltip/types.js +5 -0
  333. package/typography/Typography.accessibility.test.d.ts +1 -0
  334. package/typography/Typography.accessibility.test.js +339 -0
  335. package/typography/Typography.stories.tsx +1 -3
  336. package/typography/Typography.test.js +23 -0
  337. package/useTheme.d.ts +31 -5
  338. package/useTranslatedLabels.d.ts +11 -0
  339. package/utils/BaseTypography.js +45 -41
  340. package/utils/FocusLock.js +3 -2
  341. package/utils/useWidth.d.ts +2 -0
  342. package/utils/useWidth.js +30 -0
  343. package/wizard/Wizard.accessibility.test.d.ts +1 -0
  344. package/wizard/Wizard.accessibility.test.js +55 -0
  345. package/wizard/Wizard.js +14 -25
  346. package/wizard/Wizard.stories.tsx +20 -1
  347. package/wizard/Wizard.test.d.ts +1 -0
  348. package/wizard/Wizard.test.js +1 -1
  349. package/wizard/types.d.ts +1 -1
  350. package/contextual-menu/MenuItemAction.d.ts +0 -4
  351. package/contextual-menu/MenuItemAction.js +0 -46
  352. package/date-input/Icons.d.ts +0 -6
  353. package/date-input/Icons.js +0 -58
  354. package/paginator/Icons.d.ts +0 -5
  355. package/paginator/Icons.js +0 -40
  356. package/password-input/Icons.d.ts +0 -6
  357. package/password-input/Icons.js +0 -35
  358. package/select/Icons.d.ts +0 -10
  359. package/select/Icons.js +0 -89
  360. package/sidenav/Icons.d.ts +0 -7
  361. package/sidenav/Icons.js +0 -47
  362. package/text-input/Icons.d.ts +0 -8
  363. package/text-input/Icons.js +0 -56
@@ -108,7 +108,7 @@ export const Chromatic = () => (
108
108
  width="50px"
109
109
  height="50px"
110
110
  >
111
- <b>1</b>
111
+ <b tabIndex={0}>1</b>
112
112
  </DxcContainer>
113
113
  <DxcContainer
114
114
  border={{ width: "1px", style: "solid", color: "color_black" }}
@@ -116,7 +116,7 @@ export const Chromatic = () => (
116
116
  width="50px"
117
117
  height="50px"
118
118
  >
119
- <b>2</b>
119
+ <b tabIndex={0}>2</b>
120
120
  </DxcContainer>
121
121
  <DxcContainer
122
122
  border={{ width: "1px", style: "solid", color: "color_black" }}
@@ -124,7 +124,7 @@ export const Chromatic = () => (
124
124
  width="50px"
125
125
  height="50px"
126
126
  >
127
- <b>3</b>
127
+ <b tabIndex={0}>3</b>
128
128
  </DxcContainer>
129
129
  </DxcContainer>
130
130
  </ExampleContainer>
@@ -43,27 +43,129 @@ type Overflow = OverflowValues | {
43
43
  y?: OverflowValues;
44
44
  };
45
45
  type Props = {
46
+ /**
47
+ * Based on the CSS property background allows configuring all properties related to the background of a container.
48
+ *
49
+ * See MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/background
50
+ */
51
+ background?: Background;
52
+ /**
53
+ * Based on the CSS property border allows configuring all properties related to the border of a container.
54
+ */
55
+ border?: Border;
56
+ /**
57
+ * Sets the border-radius CSS property.
58
+ *
59
+ * See MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/border-radius
60
+ */
61
+ borderRadius?: string;
62
+ /**
63
+ * Sets the box-shadow CSS property.
64
+ *
65
+ * See MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/box-shadow
66
+ */
67
+ boxShadow?: string;
68
+ /**
69
+ * Sets the box-sizing CSS property.
70
+ *
71
+ * See MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/box-sizing
72
+ */
46
73
  boxSizing?: "border-box" | "content-box";
74
+ /**
75
+ * Custom content inside the container.
76
+ */
77
+ children: React.ReactNode;
78
+ /**
79
+ * Sets the display CSS property.
80
+ * The set of values is limited to the ones related to the outer display type.
81
+ * If you want to apply any pattern from the inner box and how the children are laid out,
82
+ * we recommend you to use the Flex and Grid components.
83
+ *
84
+ * See MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/display
85
+ */
47
86
  display?: "block" | "inline-block" | "inline" | "none";
48
- width?: string;
87
+ /**
88
+ * Sets the float CSS property.
89
+ *
90
+ * See MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/float
91
+ */
92
+ float?: "left" | "right" | "none";
93
+ /**
94
+ * Sets the height CSS property.
95
+ *
96
+ * See MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/height
97
+ */
49
98
  height?: string;
99
+ /**
100
+ * Based on the CSS property inset this prop is a shorthand that corresponds
101
+ * to the top, right, bottom, and/or left properties.
102
+ */
103
+ inset?: Inset;
104
+ /**
105
+ * Size of the margin to be applied to the component.
106
+ * You can pass an object with 'top', 'bottom', 'left' and 'right' properties
107
+ * in order to specify different margin sizes.
108
+ */
109
+ margin?: Space;
110
+ /**
111
+ * Sets the max-height CSS property.
112
+ *
113
+ * See MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/max-height
114
+ */
50
115
  maxWidth?: string;
116
+ /**
117
+ * Sets the max-width CSS property.
118
+ *
119
+ * See MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/max-width
120
+ */
51
121
  maxHeight?: string;
122
+ /**
123
+ * Sets the min-height CSS property.
124
+ *
125
+ * See MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/min-height
126
+ */
52
127
  minWidth?: string;
128
+ /**
129
+ * Sets the min-width CSS property.
130
+ *
131
+ * See MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/min-width
132
+ */
53
133
  minHeight?: string;
54
- padding?: Space;
55
- border?: Border;
56
- borderRadius?: string;
57
- margin?: Space;
134
+ /**
135
+ * Based on the CSS property outline allows configuring all properties related
136
+ * to the outline of a container.
137
+ */
138
+ outline?: Outline;
139
+ /**
140
+ * Sets the overflow CSS property.
141
+ *
142
+ * See MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/overflow
143
+ */
58
144
  overflow?: Overflow;
145
+ /**
146
+ * Size of the margin to be applied to the component.
147
+ * You can pass an object with 'top', 'bottom', 'left' and 'right' properties
148
+ * in order to specify different margin sizes.
149
+ */
150
+ padding?: Space;
151
+ /**
152
+ * Sets the position CSS property.
153
+ *
154
+ * See MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/position
155
+ */
59
156
  position?: "static" | "relative" | "absolute" | "fixed" | "sticky";
60
- inset?: Inset;
61
- float?: "left" | "right" | "none";
157
+ /**
158
+ * Sets the width CSS property.
159
+ *
160
+ * See MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/width
161
+ */
162
+ width?: string;
163
+ /**
164
+ * Sets the z-index CSS property.
165
+ *
166
+ * See MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/z-index
167
+ */
62
168
  zIndex?: "auto" | number;
63
- background?: Background;
64
- boxShadow?: string;
65
- outline?: Outline;
66
- children: React.ReactNode;
67
169
  };
68
170
  export type StyledProps = Omit<Props, "display" | "width" | "height" | "opacity" | "overflow"> & {
69
171
  $display?: "block" | "inline-block" | "inline" | "none";
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
5
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
6
+ var _react = _interopRequireDefault(require("react"));
7
+ var _react2 = require("@testing-library/react");
8
+ var _axeHelper = require("../../test/accessibility/axe-helper.js");
9
+ var _ContextualMenu = _interopRequireDefault(require("./ContextualMenu"));
10
+ var _Badge = _interopRequireDefault(require("../badge/Badge"));
11
+ var _disabledRules = require("../../test/accessibility/rules/specific/contextual-menu/disabledRules.js");
12
+ // TODO: REMOVE
13
+
14
+ var disabledRules = {
15
+ rules: _disabledRules.disabledRules.reduce(function (rulesObj, rule) {
16
+ rulesObj[rule] = {
17
+ enabled: false
18
+ };
19
+ return rulesObj;
20
+ }, {})
21
+ };
22
+ var badge_icon = /*#__PURE__*/_react["default"].createElement("svg", {
23
+ width: "24",
24
+ height: "24",
25
+ viewBox: "0 0 24 24",
26
+ xmlns: "http://www.w3.org/2000/svg",
27
+ fill: "currentColor"
28
+ }, /*#__PURE__*/_react["default"].createElement("path", {
29
+ d: "M11 17H13V11H11V17ZM12 2C6.48 2 2 6.48 2 12C2 17.52 6.48 22 12 22C17.52 22 22 17.52 22 12C22 6.48 17.52 2 12 2ZM12 20C7.59 20 4 16.41 4 12C4 7.59 7.59 4 12 4C16.41 4 20 7.59 20 12C20 16.41 16.41 20 12 20ZM11 9H13V7H11V9Z"
30
+ }), /*#__PURE__*/_react["default"].createElement("path", {
31
+ d: "M11 7H13V9H11V7ZM11 11H13V17H11V11Z"
32
+ }), /*#__PURE__*/_react["default"].createElement("path", {
33
+ d: "M12 2C6.48 2 2 6.48 2 12C2 17.52 6.48 22 12 22C17.52 22 22 17.52 22 12C22 6.48 17.52 2 12 2ZM12 20C7.59 20 4 16.41 4 12C4 7.59 7.59 4 12 4C16.41 4 20 7.59 20 12C20 16.41 16.41 20 12 20Z"
34
+ }));
35
+ var key_icon = /*#__PURE__*/_react["default"].createElement("svg", {
36
+ xmlns: "http://www.w3.org/2000/svg",
37
+ height: "24",
38
+ viewBox: "0 -960 960 960",
39
+ width: "24",
40
+ fill: "currentColor"
41
+ }, /*#__PURE__*/_react["default"].createElement("path", {
42
+ d: "M280-400q-33 0-56.5-23.5T200-480q0-33 23.5-56.5T280-560q33 0 56.5 23.5T360-480q0 33-23.5 56.5T280-400Zm0 160q-100 0-170-70T40-480q0-100 70-170t170-70q67 0 121.5 33t86.5 87h352l120 120-180 180-80-60-80 60-85-60h-47q-32 54-86.5 87T280-240Zm0-80q56 0 98.5-34t56.5-86h125l58 41 82-61 71 55 75-75-40-40H435q-14-52-56.5-86T280-640q-66 0-113 47t-47 113q0 66 47 113t113 47Z"
43
+ }));
44
+ var fav_icon = /*#__PURE__*/_react["default"].createElement("svg", {
45
+ xmlns: "http://www.w3.org/2000/svg",
46
+ height: "24",
47
+ viewBox: "0 -960 960 960",
48
+ width: "24",
49
+ fill: "currentColor"
50
+ }, /*#__PURE__*/_react["default"].createElement("path", {
51
+ d: "m480-120-58-52q-101-91-167-157T150-447.5Q111-500 95.5-544T80-634q0-94 63-157t157-63q52 0 99 22t81 62q34-40 81-62t99-22q94 0 157 63t63 157q0 46-15.5 90T810-447.5Q771-395 705-329T538-172l-58 52Zm0-108q96-86 158-147.5t98-107q36-45.5 50-81t14-70.5q0-60-40-100t-100-40q-47 0-87 26.5T518-680h-76q-15-41-55-67.5T300-774q-60 0-100 40t-40 100q0 35 14 70.5t50 81q36 45.5 98 107T480-228Zm0-273Z"
52
+ }));
53
+ var itemsWithTruncatedText = [{
54
+ label: "Item with a very long label that should be truncated",
55
+ slot: /*#__PURE__*/_react["default"].createElement(_Badge["default"], {
56
+ color: "blue",
57
+ mode: "contextual",
58
+ label: "Label",
59
+ size: "small",
60
+ icon: badge_icon,
61
+ title: "Badge"
62
+ }),
63
+ icon: key_icon
64
+ }, {
65
+ label: "Item 2",
66
+ slot: /*#__PURE__*/_react["default"].createElement("svg", {
67
+ width: "12",
68
+ height: "12",
69
+ viewBox: "0 0 12 12",
70
+ fill: "currentColor",
71
+ xmlns: "http://www.w3.org/2000/svg"
72
+ }, /*#__PURE__*/_react["default"].createElement("path", {
73
+ d: "M10.6667 10.6667H1.33333V1.33333H6V0H1.33333C0.593333 0 0 0.6 0 1.33333V10.6667C0 11.4 0.593333 12 1.33333 12H10.6667C11.4 12 12 11.4 12 10.6667V6H10.6667V10.6667ZM7.33333 0V1.33333H9.72667L3.17333 7.88667L4.11333 8.82667L10.6667 2.27333V4.66667H12V0H7.33333Z",
74
+ fill: "#323232"
75
+ })),
76
+ icon: fav_icon
77
+ }];
78
+ describe("Context menu accessibility tests", function () {
79
+ it("Should not have basic accessibility issues", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
80
+ var _render, container, results;
81
+ return _regenerator["default"].wrap(function _callee$(_context) {
82
+ while (1) switch (_context.prev = _context.next) {
83
+ case 0:
84
+ _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ContextualMenu["default"], {
85
+ items: itemsWithTruncatedText
86
+ })), container = _render.container;
87
+ _context.next = 3;
88
+ return (0, _axeHelper.axe)(container, disabledRules);
89
+ case 3:
90
+ results = _context.sent;
91
+ expect(results).toHaveNoViolations();
92
+ case 5:
93
+ case "end":
94
+ return _context.stop();
95
+ }
96
+ }, _callee);
97
+ })));
98
+ });
@@ -1,7 +1,5 @@
1
1
  import React from "react";
2
- import MenuPropsType, { BadgeProps as BadgePropsType } from "./types";
3
- declare const DxcContextualMenu: {
4
- ({ items, defaultSelectedItemIndex }: MenuPropsType): React.JSX.Element;
5
- Badge(props: BadgePropsType): React.JSX.Element;
6
- };
2
+ import ContextualMenuPropsType, { ContextualMenuContextProps } from "./types";
3
+ export declare const ContextualMenuContext: React.Context<ContextualMenuContextProps>;
4
+ declare const DxcContextualMenu: ({ items }: ContextualMenuPropsType) => React.JSX.Element;
7
5
  export default DxcContextualMenu;
@@ -5,67 +5,132 @@ var _typeof = require("@babel/runtime/helpers/typeof");
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports["default"] = void 0;
8
+ exports["default"] = exports.ContextualMenuContext = void 0;
9
9
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
10
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
10
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
12
12
  var _react = _interopRequireWildcard(require("react"));
13
- var _styledComponents = _interopRequireDefault(require("styled-components"));
13
+ var _styledComponents = _interopRequireWildcard(require("styled-components"));
14
14
  var _coreTokens = _interopRequireDefault(require("../common/coreTokens"));
15
- var _Badge = _interopRequireDefault(require("../badge/Badge"));
16
- var _MenuItemAction = _interopRequireDefault(require("./MenuItemAction"));
17
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
15
+ var _Divider = _interopRequireDefault(require("../divider/Divider"));
16
+ var _Inset = _interopRequireDefault(require("../inset/Inset"));
17
+ var _MenuItem = _interopRequireDefault(require("./MenuItem"));
18
+ var _useTheme = _interopRequireDefault(require("../useTheme"));
19
+ var _templateObject, _templateObject2, _templateObject3;
18
20
  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); }
19
- 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; }
21
+ 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 && {}.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; }
22
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
23
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
24
+ var ContextualMenuContext = exports.ContextualMenuContext = /*#__PURE__*/(0, _react.createContext)(null);
25
+ var isGroupItem = function isGroupItem(item) {
26
+ return "items" in item;
27
+ };
28
+ var isSection = function isSection(item) {
29
+ return "items" in item && !("label" in item);
30
+ };
31
+ var addIdToItems = function addIdToItems(items) {
32
+ var accId = 0;
33
+ var innerAddIdToItems = function innerAddIdToItems(items) {
34
+ return items.map(function (item) {
35
+ return isSection(item) ? _objectSpread(_objectSpread({}, item), {}, {
36
+ items: innerAddIdToItems(item.items)
37
+ }) : isGroupItem(item) ? _objectSpread(_objectSpread({}, item), {}, {
38
+ items: innerAddIdToItems(item.items)
39
+ }) : _objectSpread(_objectSpread({}, item), {}, {
40
+ id: accId++
41
+ });
42
+ });
43
+ };
44
+ return innerAddIdToItems(items);
45
+ };
20
46
  var DxcContextualMenu = function DxcContextualMenu(_ref) {
21
- var items = _ref.items,
22
- _ref$defaultSelectedI = _ref.defaultSelectedItemIndex,
23
- defaultSelectedItemIndex = _ref$defaultSelectedI === void 0 ? -1 : _ref$defaultSelectedI;
24
- var _useState = (0, _react.useState)(defaultSelectedItemIndex),
47
+ var items = _ref.items;
48
+ var _useState = (0, _react.useState)(-1),
25
49
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
26
- selectedItemIndex = _useState2[0],
27
- setSelectedItemIndex = _useState2[1];
28
- var renderSingleItem = function renderSingleItem(item, index) {
29
- return /*#__PURE__*/_react["default"].createElement(Li, {
30
- key: "option-".concat(index),
31
- role: "menuitem"
32
- }, /*#__PURE__*/_react["default"].createElement(_MenuItemAction["default"], (0, _extends2["default"])({}, item, {
33
- selected: selectedItemIndex === index,
34
- onSelect: function onSelect() {
35
- var _item$onSelect;
36
- setSelectedItemIndex(index);
37
- (_item$onSelect = item.onSelect) === null || _item$onSelect === void 0 ? void 0 : _item$onSelect.call(item);
38
- }
39
- })));
40
- };
41
- var accLength = 0;
42
- var renderSection = function renderSection(section, currentSectionIndex, items) {
43
- var startingIndex = accLength;
44
- accLength += section.items.length;
50
+ selectedItemId = _useState2[0],
51
+ setSelectedItemId = _useState2[1];
52
+ var contextualMenuRef = (0, _react.useRef)(null);
53
+ var itemsWithId = (0, _react.useMemo)(function () {
54
+ return addIdToItems(items);
55
+ }, [items]);
56
+ var colorsTheme = (0, _useTheme["default"])();
57
+ var renderSection = function renderSection(section, currentSectionIndex, length) {
45
58
  return /*#__PURE__*/_react["default"].createElement(_react.Fragment, {
46
- key: "separator-".concat(currentSectionIndex)
47
- }, /*#__PURE__*/_react["default"].createElement(Li, {
48
- role: "group"
49
- }, section.title != null && /*#__PURE__*/_react["default"].createElement(Title, null, section.title), /*#__PURE__*/_react["default"].createElement(Section, null, section.items.map(function (item, index) {
50
- return renderSingleItem(item, startingIndex + index);
51
- }))), currentSectionIndex !== items.length - 1 && /*#__PURE__*/_react["default"].createElement(Divider, {
52
- "aria-hidden": true
53
- }));
59
+ key: "section-".concat(currentSectionIndex)
60
+ }, /*#__PURE__*/_react["default"].createElement("li", {
61
+ role: "group",
62
+ "aria-labelledby": section.title
63
+ }, section.title != null && /*#__PURE__*/_react["default"].createElement(Title, {
64
+ id: section.title
65
+ }, section.title), /*#__PURE__*/_react["default"].createElement(SectionList, null, section.items.map(function (item, index) {
66
+ return /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
67
+ item: item,
68
+ key: "".concat(item.label, "-").concat(index)
69
+ });
70
+ }))), currentSectionIndex !== length - 1 && /*#__PURE__*/_react["default"].createElement(_Inset["default"], {
71
+ top: "0.25rem",
72
+ bottom: "0.25rem"
73
+ }, /*#__PURE__*/_react["default"].createElement(_Divider["default"], {
74
+ color: "lightGrey"
75
+ })));
54
76
  };
55
- return /*#__PURE__*/_react["default"].createElement(Menu, {
56
- role: "menu"
57
- }, items.map(function (item, index, items) {
58
- return "items" in item ? renderSection(item, index, items) : renderSingleItem(item, index);
59
- }));
60
- };
61
- var Menu = _styledComponents["default"].ul(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n margin: 0;\n border: 1px solid ", ";\n border-radius: 0.25rem;\n padding: ", " ", ";\n\n display: grid;\n gap: ", ";\n min-width: 248px;\n max-height: 100%;\n background-color: ", ";\n\n overflow-y: auto;\n &::-webkit-scrollbar {\n width: 8px;\n height: 8px;\n }\n &::-webkit-scrollbar-thumb {\n background-color: ", ";\n border-radius: 0.25rem;\n }\n &::-webkit-scrollbar-track {\n background-color: ", ";\n border-radius: 0.25rem;\n }\n"])), _coreTokens["default"].color_grey_200, _coreTokens["default"].spacing_16, _coreTokens["default"].spacing_8, _coreTokens["default"].spacing_4, _coreTokens["default"].color_white, _coreTokens["default"].color_grey_700, _coreTokens["default"].color_grey_300);
62
- var Li = _styledComponents["default"].li(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: grid;\n"])));
63
- var Section = _styledComponents["default"].ul(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n list-style: none;\n margin: 0;\n padding: 0;\n display: grid;\n gap: ", ";\n"])), _coreTokens["default"].spacing_4);
64
- var Title = _styledComponents["default"].h2(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n margin: 0 0 ", " 0;\n padding: ", ";\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-weight: ", ";\n line-height: 24px;\n\n & + ul > li > button {\n padding-left: ", " !important;\n }\n"])), _coreTokens["default"].spacing_4, _coreTokens["default"].spacing_4, _coreTokens["default"].color_grey_900, _coreTokens["default"].type_sans, _coreTokens["default"].type_scale_03, _coreTokens["default"].type_semibold, _coreTokens["default"].spacing_12);
65
- var Divider = _styledComponents["default"].hr(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n margin: ", " 0;\n border: none;\n height: 1px;\n background: ", ";\n"])), _coreTokens["default"].spacing_4, _coreTokens["default"].color_grey_200);
66
- DxcContextualMenu.Badge = function (props) {
67
- return /*#__PURE__*/_react["default"].createElement(_Badge["default"], (0, _extends2["default"])({}, props, {
68
- size: "small"
69
- }));
77
+ var _useState3 = (0, _react.useState)(true),
78
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
79
+ firstUpdate = _useState4[0],
80
+ setFirstUpdate = _useState4[1];
81
+ (0, _react.useLayoutEffect)(function () {
82
+ if (selectedItemId !== -1 && firstUpdate) {
83
+ var _contextualMenuEl$scr;
84
+ var contextualMenuEl = contextualMenuRef === null || contextualMenuRef === void 0 ? void 0 : contextualMenuRef.current;
85
+ var selectedItemEl = contextualMenuEl === null || contextualMenuEl === void 0 ? void 0 : contextualMenuEl.querySelector("[aria-selected='true']");
86
+ contextualMenuEl === null || contextualMenuEl === void 0 ? void 0 : (_contextualMenuEl$scr = contextualMenuEl.scrollTo) === null || _contextualMenuEl$scr === void 0 ? void 0 : _contextualMenuEl$scr.call(contextualMenuEl, {
87
+ top: (selectedItemEl === null || selectedItemEl === void 0 ? void 0 : selectedItemEl.offsetTop) - (contextualMenuEl === null || contextualMenuEl === void 0 ? void 0 : contextualMenuEl.clientHeight) / 2
88
+ });
89
+ setFirstUpdate(false);
90
+ }
91
+ }, [firstUpdate, selectedItemId]);
92
+ return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
93
+ theme: colorsTheme.contextualMenu
94
+ }, /*#__PURE__*/_react["default"].createElement(ContextualMenu, {
95
+ role: "menu",
96
+ ref: contextualMenuRef
97
+ }, /*#__PURE__*/_react["default"].createElement(ContextualMenuContext.Provider, {
98
+ value: {
99
+ selectedItemId: selectedItemId,
100
+ setSelectedItemId: setSelectedItemId
101
+ }
102
+ }, itemsWithId.map(function (item, index) {
103
+ return "items" in item && !("label" in item) ? renderSection(item, index, itemsWithId.length) : /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
104
+ item: item,
105
+ key: "".concat(item.label, "-").concat(index)
106
+ });
107
+ }))));
70
108
  };
109
+ var ContextualMenu = _styledComponents["default"].ul(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n margin: 0;\n border: 1px solid ", ";\n border-radius: 0.25rem;\n padding: ", " ", ";\n display: grid;\n gap: ", ";\n min-width: 248px;\n max-height: 100%;\n background-color: ", ";\n overflow-y: auto;\n &::-webkit-scrollbar {\n width: 8px;\n height: 8px;\n }\n &::-webkit-scrollbar-thumb {\n background-color: ", ";\n border-radius: 0.25rem;\n }\n &::-webkit-scrollbar-track {\n background-color: ", ";\n border-radius: 0.25rem;\n }\n"])), function (_ref2) {
110
+ var theme = _ref2.theme;
111
+ return theme.borderColor;
112
+ }, _coreTokens["default"].spacing_16, _coreTokens["default"].spacing_8, _coreTokens["default"].spacing_4, function (_ref3) {
113
+ var theme = _ref3.theme;
114
+ return theme.backgroundColor;
115
+ }, _coreTokens["default"].color_grey_700, _coreTokens["default"].color_grey_300);
116
+ var SectionList = _styledComponents["default"].ul(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n list-style: none;\n margin: 0;\n padding: 0;\n display: grid;\n gap: ", ";\n"])), _coreTokens["default"].spacing_4);
117
+ var Title = _styledComponents["default"].h2(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n margin: 0 0 ", " 0;\n padding: ", ";\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: ", ";\n"])), _coreTokens["default"].spacing_4, _coreTokens["default"].spacing_4, function (_ref4) {
118
+ var theme = _ref4.theme;
119
+ return theme.sectionTitleFontColor;
120
+ }, function (_ref5) {
121
+ var theme = _ref5.theme;
122
+ return theme.fontFamily;
123
+ }, function (_ref6) {
124
+ var theme = _ref6.theme;
125
+ return theme.sectionTitleFontSize;
126
+ }, function (_ref7) {
127
+ var theme = _ref7.theme;
128
+ return theme.sectionTitleFontStyle;
129
+ }, function (_ref8) {
130
+ var theme = _ref8.theme;
131
+ return theme.sectionTitleFontWeight;
132
+ }, function (_ref9) {
133
+ var theme = _ref9.theme;
134
+ return theme.sectionTitleLineHeight;
135
+ });
71
136
  var _default = exports["default"] = DxcContextualMenu;