carbon-react 111.12.3 → 111.12.4

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 (888) hide show
  1. package/esm/__internal__/DeprecationWarning.js +2 -0
  2. package/esm/__internal__/character-count/character-count.component.js +2 -0
  3. package/esm/__internal__/checkable-input/checkable-input.component.js +5 -0
  4. package/esm/__internal__/checkable-input/hidden-checkable-input.component.js +11 -0
  5. package/esm/__internal__/field-help/field-help.component.js +2 -0
  6. package/esm/__internal__/fieldset/fieldset.component.js +3 -0
  7. package/esm/__internal__/focus-trap/focus-trap-utils.js +25 -6
  8. package/esm/__internal__/focus-trap/focus-trap.component.js +17 -7
  9. package/esm/__internal__/form-field/form-field.component.js +5 -0
  10. package/esm/__internal__/full-screen-heading/full-screen-heading.component.js +1 -0
  11. package/esm/__internal__/input/input-presentation.component.js +5 -0
  12. package/esm/__internal__/input/input-presentation.style.js +5 -0
  13. package/esm/__internal__/input/input.component.js +25 -2
  14. package/esm/__internal__/input-behaviour/input-behaviour.component.js +3 -2
  15. package/esm/__internal__/input-behaviour/input-group-behaviour.component.js +2 -0
  16. package/esm/__internal__/input-behaviour/useInputBehaviour.js +4 -2
  17. package/esm/__internal__/input-icon-toggle/input-icon-toggle.component.js +5 -0
  18. package/esm/__internal__/input-icon-toggle/input-icon-toggle.style.js +1 -0
  19. package/esm/__internal__/label/label.component.js +10 -0
  20. package/esm/__internal__/popover/popover.component.js +11 -0
  21. package/esm/__internal__/radio-button-mapper/radio-button-mapper.component.js +10 -0
  22. package/esm/__internal__/sticky-footer/sticky-footer.component.js +5 -0
  23. package/esm/__internal__/utils/helpers/browser-type-check/index.js +1 -0
  24. package/esm/__internal__/utils/helpers/events/composedPath.js +4 -1
  25. package/esm/__internal__/utils/helpers/events/events.js +16 -1
  26. package/esm/__internal__/utils/helpers/guid/index.js +1 -0
  27. package/esm/__internal__/utils/helpers/tags/tags-specs/tags-specs.js +3 -2
  28. package/esm/__internal__/utils/helpers/tags/tags.js +4 -0
  29. package/esm/__internal__/utils/logger/index.js +1 -1
  30. package/esm/__internal__/validation-message/validation-message.component.js +2 -0
  31. package/esm/__internal__/validations/validation-icon.component.js +8 -0
  32. package/esm/__spec_helper__/enzyme-snapshot-helper.js +5 -0
  33. package/esm/__spec_helper__/expect.js +5 -2
  34. package/esm/__spec_helper__/mock-match-media.js +3 -0
  35. package/esm/__spec_helper__/mock-resize-observer.js +2 -0
  36. package/esm/__spec_helper__/test-utils.js +62 -27
  37. package/esm/components/accordion/accordion-group/accordion-group.component.js +9 -0
  38. package/esm/components/accordion/accordion.component.js +7 -0
  39. package/esm/components/action-popover/action-popover-item/action-popover-item.component.js +21 -2
  40. package/esm/components/action-popover/action-popover-menu/action-popover-menu.component.js +7 -2
  41. package/esm/components/action-popover/action-popover-menu-button/action-popover-menu-button.component.js +3 -0
  42. package/esm/components/action-popover/action-popover.component.js +19 -4
  43. package/esm/components/advanced-color-picker/advanced-color-picker.component.js +19 -0
  44. package/esm/components/alert/alert.component.js +3 -0
  45. package/esm/components/anchor-navigation/anchor-navigation.component.js +14 -5
  46. package/esm/components/badge/badge.component.js +2 -0
  47. package/esm/components/batch-selection/batch-selection.component.js +6 -0
  48. package/esm/components/box/box.config.js +1 -0
  49. package/esm/components/button/button-types.style.js +2 -0
  50. package/esm/components/button/button.component.js +12 -0
  51. package/esm/components/button/button.style.js +8 -0
  52. package/esm/components/button-bar/button-bar.component.js +8 -2
  53. package/esm/components/button-toggle/button-toggle-icon.component.js +2 -0
  54. package/esm/components/button-toggle/button-toggle-input.component.js +6 -0
  55. package/esm/components/button-toggle/button-toggle.component.js +6 -0
  56. package/esm/components/button-toggle-group/button-toggle-group.component.js +3 -0
  57. package/esm/components/carbon-provider/carbon-provider.component.js +2 -0
  58. package/esm/components/carbon-provider/top-modal-context.js +7 -3
  59. package/esm/components/card/card-column/card-column.component.js +2 -0
  60. package/esm/components/card/card-footer/card-footer.component.js +3 -0
  61. package/esm/components/card/card-row/card-row.component.js +3 -0
  62. package/esm/components/card/card.component.js +8 -0
  63. package/esm/components/carousel/carousel.component.js +15 -0
  64. package/esm/components/carousel/slide/slide.component.js +3 -0
  65. package/esm/components/carousel/slide/slide.style.js +1 -2
  66. package/esm/components/checkbox/checkbox-group.component.js +3 -0
  67. package/esm/components/checkbox/checkbox-svg.component.js +2 -0
  68. package/esm/components/checkbox/checkbox.component.js +7 -0
  69. package/esm/components/confirm/confirm.component.js +38 -0
  70. package/esm/components/content/content.component.js +3 -0
  71. package/esm/components/date/__internal__/date-formats/index.js +19 -6
  72. package/esm/components/date/__internal__/date-picker/date-picker.component.js +15 -2
  73. package/esm/components/date/__internal__/date-picker/day-picker.style.js +7 -3
  74. package/esm/components/date/__internal__/navbar/navbar.component.js +2 -0
  75. package/esm/components/date/__internal__/utils.js +31 -1
  76. package/esm/components/date/__internal__/weekday/weekday.component.js +3 -0
  77. package/esm/components/date/date.component.js +54 -10
  78. package/esm/components/date-range/date-range.component.js +46 -14
  79. package/esm/components/decimal/decimal.component.js +29 -4
  80. package/esm/components/definition-list/dd.component.js +3 -0
  81. package/esm/components/definition-list/dl.component.js +8 -0
  82. package/esm/components/definition-list/dt.component.js +3 -0
  83. package/esm/components/detail/detail.component.js +8 -2
  84. package/esm/components/dialog/dialog.component.js +14 -0
  85. package/esm/components/dialog/dialog.style.js +2 -0
  86. package/esm/components/dialog-full-screen/dialog-full-screen.component.js +25 -0
  87. package/esm/components/dismissible-box/dismissible-box.component.js +3 -0
  88. package/esm/components/draggable/draggable-container.component.js +16 -4
  89. package/esm/components/draggable/draggable-item.component.js +11 -2
  90. package/esm/components/drawer/drawer.component.js +16 -0
  91. package/esm/components/drawer/drawer.style.js +7 -0
  92. package/esm/components/duelling-picklist/duelling-picklist.component.js +14 -2
  93. package/esm/components/duelling-picklist/picklist/picklist.component.js +7 -0
  94. package/esm/components/duelling-picklist/picklist-divider/picklist-divider.component.js +3 -0
  95. package/esm/components/duelling-picklist/picklist-group/picklist-group.component.js +7 -0
  96. package/esm/components/duelling-picklist/picklist-item/picklist-item.component.js +14 -0
  97. package/esm/components/duelling-picklist/picklist-placeholder/picklist-placeholder.component.js +2 -0
  98. package/esm/components/fieldset/fieldset.component.js +4 -0
  99. package/esm/components/flat-table/flat-table-body/flat-table-body.component.js +1 -0
  100. package/esm/components/flat-table/flat-table-body-draggable/flat-table-body-draggable.component.js +13 -0
  101. package/esm/components/flat-table/flat-table-cell/flat-table-cell.component.js +18 -0
  102. package/esm/components/flat-table/flat-table-checkbox/flat-table-checkbox.component.js +15 -0
  103. package/esm/components/flat-table/flat-table-head/flat-table-head.component.js +8 -4
  104. package/esm/components/flat-table/flat-table-header/flat-table-header-utils.js +4 -1
  105. package/esm/components/flat-table/flat-table-header/flat-table-header.component.js +13 -0
  106. package/esm/components/flat-table/flat-table-row/__internal__/flat-table-row-draggable.component.js +9 -0
  107. package/esm/components/flat-table/flat-table-row/flat-table-row.component.js +35 -0
  108. package/esm/components/flat-table/flat-table-row/flat-table-row.style.js +11 -2
  109. package/esm/components/flat-table/flat-table-row-header/flat-table-row-header.component.js +15 -0
  110. package/esm/components/flat-table/flat-table.component.js +20 -2
  111. package/esm/components/flat-table/flat-table.style.js +3 -0
  112. package/esm/components/flat-table/sort/sort.component.js +7 -0
  113. package/esm/components/form/__internal__/form-summary.component.js +7 -0
  114. package/esm/components/form/form.component.js +3 -0
  115. package/esm/components/form/form.style.js +3 -2
  116. package/esm/components/global-header/global-header.component.js +6 -1
  117. package/esm/components/grid/grid-container/grid-container.component.js +6 -0
  118. package/esm/components/grid/grid-item/grid-item.component.js +6 -0
  119. package/esm/components/grid/grid-item/grid-item.style.js +14 -0
  120. package/esm/components/grouped-character/grouped-character.component.js +21 -3
  121. package/esm/components/heading/heading.component.js +9 -2
  122. package/esm/components/help/help.component.js +8 -0
  123. package/esm/components/hr/hr.component.js +5 -0
  124. package/esm/components/i18n-provider/i18n-provider.component.js +2 -0
  125. package/esm/components/icon/icon-unicodes.js +1 -2
  126. package/esm/components/icon/icon.component.js +12 -1
  127. package/esm/components/icon/icon.style.js +6 -0
  128. package/esm/components/icon-button/icon-button.component.js +4 -0
  129. package/esm/components/image/image.component.js +3 -0
  130. package/esm/components/image/image.style.js +1 -2
  131. package/esm/components/inline-inputs/inline-inputs.component.js +6 -0
  132. package/esm/components/link/link.component.js +12 -3
  133. package/esm/components/link/link.style.js +4 -0
  134. package/esm/components/link-preview/__internal__/placeholder.component.js +2 -0
  135. package/esm/components/link-preview/link-preview.component.js +7 -0
  136. package/esm/components/loader/loader-square.style.js +6 -0
  137. package/esm/components/loader/loader.component.js +3 -0
  138. package/esm/components/loader-bar/loader-bar.component.js +3 -0
  139. package/esm/components/loader-bar/loader-bar.style.js +4 -0
  140. package/esm/components/menu/__internal__/keyboard-navigation/index.js +9 -0
  141. package/esm/components/menu/__internal__/spec-helper/index.js +2 -0
  142. package/esm/components/menu/__internal__/submenu/submenu.component.js +59 -7
  143. package/esm/components/menu/menu-full-screen/menu-full-screen.component.js +8 -0
  144. package/esm/components/menu/menu-item/menu-item.component.js +35 -0
  145. package/esm/components/menu/menu-segment-title/menu-segment-title.component.js +1 -0
  146. package/esm/components/menu/menu.component.js +8 -0
  147. package/esm/components/menu/menu.context.js +3 -1
  148. package/esm/components/menu/scrollable-block/scrollable-block.component.js +9 -0
  149. package/esm/components/message/message-content/message-content.component.js +2 -0
  150. package/esm/components/message/message.component.js +5 -0
  151. package/esm/components/message/type-icon/type-icon.component.js +2 -0
  152. package/esm/components/modal/__internal__/modal-manager.js +24 -0
  153. package/esm/components/modal/modal.component.js +6 -0
  154. package/esm/components/multi-action-button/multi-action-button.component.js +20 -3
  155. package/esm/components/navigation-bar/navigation-bar.component.js +3 -0
  156. package/esm/components/note/note.component.js +10 -1
  157. package/esm/components/number/number.component.js +9 -2
  158. package/esm/components/numeral-date/numeral-date.component.js +22 -9
  159. package/esm/components/pager/__internal__/pager-navigation-link.component.js +11 -0
  160. package/esm/components/pager/__internal__/pager-navigation.component.js +22 -0
  161. package/esm/components/pager/pager.component.js +29 -0
  162. package/esm/components/pages/page/page.component.js +3 -0
  163. package/esm/components/pages/pages.component.js +14 -4
  164. package/esm/components/pill/pill.component.js +3 -0
  165. package/esm/components/pill/pill.style.js +4 -0
  166. package/esm/components/pod/pod.component.js +40 -4
  167. package/esm/components/pod/pod.style.js +8 -6
  168. package/esm/components/popover-container/popover-container.component.js +14 -2
  169. package/esm/components/popover-container/popover-container.style.js +3 -0
  170. package/esm/components/portal/portal.js +14 -2
  171. package/esm/components/portrait/portrait-gravatar.component.js +4 -0
  172. package/esm/components/portrait/portrait-initials.component.js +12 -10
  173. package/esm/components/portrait/portrait.component.js +10 -0
  174. package/esm/components/portrait/portrait.style.js +10 -3
  175. package/esm/components/preview/__internal__/preview-placeholder.component.js +3 -0
  176. package/esm/components/preview/preview.component.js +7 -0
  177. package/esm/components/preview/preview.style.js +1 -2
  178. package/esm/components/profile/profile.component.js +8 -0
  179. package/esm/components/progress-tracker/progress-tracker.component.js +24 -2
  180. package/esm/components/progress-tracker/progress-tracker.style.js +5 -0
  181. package/esm/components/radio-button/radio-button-group.component.js +27 -2
  182. package/esm/components/radio-button/radio-button-svg.component.js +2 -0
  183. package/esm/components/radio-button/radio-button.component.js +32 -6
  184. package/esm/components/search/search.component.js +21 -2
  185. package/esm/components/select/__internal__/select-text/select-text.component.js +13 -0
  186. package/esm/components/select/filterable-select/filterable-select.component.js +73 -8
  187. package/esm/components/select/list-action-button/list-action-button.component.js +4 -0
  188. package/esm/components/select/multi-select/multi-select.component.js +81 -15
  189. package/esm/components/select/option/option.component.js +12 -0
  190. package/esm/components/select/option-group-header/option-group-header.component.js +3 -0
  191. package/esm/components/select/option-row/option-row.component.js +9 -0
  192. package/esm/components/select/select-list/select-list.component.js +45 -2
  193. package/esm/components/select/select-list/select-list.style.js +1 -2
  194. package/esm/components/select/select-list/update-list-scroll.js +3 -0
  195. package/esm/components/select/select-textbox/select-textbox.component.js +41 -2
  196. package/esm/components/select/simple-select/simple-select.component.js +60 -2
  197. package/esm/components/select/utils/get-next-child-by-text.js +8 -0
  198. package/esm/components/select/utils/get-next-index-by-key.js +13 -0
  199. package/esm/components/select/utils/highlight-part-of-text.js +7 -0
  200. package/esm/components/select/utils/is-expected-option.js +4 -0
  201. package/esm/components/select/utils/is-expected-value.js +1 -0
  202. package/esm/components/select/utils/with-filter.hoc.js +29 -3
  203. package/esm/components/settings-row/settings-row.component.js +10 -2
  204. package/esm/components/show-edit-pod/show-edit-pod.component.js +43 -6
  205. package/esm/components/sidebar/__internal__/sidebar-header/sidebar-header.component.js +2 -0
  206. package/esm/components/sidebar/sidebar.component.js +4 -3
  207. package/esm/components/simple-color-picker/color-sample-box/color-sample-box.component.js +5 -1
  208. package/esm/components/simple-color-picker/simple-color/simple-color.component.js +7 -0
  209. package/esm/components/simple-color-picker/simple-color-picker.component.js +41 -8
  210. package/esm/components/simple-color-picker/simple-color-picker.style.js +2 -0
  211. package/esm/components/simple-color-picker/tick-icon/tick-icon.style.js +6 -4
  212. package/esm/components/split-button/split-button.component.js +20 -1
  213. package/esm/components/step-sequence/step-sequence-item/step-sequence-item.component.js +9 -0
  214. package/esm/components/step-sequence/step-sequence.component.js +3 -0
  215. package/esm/components/switch/__internal__/switch-slider.component.js +2 -0
  216. package/esm/components/switch/switch.component.js +7 -0
  217. package/esm/components/tabs/__internal__/tab-title/tab-title.component.js +19 -8
  218. package/esm/components/tabs/__internal__/tabs-header/tabs-header.component.js +2 -0
  219. package/esm/components/tabs/__internal__/tabs-header/tabs-header.style.js +3 -0
  220. package/esm/components/tabs/tab/tab.component.js +24 -8
  221. package/esm/components/tabs/tabs.component.js +54 -24
  222. package/esm/components/text-editor/__internal__/decorators/link-decorator.js +10 -10
  223. package/esm/components/text-editor/__internal__/editor-counter/editor-counter.component.js +6 -0
  224. package/esm/components/text-editor/__internal__/editor-link/editor-link.component.js +7 -2
  225. package/esm/components/text-editor/__internal__/label-wrapper/label-wrapper.component.js +3 -0
  226. package/esm/components/text-editor/__internal__/toolbar/toolbar-button/toolbar-button.component.js +6 -0
  227. package/esm/components/text-editor/__internal__/toolbar/toolbar.component.js +10 -0
  228. package/esm/components/text-editor/__internal__/utils/utils.js +21 -9
  229. package/esm/components/text-editor/text-editor.component.js +53 -22
  230. package/esm/components/textarea/textarea.component.js +50 -6
  231. package/esm/components/textbox/textbox.component.js +9 -2
  232. package/esm/components/tile/tile-footer/tile-footer.component.js +5 -2
  233. package/esm/components/tile/tile.component.js +10 -0
  234. package/esm/components/tile-select/__internal__/accordion/accordion.component.js +2 -0
  235. package/esm/components/tile-select/tile-select-group.component.js +16 -2
  236. package/esm/components/tile-select/tile-select.component.js +33 -4
  237. package/esm/components/toast/toast.component.js +18 -0
  238. package/esm/components/tooltip/tooltip-pointer.style.js +2 -0
  239. package/esm/components/tooltip/tooltip.component.js +3 -0
  240. package/esm/components/tooltip/tooltip.style.js +6 -0
  241. package/esm/components/typography/list.component.js +7 -0
  242. package/esm/components/typography/typography.component.js +28 -0
  243. package/esm/components/vertical-divider/vertical-divider.component.js +3 -0
  244. package/esm/hooks/__internal__/useCharacterCount/useCharacterCount.js +4 -0
  245. package/esm/hooks/__internal__/useClickAwayListener/useClickAwayListener.js +2 -3
  246. package/esm/hooks/__internal__/useFloating/useFloating.js +6 -0
  247. package/esm/hooks/__internal__/useIsStickyFooterForm/useIsStickyFooterForm.js +1 -0
  248. package/esm/hooks/__internal__/useMenuKeyboardNavigation/useMenuKeyboardNavigation.js +16 -2
  249. package/esm/hooks/__internal__/useModalManager/useModalManager.js +4 -0
  250. package/esm/hooks/__internal__/useResizeObserver/useResizeObserver.js +8 -3
  251. package/esm/hooks/__internal__/useScrollBlock/scroll-block-manager.js +16 -6
  252. package/esm/hooks/__internal__/useScrollBlock/useScrollBlock.js +15 -11
  253. package/esm/hooks/useMediaQuery/useMediaQuery.js +2 -0
  254. package/esm/locales/en-gb.js +8 -1
  255. package/esm/locales/pl-pl.js +8 -1
  256. package/esm/style/design-tokens/carbon-scoped-tokens-provider/carbon-scoped-tokens-provider.component.js +0 -1
  257. package/esm/style/design-tokens/debug-theme.util.js +9 -5
  258. package/esm/style/design-tokens/generate-css-variables.util.js +0 -1
  259. package/esm/style/palette/index.js +6 -2
  260. package/esm/style/themes/aegean/aegean-theme.config.js +3 -0
  261. package/esm/style/themes/base/base-theme.config.js +4 -2
  262. package/esm/style/themes/base/index.js +2 -4
  263. package/esm/style/themes/mint/mint-theme.config.js +3 -0
  264. package/esm/style/themes/sage/index.js +2 -4
  265. package/esm/style/themes/test-utils.js +4 -4
  266. package/esm/style/utils/add-hex-symbols.js +1 -0
  267. package/esm/style/utils/at-opacity.js +1 -0
  268. package/esm/style/utils/color.js +8 -3
  269. package/esm/style/utils/filter-out-styled-system-spacing-props.js +2 -0
  270. package/esm/style/utils/filter-styled-system-padding-props.js +1 -2
  271. package/esm/style/utils/form-style-utils.js +12 -0
  272. package/esm/style/utils/get-color-value.js +1 -0
  273. package/esm/style/utils/get-rgb-values.js +1 -1
  274. package/esm/style/utils/merge-deep.js +6 -1
  275. package/esm/style/utils/mix.js +7 -1
  276. package/esm/style/utils/width.js +0 -1
  277. package/lib/__internal__/DeprecationWarning.js +5 -0
  278. package/lib/__internal__/character-count/character-count.component.js +6 -0
  279. package/lib/__internal__/character-count/character-count.style.js +6 -0
  280. package/lib/__internal__/character-count/index.js +2 -0
  281. package/lib/__internal__/checkable-input/checkable-input-svg-wrapper.style.js +3 -0
  282. package/lib/__internal__/checkable-input/checkable-input.component.js +16 -0
  283. package/lib/__internal__/checkable-input/checkable-input.style.js +11 -0
  284. package/lib/__internal__/checkable-input/hidden-checkable-input.component.js +20 -0
  285. package/lib/__internal__/checkable-input/hidden-checkable-input.style.js +3 -0
  286. package/lib/__internal__/checkable-input/index.js +2 -0
  287. package/lib/__internal__/field-help/field-help.component.js +6 -0
  288. package/lib/__internal__/field-help/field-help.style.js +4 -0
  289. package/lib/__internal__/field-help/index.js +2 -0
  290. package/lib/__internal__/fieldset/fieldset.component.js +9 -0
  291. package/lib/__internal__/fieldset/fieldset.style.js +7 -0
  292. package/lib/__internal__/fieldset/index.js +2 -0
  293. package/lib/__internal__/filter-object-properties/filter-object-properties.js +1 -0
  294. package/lib/__internal__/filter-object-properties/index.js +2 -0
  295. package/lib/__internal__/focus-trap/focus-trap-utils.js +26 -6
  296. package/lib/__internal__/focus-trap/focus-trap.component.js +26 -4
  297. package/lib/__internal__/focus-trap/index.js +2 -0
  298. package/lib/__internal__/form-field/form-field.component.js +18 -0
  299. package/lib/__internal__/form-field/form-field.style.js +6 -0
  300. package/lib/__internal__/form-field/index.js +2 -0
  301. package/lib/__internal__/full-screen-heading/full-screen-heading.component.js +10 -0
  302. package/lib/__internal__/full-screen-heading/full-screen-heading.style.js +5 -0
  303. package/lib/__internal__/full-screen-heading/index.js +2 -0
  304. package/lib/__internal__/i18n-context/index.js +5 -0
  305. package/lib/__internal__/input/index.js +4 -0
  306. package/lib/__internal__/input/input-presentation.component.js +13 -0
  307. package/lib/__internal__/input/input-presentation.style.js +12 -0
  308. package/lib/__internal__/input/input.component.js +33 -2
  309. package/lib/__internal__/input/input.style.js +4 -0
  310. package/lib/__internal__/input-behaviour/index.js +2 -0
  311. package/lib/__internal__/input-behaviour/input-behaviour.component.js +12 -2
  312. package/lib/__internal__/input-behaviour/input-group-behaviour.component.js +8 -0
  313. package/lib/__internal__/input-behaviour/useInputBehaviour.js +5 -2
  314. package/lib/__internal__/input-icon-toggle/index.js +2 -0
  315. package/lib/__internal__/input-icon-toggle/input-icon-toggle.component.js +11 -0
  316. package/lib/__internal__/input-icon-toggle/input-icon-toggle.style.js +7 -0
  317. package/lib/__internal__/label/icon-wrapper.style.js +5 -0
  318. package/lib/__internal__/label/index.js +2 -0
  319. package/lib/__internal__/label/label.component.js +22 -0
  320. package/lib/__internal__/label/label.style.js +4 -0
  321. package/lib/__internal__/popover/index.js +2 -0
  322. package/lib/__internal__/popover/popover.component.js +24 -0
  323. package/lib/__internal__/popover/popover.style.js +4 -0
  324. package/lib/__internal__/radio-button-mapper/index.js +2 -0
  325. package/lib/__internal__/radio-button-mapper/radio-button-mapper.component.js +15 -0
  326. package/lib/__internal__/sticky-footer/index.js +2 -0
  327. package/lib/__internal__/sticky-footer/sticky-footer.component.js +13 -0
  328. package/lib/__internal__/sticky-footer/sticky-footer.style.js +4 -0
  329. package/lib/__internal__/tooltip-provider/index.js +9 -0
  330. package/lib/__internal__/utils/helpers/browser-type-check/index.js +3 -0
  331. package/lib/__internal__/utils/helpers/events/composedPath.js +6 -0
  332. package/lib/__internal__/utils/helpers/events/events.js +18 -0
  333. package/lib/__internal__/utils/helpers/events/index.js +2 -0
  334. package/lib/__internal__/utils/helpers/guid/index.js +3 -0
  335. package/lib/__internal__/utils/helpers/tags/index.js +2 -0
  336. package/lib/__internal__/utils/helpers/tags/tags-specs/index.js +1 -0
  337. package/lib/__internal__/utils/helpers/tags/tags-specs/tags-specs.js +5 -2
  338. package/lib/__internal__/utils/helpers/tags/tags.js +5 -0
  339. package/lib/__internal__/utils/helpers/useUniqueId/index.js +5 -0
  340. package/lib/__internal__/utils/logger/index.js +2 -1
  341. package/lib/__internal__/validation-message/index.js +2 -0
  342. package/lib/__internal__/validation-message/validation-message.component.js +6 -0
  343. package/lib/__internal__/validation-message/validation-message.style.js +4 -0
  344. package/lib/__internal__/validations/index.js +2 -0
  345. package/lib/__internal__/validations/validation-icon.component.js +18 -0
  346. package/lib/__internal__/validations/validation-icon.style.js +8 -0
  347. package/lib/__spec_helper__/enzyme-snapshot-helper.js +6 -0
  348. package/lib/__spec_helper__/expect.js +8 -2
  349. package/lib/__spec_helper__/index.js +4 -0
  350. package/lib/__spec_helper__/mock-match-media.js +7 -0
  351. package/lib/__spec_helper__/mock-resize-observer.js +3 -0
  352. package/lib/__spec_helper__/test-utils.js +87 -28
  353. package/lib/components/accordion/accordion-group/accordion-group.component.js +20 -0
  354. package/lib/components/accordion/accordion.component.js +19 -0
  355. package/lib/components/accordion/accordion.style.js +9 -0
  356. package/lib/components/accordion/index.js +3 -0
  357. package/lib/components/action-popover/action-popover-context.js +4 -0
  358. package/lib/components/action-popover/action-popover-divider/action-popover-divider.component.js +2 -0
  359. package/lib/components/action-popover/action-popover-item/action-popover-item.component.js +34 -2
  360. package/lib/components/action-popover/action-popover-menu/action-popover-menu.component.js +22 -2
  361. package/lib/components/action-popover/action-popover-menu-button/action-popover-menu-button.component.js +8 -0
  362. package/lib/components/action-popover/action-popover.component.js +35 -4
  363. package/lib/components/action-popover/action-popover.style.js +10 -0
  364. package/lib/components/action-popover/index.js +6 -0
  365. package/lib/components/advanced-color-picker/advanced-color-picker-cell.style.js +4 -0
  366. package/lib/components/advanced-color-picker/advanced-color-picker.component.js +30 -0
  367. package/lib/components/advanced-color-picker/advanced-color-picker.style.js +14 -0
  368. package/lib/components/advanced-color-picker/index.js +2 -0
  369. package/lib/components/alert/alert.component.js +7 -0
  370. package/lib/components/alert/index.js +2 -0
  371. package/lib/components/anchor-navigation/anchor-navigation-item/anchor-navigation-item.component.js +6 -0
  372. package/lib/components/anchor-navigation/anchor-navigation-item/anchor-navigation-item.style.js +4 -0
  373. package/lib/components/anchor-navigation/anchor-navigation.component.js +27 -5
  374. package/lib/components/anchor-navigation/anchor-navigation.style.js +3 -0
  375. package/lib/components/anchor-navigation/anchor-section-divider.component.js +3 -0
  376. package/lib/components/anchor-navigation/index.js +4 -0
  377. package/lib/components/badge/badge.component.js +6 -0
  378. package/lib/components/badge/badge.style.js +6 -0
  379. package/lib/components/badge/index.js +2 -0
  380. package/lib/components/batch-selection/batch-selection.component.js +11 -0
  381. package/lib/components/batch-selection/batch-selection.style.js +7 -0
  382. package/lib/components/batch-selection/index.js +2 -0
  383. package/lib/components/box/box.component.js +9 -0
  384. package/lib/components/box/box.config.js +3 -0
  385. package/lib/components/box/index.js +2 -0
  386. package/lib/components/button/button-types.style.js +6 -0
  387. package/lib/components/button/button.component.js +29 -0
  388. package/lib/components/button/button.style.js +16 -0
  389. package/lib/components/button/index.js +3 -0
  390. package/lib/components/button-bar/button-bar.component.js +18 -2
  391. package/lib/components/button-bar/button-bar.style.js +8 -0
  392. package/lib/components/button-bar/index.js +2 -0
  393. package/lib/components/button-toggle/button-toggle-icon.component.js +7 -0
  394. package/lib/components/button-toggle/button-toggle-input.component.js +15 -0
  395. package/lib/components/button-toggle/button-toggle.component.js +17 -0
  396. package/lib/components/button-toggle/button-toggle.style.js +6 -0
  397. package/lib/components/button-toggle/index.js +2 -0
  398. package/lib/components/button-toggle-group/button-toggle-group.component.js +18 -0
  399. package/lib/components/button-toggle-group/button-toggle-group.style.js +7 -0
  400. package/lib/components/button-toggle-group/index.js +2 -0
  401. package/lib/components/carbon-provider/carbon-provider.component.js +12 -0
  402. package/lib/components/carbon-provider/index.js +2 -0
  403. package/lib/components/carbon-provider/top-modal-context.js +13 -3
  404. package/lib/components/card/card-column/card-column.component.js +6 -0
  405. package/lib/components/card/card-column/card-column.style.js +3 -0
  406. package/lib/components/card/card-column/index.js +2 -0
  407. package/lib/components/card/card-footer/card-footer.component.js +8 -0
  408. package/lib/components/card/card-footer/card-footer.style.js +7 -0
  409. package/lib/components/card/card-footer/index.js +2 -0
  410. package/lib/components/card/card-row/card-row.component.js +8 -0
  411. package/lib/components/card/card-row/card-row.style.js +7 -0
  412. package/lib/components/card/card-row/index.js +2 -0
  413. package/lib/components/card/card.component.js +19 -0
  414. package/lib/components/card/card.style.js +7 -0
  415. package/lib/components/card/index.js +5 -0
  416. package/lib/components/carousel/carousel.component.js +24 -0
  417. package/lib/components/carousel/carousel.style.js +8 -0
  418. package/lib/components/carousel/index.js +3 -0
  419. package/lib/components/carousel/slide/index.js +2 -0
  420. package/lib/components/carousel/slide/slide.component.js +8 -0
  421. package/lib/components/carousel/slide/slide.style.js +5 -2
  422. package/lib/components/carousel/slide.config.js +2 -0
  423. package/lib/components/checkbox/checkbox-group.component.js +13 -0
  424. package/lib/components/checkbox/checkbox-group.style.js +10 -0
  425. package/lib/components/checkbox/checkbox-svg.component.js +6 -0
  426. package/lib/components/checkbox/checkbox.component.js +19 -0
  427. package/lib/components/checkbox/checkbox.style.js +13 -0
  428. package/lib/components/checkbox/index.js +3 -0
  429. package/lib/components/confirm/confirm.component.js +51 -0
  430. package/lib/components/confirm/confirm.style.js +8 -0
  431. package/lib/components/confirm/index.js +2 -0
  432. package/lib/components/content/content.component.js +7 -0
  433. package/lib/components/content/content.style.js +6 -0
  434. package/lib/components/content/index.js +2 -0
  435. package/lib/components/date/__internal__/date-formats/index.js +19 -6
  436. package/lib/components/date/__internal__/date-picker/date-picker.component.js +31 -2
  437. package/lib/components/date/__internal__/date-picker/day-picker.style.js +10 -1
  438. package/lib/components/date/__internal__/date-picker/index.js +2 -0
  439. package/lib/components/date/__internal__/navbar/button.style.js +3 -0
  440. package/lib/components/date/__internal__/navbar/index.js +2 -0
  441. package/lib/components/date/__internal__/navbar/navbar.component.js +8 -0
  442. package/lib/components/date/__internal__/navbar/navbar.style.js +3 -0
  443. package/lib/components/date/__internal__/utils.js +42 -1
  444. package/lib/components/date/__internal__/weekday/abbr.style.js +3 -0
  445. package/lib/components/date/__internal__/weekday/index.js +2 -0
  446. package/lib/components/date/__internal__/weekday/weekday.component.js +8 -0
  447. package/lib/components/date/__internal__/weekday/weekday.style.js +3 -0
  448. package/lib/components/date/date.component.js +71 -10
  449. package/lib/components/date/date.style.js +8 -0
  450. package/lib/components/date/index.js +2 -0
  451. package/lib/components/date-range/date-range.component.js +63 -14
  452. package/lib/components/date-range/date-range.context.js +4 -0
  453. package/lib/components/date-range/date-range.style.js +8 -0
  454. package/lib/components/date-range/index.js +2 -0
  455. package/lib/components/decimal/decimal.component.js +38 -4
  456. package/lib/components/decimal/index.js +2 -0
  457. package/lib/components/definition-list/__internal__/dl.context.js +4 -0
  458. package/lib/components/definition-list/dd.component.js +7 -0
  459. package/lib/components/definition-list/definition-list.style.js +8 -0
  460. package/lib/components/definition-list/dl.component.js +20 -0
  461. package/lib/components/definition-list/dt.component.js +10 -0
  462. package/lib/components/definition-list/index.js +4 -0
  463. package/lib/components/detail/detail.component.js +17 -2
  464. package/lib/components/detail/detail.style.js +8 -0
  465. package/lib/components/detail/index.js +2 -0
  466. package/lib/components/dialog/dialog.component.js +32 -0
  467. package/lib/components/dialog/dialog.style.js +14 -0
  468. package/lib/components/dialog/index.js +2 -0
  469. package/lib/components/dialog-full-screen/content.style.js +5 -0
  470. package/lib/components/dialog-full-screen/dialog-full-screen.component.js +42 -0
  471. package/lib/components/dialog-full-screen/dialog-full-screen.style.js +11 -0
  472. package/lib/components/dialog-full-screen/index.js +2 -0
  473. package/lib/components/dismissible-box/dismissible-box.component.js +9 -0
  474. package/lib/components/dismissible-box/dismissible-box.style.js +7 -0
  475. package/lib/components/dismissible-box/index.js +2 -0
  476. package/lib/components/draggable/draggable-container.component.js +30 -4
  477. package/lib/components/draggable/draggable-item.component.js +19 -2
  478. package/lib/components/draggable/draggable-item.style.js +6 -0
  479. package/lib/components/draggable/index.js +3 -0
  480. package/lib/components/drawer/drawer.component.js +29 -0
  481. package/lib/components/drawer/drawer.style.js +15 -0
  482. package/lib/components/drawer/index.js +3 -0
  483. package/lib/components/duelling-picklist/duelling-picklist.component.js +26 -2
  484. package/lib/components/duelling-picklist/duelling-picklist.context.js +4 -0
  485. package/lib/components/duelling-picklist/duelling-picklist.style.js +6 -0
  486. package/lib/components/duelling-picklist/index.js +7 -0
  487. package/lib/components/duelling-picklist/picklist/picklist.component.js +25 -0
  488. package/lib/components/duelling-picklist/picklist/picklist.style.js +4 -0
  489. package/lib/components/duelling-picklist/picklist-divider/picklist-divider.component.js +6 -0
  490. package/lib/components/duelling-picklist/picklist-divider/picklist-divider.style.js +3 -0
  491. package/lib/components/duelling-picklist/picklist-group/picklist-group.component.js +22 -0
  492. package/lib/components/duelling-picklist/picklist-group/picklist-group.style.js +7 -0
  493. package/lib/components/duelling-picklist/picklist-item/picklist-item.component.js +25 -0
  494. package/lib/components/duelling-picklist/picklist-item/picklist-item.style.js +8 -0
  495. package/lib/components/duelling-picklist/picklist-placeholder/picklist-placeholder.component.js +6 -0
  496. package/lib/components/fieldset/fieldset.component.js +11 -0
  497. package/lib/components/fieldset/fieldset.style.js +9 -0
  498. package/lib/components/fieldset/index.js +2 -0
  499. package/lib/components/flat-table/flat-table-body/flat-table-body.component.js +6 -0
  500. package/lib/components/flat-table/flat-table-body/index.js +2 -0
  501. package/lib/components/flat-table/flat-table-body-draggable/flat-table-body-draggable.component.js +23 -0
  502. package/lib/components/flat-table/flat-table-body-draggable/flat-table-body-draggable.style.js +4 -0
  503. package/lib/components/flat-table/flat-table-body-draggable/index.js +2 -0
  504. package/lib/components/flat-table/flat-table-cell/flat-table-cell.component.js +28 -0
  505. package/lib/components/flat-table/flat-table-cell/flat-table-cell.style.js +8 -0
  506. package/lib/components/flat-table/flat-table-cell/index.js +2 -0
  507. package/lib/components/flat-table/flat-table-checkbox/flat-table-checkbox.component.js +22 -0
  508. package/lib/components/flat-table/flat-table-checkbox/flat-table-checkbox.style.js +6 -0
  509. package/lib/components/flat-table/flat-table-checkbox/index.js +2 -0
  510. package/lib/components/flat-table/flat-table-head/flat-table-head.component.js +15 -4
  511. package/lib/components/flat-table/flat-table-head/flat-table-head.style.js +6 -0
  512. package/lib/components/flat-table/flat-table-head/index.js +2 -0
  513. package/lib/components/flat-table/flat-table-header/flat-table-header-utils.js +5 -1
  514. package/lib/components/flat-table/flat-table-header/flat-table-header.component.js +23 -0
  515. package/lib/components/flat-table/flat-table-header/flat-table-header.style.js +9 -0
  516. package/lib/components/flat-table/flat-table-header/index.js +2 -0
  517. package/lib/components/flat-table/flat-table-row/__internal__/flat-table-row-draggable.component.js +13 -0
  518. package/lib/components/flat-table/flat-table-row/flat-table-row.component.js +50 -0
  519. package/lib/components/flat-table/flat-table-row/flat-table-row.style.js +23 -2
  520. package/lib/components/flat-table/flat-table-row/index.js +2 -0
  521. package/lib/components/flat-table/flat-table-row-header/flat-table-row-header.component.js +25 -0
  522. package/lib/components/flat-table/flat-table-row-header/flat-table-row-header.style.js +8 -0
  523. package/lib/components/flat-table/flat-table-row-header/index.js +2 -0
  524. package/lib/components/flat-table/flat-table.component.js +29 -2
  525. package/lib/components/flat-table/flat-table.style.js +17 -0
  526. package/lib/components/flat-table/index.js +11 -0
  527. package/lib/components/flat-table/sort/index.js +2 -0
  528. package/lib/components/flat-table/sort/sort.component.js +16 -0
  529. package/lib/components/flat-table/sort/sort.style.js +4 -0
  530. package/lib/components/form/__internal__/form-summary.component.js +15 -0
  531. package/lib/components/form/__internal__/form-summary.style.js +7 -0
  532. package/lib/components/form/form.component.js +12 -0
  533. package/lib/components/form/form.style.js +17 -2
  534. package/lib/components/form/index.js +2 -0
  535. package/lib/components/global-header/global-header.component.js +16 -1
  536. package/lib/components/global-header/index.js +2 -0
  537. package/lib/components/grid/grid-container/grid-container.component.js +10 -0
  538. package/lib/components/grid/grid-container/grid-container.style.js +4 -0
  539. package/lib/components/grid/grid-container/index.js +2 -0
  540. package/lib/components/grid/grid-item/grid-item.component.js +10 -0
  541. package/lib/components/grid/grid-item/grid-item.style.js +19 -0
  542. package/lib/components/grid/grid-item/index.js +2 -0
  543. package/lib/components/grid/index.js +3 -0
  544. package/lib/components/grouped-character/grouped-character.component.js +28 -3
  545. package/lib/components/grouped-character/grouped-character.utils.js +4 -0
  546. package/lib/components/grouped-character/index.js +2 -0
  547. package/lib/components/heading/heading.component.js +16 -2
  548. package/lib/components/heading/heading.style.js +13 -0
  549. package/lib/components/heading/index.js +2 -0
  550. package/lib/components/help/help.component.js +20 -0
  551. package/lib/components/help/help.style.js +8 -0
  552. package/lib/components/help/index.js +2 -0
  553. package/lib/components/hr/hr.component.js +10 -0
  554. package/lib/components/hr/hr.style.js +5 -0
  555. package/lib/components/hr/index.js +2 -0
  556. package/lib/components/i18n-provider/i18n-provider.component.js +8 -0
  557. package/lib/components/i18n-provider/index.js +2 -0
  558. package/lib/components/icon/icon-unicodes.js +1 -2
  559. package/lib/components/icon/icon.component.js +27 -1
  560. package/lib/components/icon/icon.style.js +18 -0
  561. package/lib/components/icon/index.js +2 -0
  562. package/lib/components/icon-button/icon-button.component.js +15 -0
  563. package/lib/components/icon-button/icon-button.style.js +8 -0
  564. package/lib/components/icon-button/index.js +2 -0
  565. package/lib/components/image/image.component.js +8 -0
  566. package/lib/components/image/image.style.js +7 -2
  567. package/lib/components/image/index.js +2 -0
  568. package/lib/components/inline-inputs/index.js +3 -0
  569. package/lib/components/inline-inputs/inline-inputs.component.js +17 -0
  570. package/lib/components/inline-inputs/inline-inputs.style.js +8 -0
  571. package/lib/components/link/index.js +2 -0
  572. package/lib/components/link/link.component.js +24 -3
  573. package/lib/components/link/link.style.js +11 -0
  574. package/lib/components/link-preview/__internal__/placeholder.component.js +6 -0
  575. package/lib/components/link-preview/index.js +2 -0
  576. package/lib/components/link-preview/link-preview.component.js +17 -0
  577. package/lib/components/link-preview/link-preview.style.js +6 -0
  578. package/lib/components/loader/index.js +2 -0
  579. package/lib/components/loader/loader-square.style.js +10 -0
  580. package/lib/components/loader/loader.component.js +9 -0
  581. package/lib/components/loader/loader.style.js +5 -0
  582. package/lib/components/loader-bar/index.js +2 -0
  583. package/lib/components/loader-bar/loader-bar.component.js +10 -0
  584. package/lib/components/loader-bar/loader-bar.style.js +10 -0
  585. package/lib/components/menu/__internal__/keyboard-navigation/index.js +11 -0
  586. package/lib/components/menu/__internal__/spec-helper/index.js +7 -0
  587. package/lib/components/menu/__internal__/submenu/submenu.component.js +80 -7
  588. package/lib/components/menu/__internal__/submenu/submenu.context.js +4 -0
  589. package/lib/components/menu/__internal__/submenu/submenu.style.js +12 -0
  590. package/lib/components/menu/index.js +7 -0
  591. package/lib/components/menu/menu-divider/menu-divider.component.js +10 -0
  592. package/lib/components/menu/menu-divider/menu-divider.style.js +6 -0
  593. package/lib/components/menu/menu-full-screen/index.js +2 -0
  594. package/lib/components/menu/menu-full-screen/menu-full-screen.component.js +23 -0
  595. package/lib/components/menu/menu-full-screen/menu-full-screen.style.js +12 -0
  596. package/lib/components/menu/menu-item/index.js +2 -0
  597. package/lib/components/menu/menu-item/menu-item.component.js +52 -0
  598. package/lib/components/menu/menu-item/menu-item.style.js +8 -0
  599. package/lib/components/menu/menu-segment-title/menu-segment-title.component.js +11 -0
  600. package/lib/components/menu/menu-segment-title/menu-segment-title.style.js +6 -0
  601. package/lib/components/menu/menu.component.js +18 -0
  602. package/lib/components/menu/menu.context.js +7 -1
  603. package/lib/components/menu/menu.style.js +9 -0
  604. package/lib/components/menu/scrollable-block/index.js +2 -0
  605. package/lib/components/menu/scrollable-block/scrollable-block.component.js +19 -0
  606. package/lib/components/menu/scrollable-block/scrollable-block.style.js +7 -0
  607. package/lib/components/message/index.js +2 -0
  608. package/lib/components/message/message-content/message-content.component.js +7 -0
  609. package/lib/components/message/message-content/message-content.style.js +3 -0
  610. package/lib/components/message/message.component.js +16 -0
  611. package/lib/components/message/message.style.js +8 -0
  612. package/lib/components/message/type-icon/type-icon.component.js +7 -0
  613. package/lib/components/message/type-icon/type-icon.style.js +4 -0
  614. package/lib/components/modal/__internal__/modal-manager.js +25 -0
  615. package/lib/components/modal/index.js +3 -0
  616. package/lib/components/modal/modal.component.js +19 -0
  617. package/lib/components/modal/modal.style.js +6 -0
  618. package/lib/components/multi-action-button/index.js +2 -0
  619. package/lib/components/multi-action-button/multi-action-button.component.js +32 -3
  620. package/lib/components/multi-action-button/multi-action-button.style.js +9 -0
  621. package/lib/components/navigation-bar/index.js +2 -0
  622. package/lib/components/navigation-bar/navigation-bar.component.js +7 -0
  623. package/lib/components/navigation-bar/navigation-bar.style.js +6 -0
  624. package/lib/components/note/__internal__/status-icon/index.js +2 -0
  625. package/lib/components/note/__internal__/status-icon/status-icon.component.js +7 -0
  626. package/lib/components/note/__internal__/status-icon/status-icon.style.js +3 -0
  627. package/lib/components/note/index.js +2 -0
  628. package/lib/components/note/note.component.js +21 -1
  629. package/lib/components/note/note.style.js +8 -0
  630. package/lib/components/number/index.js +3 -0
  631. package/lib/components/number/number.component.js +14 -2
  632. package/lib/components/numeral-date/index.js +2 -0
  633. package/lib/components/numeral-date/numeral-date-context.js +4 -0
  634. package/lib/components/numeral-date/numeral-date.component.js +42 -9
  635. package/lib/components/numeral-date/numeral-date.style.js +9 -0
  636. package/lib/components/pager/__internal__/pager-navigation-link.component.js +18 -0
  637. package/lib/components/pager/__internal__/pager-navigation.component.js +34 -0
  638. package/lib/components/pager/index.js +2 -0
  639. package/lib/components/pager/pager.component.js +40 -0
  640. package/lib/components/pager/pager.style.js +10 -0
  641. package/lib/components/pages/index.js +3 -0
  642. package/lib/components/pages/page/index.js +2 -0
  643. package/lib/components/pages/page/page.component.js +14 -0
  644. package/lib/components/pages/page/page.style.js +5 -0
  645. package/lib/components/pages/pages.component.js +26 -4
  646. package/lib/components/pages/pages.config.js +2 -0
  647. package/lib/components/pages/pages.style.js +6 -0
  648. package/lib/components/pill/index.js +2 -0
  649. package/lib/components/pill/pill.component.js +10 -0
  650. package/lib/components/pill/pill.style.config.js +2 -0
  651. package/lib/components/pill/pill.style.js +15 -0
  652. package/lib/components/pod/index.js +2 -0
  653. package/lib/components/pod/pod.component.js +53 -4
  654. package/lib/components/pod/pod.style.js +19 -6
  655. package/lib/components/popover-container/index.js +2 -0
  656. package/lib/components/popover-container/popover-container.component.js +27 -2
  657. package/lib/components/popover-container/popover-container.style.js +10 -0
  658. package/lib/components/portal/index.js +2 -0
  659. package/lib/components/portal/portal.js +23 -2
  660. package/lib/components/portrait/index.js +2 -0
  661. package/lib/components/portrait/portrait-gravatar.component.js +10 -0
  662. package/lib/components/portrait/portrait-initials.component.js +20 -10
  663. package/lib/components/portrait/portrait.component.js +21 -0
  664. package/lib/components/portrait/portrait.style.js +19 -3
  665. package/lib/components/preview/__internal__/preview-placeholder.component.js +8 -0
  666. package/lib/components/preview/__internal__/preview-placeholder.style.js +4 -0
  667. package/lib/components/preview/index.js +2 -0
  668. package/lib/components/preview/preview.component.js +13 -0
  669. package/lib/components/preview/preview.style.js +6 -3
  670. package/lib/components/profile/index.js +2 -0
  671. package/lib/components/profile/profile.component.js +14 -0
  672. package/lib/components/profile/profile.style.js +7 -0
  673. package/lib/components/progress-tracker/index.js +2 -0
  674. package/lib/components/progress-tracker/progress-tracker.component.js +35 -2
  675. package/lib/components/progress-tracker/progress-tracker.config.js +1 -0
  676. package/lib/components/progress-tracker/progress-tracker.style.js +14 -0
  677. package/lib/components/radio-button/index.js +6 -0
  678. package/lib/components/radio-button/radio-button-group.component.js +39 -2
  679. package/lib/components/radio-button/radio-button-group.style.js +4 -0
  680. package/lib/components/radio-button/radio-button-svg.component.js +6 -0
  681. package/lib/components/radio-button/radio-button.component.js +48 -6
  682. package/lib/components/radio-button/radio-button.style.js +14 -0
  683. package/lib/components/search/index.js +2 -0
  684. package/lib/components/search/search-button.style.js +6 -0
  685. package/lib/components/search/search.component.js +34 -2
  686. package/lib/components/search/search.style.js +12 -0
  687. package/lib/components/select/__internal__/select-list-context.js +4 -0
  688. package/lib/components/select/__internal__/select-text/select-text.component.js +17 -0
  689. package/lib/components/select/__internal__/select-text/select-text.style.js +6 -0
  690. package/lib/components/select/filterable-select/filterable-select.component.js +91 -8
  691. package/lib/components/select/index.js +7 -0
  692. package/lib/components/select/list-action-button/list-action-button.component.js +12 -0
  693. package/lib/components/select/list-action-button/list-action-button.style.js +4 -0
  694. package/lib/components/select/multi-select/multi-select.component.js +102 -15
  695. package/lib/components/select/multi-select/multi-select.style.js +10 -0
  696. package/lib/components/select/option/option.component.js +21 -0
  697. package/lib/components/select/option/option.style.js +6 -0
  698. package/lib/components/select/option-group-header/option-group-header.component.js +8 -0
  699. package/lib/components/select/option-group-header/option-group-header.style.js +4 -0
  700. package/lib/components/select/option-row/option-row.component.js +18 -0
  701. package/lib/components/select/option-row/option-row.style.js +4 -0
  702. package/lib/components/select/select-list/select-list-container.style.js +4 -0
  703. package/lib/components/select/select-list/select-list.component.js +67 -2
  704. package/lib/components/select/select-list/select-list.style.js +5 -2
  705. package/lib/components/select/select-list/update-list-scroll.js +4 -0
  706. package/lib/components/select/select-textbox/select-textbox.component.js +53 -2
  707. package/lib/components/select/select.style.js +10 -0
  708. package/lib/components/select/simple-select/simple-select.component.js +78 -2
  709. package/lib/components/select/utils/get-next-child-by-text.js +9 -0
  710. package/lib/components/select/utils/get-next-index-by-key.js +14 -0
  711. package/lib/components/select/utils/highlight-part-of-text.js +11 -0
  712. package/lib/components/select/utils/is-expected-option.js +9 -0
  713. package/lib/components/select/utils/is-expected-value.js +2 -0
  714. package/lib/components/select/utils/is-navigation-key.js +1 -0
  715. package/lib/components/select/utils/matching-text.style.js +3 -0
  716. package/lib/components/select/utils/with-filter.hoc.js +43 -3
  717. package/lib/components/settings-row/index.js +2 -0
  718. package/lib/components/settings-row/settings-row.component.js +19 -2
  719. package/lib/components/settings-row/settings-row.style.js +8 -0
  720. package/lib/components/show-edit-pod/index.js +2 -0
  721. package/lib/components/show-edit-pod/show-edit-pod.component.js +58 -6
  722. package/lib/components/show-edit-pod/show-edit-pod.style.js +6 -0
  723. package/lib/components/sidebar/__internal__/sidebar-header/index.js +2 -0
  724. package/lib/components/sidebar/__internal__/sidebar-header/sidebar-header.component.js +6 -0
  725. package/lib/components/sidebar/__internal__/sidebar-header/sidebar-header.style.js +3 -0
  726. package/lib/components/sidebar/index.js +3 -0
  727. package/lib/components/sidebar/sidebar.component.js +26 -0
  728. package/lib/components/sidebar/sidebar.style.js +11 -0
  729. package/lib/components/simple-color-picker/color-sample-box/color-sample-box.component.js +11 -1
  730. package/lib/components/simple-color-picker/color-sample-box/color-sample-box.style.js +7 -0
  731. package/lib/components/simple-color-picker/color-sample-box/index.js +2 -0
  732. package/lib/components/simple-color-picker/index.js +3 -0
  733. package/lib/components/simple-color-picker/simple-color/index.js +2 -0
  734. package/lib/components/simple-color-picker/simple-color/simple-color.component.js +16 -0
  735. package/lib/components/simple-color-picker/simple-color/simple-color.style.js +3 -0
  736. package/lib/components/simple-color-picker/simple-color-input/simple-color-input.style.js +5 -0
  737. package/lib/components/simple-color-picker/simple-color-picker.component.js +59 -8
  738. package/lib/components/simple-color-picker/simple-color-picker.style.js +8 -0
  739. package/lib/components/simple-color-picker/tick-icon/tick-icon.style.js +12 -4
  740. package/lib/components/split-button/index.js +2 -0
  741. package/lib/components/split-button/split-button-children.style.js +7 -0
  742. package/lib/components/split-button/split-button-toggle.style.js +7 -0
  743. package/lib/components/split-button/split-button.component.js +40 -1
  744. package/lib/components/split-button/split-button.style.js +6 -0
  745. package/lib/components/step-sequence/index.js +3 -0
  746. package/lib/components/step-sequence/step-sequence-item/index.js +2 -0
  747. package/lib/components/step-sequence/step-sequence-item/step-sequence-item.component.js +17 -0
  748. package/lib/components/step-sequence/step-sequence-item/step-sequence-item.style.js +6 -0
  749. package/lib/components/step-sequence/step-sequence.component.js +9 -0
  750. package/lib/components/step-sequence/step-sequence.style.js +6 -0
  751. package/lib/components/switch/__internal__/switch-slider-panel.style.js +7 -0
  752. package/lib/components/switch/__internal__/switch-slider.component.js +12 -0
  753. package/lib/components/switch/__internal__/switch-slider.style.js +7 -0
  754. package/lib/components/switch/index.js +2 -0
  755. package/lib/components/switch/switch.component.js +18 -0
  756. package/lib/components/switch/switch.style.js +14 -0
  757. package/lib/components/tabs/__internal__/tab-title/index.js +2 -0
  758. package/lib/components/tabs/__internal__/tab-title/tab-title.component.js +37 -8
  759. package/lib/components/tabs/__internal__/tab-title/tab-title.style.js +8 -0
  760. package/lib/components/tabs/__internal__/tabs-header/index.js +2 -0
  761. package/lib/components/tabs/__internal__/tabs-header/tabs-header.component.js +6 -0
  762. package/lib/components/tabs/__internal__/tabs-header/tabs-header.style.js +8 -0
  763. package/lib/components/tabs/index.js +1 -0
  764. package/lib/components/tabs/tab/index.js +3 -0
  765. package/lib/components/tabs/tab/tab.component.js +35 -8
  766. package/lib/components/tabs/tab/tab.style.js +8 -0
  767. package/lib/components/tabs/tabs.component.js +75 -24
  768. package/lib/components/tabs/tabs.style.js +10 -0
  769. package/lib/components/text-editor/__internal__/decorators/index.js +5 -0
  770. package/lib/components/text-editor/__internal__/decorators/link-decorator.js +12 -10
  771. package/lib/components/text-editor/__internal__/editor-counter/editor-counter.component.js +11 -0
  772. package/lib/components/text-editor/__internal__/editor-counter/editor-counter.style.js +3 -0
  773. package/lib/components/text-editor/__internal__/editor-counter/index.js +2 -0
  774. package/lib/components/text-editor/__internal__/editor-link/editor-link.component.js +14 -2
  775. package/lib/components/text-editor/__internal__/editor-link/editor-link.style.js +4 -0
  776. package/lib/components/text-editor/__internal__/editor-link/index.js +2 -0
  777. package/lib/components/text-editor/__internal__/label-wrapper/index.js +2 -0
  778. package/lib/components/text-editor/__internal__/label-wrapper/label-wrapper.component.js +6 -0
  779. package/lib/components/text-editor/__internal__/toolbar/index.js +2 -0
  780. package/lib/components/text-editor/__internal__/toolbar/toolbar-button/index.js +2 -0
  781. package/lib/components/text-editor/__internal__/toolbar/toolbar-button/toolbar-button.component.js +12 -0
  782. package/lib/components/text-editor/__internal__/toolbar/toolbar-button/toolbar-button.style.js +6 -0
  783. package/lib/components/text-editor/__internal__/toolbar/toolbar.component.js +22 -0
  784. package/lib/components/text-editor/__internal__/toolbar/toolbar.style.js +4 -0
  785. package/lib/components/text-editor/__internal__/utils/index.js +1 -0
  786. package/lib/components/text-editor/__internal__/utils/utils.js +49 -9
  787. package/lib/components/text-editor/index.js +3 -0
  788. package/lib/components/text-editor/text-editor.component.js +76 -22
  789. package/lib/components/text-editor/text-editor.style.js +8 -0
  790. package/lib/components/textarea/index.js +2 -0
  791. package/lib/components/textarea/textarea.component.js +71 -6
  792. package/lib/components/textarea/textarea.style.js +10 -0
  793. package/lib/components/textbox/__internal__/prefix.style.js +3 -0
  794. package/lib/components/textbox/index.js +2 -0
  795. package/lib/components/textbox/textbox.component.js +28 -2
  796. package/lib/components/textbox/textbox.style.js +4 -0
  797. package/lib/components/tile/index.js +2 -0
  798. package/lib/components/tile/tile-footer/index.js +2 -0
  799. package/lib/components/tile/tile-footer/tile-footer.component.js +12 -2
  800. package/lib/components/tile/tile-footer/tile-footer.style.js +6 -0
  801. package/lib/components/tile/tile.component.js +16 -0
  802. package/lib/components/tile/tile.style.js +9 -0
  803. package/lib/components/tile-select/__internal__/accordion/accordion.component.js +9 -0
  804. package/lib/components/tile-select/__internal__/accordion/accordion.style.js +4 -0
  805. package/lib/components/tile-select/__internal__/accordion/index.js +2 -0
  806. package/lib/components/tile-select/index.js +3 -0
  807. package/lib/components/tile-select/tile-select-group.component.js +28 -2
  808. package/lib/components/tile-select/tile-select.component.js +48 -4
  809. package/lib/components/tile-select/tile-select.style.js +11 -0
  810. package/lib/components/toast/index.js +2 -0
  811. package/lib/components/toast/toast.component.js +34 -0
  812. package/lib/components/toast/toast.style.js +12 -0
  813. package/lib/components/tooltip/index.js +2 -0
  814. package/lib/components/tooltip/tooltip-pointer.style.js +8 -0
  815. package/lib/components/tooltip/tooltip.component.js +17 -0
  816. package/lib/components/tooltip/tooltip.style.js +13 -0
  817. package/lib/components/typography/index.js +3 -0
  818. package/lib/components/typography/list.component.js +11 -0
  819. package/lib/components/typography/typography.component.js +36 -0
  820. package/lib/components/vertical-divider/index.js +2 -0
  821. package/lib/components/vertical-divider/vertical-divider.component.js +10 -0
  822. package/lib/components/vertical-divider/vertical-divider.style.js +6 -0
  823. package/lib/hooks/__internal__/useCharacterCount/index.js +2 -0
  824. package/lib/hooks/__internal__/useCharacterCount/useCharacterCount.js +10 -0
  825. package/lib/hooks/__internal__/useClickAwayListener/index.js +2 -0
  826. package/lib/hooks/__internal__/useClickAwayListener/useClickAwayListener.js +4 -0
  827. package/lib/hooks/__internal__/useFloating/index.js +2 -0
  828. package/lib/hooks/__internal__/useFloating/useFloating.js +8 -0
  829. package/lib/hooks/__internal__/useInputAccessibility/index.js +2 -0
  830. package/lib/hooks/__internal__/useInputAccessibility/useInputAccessibility.js +1 -0
  831. package/lib/hooks/__internal__/useIsAboveBreakpoint/index.js +2 -0
  832. package/lib/hooks/__internal__/useIsAboveBreakpoint/useIsAboveBreakpoint.js +3 -0
  833. package/lib/hooks/__internal__/useIsStickyFooterForm/index.js +2 -0
  834. package/lib/hooks/__internal__/useIsStickyFooterForm/useIsStickyFooterForm.js +8 -0
  835. package/lib/hooks/__internal__/useLocale/index.js +2 -0
  836. package/lib/hooks/__internal__/useLocale/useLocale.js +4 -0
  837. package/lib/hooks/__internal__/useMenuKeyboardNavigation/index.js +2 -0
  838. package/lib/hooks/__internal__/useMenuKeyboardNavigation/useMenuKeyboardNavigation.js +23 -2
  839. package/lib/hooks/__internal__/useModalManager/index.js +2 -0
  840. package/lib/hooks/__internal__/useModalManager/useModalManager.js +9 -0
  841. package/lib/hooks/__internal__/usePrevious/index.js +2 -0
  842. package/lib/hooks/__internal__/useResizeObserver/index.js +2 -0
  843. package/lib/hooks/__internal__/useResizeObserver/useResizeObserver.js +10 -3
  844. package/lib/hooks/__internal__/useScrollBlock/index.js +2 -0
  845. package/lib/hooks/__internal__/useScrollBlock/scroll-block-manager.js +17 -6
  846. package/lib/hooks/__internal__/useScrollBlock/useScrollBlock.js +18 -8
  847. package/lib/hooks/useMediaQuery/index.js +2 -0
  848. package/lib/hooks/useMediaQuery/useMediaQuery.js +8 -0
  849. package/lib/locales/date-fns-locales/index.js +2 -0
  850. package/lib/locales/en-gb.js +9 -1
  851. package/lib/locales/index.js +3 -0
  852. package/lib/locales/pl-pl.js +9 -1
  853. package/lib/style/design-tokens/carbon-scoped-tokens-provider/carbon-scoped-tokens-provider.component.js +5 -1
  854. package/lib/style/design-tokens/carbon-scoped-tokens-provider/index.js +2 -0
  855. package/lib/style/design-tokens/debug-theme.util.js +12 -5
  856. package/lib/style/design-tokens/generate-css-variables.util.js +2 -0
  857. package/lib/style/global-style.js +2 -0
  858. package/lib/style/palette/index.js +9 -2
  859. package/lib/style/themes/aegean/aegean-theme.config.js +5 -0
  860. package/lib/style/themes/aegean/index.js +5 -0
  861. package/lib/style/themes/base/base-theme.config.js +9 -2
  862. package/lib/style/themes/base/index.js +12 -4
  863. package/lib/style/themes/index.js +7 -0
  864. package/lib/style/themes/medium/index.js +3 -0
  865. package/lib/style/themes/mint/index.js +5 -0
  866. package/lib/style/themes/mint/mint-theme.config.js +5 -0
  867. package/lib/style/themes/none/index.js +5 -0
  868. package/lib/style/themes/none/none-theme.config.js +2 -0
  869. package/lib/style/themes/sage/index.js +6 -4
  870. package/lib/style/themes/small/index.js +3 -0
  871. package/lib/style/themes/test-utils.js +6 -4
  872. package/lib/style/utils/add-hex-symbols.js +3 -0
  873. package/lib/style/utils/at-opacity.js +3 -0
  874. package/lib/style/utils/color.js +14 -3
  875. package/lib/style/utils/filter-out-position-props.js +4 -0
  876. package/lib/style/utils/filter-out-styled-system-spacing-props.js +4 -0
  877. package/lib/style/utils/filter-styled-system-margin-props.js +4 -0
  878. package/lib/style/utils/filter-styled-system-padding-props.js +5 -2
  879. package/lib/style/utils/form-style-utils.js +18 -0
  880. package/lib/style/utils/get-color-value.js +5 -0
  881. package/lib/style/utils/get-rgb-values.js +2 -1
  882. package/lib/style/utils/index.js +4 -0
  883. package/lib/style/utils/merge-deep.js +7 -1
  884. package/lib/style/utils/mix.js +9 -1
  885. package/lib/style/utils/shade.js +4 -0
  886. package/lib/style/utils/tint.js +4 -0
  887. package/lib/style/utils/width.js +4 -0
  888. package/package.json +1 -1
@@ -1,40 +1,51 @@
1
1
  /* eslint-disable jest/no-conditional-expect */
2
+
2
3
  /* eslint-disable jest/no-identical-title */
4
+
3
5
  /* eslint-disable jest/no-export */
4
6
  import { mount } from "enzyme";
5
7
  import { sprintf } from "sprintf-js";
6
8
  import { space } from "style/themes/base/base-theme.config";
7
9
  import { carbonThemeList } from "../style/themes";
8
10
  import { mockMatchMedia } from "./mock-match-media";
11
+
9
12
  const isUpper = char => char.toUpperCase() === char;
13
+
10
14
  const humpToDash = (acc, char) => `${acc}${isUpper(char) ? `-${char.toLowerCase()}` : char}`;
15
+
11
16
  const toCSSCase = str => {
12
17
  return str.split("").reduce(humpToDash, "");
13
18
  };
19
+
14
20
  const assertStyleMatch = (styleSpec, component, opts) => {
15
21
  Object.entries(styleSpec).forEach(([attr, value]) => {
16
22
  expect(component).toHaveStyleRule(toCSSCase(attr), value, opts);
17
23
  });
18
24
  };
25
+
19
26
  const makeArrayKeys = n => [...Array(n).keys()];
27
+
20
28
  const dispatchKeyPress = code => {
21
29
  const ev = new KeyboardEvent("keydown", {
22
30
  key: code
23
31
  });
24
32
  document.dispatchEvent(ev);
25
33
  };
34
+
26
35
  const keys = ["ArrowUp", "ArrowDown", "ArrowRight", "ArrowLeft", "Enter", "Tab", " ", "Escape", "End", "Home", "D", "E", "P", "Z", "1"];
27
36
  const keyboard = keys.reduce((acc, key) => {
28
37
  const methodName = `press${key === " " ? "Space" : key}`;
38
+
29
39
  acc[methodName] = () => dispatchKeyPress(key);
30
- return acc;
31
- }, {});
32
40
 
33
- // Build an object of Enzyme simulate helpers
41
+ return acc;
42
+ }, {}); // Build an object of Enzyme simulate helpers
34
43
  // e.g. simulate.keydown.pressTab(target, { shiftKey: true })
35
44
  // e.g. simulate.keydown.pressEscape(target)
45
+
36
46
  const keydown = keys.reduce((acc, key) => {
37
47
  const methodName = `press${key === " " ? "Space" : key}`;
48
+
38
49
  acc[methodName] = (target, {
39
50
  shiftKey
40
51
  } = {
@@ -45,26 +56,38 @@ const keydown = keys.reduce((acc, key) => {
45
56
  key
46
57
  });
47
58
  };
59
+
48
60
  return acc;
49
61
  }, {});
50
62
  const simulate = {
51
63
  keydown
52
64
  };
65
+
53
66
  const listFrom = wrapper => wrapper.find("ul");
67
+
54
68
  const childrenFrom = node => node.children();
69
+
55
70
  const hoverList = wrapper => item => {
56
71
  childrenFrom(listFrom(wrapper)).at(item).simulate("mouseover");
57
72
  };
73
+
58
74
  const simulateEvent = eventName => wrapper => wrapper.simulate(eventName);
75
+
59
76
  const click = simulateEvent("click");
77
+
60
78
  const selectedItemOf = wrapper => wrapper.state().selectedItem;
79
+
61
80
  const isUnique = (val, index, self) => self.indexOf(val) === index;
81
+
62
82
  const isSelectableGiven = nonSelectables => i => !nonSelectables.includes(i);
83
+
63
84
  const selectedItemReducer = method => wrapper => (acc, i) => {
64
85
  method(wrapper)(i);
65
86
  return [...acc, selectedItemOf(wrapper)];
66
87
  };
88
+
67
89
  const arraysEqual = (arr1, arr2) => arr1.sort().join(",") === arr2.sort().join(",");
90
+
68
91
  const assertCorrectTraversal = method => expect => ({
69
92
  num,
70
93
  nonSelectables = []
@@ -75,6 +98,7 @@ const assertCorrectTraversal = method => expect => ({
75
98
  const indexesThatWereSelected = array.reduce(selectedItemReducer(method)(wrapper), [selectedItem]).filter(isUnique);
76
99
  expect(arraysEqual(validIndexes, indexesThatWereSelected)).toBeTruthy();
77
100
  };
101
+
78
102
  const assertKeyboardTraversal = assertCorrectTraversal(() => keyboard.pressArrowDown)(expect);
79
103
  const assertHoverTraversal = assertCorrectTraversal(wrapper => hoverList(wrapper))(expect);
80
104
  const carbonThemesJestTable = carbonThemeList.map(theme => [theme.name, theme]);
@@ -90,21 +114,25 @@ export const getDefaultValue = value => {
90
114
  const spaceArrayLength = space.length - 1;
91
115
  if (value === undefined) return value;
92
116
  const parsedValue = +value;
117
+
93
118
  if (typeof value === "string" && parsedValue > spaceArrayLength) {
94
119
  return `${value}px`;
95
120
  }
121
+
96
122
  if (parsedValue <= spaceArrayLength) {
97
123
  return space[parsedValue];
98
124
  }
125
+
99
126
  if (parsedValue > spaceArrayLength) {
100
127
  return `${parsedValue * 8}px`;
101
128
  }
129
+
102
130
  return value;
103
131
  };
132
+
104
133
  const testStyledSystemMargin = (component, defaults, styleContainer, assertOpts) => {
105
134
  describe("default props", () => {
106
- const wrapper = mount(component({
107
- ...defaults
135
+ const wrapper = mount(component({ ...defaults
108
136
  }));
109
137
  const StyleElement = styleContainer ? styleContainer(wrapper) : wrapper;
110
138
  it("should set the correct margins", () => {
@@ -113,6 +141,7 @@ const testStyledSystemMargin = (component, defaults, styleContainer, assertOpts)
113
141
  let marginRight;
114
142
  let marginTop;
115
143
  let marginBottom;
144
+
116
145
  if (defaults) {
117
146
  margin = getDefaultValue(defaults.m);
118
147
  marginLeft = getDefaultValue(defaults.ml || defaults.mx);
@@ -140,8 +169,7 @@ const testStyledSystemMargin = (component, defaults, styleContainer, assertOpts)
140
169
  const props = {
141
170
  [styledSystemProp]: 2
142
171
  };
143
- const wrapper = mount(component({
144
- ...props
172
+ const wrapper = mount(component({ ...props
145
173
  }));
146
174
  assertStyleMatch({
147
175
  [propName]: "var(--spacing200)"
@@ -149,10 +177,10 @@ const testStyledSystemMargin = (component, defaults, styleContainer, assertOpts)
149
177
  });
150
178
  });
151
179
  };
180
+
152
181
  const testStyledSystemPadding = (component, defaults, styleContainer, assertOpts) => {
153
182
  describe("default props", () => {
154
- const wrapper = mount(component({
155
- ...defaults
183
+ const wrapper = mount(component({ ...defaults
156
184
  }));
157
185
  const StyleElement = styleContainer ? styleContainer(wrapper) : wrapper;
158
186
  it("should set the correct paddings", () => {
@@ -161,6 +189,7 @@ const testStyledSystemPadding = (component, defaults, styleContainer, assertOpts
161
189
  let paddingRight;
162
190
  let paddingTop;
163
191
  let paddingBottom;
192
+
164
193
  if (defaults) {
165
194
  padding = getDefaultValue(defaults.p);
166
195
  paddingLeft = getDefaultValue(defaults.pl || defaults.px);
@@ -188,8 +217,7 @@ const testStyledSystemPadding = (component, defaults, styleContainer, assertOpts
188
217
  const props = {
189
218
  [styledSystemProp]: 2
190
219
  };
191
- const wrapper = mount(component({
192
- ...props
220
+ const wrapper = mount(component({ ...props
193
221
  }));
194
222
  assertStyleMatch({
195
223
  [propName]: "var(--spacing200)"
@@ -197,25 +225,27 @@ const testStyledSystemPadding = (component, defaults, styleContainer, assertOpts
197
225
  });
198
226
  });
199
227
  };
228
+
200
229
  const testStyledSystemSpacing = (component, defaults, styleContainer, assertOpts) => {
201
230
  testStyledSystemMargin(component, defaults, styleContainer, assertOpts);
202
231
  testStyledSystemPadding(component, defaults, styleContainer, assertOpts);
203
232
  };
233
+
204
234
  const testStyledSystemColor = (component, styleContainer) => {
205
235
  describe.each(colorProps)('when a prop is specified using the "%s" styled system props', (styledSystemProp, propName, value) => {
206
236
  it(`then ${propName} should have been set correctly`, () => {
207
237
  const props = {
208
238
  [styledSystemProp]: value
209
239
  };
210
- const wrapper = mount(component({
211
- ...props
240
+ const wrapper = mount(component({ ...props
212
241
  }));
213
- const StyleElement = styleContainer ? styleContainer(wrapper) : wrapper;
214
- // Some props need to have camelcase so used toHaveStyleRule rather than assertStyleMatch
242
+ const StyleElement = styleContainer ? styleContainer(wrapper) : wrapper; // Some props need to have camelcase so used toHaveStyleRule rather than assertStyleMatch
243
+
215
244
  expect(StyleElement).toHaveStyleRule(propName, value);
216
245
  });
217
246
  });
218
247
  };
248
+
219
249
  const testStyledSystemWidth = (component, styleContainer) => {
220
250
  describe("when a width prop is specified using styled system props", () => {
221
251
  it("then width should have been set correctly", () => {
@@ -223,29 +253,29 @@ const testStyledSystemWidth = (component, styleContainer) => {
223
253
  const props = {
224
254
  [styledSystemProp]: value
225
255
  };
226
- const wrapper = mount(component({
227
- ...props
256
+ const wrapper = mount(component({ ...props
228
257
  }));
229
258
  const StyleElement = styleContainer ? styleContainer(wrapper) : wrapper;
230
259
  expect(StyleElement).toHaveStyleRule(propName, value);
231
260
  });
232
261
  });
233
262
  };
263
+
234
264
  const testStyledSystemLayout = (component, styleContainer) => {
235
265
  describe.each(layoutProps)('when a prop is specified using the "%s" styled system props', (styledSystemProp, propName, value) => {
236
266
  it(`then ${propName} should have been set correctly`, () => {
237
267
  const props = {
238
268
  [styledSystemProp]: value
239
269
  };
240
- const wrapper = mount(component({
241
- ...props
270
+ const wrapper = mount(component({ ...props
242
271
  }));
243
- const StyleElement = styleContainer ? styleContainer(wrapper) : wrapper;
244
- // Some props need to have camelcase so used toHaveStyleRule rather than assertStyleMatch
272
+ const StyleElement = styleContainer ? styleContainer(wrapper) : wrapper; // Some props need to have camelcase so used toHaveStyleRule rather than assertStyleMatch
273
+
245
274
  expect(StyleElement).toHaveStyleRule(propName, value);
246
275
  });
247
276
  });
248
277
  };
278
+
249
279
  const testStyledSystemFlexBox = (component, styleContainer) => {
250
280
  describe.each(flexBoxProps)('when a prop is specified using the "%s" styled system props', (styledSystemProp, propName, value) => {
251
281
  it(`then ${propName} should have been set correctly`, () => {
@@ -259,14 +289,14 @@ const testStyledSystemFlexBox = (component, styleContainer) => {
259
289
  });
260
290
  });
261
291
  };
292
+
262
293
  const testStyledSystemBackground = (component, styleContainer) => {
263
294
  describe.each(backgroundProps)('when a prop is specified using the "%s" styled system props', (styledSystemProp, propName, value) => {
264
295
  it(`then ${propName} should have been set correctly`, () => {
265
296
  const props = {
266
297
  [styledSystemProp]: value
267
298
  };
268
- const wrapper = mount(component({
269
- ...props
299
+ const wrapper = mount(component({ ...props
270
300
  }));
271
301
  assertStyleMatch({
272
302
  [styledSystemProp]: value
@@ -274,27 +304,28 @@ const testStyledSystemBackground = (component, styleContainer) => {
274
304
  });
275
305
  });
276
306
  };
307
+
277
308
  const testStyledSystemPosition = (component, styleContainer) => {
278
309
  describe.each(positionProps)('when a prop is specified using the "%s" styled system props', (styledSystemProp, value) => {
279
310
  it(`then ${styledSystemProp} should have been set correctly`, () => {
280
311
  const props = {
281
312
  [styledSystemProp]: value
282
313
  };
283
- const wrapper = mount(component({
284
- ...props
314
+ const wrapper = mount(component({ ...props
285
315
  }));
286
316
  assertStyleMatch({
287
317
  [styledSystemProp]: value
288
318
  }, styleContainer ? styleContainer(wrapper) : wrapper);
289
319
  });
290
320
  });
291
- };
321
+ }; // this util will catch that a console output occurred without polluting the output when running the unit tests
322
+
292
323
 
293
- // this util will catch that a console output occurred without polluting the output when running the unit tests
294
324
  const expectConsoleOutput = (message, type = "error") => {
295
325
  if (!message) {
296
326
  throw new Error(`no ${type} message provided`);
297
327
  }
328
+
298
329
  expect.assertions(1);
299
330
  const consoleType = global.console[type];
300
331
  let consoleArgs;
@@ -302,10 +333,12 @@ const expectConsoleOutput = (message, type = "error") => {
302
333
  if (!args.length) return;
303
334
  const msg = args.join(" ");
304
335
  const params = args.slice(1, args.length);
336
+
305
337
  if (sprintf(msg, ...params).includes(message)) {
306
338
  consoleArgs = args;
307
339
  return;
308
340
  }
341
+
309
342
  consoleType(...args);
310
343
  });
311
344
  return () => {
@@ -313,7 +346,9 @@ const expectConsoleOutput = (message, type = "error") => {
313
346
  // eslint-disable-next-line no-console
314
347
  expect(console[type]).toHaveBeenCalledWith(...consoleArgs);
315
348
  }
349
+
316
350
  global.console[type] = consoleType;
317
351
  };
318
352
  };
353
+
319
354
  export { assertStyleMatch, toCSSCase, hoverList, selectedItemOf, childrenFrom, makeArrayKeys, keyboard, assertKeyboardTraversal, assertHoverTraversal, listFrom, click, simulate, carbonThemesJestTable, mockMatchMedia, testStyledSystemSpacing, testStyledSystemMargin, testStyledSystemPadding, testStyledSystemColor, testStyledSystemWidth, testStyledSystemLayout, testStyledSystemFlexBox, testStyledSystemBackground, testStyledSystemPosition, expectConsoleOutput };
@@ -4,6 +4,7 @@ import invariant from "invariant";
4
4
  import Events from "../../../__internal__/utils/helpers/events";
5
5
  import Accordion from "../accordion.component";
6
6
  import { StyledAccordionGroup } from "../accordion.style";
7
+
7
8
  const AccordionGroup = ({
8
9
  children,
9
10
  ...rest
@@ -24,14 +25,18 @@ const AccordionGroup = ({
24
25
  const refs = useMemo(() => filteredChildren.map(child => child.ref || /*#__PURE__*/React.createRef()), [filteredChildren]);
25
26
  const focusAccordion = useCallback((ev, index) => {
26
27
  ev.preventDefault();
28
+
27
29
  if (index === -1) {
28
30
  var _refs$current;
31
+
29
32
  (_refs$current = refs[refs.length - 1].current) === null || _refs$current === void 0 ? void 0 : _refs$current.focus();
30
33
  } else if (index === refs.length) {
31
34
  var _refs$0$current;
35
+
32
36
  (_refs$0$current = refs[0].current) === null || _refs$0$current === void 0 ? void 0 : _refs$0$current.focus();
33
37
  } else {
34
38
  var _refs$index$current;
39
+
35
40
  (_refs$index$current = refs[index].current) === null || _refs$index$current === void 0 ? void 0 : _refs$index$current.focus();
36
41
  }
37
42
  }, [refs]);
@@ -39,12 +44,15 @@ const AccordionGroup = ({
39
44
  if (Events.isUpKey(ev)) {
40
45
  focusAccordion(ev, index - 1);
41
46
  }
47
+
42
48
  if (Events.isDownKey(ev)) {
43
49
  focusAccordion(ev, index + 1);
44
50
  }
51
+
45
52
  if (Events.isHomeKey(ev)) {
46
53
  focusAccordion(ev, 0);
47
54
  }
55
+
48
56
  if (Events.isEndKey(ev)) {
49
57
  focusAccordion(ev, refs.length - 1);
50
58
  }
@@ -58,6 +66,7 @@ const AccordionGroup = ({
58
66
  handleKeyboardAccessibility
59
67
  })));
60
68
  };
69
+
61
70
  AccordionGroup.propTypes = {
62
71
  "children": PropTypes.oneOfType([PropTypes.element, PropTypes.shape({
63
72
  "__@iterator": PropTypes.func.isRequired,
@@ -1,4 +1,5 @@
1
1
  function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
+
2
3
  import React, { useState, useRef, useEffect, useCallback } from "react";
3
4
  import PropTypes from "prop-types";
4
5
  import useResizeObserver from "../../hooks/__internal__/useResizeObserver";
@@ -39,22 +40,26 @@ const Accordion = /*#__PURE__*/React.forwardRef(({
39
40
  const isExpanded = isControlled ? expanded : isExpandedInternal;
40
41
  useResizeObserver(accordionContent, () => {
41
42
  var _accordionContent$cur;
43
+
42
44
  setContentHeight((_accordionContent$cur = accordionContent.current) === null || _accordionContent$cur === void 0 ? void 0 : _accordionContent$cur.scrollHeight);
43
45
  });
44
46
  useEffect(() => {
45
47
  var _accordionContent$cur2;
48
+
46
49
  setContentHeight((_accordionContent$cur2 = accordionContent.current) === null || _accordionContent$cur2 === void 0 ? void 0 : _accordionContent$cur2.scrollHeight);
47
50
  }, [isExpanded]);
48
51
  const toggleAccordion = useCallback(ev => {
49
52
  if (!isControlled) {
50
53
  setIsExpandedInternal(!isExpanded);
51
54
  }
55
+
52
56
  if (onChange) onChange(ev, !isExpanded);
53
57
  }, [isControlled, isExpanded, onChange]);
54
58
  const handleKeyDown = useCallback(ev => {
55
59
  if (handleKeyboardAccessibility) {
56
60
  handleKeyboardAccessibility(ev, index);
57
61
  }
62
+
58
63
  if (Events.isEnterKey(ev) || Events.isSpaceKey(ev)) {
59
64
  toggleAccordion(ev);
60
65
  }
@@ -64,7 +69,9 @@ const Accordion = /*#__PURE__*/React.forwardRef(({
64
69
  const headerId = `AccordionHeader_${guid.current}`;
65
70
  const contentId = `AccordionContent_${guid.current}`;
66
71
  const showValidationIcon = !!(error || warning || info);
72
+
67
73
  const getTitle = () => isExpanded ? openTitle || title : title;
74
+
68
75
  return /*#__PURE__*/React.createElement(StyledAccordionContainer, _extends({
69
76
  id: accordionId,
70
77
  "data-component": "accordion",
@@ -1,4 +1,5 @@
1
1
  function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
+
2
3
  import React, { useCallback, useEffect, useRef, useState, useContext } from "react";
3
4
  import PropTypes from "prop-types";
4
5
  import invariant from "invariant";
@@ -9,9 +10,11 @@ import ActionPopoverContext from "../action-popover-context";
9
10
  import useLocale from "../../../hooks/__internal__/useLocale";
10
11
  import ActionPopoverMenu from "../action-popover-menu/action-popover-menu.component";
11
12
  const INTERVAL = 150;
13
+
12
14
  function checkRef(ref) {
13
15
  return Boolean(ref && ref.current);
14
16
  }
17
+
15
18
  function leftAlignSubmenu(ref, submenuRef) {
16
19
  /* istanbul ignore if */
17
20
  if (!ref.current || !submenuRef.current) return true;
@@ -23,6 +26,7 @@ function leftAlignSubmenu(ref, submenuRef) {
23
26
  } = submenuRef.current;
24
27
  return left >= offsetWidth;
25
28
  }
29
+
26
30
  function getContainerPosition(itemRef, submenuRef, placement) {
27
31
  /* istanbul ignore if */
28
32
  if (!itemRef.current || !submenuRef.current) return undefined;
@@ -40,6 +44,7 @@ function getContainerPosition(itemRef, submenuRef, placement) {
40
44
  right: "auto"
41
45
  };
42
46
  }
47
+
43
48
  const ActionPopoverItem = ({
44
49
  children,
45
50
  icon,
@@ -86,8 +91,10 @@ const ActionPopoverItem = ({
86
91
  }, [submenu, placement]);
87
92
  useEffect(() => {
88
93
  alignSubmenu();
94
+
89
95
  if (focusItem) {
90
96
  var _ref$current;
97
+
91
98
  (_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.focus();
92
99
  }
93
100
  }, [alignSubmenu, focusItem]);
@@ -106,14 +113,17 @@ const ActionPopoverItem = ({
106
113
  }, [alignSubmenu]);
107
114
  const onClick = useCallback(e => {
108
115
  e.stopPropagation();
116
+
109
117
  if (!disabled) {
110
118
  setOpenPopover(false);
111
119
  focusButton();
120
+
112
121
  if (onClickProp) {
113
122
  onClickProp(e);
114
123
  }
115
124
  } else {
116
125
  var _ref$current2;
126
+
117
127
  (_ref$current2 = ref.current) === null || _ref$current2 === void 0 ? void 0 : _ref$current2.focus();
118
128
  e.preventDefault();
119
129
  }
@@ -136,6 +146,7 @@ const ActionPopoverItem = ({
136
146
  e.stopPropagation();
137
147
  } else if (Events.isRightKey(e)) {
138
148
  var _ref$current3;
149
+
139
150
  setOpen(false);
140
151
  (_ref$current3 = ref.current) === null || _ref$current3 === void 0 ? void 0 : _ref$current3.focus();
141
152
  e.stopPropagation();
@@ -147,19 +158,24 @@ const ActionPopoverItem = ({
147
158
  setFocusIndex(0);
148
159
  e.stopPropagation();
149
160
  }
161
+
150
162
  if (Events.isLeftKey(e)) {
151
163
  var _ref$current4;
164
+
152
165
  setOpen(false);
153
166
  (_ref$current4 = ref.current) === null || _ref$current4 === void 0 ? void 0 : _ref$current4.focus();
154
167
  e.stopPropagation();
155
168
  }
156
169
  }
170
+
157
171
  e.preventDefault();
158
172
  } else if (Events.isEnterKey(e)) {
159
173
  if (isHref && download) {
160
174
  var _ref$current5;
175
+
161
176
  (_ref$current5 = ref.current) === null || _ref$current5 === void 0 ? void 0 : _ref$current5.click();
162
177
  }
178
+
163
179
  e.preventDefault();
164
180
  onClick(e);
165
181
  }
@@ -167,8 +183,7 @@ const ActionPopoverItem = ({
167
183
  e.stopPropagation();
168
184
  }
169
185
  }, [disabled, download, focusButton, isHref, isLeftAligned, onClick, setOpenPopover, submenu]);
170
- const itemSubmenuProps = {
171
- ...(!disabled && {
186
+ const itemSubmenuProps = { ...(!disabled && {
172
187
  onMouseEnter: e => {
173
188
  if (mouseEnterTimer.current) clearTimeout(mouseEnterTimer.current);
174
189
  setFocusIndex(-1);
@@ -186,6 +201,7 @@ const ActionPopoverItem = ({
186
201
  },
187
202
  onClick: e => {
188
203
  var _ref$current6;
204
+
189
205
  setOpen(true);
190
206
  (_ref$current6 = ref.current) === null || _ref$current6 === void 0 ? void 0 : _ref$current6.focus();
191
207
  e.preventDefault();
@@ -197,12 +213,14 @@ const ActionPopoverItem = ({
197
213
  "aria-controls": `ActionPopoverMenu_${guid}`,
198
214
  "aria-expanded": isOpen
199
215
  };
216
+
200
217
  const renderMenuItemIcon = () => {
201
218
  return icon && /*#__PURE__*/React.createElement(MenuItemIcon, {
202
219
  as: undefined,
203
220
  type: icon
204
221
  });
205
222
  };
223
+
206
224
  return /*#__PURE__*/React.createElement(StyledMenuItem, _extends({}, rest, {
207
225
  ref: ref,
208
226
  onClick: onClick,
@@ -234,6 +252,7 @@ const ActionPopoverItem = ({
234
252
  type: "chevron_right"
235
253
  }) : null);
236
254
  };
255
+
237
256
  ActionPopoverItem.propTypes = {
238
257
  "children": PropTypes.string.isRequired,
239
258
  "disabled": PropTypes.bool,
@@ -1,4 +1,5 @@
1
1
  function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
+
2
3
  import React, { useCallback, useMemo, useContext } from "react";
3
4
  import PropTypes from "prop-types";
4
5
  import invariant from "invariant";
@@ -30,6 +31,7 @@ const ActionPopoverMenu = /*#__PURE__*/React.forwardRef(({
30
31
  if (! /*#__PURE__*/React.isValidElement(child)) {
31
32
  return true;
32
33
  }
34
+
33
35
  return child.type !== ActionPopoverItem && child.type !== ActionPopoverDivider;
34
36
  });
35
37
  return !incorrectChild;
@@ -42,8 +44,8 @@ const ActionPopoverMenu = /*#__PURE__*/React.forwardRef(({
42
44
  }, [children]);
43
45
  const onKeyDown = useCallback(e => {
44
46
  if (Events.isTabKey(e)) {
45
- e.preventDefault();
46
- // TAB: close menu and allow focus to change to next focusable element
47
+ e.preventDefault(); // TAB: close menu and allow focus to change to next focusable element
48
+
47
49
  focusButton();
48
50
  setOpen(false);
49
51
  } else if (Events.isDownKey(e)) {
@@ -79,11 +81,13 @@ const ActionPopoverMenu = /*#__PURE__*/React.forwardRef(({
79
81
  if (firstMatch === undefined) {
80
82
  firstMatch = index;
81
83
  }
84
+
82
85
  if (index > focusIndex && nextMatch === undefined) {
83
86
  nextMatch = index;
84
87
  }
85
88
  }
86
89
  });
90
+
87
91
  if (nextMatch !== undefined) {
88
92
  setFocusIndex(nextMatch);
89
93
  } else if (firstMatch !== undefined) {
@@ -102,6 +106,7 @@ const ActionPopoverMenu = /*#__PURE__*/React.forwardRef(({
102
106
  horizontalAlignment
103
107
  });
104
108
  }
109
+
105
110
  return child;
106
111
  });
107
112
  }, [children, focusIndex, isOpen, placement, horizontalAlignment]);
@@ -1,8 +1,10 @@
1
1
  function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
+
2
3
  import React from "react";
3
4
  import PropTypes from "prop-types";
4
5
  import { MenuButtonOverrideWrapper } from "../action-popover.style";
5
6
  import Button from "../../button";
7
+
6
8
  const ActionPopoverMenuButton = ({
7
9
  buttonType,
8
10
  iconType,
@@ -16,6 +18,7 @@ const ActionPopoverMenuButton = ({
16
18
  iconPosition: iconPosition,
17
19
  size: size
18
20
  }, props), children));
21
+
19
22
  ActionPopoverMenuButton.propTypes = {
20
23
  "ariaAttributes": PropTypes.shape({
21
24
  "aria-controls": PropTypes.string.isRequired,