@muraldevkit/ui-toolkit 4.68.0-dev-NFbt.1 → 4.68.0-dev-nPeA.1

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 (641) hide show
  1. package/dist/cjs/_virtual/_rollupPluginBabelHelpers.js +0 -250
  2. package/dist/cjs/_virtual/_rollupPluginBabelHelpers.js.map +1 -1
  3. package/dist/cjs/components/avatar/MrlAvatar/MrlAvatar.js +17 -11
  4. package/dist/cjs/components/avatar/MrlAvatar/MrlAvatar.js.map +1 -1
  5. package/dist/cjs/components/avatar/MrlAvatarButton/MrlAvatarButton.js +27 -25
  6. package/dist/cjs/components/avatar/MrlAvatarButton/MrlAvatarButton.js.map +1 -1
  7. package/dist/cjs/components/badge/MrlBadge/MrlBadge.js +11 -5
  8. package/dist/cjs/components/badge/MrlBadge/MrlBadge.js.map +1 -1
  9. package/dist/cjs/components/badge/MrlBadgeNotification/MrlBadgeNotification.js +12 -4
  10. package/dist/cjs/components/badge/MrlBadgeNotification/MrlBadgeNotification.js.map +1 -1
  11. package/dist/cjs/components/breadcrumb/MrlBreadcrumbItem/MrlBreadcrumbItem.js +13 -6
  12. package/dist/cjs/components/breadcrumb/MrlBreadcrumbItem/MrlBreadcrumbItem.js.map +1 -1
  13. package/dist/cjs/components/breadcrumb/MrlBreadcrumbSeparator/MrlBreadcrumbSeparator.js +7 -3
  14. package/dist/cjs/components/breadcrumb/MrlBreadcrumbSeparator/MrlBreadcrumbSeparator.js.map +1 -1
  15. package/dist/cjs/components/breadcrumb/MrlBreadcrumbs/MrlBreadcrumbs.js +24 -28
  16. package/dist/cjs/components/breadcrumb/MrlBreadcrumbs/MrlBreadcrumbs.js.map +1 -1
  17. package/dist/cjs/components/button/MrlAnimatedIconButton/MrlAnimatedIconButton.js +20 -20
  18. package/dist/cjs/components/button/MrlAnimatedIconButton/MrlAnimatedIconButton.js.map +1 -1
  19. package/dist/cjs/components/button/MrlButton/MrlButton.js +21 -21
  20. package/dist/cjs/components/button/MrlButton/MrlButton.js.map +1 -1
  21. package/dist/cjs/components/button/MrlIconButton/MrlIconButton.js +20 -22
  22. package/dist/cjs/components/button/MrlIconButton/MrlIconButton.js.map +1 -1
  23. package/dist/cjs/components/button/MrlProcessingButton/MrlProcessingButton.js +14 -10
  24. package/dist/cjs/components/button/MrlProcessingButton/MrlProcessingButton.js.map +1 -1
  25. package/dist/cjs/components/button/MrlProcessingButton/actions.js +11 -16
  26. package/dist/cjs/components/button/MrlProcessingButton/actions.js.map +1 -1
  27. package/dist/cjs/components/button/helpers.js +4 -6
  28. package/dist/cjs/components/button/helpers.js.map +1 -1
  29. package/dist/cjs/components/callout/MrlCallout/MrlCallout.js +8 -9
  30. package/dist/cjs/components/callout/MrlCallout/MrlCallout.js.map +1 -1
  31. package/dist/cjs/components/container/MrlContainer/MrlContainer.js +14 -7
  32. package/dist/cjs/components/container/MrlContainer/MrlContainer.js.map +1 -1
  33. package/dist/cjs/components/divider/MrlDivider/MrlDivider.js +18 -6
  34. package/dist/cjs/components/divider/MrlDivider/MrlDivider.js.map +1 -1
  35. package/dist/cjs/components/empty/default/MrlEmpty.js +8 -4
  36. package/dist/cjs/components/empty/default/MrlEmpty.js.map +1 -1
  37. package/dist/cjs/components/empty/large/MrlEmptyLarge.js +8 -4
  38. package/dist/cjs/components/empty/large/MrlEmptyLarge.js.map +1 -1
  39. package/dist/cjs/components/error-boundary/MrlErrorBoundary.js +30 -38
  40. package/dist/cjs/components/error-boundary/MrlErrorBoundary.js.map +1 -1
  41. package/dist/cjs/components/filter/MrlFilter/MrlFilter.js +7 -3
  42. package/dist/cjs/components/filter/MrlFilter/MrlFilter.js.map +1 -1
  43. package/dist/cjs/components/filter/MrlFilterContext/MrlFilterContext.js +8 -7
  44. package/dist/cjs/components/filter/MrlFilterContext/MrlFilterContext.js.map +1 -1
  45. package/dist/cjs/components/filter/MrlFilterItem/MrlFilterItem.js +9 -3
  46. package/dist/cjs/components/filter/MrlFilterItem/MrlFilterItem.js.map +1 -1
  47. package/dist/cjs/components/focus-trap/MrlFocusTrap/MrlFocusTrap.js +6 -5
  48. package/dist/cjs/components/focus-trap/MrlFocusTrap/MrlFocusTrap.js.map +1 -1
  49. package/dist/cjs/components/form/checkbox/MrlCheckbox/MrlCheckbox.js +13 -4
  50. package/dist/cjs/components/form/checkbox/MrlCheckbox/MrlCheckbox.js.map +1 -1
  51. package/dist/cjs/components/form/checkbox/MrlCheckboxStandalone/MrlCheckboxStandalone.js +11 -7
  52. package/dist/cjs/components/form/checkbox/MrlCheckboxStandalone/MrlCheckboxStandalone.js.map +1 -1
  53. package/dist/cjs/components/form/date-picker/MrlDatePicker.js +21 -14
  54. package/dist/cjs/components/form/date-picker/MrlDatePicker.js.map +1 -1
  55. package/dist/cjs/components/form/fieldset/MrlFieldset/MrlFieldset.js +8 -4
  56. package/dist/cjs/components/form/fieldset/MrlFieldset/MrlFieldset.js.map +1 -1
  57. package/dist/cjs/components/form/hooks/useActiveColor.js +2 -2
  58. package/dist/cjs/components/form/hooks/useActiveColor.js.map +1 -1
  59. package/dist/cjs/components/form/hooks/useIsEditable.js +3 -3
  60. package/dist/cjs/components/form/hooks/useIsEditable.js.map +1 -1
  61. package/dist/cjs/components/form/label/MrlLabel/MrlLabel.js +12 -5
  62. package/dist/cjs/components/form/label/MrlLabel/MrlLabel.js.map +1 -1
  63. package/dist/cjs/components/form/label/MrlLabelWithDescription/MrlLabelWithDescription.js +19 -5
  64. package/dist/cjs/components/form/label/MrlLabelWithDescription/MrlLabelWithDescription.js.map +1 -1
  65. package/dist/cjs/components/form/legacy-select/MrlLegacySelect/MrlLegacySelect.js +42 -31
  66. package/dist/cjs/components/form/legacy-select/MrlLegacySelect/MrlLegacySelect.js.map +1 -1
  67. package/dist/cjs/components/form/legacy-select/MrlLegacySelectItem/MrlLegacySelectItem.js +21 -12
  68. package/dist/cjs/components/form/legacy-select/MrlLegacySelectItem/MrlLegacySelectItem.js.map +1 -1
  69. package/dist/cjs/components/form/legacy-select/MrlLegacySelectMenu/MrlLegacySelectMenu.js +19 -11
  70. package/dist/cjs/components/form/legacy-select/MrlLegacySelectMenu/MrlLegacySelectMenu.js.map +1 -1
  71. package/dist/cjs/components/form/legacy-select/context/SelectContext.js +8 -7
  72. package/dist/cjs/components/form/legacy-select/context/SelectContext.js.map +1 -1
  73. package/dist/cjs/components/form/legacy-select/index.js +4 -3
  74. package/dist/cjs/components/form/legacy-select/index.js.map +1 -1
  75. package/dist/cjs/components/form/radio/MrlRadioButton/MrlRadioButton.js +7 -3
  76. package/dist/cjs/components/form/radio/MrlRadioButton/MrlRadioButton.js.map +1 -1
  77. package/dist/cjs/components/form/radio/MrlRadioButtonStandalone/MrlRadioButtonStandalone.js +11 -5
  78. package/dist/cjs/components/form/radio/MrlRadioButtonStandalone/MrlRadioButtonStandalone.js.map +1 -1
  79. package/dist/cjs/components/form/radio/MrlRadioGroup/MrlRadioGroup.js +3 -2
  80. package/dist/cjs/components/form/radio/MrlRadioGroup/MrlRadioGroup.js.map +1 -1
  81. package/dist/cjs/components/form/select/MrlCreatableSelect/MrlCreatableSelect.js +10 -8
  82. package/dist/cjs/components/form/select/MrlCreatableSelect/MrlCreatableSelect.js.map +1 -1
  83. package/dist/cjs/components/form/select/MrlMultiCreatableSelect/MrlMultiCreatableSelect.js +10 -8
  84. package/dist/cjs/components/form/select/MrlMultiCreatableSelect/MrlMultiCreatableSelect.js.map +1 -1
  85. package/dist/cjs/components/form/select/MrlMultiSelect/MrlMultiSelect.js +9 -5
  86. package/dist/cjs/components/form/select/MrlMultiSelect/MrlMultiSelect.js.map +1 -1
  87. package/dist/cjs/components/form/select/MrlSelect/MrlSelect.js +9 -5
  88. package/dist/cjs/components/form/select/MrlSelect/MrlSelect.js.map +1 -1
  89. package/dist/cjs/components/form/select/components/MrlSelectClearIndicator.js +3 -2
  90. package/dist/cjs/components/form/select/components/MrlSelectClearIndicator.js.map +1 -1
  91. package/dist/cjs/components/form/select/components/MrlSelectContainer.js +3 -2
  92. package/dist/cjs/components/form/select/components/MrlSelectContainer.js.map +1 -1
  93. package/dist/cjs/components/form/select/components/MrlSelectDropdownIndicator.js +3 -2
  94. package/dist/cjs/components/form/select/components/MrlSelectDropdownIndicator.js.map +1 -1
  95. package/dist/cjs/components/form/select/components/MrlSelectMultiValue.js +9 -3
  96. package/dist/cjs/components/form/select/components/MrlSelectMultiValue.js.map +1 -1
  97. package/dist/cjs/components/form/select/components/MrlSelectMultiValueRemove.js +3 -2
  98. package/dist/cjs/components/form/select/components/MrlSelectMultiValueRemove.js.map +1 -1
  99. package/dist/cjs/components/form/select/components/MrlSelectOption.js +3 -2
  100. package/dist/cjs/components/form/select/components/MrlSelectOption.js.map +1 -1
  101. package/dist/cjs/components/form/select/components/MrlSelectValueContainer.js +3 -2
  102. package/dist/cjs/components/form/select/components/MrlSelectValueContainer.js.map +1 -1
  103. package/dist/cjs/components/form/select/styles/default.js +18 -18
  104. package/dist/cjs/components/form/select/styles/default.js.map +1 -1
  105. package/dist/cjs/components/form/select/styles/inline.js +2 -2
  106. package/dist/cjs/components/form/select/styles/inline.js.map +1 -1
  107. package/dist/cjs/components/form/select/styles/inlineNoLabel.js +3 -3
  108. package/dist/cjs/components/form/select/styles/inlineNoLabel.js.map +1 -1
  109. package/dist/cjs/components/form/select/styles/inlineStacked.js +2 -2
  110. package/dist/cjs/components/form/select/styles/inlineStacked.js.map +1 -1
  111. package/dist/cjs/components/form/switch/MrlSwitch/MrlSwitch.js +14 -7
  112. package/dist/cjs/components/form/switch/MrlSwitch/MrlSwitch.js.map +1 -1
  113. package/dist/cjs/components/form/switch/MrlSwitchStandalone/MrlSwitchStandalone.js +13 -9
  114. package/dist/cjs/components/form/switch/MrlSwitchStandalone/MrlSwitchStandalone.js.map +1 -1
  115. package/dist/cjs/components/form/text-input/MrlEditableTextInput/MrlEditableTextInput.js +31 -19
  116. package/dist/cjs/components/form/text-input/MrlEditableTextInput/MrlEditableTextInput.js.map +1 -1
  117. package/dist/cjs/components/form/text-input/MrlEditableTextInput/MrlEditableTextInputRightIcon.js +14 -17
  118. package/dist/cjs/components/form/text-input/MrlEditableTextInput/MrlEditableTextInputRightIcon.js.map +1 -1
  119. package/dist/cjs/components/form/text-input/MrlTextInput/MrlTextInput.js +28 -23
  120. package/dist/cjs/components/form/text-input/MrlTextInput/MrlTextInput.js.map +1 -1
  121. package/dist/cjs/components/form/text-input/MrlTextInput/MrlTextInputRightIcon.js +14 -17
  122. package/dist/cjs/components/form/text-input/MrlTextInput/MrlTextInputRightIcon.js.map +1 -1
  123. package/dist/cjs/components/form/textarea/MrlEditableTextarea/MrlEditableTextarea.js +20 -16
  124. package/dist/cjs/components/form/textarea/MrlEditableTextarea/MrlEditableTextarea.js.map +1 -1
  125. package/dist/cjs/components/form/textarea/MrlEditableTextarea/MrlEditableTextareaRightButton.js +14 -17
  126. package/dist/cjs/components/form/textarea/MrlEditableTextarea/MrlEditableTextareaRightButton.js.map +1 -1
  127. package/dist/cjs/components/form/textarea/MrlTextarea/MrlTextarea.js +16 -9
  128. package/dist/cjs/components/form/textarea/MrlTextarea/MrlTextarea.js.map +1 -1
  129. package/dist/cjs/components/form/utils.js +2 -4
  130. package/dist/cjs/components/form/utils.js.map +1 -1
  131. package/dist/cjs/components/grid/MrlCol/MrlCol.js +37 -46
  132. package/dist/cjs/components/grid/MrlCol/MrlCol.js.map +1 -1
  133. package/dist/cjs/components/grid/MrlGrid/MrlGrid.js +7 -3
  134. package/dist/cjs/components/grid/MrlGrid/MrlGrid.js.map +1 -1
  135. package/dist/cjs/components/grid/MrlRow/MrlRow.js +7 -3
  136. package/dist/cjs/components/grid/MrlRow/MrlRow.js.map +1 -1
  137. package/dist/cjs/components/keystroke/MrlKeystroke/MrlKeystroke.js +7 -3
  138. package/dist/cjs/components/keystroke/MrlKeystroke/MrlKeystroke.js.map +1 -1
  139. package/dist/cjs/components/keystroke/MrlKeystrokes/MrlKeystrokes.js +7 -3
  140. package/dist/cjs/components/keystroke/MrlKeystrokes/MrlKeystrokes.js.map +1 -1
  141. package/dist/cjs/components/layout/MrlMain/MrlMain.js +9 -3
  142. package/dist/cjs/components/layout/MrlMain/MrlMain.js.map +1 -1
  143. package/dist/cjs/components/layout/MrlPage/MrlPage.js +9 -3
  144. package/dist/cjs/components/layout/MrlPage/MrlPage.js.map +1 -1
  145. package/dist/cjs/components/layout/MrlPage/index.js +3 -2
  146. package/dist/cjs/components/layout/MrlPage/index.js.map +1 -1
  147. package/dist/cjs/components/layout/MrlSidebar/MrlSidebar.js +27 -15
  148. package/dist/cjs/components/layout/MrlSidebar/MrlSidebar.js.map +1 -1
  149. package/dist/cjs/components/layout/MrlTopbar/MrlTopbar.js +10 -3
  150. package/dist/cjs/components/layout/MrlTopbar/MrlTopbar.js.map +1 -1
  151. package/dist/cjs/components/layout/context/LayoutContext.js +7 -6
  152. package/dist/cjs/components/layout/context/LayoutContext.js.map +1 -1
  153. package/dist/cjs/components/layout/error-page/MrlBrandColors/MrlBrandColors.js +18 -14
  154. package/dist/cjs/components/layout/error-page/MrlBrandColors/MrlBrandColors.js.map +1 -1
  155. package/dist/cjs/components/layout/error-page/MrlErrorPage/MrlErrorPage.js +13 -9
  156. package/dist/cjs/components/layout/error-page/MrlErrorPage/MrlErrorPage.js.map +1 -1
  157. package/dist/cjs/components/layout/utils.js +2 -2
  158. package/dist/cjs/components/layout/utils.js.map +1 -1
  159. package/dist/cjs/components/link/MrlLink/MrlLink.js +13 -4
  160. package/dist/cjs/components/link/MrlLink/MrlLink.js.map +1 -1
  161. package/dist/cjs/components/link/MrlLinkButton/MrlLinkButton.js +16 -14
  162. package/dist/cjs/components/link/MrlLinkButton/MrlLinkButton.js.map +1 -1
  163. package/dist/cjs/components/live-region/MrlLiveRegion/MrlLiveRegion.js +13 -12
  164. package/dist/cjs/components/live-region/MrlLiveRegion/MrlLiveRegion.js.map +1 -1
  165. package/dist/cjs/components/loader/MrlProgressBar/MrlProgressBar.js +16 -6
  166. package/dist/cjs/components/loader/MrlProgressBar/MrlProgressBar.js.map +1 -1
  167. package/dist/cjs/components/loader/MrlSpinner/MrlSpinner.js +16 -4
  168. package/dist/cjs/components/loader/MrlSpinner/MrlSpinner.js.map +1 -1
  169. package/dist/cjs/components/menu/MrlMenu/MrlMenu.js +61 -63
  170. package/dist/cjs/components/menu/MrlMenu/MrlMenu.js.map +1 -1
  171. package/dist/cjs/components/menu/MrlMenu/utilities.js +4 -6
  172. package/dist/cjs/components/menu/MrlMenu/utilities.js.map +1 -1
  173. package/dist/cjs/components/menu/MrlMenuGroup/MrlMenuGroup.js +4 -3
  174. package/dist/cjs/components/menu/MrlMenuGroup/MrlMenuGroup.js.map +1 -1
  175. package/dist/cjs/components/menu/MrlMenuItem/MrlMenuItem.js +24 -19
  176. package/dist/cjs/components/menu/MrlMenuItem/MrlMenuItem.js.map +1 -1
  177. package/dist/cjs/components/menu/MrlMenuItemLink/MrlMenuItemLink.js +10 -6
  178. package/dist/cjs/components/menu/MrlMenuItemLink/MrlMenuItemLink.js.map +1 -1
  179. package/dist/cjs/components/menu/context/MrlMenuContext.js +3 -2
  180. package/dist/cjs/components/menu/context/MrlMenuContext.js.map +1 -1
  181. package/dist/cjs/components/menu/hooks/useBrowserEdgeScroll.js +19 -15
  182. package/dist/cjs/components/menu/hooks/useBrowserEdgeScroll.js.map +1 -1
  183. package/dist/cjs/components/menu/hooks/useMenuScroll.js +8 -8
  184. package/dist/cjs/components/menu/hooks/useMenuScroll.js.map +1 -1
  185. package/dist/cjs/components/menu/hooks/useSubMenuElementPosition.js +3 -3
  186. package/dist/cjs/components/menu/hooks/useSubMenuElementPosition.js.map +1 -1
  187. package/dist/cjs/components/menu/utilities/flip-position.js +1 -1
  188. package/dist/cjs/components/menu/utilities/flip-position.js.map +1 -1
  189. package/dist/cjs/components/modal/MrlModal/MrlModal.js +29 -25
  190. package/dist/cjs/components/modal/MrlModal/MrlModal.js.map +1 -1
  191. package/dist/cjs/components/modal/MrlModalContent/MrlModalContent.js +12 -8
  192. package/dist/cjs/components/modal/MrlModalContent/MrlModalContent.js.map +1 -1
  193. package/dist/cjs/components/modal/MrlModalContext/MrlModalContext.js +4 -3
  194. package/dist/cjs/components/modal/MrlModalContext/MrlModalContext.js.map +1 -1
  195. package/dist/cjs/components/modal/MrlModalFooter/MrlModalFooter.js +13 -6
  196. package/dist/cjs/components/modal/MrlModalFooter/MrlModalFooter.js.map +1 -1
  197. package/dist/cjs/components/modal/MrlModalHeader/MrlModalHeader.js +12 -6
  198. package/dist/cjs/components/modal/MrlModalHeader/MrlModalHeader.js.map +1 -1
  199. package/dist/cjs/components/navigation-sidebar/MrlSidebarNavGroup/MrlSidebarNavGroup.js +7 -3
  200. package/dist/cjs/components/navigation-sidebar/MrlSidebarNavGroup/MrlSidebarNavGroup.js.map +1 -1
  201. package/dist/cjs/components/navigation-sidebar/MrlSidebarNavItem/MrlSidebarNavItem.js +11 -3
  202. package/dist/cjs/components/navigation-sidebar/MrlSidebarNavItem/MrlSidebarNavItem.js.map +1 -1
  203. package/dist/cjs/components/notification/MrlBlockNotification/MrlBlockNotification.js +26 -19
  204. package/dist/cjs/components/notification/MrlBlockNotification/MrlBlockNotification.js.map +1 -1
  205. package/dist/cjs/components/notification/MrlInlineMessage/MrlInlineMessage.js +17 -7
  206. package/dist/cjs/components/notification/MrlInlineMessage/MrlInlineMessage.js.map +1 -1
  207. package/dist/cjs/components/notification/MrlToast/MrlToast.js +18 -9
  208. package/dist/cjs/components/notification/MrlToast/MrlToast.js.map +1 -1
  209. package/dist/cjs/components/pagination/MrlPagination/MrlPagination.js +7 -3
  210. package/dist/cjs/components/pagination/MrlPagination/MrlPagination.js.map +1 -1
  211. package/dist/cjs/components/pagination/MrlPaginationButton/MrlPaginationButton.js +7 -3
  212. package/dist/cjs/components/pagination/MrlPaginationButton/MrlPaginationButton.js.map +1 -1
  213. package/dist/cjs/components/pagination/MrlPaginationText/MrlPaginationText.js +8 -4
  214. package/dist/cjs/components/pagination/MrlPaginationText/MrlPaginationText.js.map +1 -1
  215. package/dist/cjs/components/panel/MrlPanel/MrlPanel.js +25 -17
  216. package/dist/cjs/components/panel/MrlPanel/MrlPanel.js.map +1 -1
  217. package/dist/cjs/components/panel/MrlPanelContext/MrlPanelContext.js +3 -2
  218. package/dist/cjs/components/panel/MrlPanelContext/MrlPanelContext.js.map +1 -1
  219. package/dist/cjs/components/panel/MrlPanelFooter/MrlPanelFooter.js +9 -5
  220. package/dist/cjs/components/panel/MrlPanelFooter/MrlPanelFooter.js.map +1 -1
  221. package/dist/cjs/components/panel/MrlPanelStickyHeader/MrlPanelStickyHeader.js +8 -4
  222. package/dist/cjs/components/panel/MrlPanelStickyHeader/MrlPanelStickyHeader.js.map +1 -1
  223. package/dist/cjs/components/popover/MrlPopover/MrlPopover.js +77 -73
  224. package/dist/cjs/components/popover/MrlPopover/MrlPopover.js.map +1 -1
  225. package/dist/cjs/components/popover/MrlPopover/MrlPopoverScrollContainer.js +3 -2
  226. package/dist/cjs/components/popover/MrlPopover/MrlPopoverScrollContainer.js.map +1 -1
  227. package/dist/cjs/components/popover/MrlPopover/context/MrlPopoverContext.js +3 -2
  228. package/dist/cjs/components/popover/MrlPopover/context/MrlPopoverContext.js.map +1 -1
  229. package/dist/cjs/components/popover/MrlPopover/hooks/use-mrl-popover-event-handlers.js +22 -23
  230. package/dist/cjs/components/popover/MrlPopover/hooks/use-mrl-popover-event-handlers.js.map +1 -1
  231. package/dist/cjs/components/popover/MrlPopover/utilities/get-data-point.js +1 -1
  232. package/dist/cjs/components/popover/MrlPopover/utilities/get-data-point.js.map +1 -1
  233. package/dist/cjs/components/popover/MrlPopover/utilities/get-offset.js +1 -1
  234. package/dist/cjs/components/popover/MrlPopover/utilities/get-offset.js.map +1 -1
  235. package/dist/cjs/components/portal/MrlPortal.js +5 -4
  236. package/dist/cjs/components/portal/MrlPortal.js.map +1 -1
  237. package/dist/cjs/components/rovingTabindex/MrlRovingTabindex/MrlRovingTabindex.js +237 -263
  238. package/dist/cjs/components/rovingTabindex/MrlRovingTabindex/MrlRovingTabindex.js.map +1 -1
  239. package/dist/cjs/components/skeleton/MrlSkeleton/MrlSkeleton.js +11 -5
  240. package/dist/cjs/components/skeleton/MrlSkeleton/MrlSkeleton.js.map +1 -1
  241. package/dist/cjs/components/skeleton/MrlSkeletonText/MrlSkeletonText.js +12 -6
  242. package/dist/cjs/components/skeleton/MrlSkeletonText/MrlSkeletonText.js.map +1 -1
  243. package/dist/cjs/components/svg/MrlSvg/MrlSvg.js +17 -17
  244. package/dist/cjs/components/svg/MrlSvg/MrlSvg.js.map +1 -1
  245. package/dist/cjs/components/svg/MrlSvgAnimate/MrlSvgAnimate.js +20 -15
  246. package/dist/cjs/components/svg/MrlSvgAnimate/MrlSvgAnimate.js.map +1 -1
  247. package/dist/cjs/components/table/MrlSmartTable/MrlSmartTable.js +78 -96
  248. package/dist/cjs/components/table/MrlSmartTable/MrlSmartTable.js.map +1 -1
  249. package/dist/cjs/components/table/MrlSmartTable/components/DefaultCellContent.js +5 -4
  250. package/dist/cjs/components/table/MrlSmartTable/components/DefaultCellContent.js.map +1 -1
  251. package/dist/cjs/components/table/MrlTable/MrlTable.js +7 -3
  252. package/dist/cjs/components/table/MrlTable/MrlTable.js.map +1 -1
  253. package/dist/cjs/components/table/MrlTableBody/MrlTableBody.js +7 -3
  254. package/dist/cjs/components/table/MrlTableBody/MrlTableBody.js.map +1 -1
  255. package/dist/cjs/components/table/MrlTableCell/MrlTableCell.js +12 -3
  256. package/dist/cjs/components/table/MrlTableCell/MrlTableCell.js.map +1 -1
  257. package/dist/cjs/components/table/MrlTableColumn/MrlTableColumn.js +13 -3
  258. package/dist/cjs/components/table/MrlTableColumn/MrlTableColumn.js.map +1 -1
  259. package/dist/cjs/components/table/MrlTableEmptyState/MrlTableEmptyState.js +7 -3
  260. package/dist/cjs/components/table/MrlTableEmptyState/MrlTableEmptyState.js.map +1 -1
  261. package/dist/cjs/components/table/MrlTableHeader/MrlTableHeader.js +7 -3
  262. package/dist/cjs/components/table/MrlTableHeader/MrlTableHeader.js.map +1 -1
  263. package/dist/cjs/components/table/MrlTableRow/MrlTableRow.js +13 -7
  264. package/dist/cjs/components/table/MrlTableRow/MrlTableRow.js.map +1 -1
  265. package/dist/cjs/components/table/utils.js +4 -10
  266. package/dist/cjs/components/table/utils.js.map +1 -1
  267. package/dist/cjs/components/tabs/MrlTab/MrlTab.js +16 -9
  268. package/dist/cjs/components/tabs/MrlTab/MrlTab.js.map +1 -1
  269. package/dist/cjs/components/tabs/MrlTabContent/MrlTabContent.js +12 -5
  270. package/dist/cjs/components/tabs/MrlTabContent/MrlTabContent.js.map +1 -1
  271. package/dist/cjs/components/tabs/MrlTabGroup/MrlTabGroup.js +15 -13
  272. package/dist/cjs/components/tabs/MrlTabGroup/MrlTabGroup.js.map +1 -1
  273. package/dist/cjs/components/tabs/MrlTabLink/MrlTabLink.js +16 -9
  274. package/dist/cjs/components/tabs/MrlTabLink/MrlTabLink.js.map +1 -1
  275. package/dist/cjs/components/tabs/MrlTabs/MrlTabs.js +16 -10
  276. package/dist/cjs/components/tabs/MrlTabs/MrlTabs.js.map +1 -1
  277. package/dist/cjs/components/text/MrlText/MrlText.js +14 -5
  278. package/dist/cjs/components/text/MrlText/MrlText.js.map +1 -1
  279. package/dist/cjs/components/text/MrlTextHeading/MrlTextHeading.js +14 -4
  280. package/dist/cjs/components/text/MrlTextHeading/MrlTextHeading.js.map +1 -1
  281. package/dist/cjs/components/toolbar/MrlToolbar/MrlToolbar.js +17 -8
  282. package/dist/cjs/components/toolbar/MrlToolbar/MrlToolbar.js.map +1 -1
  283. package/dist/cjs/components/toolbar/MrlToolbarButton/MrlToolbarButton.js +7 -3
  284. package/dist/cjs/components/toolbar/MrlToolbarButton/MrlToolbarButton.js.map +1 -1
  285. package/dist/cjs/components/toolbar/MrlToolbarItem/MrlToolbarItem.js +1 -1
  286. package/dist/cjs/components/toolbar/MrlToolbarItem/MrlToolbarItem.js.map +1 -1
  287. package/dist/cjs/components/tooltip/MrlTooltip/MrlTooltip.js +37 -36
  288. package/dist/cjs/components/tooltip/MrlTooltip/MrlTooltip.js.map +1 -1
  289. package/dist/cjs/components/tooltip/MrlTooltipContent/MrlTooltipContent.js +13 -4
  290. package/dist/cjs/components/tooltip/MrlTooltipContent/MrlTooltipContent.js.map +1 -1
  291. package/dist/cjs/components/tooltip/useTooltipPosition/index.js +21 -19
  292. package/dist/cjs/components/tooltip/useTooltipPosition/index.js.map +1 -1
  293. package/dist/cjs/components/tooltip/useTooltipPosition/utilities.js +4 -4
  294. package/dist/cjs/components/tooltip/useTooltipPosition/utilities.js.map +1 -1
  295. package/dist/cjs/components/tooltip/utils.js +3 -3
  296. package/dist/cjs/components/tooltip/utils.js.map +1 -1
  297. package/dist/cjs/hooks/useAutoClose/useAutoClose.js +7 -6
  298. package/dist/cjs/hooks/useAutoClose/useAutoClose.js.map +1 -1
  299. package/dist/cjs/hooks/useBreakpoint/index.js +5 -5
  300. package/dist/cjs/hooks/useBreakpoint/index.js.map +1 -1
  301. package/dist/cjs/hooks/useClickOutside/index.js +4 -4
  302. package/dist/cjs/hooks/useClickOutside/index.js.map +1 -1
  303. package/dist/cjs/hooks/useCoordinate/index.js +19 -28
  304. package/dist/cjs/hooks/useCoordinate/index.js.map +1 -1
  305. package/dist/cjs/hooks/useElementDimensions/index.js +21 -33
  306. package/dist/cjs/hooks/useElementDimensions/index.js.map +1 -1
  307. package/dist/cjs/hooks/useHasFocusableDescendant/index.js +7 -8
  308. package/dist/cjs/hooks/useHasFocusableDescendant/index.js.map +1 -1
  309. package/dist/cjs/hooks/useScrollbarInfo/index.js +11 -10
  310. package/dist/cjs/hooks/useScrollbarInfo/index.js.map +1 -1
  311. package/dist/cjs/hooks/useTriggerPosition/index.js +20 -22
  312. package/dist/cjs/hooks/useTriggerPosition/index.js.map +1 -1
  313. package/dist/cjs/hooks/useTriggerPosition/utilities.js +15 -23
  314. package/dist/cjs/hooks/useTriggerPosition/utilities.js.map +1 -1
  315. package/dist/cjs/utils/checkInvalidAttributes/index.js +2 -4
  316. package/dist/cjs/utils/checkInvalidAttributes/index.js.map +1 -1
  317. package/dist/cjs/utils/frameDebounce/index.js +27 -28
  318. package/dist/cjs/utils/frameDebounce/index.js.map +1 -1
  319. package/dist/cjs/utils/getCamelCase/getCamelCase.js +2 -2
  320. package/dist/cjs/utils/getCamelCase/getCamelCase.js.map +1 -1
  321. package/dist/cjs/utils/getScrollableContainer/getScrollableContainer.js +1 -1
  322. package/dist/cjs/utils/getScrollableContainer/getScrollableContainer.js.map +1 -1
  323. package/dist/cjs/utils/hasHorizontalScroll/hasHorizontalScroll.js +1 -1
  324. package/dist/cjs/utils/hasHorizontalScroll/hasHorizontalScroll.js.map +1 -1
  325. package/dist/cjs/utils/hasScrollContent/hasScrollContent.js +1 -1
  326. package/dist/cjs/utils/hasScrollContent/hasScrollContent.js.map +1 -1
  327. package/dist/cjs/utils/isElementAriaDisabled/isElementAriaDisabled.js +1 -1
  328. package/dist/cjs/utils/isElementAriaDisabled/isElementAriaDisabled.js.map +1 -1
  329. package/dist/cjs/utils/isElementScrollable/index.js +1 -1
  330. package/dist/cjs/utils/isElementScrollable/index.js.map +1 -1
  331. package/dist/cjs/utils/isImagePath/index.js +4 -3
  332. package/dist/cjs/utils/isImagePath/index.js.map +1 -1
  333. package/dist/cjs/utils/isImageUri/index.js +1 -1
  334. package/dist/cjs/utils/isImageUri/index.js.map +1 -1
  335. package/dist/cjs/utils/isObject/isObject.js +1 -1
  336. package/dist/cjs/utils/isObject/isObject.js.map +1 -1
  337. package/dist/cjs/utils/isTouch/index.js +1 -1
  338. package/dist/cjs/utils/isTouch/index.js.map +1 -1
  339. package/dist/cjs/utils/layers/index.js +1 -1
  340. package/dist/cjs/utils/layers/index.js.map +1 -1
  341. package/dist/cjs/utils/noop/index.js +1 -1
  342. package/dist/cjs/utils/noop/index.js.map +1 -1
  343. package/dist/cjs/utils/preventDefault/preventDefault.js +1 -1
  344. package/dist/cjs/utils/preventDefault/preventDefault.js.map +1 -1
  345. package/dist/cjs/utils/setAttributes/setAttributes.js +11 -5
  346. package/dist/cjs/utils/setAttributes/setAttributes.js.map +1 -1
  347. package/dist/cjs/utils/trapFocus/index.js +9 -11
  348. package/dist/cjs/utils/trapFocus/index.js.map +1 -1
  349. package/dist/esm/_virtual/_rollupPluginBabelHelpers.js +1 -234
  350. package/dist/esm/_virtual/_rollupPluginBabelHelpers.js.map +1 -1
  351. package/dist/esm/components/avatar/MrlAvatar/MrlAvatar.js +12 -10
  352. package/dist/esm/components/avatar/MrlAvatar/MrlAvatar.js.map +1 -1
  353. package/dist/esm/components/avatar/MrlAvatarButton/MrlAvatarButton.js +22 -24
  354. package/dist/esm/components/avatar/MrlAvatarButton/MrlAvatarButton.js.map +1 -1
  355. package/dist/esm/components/badge/MrlBadge/MrlBadge.js +6 -4
  356. package/dist/esm/components/badge/MrlBadge/MrlBadge.js.map +1 -1
  357. package/dist/esm/components/badge/MrlBadgeNotification/MrlBadgeNotification.js +7 -3
  358. package/dist/esm/components/badge/MrlBadgeNotification/MrlBadgeNotification.js.map +1 -1
  359. package/dist/esm/components/breadcrumb/MrlBreadcrumbItem/MrlBreadcrumbItem.js +7 -4
  360. package/dist/esm/components/breadcrumb/MrlBreadcrumbItem/MrlBreadcrumbItem.js.map +1 -1
  361. package/dist/esm/components/breadcrumb/MrlBreadcrumbs/MrlBreadcrumbs.js +18 -26
  362. package/dist/esm/components/breadcrumb/MrlBreadcrumbs/MrlBreadcrumbs.js.map +1 -1
  363. package/dist/esm/components/button/MrlAnimatedIconButton/MrlAnimatedIconButton.js +14 -18
  364. package/dist/esm/components/button/MrlAnimatedIconButton/MrlAnimatedIconButton.js.map +1 -1
  365. package/dist/esm/components/button/MrlButton/MrlButton.js +16 -20
  366. package/dist/esm/components/button/MrlButton/MrlButton.js.map +1 -1
  367. package/dist/esm/components/button/MrlIconButton/MrlIconButton.js +14 -20
  368. package/dist/esm/components/button/MrlIconButton/MrlIconButton.js.map +1 -1
  369. package/dist/esm/components/button/MrlProcessingButton/MrlProcessingButton.js +7 -7
  370. package/dist/esm/components/button/MrlProcessingButton/MrlProcessingButton.js.map +1 -1
  371. package/dist/esm/components/button/MrlProcessingButton/actions.js +12 -17
  372. package/dist/esm/components/button/MrlProcessingButton/actions.js.map +1 -1
  373. package/dist/esm/components/button/helpers.js +4 -6
  374. package/dist/esm/components/button/helpers.js.map +1 -1
  375. package/dist/esm/components/callout/MrlCallout/MrlCallout.js +5 -7
  376. package/dist/esm/components/callout/MrlCallout/MrlCallout.js.map +1 -1
  377. package/dist/esm/components/container/MrlContainer/MrlContainer.js +7 -4
  378. package/dist/esm/components/container/MrlContainer/MrlContainer.js.map +1 -1
  379. package/dist/esm/components/divider/MrlDivider/MrlDivider.js +13 -5
  380. package/dist/esm/components/divider/MrlDivider/MrlDivider.js.map +1 -1
  381. package/dist/esm/components/empty/default/MrlEmpty.js +1 -1
  382. package/dist/esm/components/empty/default/MrlEmpty.js.map +1 -1
  383. package/dist/esm/components/empty/large/MrlEmptyLarge.js +1 -1
  384. package/dist/esm/components/empty/large/MrlEmptyLarge.js.map +1 -1
  385. package/dist/esm/components/error-boundary/MrlErrorBoundary.js +28 -37
  386. package/dist/esm/components/error-boundary/MrlErrorBoundary.js.map +1 -1
  387. package/dist/esm/components/filter/MrlFilterContext/MrlFilterContext.js +5 -5
  388. package/dist/esm/components/filter/MrlFilterContext/MrlFilterContext.js.map +1 -1
  389. package/dist/esm/components/filter/MrlFilterItem/MrlFilterItem.js +4 -2
  390. package/dist/esm/components/filter/MrlFilterItem/MrlFilterItem.js.map +1 -1
  391. package/dist/esm/components/focus-trap/MrlFocusTrap/MrlFocusTrap.js +3 -3
  392. package/dist/esm/components/focus-trap/MrlFocusTrap/MrlFocusTrap.js.map +1 -1
  393. package/dist/esm/components/form/checkbox/MrlCheckbox/MrlCheckbox.js +8 -3
  394. package/dist/esm/components/form/checkbox/MrlCheckbox/MrlCheckbox.js.map +1 -1
  395. package/dist/esm/components/form/checkbox/MrlCheckboxStandalone/MrlCheckboxStandalone.js +2 -2
  396. package/dist/esm/components/form/checkbox/MrlCheckboxStandalone/MrlCheckboxStandalone.js.map +1 -1
  397. package/dist/esm/components/form/date-picker/MrlDatePicker.js +15 -12
  398. package/dist/esm/components/form/date-picker/MrlDatePicker.js.map +1 -1
  399. package/dist/esm/components/form/fieldset/MrlFieldset/MrlFieldset.js +2 -2
  400. package/dist/esm/components/form/fieldset/MrlFieldset/MrlFieldset.js.map +1 -1
  401. package/dist/esm/components/form/hooks/useActiveColor.js +2 -2
  402. package/dist/esm/components/form/hooks/useActiveColor.js.map +1 -1
  403. package/dist/esm/components/form/hooks/useIsEditable.js +3 -3
  404. package/dist/esm/components/form/hooks/useIsEditable.js.map +1 -1
  405. package/dist/esm/components/form/label/MrlLabel/MrlLabel.js +6 -3
  406. package/dist/esm/components/form/label/MrlLabel/MrlLabel.js.map +1 -1
  407. package/dist/esm/components/form/label/MrlLabelWithDescription/MrlLabelWithDescription.js +14 -4
  408. package/dist/esm/components/form/label/MrlLabelWithDescription/MrlLabelWithDescription.js.map +1 -1
  409. package/dist/esm/components/form/legacy-select/MrlLegacySelect/MrlLegacySelect.js +37 -30
  410. package/dist/esm/components/form/legacy-select/MrlLegacySelect/MrlLegacySelect.js.map +1 -1
  411. package/dist/esm/components/form/legacy-select/MrlLegacySelectItem/MrlLegacySelectItem.js +16 -11
  412. package/dist/esm/components/form/legacy-select/MrlLegacySelectItem/MrlLegacySelectItem.js.map +1 -1
  413. package/dist/esm/components/form/legacy-select/MrlLegacySelectMenu/MrlLegacySelectMenu.js +14 -10
  414. package/dist/esm/components/form/legacy-select/MrlLegacySelectMenu/MrlLegacySelectMenu.js.map +1 -1
  415. package/dist/esm/components/form/legacy-select/context/SelectContext.js +5 -5
  416. package/dist/esm/components/form/legacy-select/context/SelectContext.js.map +1 -1
  417. package/dist/esm/components/form/legacy-select/index.js +1 -1
  418. package/dist/esm/components/form/legacy-select/index.js.map +1 -1
  419. package/dist/esm/components/form/radio/MrlRadioButtonStandalone/MrlRadioButtonStandalone.js +4 -2
  420. package/dist/esm/components/form/radio/MrlRadioButtonStandalone/MrlRadioButtonStandalone.js.map +1 -1
  421. package/dist/esm/components/form/select/MrlCreatableSelect/MrlCreatableSelect.js +3 -5
  422. package/dist/esm/components/form/select/MrlCreatableSelect/MrlCreatableSelect.js.map +1 -1
  423. package/dist/esm/components/form/select/MrlMultiCreatableSelect/MrlMultiCreatableSelect.js +3 -5
  424. package/dist/esm/components/form/select/MrlMultiCreatableSelect/MrlMultiCreatableSelect.js.map +1 -1
  425. package/dist/esm/components/form/select/MrlMultiSelect/MrlMultiSelect.js +2 -2
  426. package/dist/esm/components/form/select/MrlMultiSelect/MrlMultiSelect.js.map +1 -1
  427. package/dist/esm/components/form/select/MrlSelect/MrlSelect.js +2 -2
  428. package/dist/esm/components/form/select/MrlSelect/MrlSelect.js.map +1 -1
  429. package/dist/esm/components/form/select/components/MrlSelectMultiValue.js +4 -2
  430. package/dist/esm/components/form/select/components/MrlSelectMultiValue.js.map +1 -1
  431. package/dist/esm/components/form/select/styles/default.js +18 -18
  432. package/dist/esm/components/form/select/styles/default.js.map +1 -1
  433. package/dist/esm/components/form/select/styles/inline.js +2 -2
  434. package/dist/esm/components/form/select/styles/inline.js.map +1 -1
  435. package/dist/esm/components/form/select/styles/inlineNoLabel.js +3 -3
  436. package/dist/esm/components/form/select/styles/inlineNoLabel.js.map +1 -1
  437. package/dist/esm/components/form/select/styles/inlineStacked.js +2 -2
  438. package/dist/esm/components/form/select/styles/inlineStacked.js.map +1 -1
  439. package/dist/esm/components/form/switch/MrlSwitch/MrlSwitch.js +9 -6
  440. package/dist/esm/components/form/switch/MrlSwitch/MrlSwitch.js.map +1 -1
  441. package/dist/esm/components/form/switch/MrlSwitchStandalone/MrlSwitchStandalone.js +3 -3
  442. package/dist/esm/components/form/switch/MrlSwitchStandalone/MrlSwitchStandalone.js.map +1 -1
  443. package/dist/esm/components/form/text-input/MrlEditableTextInput/MrlEditableTextInput.js +25 -17
  444. package/dist/esm/components/form/text-input/MrlEditableTextInput/MrlEditableTextInput.js.map +1 -1
  445. package/dist/esm/components/form/text-input/MrlEditableTextInput/MrlEditableTextInputRightIcon.js +8 -15
  446. package/dist/esm/components/form/text-input/MrlEditableTextInput/MrlEditableTextInputRightIcon.js.map +1 -1
  447. package/dist/esm/components/form/text-input/MrlTextInput/MrlTextInput.js +21 -20
  448. package/dist/esm/components/form/text-input/MrlTextInput/MrlTextInput.js.map +1 -1
  449. package/dist/esm/components/form/text-input/MrlTextInput/MrlTextInputRightIcon.js +8 -15
  450. package/dist/esm/components/form/text-input/MrlTextInput/MrlTextInputRightIcon.js.map +1 -1
  451. package/dist/esm/components/form/textarea/MrlEditableTextarea/MrlEditableTextarea.js +15 -15
  452. package/dist/esm/components/form/textarea/MrlEditableTextarea/MrlEditableTextarea.js.map +1 -1
  453. package/dist/esm/components/form/textarea/MrlEditableTextarea/MrlEditableTextareaRightButton.js +8 -15
  454. package/dist/esm/components/form/textarea/MrlEditableTextarea/MrlEditableTextareaRightButton.js.map +1 -1
  455. package/dist/esm/components/form/textarea/MrlTextarea/MrlTextarea.js +9 -6
  456. package/dist/esm/components/form/textarea/MrlTextarea/MrlTextarea.js.map +1 -1
  457. package/dist/esm/components/form/utils.js +2 -4
  458. package/dist/esm/components/form/utils.js.map +1 -1
  459. package/dist/esm/components/grid/MrlCol/MrlCol.js +31 -44
  460. package/dist/esm/components/grid/MrlCol/MrlCol.js.map +1 -1
  461. package/dist/esm/components/layout/MrlMain/MrlMain.js +4 -2
  462. package/dist/esm/components/layout/MrlMain/MrlMain.js.map +1 -1
  463. package/dist/esm/components/layout/MrlPage/MrlPage.js +4 -2
  464. package/dist/esm/components/layout/MrlPage/MrlPage.js.map +1 -1
  465. package/dist/esm/components/layout/MrlSidebar/MrlSidebar.js +19 -11
  466. package/dist/esm/components/layout/MrlSidebar/MrlSidebar.js.map +1 -1
  467. package/dist/esm/components/layout/MrlTopbar/MrlTopbar.js +5 -2
  468. package/dist/esm/components/layout/MrlTopbar/MrlTopbar.js.map +1 -1
  469. package/dist/esm/components/layout/context/LayoutContext.js +4 -4
  470. package/dist/esm/components/layout/context/LayoutContext.js.map +1 -1
  471. package/dist/esm/components/layout/error-page/MrlBrandColors/MrlBrandColors.js +1 -1
  472. package/dist/esm/components/layout/error-page/MrlBrandColors/MrlBrandColors.js.map +1 -1
  473. package/dist/esm/components/layout/error-page/MrlErrorPage/MrlErrorPage.js +1 -1
  474. package/dist/esm/components/layout/error-page/MrlErrorPage/MrlErrorPage.js.map +1 -1
  475. package/dist/esm/components/layout/utils.js +2 -2
  476. package/dist/esm/components/layout/utils.js.map +1 -1
  477. package/dist/esm/components/link/MrlLink/MrlLink.js +8 -3
  478. package/dist/esm/components/link/MrlLink/MrlLink.js.map +1 -1
  479. package/dist/esm/components/link/MrlLinkButton/MrlLinkButton.js +9 -11
  480. package/dist/esm/components/link/MrlLinkButton/MrlLinkButton.js.map +1 -1
  481. package/dist/esm/components/live-region/MrlLiveRegion/MrlLiveRegion.js +5 -9
  482. package/dist/esm/components/live-region/MrlLiveRegion/MrlLiveRegion.js.map +1 -1
  483. package/dist/esm/components/loader/MrlProgressBar/MrlProgressBar.js +9 -3
  484. package/dist/esm/components/loader/MrlProgressBar/MrlProgressBar.js.map +1 -1
  485. package/dist/esm/components/loader/MrlSpinner/MrlSpinner.js +11 -3
  486. package/dist/esm/components/loader/MrlSpinner/MrlSpinner.js.map +1 -1
  487. package/dist/esm/components/menu/MrlMenu/MrlMenu.js +56 -62
  488. package/dist/esm/components/menu/MrlMenu/MrlMenu.js.map +1 -1
  489. package/dist/esm/components/menu/MrlMenu/utilities.js +4 -6
  490. package/dist/esm/components/menu/MrlMenu/utilities.js.map +1 -1
  491. package/dist/esm/components/menu/MrlMenuGroup/MrlMenuGroup.js +1 -1
  492. package/dist/esm/components/menu/MrlMenuGroup/MrlMenuGroup.js.map +1 -1
  493. package/dist/esm/components/menu/MrlMenuItem/MrlMenuItem.js +18 -17
  494. package/dist/esm/components/menu/MrlMenuItem/MrlMenuItem.js.map +1 -1
  495. package/dist/esm/components/menu/MrlMenuItemLink/MrlMenuItemLink.js +2 -2
  496. package/dist/esm/components/menu/MrlMenuItemLink/MrlMenuItemLink.js.map +1 -1
  497. package/dist/esm/components/menu/hooks/useBrowserEdgeScroll.js +14 -14
  498. package/dist/esm/components/menu/hooks/useBrowserEdgeScroll.js.map +1 -1
  499. package/dist/esm/components/menu/hooks/useMenuScroll.js +8 -8
  500. package/dist/esm/components/menu/hooks/useMenuScroll.js.map +1 -1
  501. package/dist/esm/components/menu/hooks/useSubMenuElementPosition.js +3 -3
  502. package/dist/esm/components/menu/hooks/useSubMenuElementPosition.js.map +1 -1
  503. package/dist/esm/components/menu/utilities/flip-position.js +1 -1
  504. package/dist/esm/components/menu/utilities/flip-position.js.map +1 -1
  505. package/dist/esm/components/modal/MrlModal/MrlModal.js +22 -22
  506. package/dist/esm/components/modal/MrlModal/MrlModal.js.map +1 -1
  507. package/dist/esm/components/modal/MrlModalContent/MrlModalContent.js +5 -5
  508. package/dist/esm/components/modal/MrlModalContent/MrlModalContent.js.map +1 -1
  509. package/dist/esm/components/modal/MrlModalContext/MrlModalContext.js +1 -1
  510. package/dist/esm/components/modal/MrlModalContext/MrlModalContext.js.map +1 -1
  511. package/dist/esm/components/modal/MrlModalFooter/MrlModalFooter.js +7 -4
  512. package/dist/esm/components/modal/MrlModalFooter/MrlModalFooter.js.map +1 -1
  513. package/dist/esm/components/modal/MrlModalHeader/MrlModalHeader.js +7 -5
  514. package/dist/esm/components/modal/MrlModalHeader/MrlModalHeader.js.map +1 -1
  515. package/dist/esm/components/navigation-sidebar/MrlSidebarNavItem/MrlSidebarNavItem.js +6 -2
  516. package/dist/esm/components/navigation-sidebar/MrlSidebarNavItem/MrlSidebarNavItem.js.map +1 -1
  517. package/dist/esm/components/notification/MrlBlockNotification/MrlBlockNotification.js +18 -15
  518. package/dist/esm/components/notification/MrlBlockNotification/MrlBlockNotification.js.map +1 -1
  519. package/dist/esm/components/notification/MrlInlineMessage/MrlInlineMessage.js +11 -5
  520. package/dist/esm/components/notification/MrlInlineMessage/MrlInlineMessage.js.map +1 -1
  521. package/dist/esm/components/notification/MrlToast/MrlToast.js +14 -9
  522. package/dist/esm/components/notification/MrlToast/MrlToast.js.map +1 -1
  523. package/dist/esm/components/panel/MrlPanel/MrlPanel.js +14 -10
  524. package/dist/esm/components/panel/MrlPanel/MrlPanel.js.map +1 -1
  525. package/dist/esm/components/panel/MrlPanelFooter/MrlPanelFooter.js +2 -2
  526. package/dist/esm/components/panel/MrlPanelFooter/MrlPanelFooter.js.map +1 -1
  527. package/dist/esm/components/panel/MrlPanelStickyHeader/MrlPanelStickyHeader.js +1 -1
  528. package/dist/esm/components/panel/MrlPanelStickyHeader/MrlPanelStickyHeader.js.map +1 -1
  529. package/dist/esm/components/popover/MrlPopover/MrlPopover.js +71 -71
  530. package/dist/esm/components/popover/MrlPopover/MrlPopover.js.map +1 -1
  531. package/dist/esm/components/popover/MrlPopover/hooks/use-mrl-popover-event-handlers.js +19 -21
  532. package/dist/esm/components/popover/MrlPopover/hooks/use-mrl-popover-event-handlers.js.map +1 -1
  533. package/dist/esm/components/popover/MrlPopover/utilities/get-data-point.js +1 -1
  534. package/dist/esm/components/popover/MrlPopover/utilities/get-data-point.js.map +1 -1
  535. package/dist/esm/components/popover/MrlPopover/utilities/get-offset.js +1 -1
  536. package/dist/esm/components/popover/MrlPopover/utilities/get-offset.js.map +1 -1
  537. package/dist/esm/components/portal/MrlPortal.js +2 -2
  538. package/dist/esm/components/portal/MrlPortal.js.map +1 -1
  539. package/dist/esm/components/rovingTabindex/MrlRovingTabindex/MrlRovingTabindex.js +235 -262
  540. package/dist/esm/components/rovingTabindex/MrlRovingTabindex/MrlRovingTabindex.js.map +1 -1
  541. package/dist/esm/components/skeleton/MrlSkeleton/MrlSkeleton.js +6 -4
  542. package/dist/esm/components/skeleton/MrlSkeleton/MrlSkeleton.js.map +1 -1
  543. package/dist/esm/components/skeleton/MrlSkeletonText/MrlSkeletonText.js +7 -5
  544. package/dist/esm/components/skeleton/MrlSkeletonText/MrlSkeletonText.js.map +1 -1
  545. package/dist/esm/components/svg/MrlSvg/MrlSvg.js +7 -11
  546. package/dist/esm/components/svg/MrlSvg/MrlSvg.js.map +1 -1
  547. package/dist/esm/components/svg/MrlSvgAnimate/MrlSvgAnimate.js +8 -8
  548. package/dist/esm/components/svg/MrlSvgAnimate/MrlSvgAnimate.js.map +1 -1
  549. package/dist/esm/components/table/MrlSmartTable/MrlSmartTable.js +71 -94
  550. package/dist/esm/components/table/MrlSmartTable/MrlSmartTable.js.map +1 -1
  551. package/dist/esm/components/table/MrlSmartTable/components/DefaultCellContent.js +2 -2
  552. package/dist/esm/components/table/MrlSmartTable/components/DefaultCellContent.js.map +1 -1
  553. package/dist/esm/components/table/MrlTableCell/MrlTableCell.js +7 -2
  554. package/dist/esm/components/table/MrlTableCell/MrlTableCell.js.map +1 -1
  555. package/dist/esm/components/table/MrlTableColumn/MrlTableColumn.js +8 -2
  556. package/dist/esm/components/table/MrlTableColumn/MrlTableColumn.js.map +1 -1
  557. package/dist/esm/components/table/MrlTableRow/MrlTableRow.js +7 -5
  558. package/dist/esm/components/table/MrlTableRow/MrlTableRow.js.map +1 -1
  559. package/dist/esm/components/table/utils.js +4 -10
  560. package/dist/esm/components/table/utils.js.map +1 -1
  561. package/dist/esm/components/tabs/MrlTab/MrlTab.js +11 -8
  562. package/dist/esm/components/tabs/MrlTab/MrlTab.js.map +1 -1
  563. package/dist/esm/components/tabs/MrlTabContent/MrlTabContent.js +7 -4
  564. package/dist/esm/components/tabs/MrlTabContent/MrlTabContent.js.map +1 -1
  565. package/dist/esm/components/tabs/MrlTabGroup/MrlTabGroup.js +8 -10
  566. package/dist/esm/components/tabs/MrlTabGroup/MrlTabGroup.js.map +1 -1
  567. package/dist/esm/components/tabs/MrlTabLink/MrlTabLink.js +11 -8
  568. package/dist/esm/components/tabs/MrlTabLink/MrlTabLink.js.map +1 -1
  569. package/dist/esm/components/tabs/MrlTabs/MrlTabs.js +11 -9
  570. package/dist/esm/components/tabs/MrlTabs/MrlTabs.js.map +1 -1
  571. package/dist/esm/components/text/MrlText/MrlText.js +8 -3
  572. package/dist/esm/components/text/MrlText/MrlText.js.map +1 -1
  573. package/dist/esm/components/text/MrlTextHeading/MrlTextHeading.js +9 -3
  574. package/dist/esm/components/text/MrlTextHeading/MrlTextHeading.js.map +1 -1
  575. package/dist/esm/components/toolbar/MrlToolbar/MrlToolbar.js +12 -7
  576. package/dist/esm/components/toolbar/MrlToolbar/MrlToolbar.js.map +1 -1
  577. package/dist/esm/components/toolbar/MrlToolbarItem/MrlToolbarItem.js +1 -1
  578. package/dist/esm/components/toolbar/MrlToolbarItem/MrlToolbarItem.js.map +1 -1
  579. package/dist/esm/components/tooltip/MrlTooltip/MrlTooltip.js +31 -34
  580. package/dist/esm/components/tooltip/MrlTooltip/MrlTooltip.js.map +1 -1
  581. package/dist/esm/components/tooltip/MrlTooltipContent/MrlTooltipContent.js +8 -3
  582. package/dist/esm/components/tooltip/MrlTooltipContent/MrlTooltipContent.js.map +1 -1
  583. package/dist/esm/components/tooltip/useTooltipPosition/index.js +15 -17
  584. package/dist/esm/components/tooltip/useTooltipPosition/index.js.map +1 -1
  585. package/dist/esm/components/tooltip/useTooltipPosition/utilities.js +4 -4
  586. package/dist/esm/components/tooltip/useTooltipPosition/utilities.js.map +1 -1
  587. package/dist/esm/components/tooltip/utils.js +3 -3
  588. package/dist/esm/components/tooltip/utils.js.map +1 -1
  589. package/dist/esm/hooks/useAutoClose/useAutoClose.js +4 -4
  590. package/dist/esm/hooks/useAutoClose/useAutoClose.js.map +1 -1
  591. package/dist/esm/hooks/useBreakpoint/index.js +5 -5
  592. package/dist/esm/hooks/useBreakpoint/index.js.map +1 -1
  593. package/dist/esm/hooks/useClickOutside/index.js +4 -4
  594. package/dist/esm/hooks/useClickOutside/index.js.map +1 -1
  595. package/dist/esm/hooks/useCoordinate/index.js +20 -29
  596. package/dist/esm/hooks/useCoordinate/index.js.map +1 -1
  597. package/dist/esm/hooks/useElementDimensions/index.js +19 -32
  598. package/dist/esm/hooks/useElementDimensions/index.js.map +1 -1
  599. package/dist/esm/hooks/useHasFocusableDescendant/index.js +4 -6
  600. package/dist/esm/hooks/useHasFocusableDescendant/index.js.map +1 -1
  601. package/dist/esm/hooks/useScrollbarInfo/index.js +8 -8
  602. package/dist/esm/hooks/useScrollbarInfo/index.js.map +1 -1
  603. package/dist/esm/hooks/useTriggerPosition/index.js +14 -20
  604. package/dist/esm/hooks/useTriggerPosition/index.js.map +1 -1
  605. package/dist/esm/hooks/useTriggerPosition/utilities.js +15 -23
  606. package/dist/esm/hooks/useTriggerPosition/utilities.js.map +1 -1
  607. package/dist/esm/utils/checkInvalidAttributes/index.js +2 -4
  608. package/dist/esm/utils/checkInvalidAttributes/index.js.map +1 -1
  609. package/dist/esm/utils/frameDebounce/index.js +28 -29
  610. package/dist/esm/utils/frameDebounce/index.js.map +1 -1
  611. package/dist/esm/utils/getCamelCase/getCamelCase.js +2 -2
  612. package/dist/esm/utils/getCamelCase/getCamelCase.js.map +1 -1
  613. package/dist/esm/utils/getScrollableContainer/getScrollableContainer.js +1 -1
  614. package/dist/esm/utils/getScrollableContainer/getScrollableContainer.js.map +1 -1
  615. package/dist/esm/utils/hasHorizontalScroll/hasHorizontalScroll.js +1 -1
  616. package/dist/esm/utils/hasHorizontalScroll/hasHorizontalScroll.js.map +1 -1
  617. package/dist/esm/utils/hasScrollContent/hasScrollContent.js +1 -1
  618. package/dist/esm/utils/hasScrollContent/hasScrollContent.js.map +1 -1
  619. package/dist/esm/utils/isElementAriaDisabled/isElementAriaDisabled.js +1 -1
  620. package/dist/esm/utils/isElementAriaDisabled/isElementAriaDisabled.js.map +1 -1
  621. package/dist/esm/utils/isElementScrollable/index.js +1 -1
  622. package/dist/esm/utils/isElementScrollable/index.js.map +1 -1
  623. package/dist/esm/utils/isImagePath/index.js +1 -1
  624. package/dist/esm/utils/isImagePath/index.js.map +1 -1
  625. package/dist/esm/utils/isImageUri/index.js +1 -1
  626. package/dist/esm/utils/isImageUri/index.js.map +1 -1
  627. package/dist/esm/utils/isObject/isObject.js +1 -1
  628. package/dist/esm/utils/isObject/isObject.js.map +1 -1
  629. package/dist/esm/utils/isTouch/index.js +1 -1
  630. package/dist/esm/utils/isTouch/index.js.map +1 -1
  631. package/dist/esm/utils/layers/index.js +1 -1
  632. package/dist/esm/utils/layers/index.js.map +1 -1
  633. package/dist/esm/utils/noop/index.js +1 -1
  634. package/dist/esm/utils/noop/index.js.map +1 -1
  635. package/dist/esm/utils/preventDefault/preventDefault.js +1 -1
  636. package/dist/esm/utils/preventDefault/preventDefault.js.map +1 -1
  637. package/dist/esm/utils/setAttributes/setAttributes.js +7 -5
  638. package/dist/esm/utils/setAttributes/setAttributes.js.map +1 -1
  639. package/dist/esm/utils/trapFocus/index.js +9 -11
  640. package/dist/esm/utils/trapFocus/index.js.map +1 -1
  641. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- import { objectWithoutProperties as _objectWithoutProperties, slicedToArray as _slicedToArray, defineProperty as _defineProperty, extends as _extends, objectSpread2 as _objectSpread2 } from '../../../_virtual/_rollupPluginBabelHelpers.js';
1
+ import { objectWithoutProperties as _objectWithoutProperties, slicedToArray as _slicedToArray, extends as _extends, objectSpread2 as _objectSpread2 } from '../../../_virtual/_rollupPluginBabelHelpers.js';
2
2
  import * as React from 'react';
3
3
  import classnames from 'classnames';
4
4
  import { close } from '@muraldevkit/ds-icons';
@@ -103,14 +103,14 @@ function MrlPopover(_ref) {
103
103
  * Checks if the trigger element is disabled
104
104
  * @returns {boolean} - true if the trigger element is disabled, false otherwise
105
105
  */
106
- var isTriggerDisabled = React.useCallback(function () {
106
+ var isTriggerDisabled = React.useCallback(() => {
107
107
  return isElementAriaDisabled(triggerRef === null || triggerRef === void 0 ? void 0 : triggerRef.current);
108
108
  }, [triggerRef]);
109
109
 
110
110
  /**
111
111
  * Opening and closing the menu
112
112
  */
113
- var closeMenu = React.useCallback(function () {
113
+ var closeMenu = React.useCallback(() => {
114
114
  setState({
115
115
  actionType: null,
116
116
  isOpen: false
@@ -118,17 +118,17 @@ function MrlPopover(_ref) {
118
118
  onClose === null || onClose === void 0 ? void 0 : onClose();
119
119
  }, [onClose]);
120
120
  var _useMrlPopoverEventHa = useMrlPopoverEventHandlers({
121
- closeMenu: closeMenu,
122
- disableClickToOpen: disableClickToOpen,
123
- disableFocusTrap: disableFocusTrap,
124
- hasCloseButton: hasCloseButton,
125
- interactiveElements: interactiveElements,
126
- isSubMenu: isSubMenu,
127
- isTriggerDisabled: isTriggerDisabled,
128
- menuRef: menuRef,
129
- setState: setState,
130
- state: state,
131
- triggerRef: triggerRef
121
+ closeMenu,
122
+ disableClickToOpen,
123
+ disableFocusTrap,
124
+ hasCloseButton,
125
+ interactiveElements,
126
+ isSubMenu,
127
+ isTriggerDisabled,
128
+ menuRef,
129
+ setState,
130
+ state,
131
+ triggerRef
132
132
  }),
133
133
  handleClose = _useMrlPopoverEventHa.handleClose,
134
134
  handleMenuKey = _useMrlPopoverEventHa.handleMenuKey,
@@ -138,7 +138,7 @@ function MrlPopover(_ref) {
138
138
  toggleMenuTrigger = _useMrlPopoverEventHa.toggleMenuTrigger,
139
139
  showMenuHover = _useMrlPopoverEventHa.showMenuHover;
140
140
  useClickOutside(menuRef, triggerRef, 'mouseup', closeMenu, disableClickOutside || !state.isOpen, POPOVER_CLICKOUTSIDE_WHITELIST);
141
- React.useEffect(function () {
141
+ React.useEffect(() => {
142
142
  if (isTriggerDisabled()) return;
143
143
  if (!isSubMenu) {
144
144
  setState({
@@ -150,7 +150,7 @@ function MrlPopover(_ref) {
150
150
  }, [isSubMenu, actionState.actionType, actionState.isOpen]);
151
151
 
152
152
  // This use effect handles storing the rect in state for positioning calculations
153
- React.useLayoutEffect(function () {
153
+ React.useLayoutEffect(() => {
154
154
  if (!state.isOpen) return;
155
155
 
156
156
  // For consistent calculations, we are storing the menu rect in state
@@ -168,7 +168,7 @@ function MrlPopover(_ref) {
168
168
  // This use effect handles getting and setting the interactive elements in the popover.
169
169
  // These elements are used for focus management when focus trap is not enabled to ensure
170
170
  // that our tab order matches the visual order of the page
171
- React.useEffect(function () {
171
+ React.useEffect(() => {
172
172
  if (state.isOpen && !isSubMenu && menuRef.current) {
173
173
  if (disableFocusTrap) {
174
174
  // set the interactive elements so we can track focus location
@@ -188,14 +188,12 @@ function MrlPopover(_ref) {
188
188
  // - menu event handlers
189
189
  // - "next element" event handlers, which are event handlers attached to the next interactive element after the trigger
190
190
  //
191
- React.useEffect(function () {
191
+ React.useEffect(() => {
192
192
  var triggerElement = triggerRef === null || triggerRef === void 0 ? void 0 : triggerRef.current;
193
193
  var menuElement = menuRef === null || menuRef === void 0 ? void 0 : menuRef.current;
194
194
  var nextElement = findAdjacentInteractiveElement(triggerRef, 'next');
195
195
  if (triggerElement) {
196
- triggerElement.addEventListener('mousedown', function (e) {
197
- return e.stopPropagation();
198
- });
196
+ triggerElement.addEventListener('mousedown', e => e.stopPropagation());
199
197
  triggerElement.addEventListener('click', toggleMenuTrigger);
200
198
  triggerElement.addEventListener('keydown', toggleMenuKey);
201
199
  if (nextElement) nextElement.addEventListener('keydown', handleTriggerSiblingKey);
@@ -210,7 +208,7 @@ function MrlPopover(_ref) {
210
208
  _menuElement.addEventListener('mouseout', hideMenuHover);
211
209
  }
212
210
  }
213
- return function () {
211
+ return () => {
214
212
  triggerElement.removeEventListener('mousedown', preventDefault);
215
213
  triggerElement.removeEventListener('click', toggleMenuTrigger);
216
214
  triggerElement.removeEventListener('keydown', toggleMenuKey);
@@ -233,14 +231,14 @@ function MrlPopover(_ref) {
233
231
  * Restore the previous DOM value when the trigger changes or this popover unmounts so host-owned
234
232
  * ARIA (e.g. aria-haspopup="menu") is not left stale after a callout dismisses.
235
233
  */
236
- React.useEffect(function () {
234
+ React.useEffect(() => {
237
235
  var el = triggerRef === null || triggerRef === void 0 ? void 0 : triggerRef.current;
238
236
  if (!el) return;
239
237
  var previousValue = el.getAttribute('aria-haspopup');
240
238
  el.setAttribute('aria-haspopup', 'true');
241
239
 
242
240
  // Restore the previous value of the aria-haspopup attribute when the callout is removed from the DOM
243
- return function () {
241
+ return () => {
244
242
  if (previousValue === null) {
245
243
  el.removeAttribute('aria-haspopup');
246
244
  } else {
@@ -249,14 +247,14 @@ function MrlPopover(_ref) {
249
247
  };
250
248
  // eslint-disable-next-line react-hooks/exhaustive-deps
251
249
  }, [triggerRef === null || triggerRef === void 0 ? void 0 : triggerRef.current]);
252
- React.useEffect(function () {
250
+ React.useEffect(() => {
253
251
  var el = triggerRef === null || triggerRef === void 0 ? void 0 : triggerRef.current;
254
252
  if (!el) return;
255
253
 
256
254
  // Store the previous value of the aria-expanded attribute when the callout is added to the DOM
257
255
  if (!triggerExpandedRestoreRef.current || triggerExpandedRestoreRef.current.el !== el) {
258
256
  triggerExpandedRestoreRef.current = {
259
- el: el,
257
+ el,
260
258
  value: el.hasAttribute('aria-expanded') ? el.getAttribute('aria-expanded') : null
261
259
  };
262
260
  }
@@ -270,8 +268,8 @@ function MrlPopover(_ref) {
270
268
  /**
271
269
  * Restore the previous value of the aria-expanded attribute when the callout is removed from the DOM
272
270
  */
273
- React.useEffect(function () {
274
- return function () {
271
+ React.useEffect(() => {
272
+ return () => {
275
273
  var _document, _document$documentEle;
276
274
  var snap = triggerExpandedRestoreRef.current;
277
275
  if (!snap) return;
@@ -289,9 +287,7 @@ function MrlPopover(_ref) {
289
287
  /**
290
288
  * Setup positioning styles, submenu positioning styles, scroll styles, and transition.
291
289
  */
292
- var memoizedCustomPosition = React.useMemo(function () {
293
- return customPosition;
294
- }, [customPosition]);
290
+ var memoizedCustomPosition = React.useMemo(() => customPosition, [customPosition]);
295
291
  var customPopoverPosition = memoizedCustomPosition || {
296
292
  left: 0,
297
293
  top: 0
@@ -336,54 +332,58 @@ function MrlPopover(_ref) {
336
332
  transform: 'translateY(4px)'
337
333
  }
338
334
  });
339
- var menuClasses = classnames(styles['MrlPopover'], 'MrlPopover', styles['MrlPopover--scrolling'], className, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, styles['MrlPopover--submenu'], isSubMenu), styles['inverse'], kind === 'inverse'), styles['primary'], kind === 'primary'), styles['compact'], spacing === 'compact'), styles['default'], spacing === 'default'));
335
+ var menuClasses = classnames(styles['MrlPopover'], 'MrlPopover', styles['MrlPopover--scrolling'], className, {
336
+ [styles['MrlPopover--submenu']]: isSubMenu,
337
+ [styles['inverse']]: kind === 'inverse',
338
+ [styles['primary']]: kind === 'primary',
339
+ [styles['compact']]: spacing === 'compact',
340
+ [styles['default']]: spacing === 'default'
341
+ });
340
342
  var positionStyles = isSubMenu ? inlineStyles.submenu : inlineStyles.menu;
341
- var renderMenu = function renderMenu() {
343
+ var renderMenu = () => {
342
344
  var inlineScrollStyles = isSubMenu ? {} : scrollStyles ? scrollStyles.styles : {};
343
345
  var scrollClasses = classnames(styles['MrlPopover--content'], styles['MrlPopover--scrolling--content']);
344
- return /*#__PURE__*/React.createElement(React.Fragment, null, transitions(function (style, item) {
345
- return item && /*#__PURE__*/React.createElement(MrlFocusTrap, {
346
- disabled: disableFocusTrap,
347
- containerRef: menuRef
348
- }, /*#__PURE__*/React.createElement(animated.div, _extends({
349
- "aria-label": ariaLabel,
350
- "aria-labelledby": ariaLabelledBy,
351
- className: menuClasses,
352
- id: id,
353
- tabIndex: -1,
354
- style: _objectSpread2(_objectSpread2({}, positionStyles), style),
355
- onKeyDown: handleMenuKey,
356
- ref: menuRef
357
- }, rest), /*#__PURE__*/React.createElement(MrlPopoverScrollContainer, {
358
- className: scrollClasses,
359
- style: inlineScrollStyles
360
- }, typeof children === 'function' && children({
361
- closeMenu: closeMenu
362
- }), typeof children !== 'function' && children, hasCloseButton && /*#__PURE__*/React.createElement(MrlIconButton, {
363
- "data-qa": "popover-close-button",
364
- wrapperClassName: styles['MrlPopover--close'],
365
- icon: /*#__PURE__*/React.createElement(MrlSvg, {
366
- svg: close
367
- }),
368
- kind: kind === 'inverse' ? 'ghost-inverse' : 'ghost',
369
- text: "Close",
370
- state: "default",
371
- position: "right",
372
- tipAnchor: "center",
373
- onMouseUp: closeMenu,
374
- onKeyDown: handleClose,
375
- size: "small"
376
- }), point && /*#__PURE__*/React.createElement("div", {
377
- className: styles['MrlPopover--point'],
378
- "data-point": getDataPoint(menuPositionState, alignment)
379
- }))));
380
- }));
346
+ return /*#__PURE__*/React.createElement(React.Fragment, null, transitions((style, item) => item && /*#__PURE__*/React.createElement(MrlFocusTrap, {
347
+ disabled: disableFocusTrap,
348
+ containerRef: menuRef
349
+ }, /*#__PURE__*/React.createElement(animated.div, _extends({
350
+ "aria-label": ariaLabel,
351
+ "aria-labelledby": ariaLabelledBy,
352
+ className: menuClasses,
353
+ id: id,
354
+ tabIndex: -1,
355
+ style: _objectSpread2(_objectSpread2({}, positionStyles), style),
356
+ onKeyDown: handleMenuKey,
357
+ ref: menuRef
358
+ }, rest), /*#__PURE__*/React.createElement(MrlPopoverScrollContainer, {
359
+ className: scrollClasses,
360
+ style: inlineScrollStyles
361
+ }, typeof children === 'function' && children({
362
+ closeMenu
363
+ }), typeof children !== 'function' && children, hasCloseButton && /*#__PURE__*/React.createElement(MrlIconButton, {
364
+ "data-qa": "popover-close-button",
365
+ wrapperClassName: styles['MrlPopover--close'],
366
+ icon: /*#__PURE__*/React.createElement(MrlSvg, {
367
+ svg: close
368
+ }),
369
+ kind: kind === 'inverse' ? 'ghost-inverse' : 'ghost',
370
+ text: "Close",
371
+ state: "default",
372
+ position: "right",
373
+ tipAnchor: "center",
374
+ onMouseUp: closeMenu,
375
+ onKeyDown: handleClose,
376
+ size: "small"
377
+ }), point && /*#__PURE__*/React.createElement("div", {
378
+ className: styles['MrlPopover--point'],
379
+ "data-point": getDataPoint(menuPositionState, alignment)
380
+ }))))));
381
381
  };
382
382
 
383
383
  /* eslint-disable */
384
384
  return /*#__PURE__*/React.createElement(MrlPopoverContext.Provider, {
385
385
  value: {
386
- closeMenu: closeMenu
386
+ closeMenu
387
387
  }
388
388
  }, isSubMenu ? renderMenu() : /*#__PURE__*/React.createElement(MrlPortal, _extends({
389
389
  layer: portalProps.layer || PORTAL_LAYERS.POPOVER
@@ -1 +1 @@
1
- {"version":3,"file":"MrlPopover.js","sources":["../../../../../src/components/popover/MrlPopover/MrlPopover.tsx"],"sourcesContent":["import * as React from 'react';\nimport classnames from 'classnames';\nimport { close } from '@muraldevkit/ds-icons';\nimport { MrlFocusTrap, MrlIconButton, MrlPortal, MrlSvg, PortalProps } from '../../';\nimport { useTriggerPosition } from '../../../hooks/useTriggerPosition';\nimport { useBrowserEdgeScroll } from '../../menu/hooks/useBrowserEdgeScroll';\nimport { useClickOutside } from '../../../hooks/useClickOutside';\nimport { useSubMenuElementPosition } from '../../menu/hooks/useSubMenuElementPosition';\nimport { MenuPosition, MenuAlignment, ActionState, CustomMenuPosition } from '../../menu/constants';\nimport {\n\tpreventDefault,\n\tgetFocusableElementsInsideElement,\n\tfindAdjacentInteractiveElement,\n\tisElementAriaDisabled\n} from '../../../utils';\nimport { PORTAL_LAYERS } from '../../../utils/layers';\nimport { useTransition, animated } from '@react-spring/web';\nimport { SELECT_MENU_LIST_CLASS_NAME } from '../../form/select/MrlSelect/MrlSelect';\nimport { MULTI_SELECT_MENU_LIST_CLASS_NAME } from '../../form/select/MrlMultiSelect/MrlMultiSelect';\nimport styles from './MrlPopover.module.scss';\nimport { flipPosition } from '../../menu/utilities/flip-position';\nimport { getDataPoint } from './utilities/get-data-point';\nimport { getOffset } from './utilities/get-offset';\nimport { useMrlPopoverEventHandlers } from './hooks/use-mrl-popover-event-handlers';\nimport { MrlPopoverContext } from './context/MrlPopoverContext';\nimport { MrlPopoverScrollContainer } from './MrlPopoverScrollContainer';\n\nconst POPOVER_CLICKOUTSIDE_WHITELIST = [\n\t'#mrl-select-portal',\n\t'#mrl-popover-menu-portal',\n\t`.${SELECT_MENU_LIST_CLASS_NAME}`,\n\t`.${MULTI_SELECT_MENU_LIST_CLASS_NAME}`\n];\n\ntype RenderPropFn = ({ closeMenu }: { closeMenu: () => void }) => JSX.Element;\n\nexport interface MrlPopoverProps {\n\t/**\n\t * Set initial state of menu\n\t * @default { actionType: null, isOpen: false }\n\t */\n\tactionState?: ActionState;\n\n\t/** Label for the popover */\n\tariaLabel?: string;\n\n\t/** ID of element to associate a label */\n\tariaLabelledBy?: string;\n\n\t/** Children to be rendered within the menu component*/\n\tchildren: React.ReactNode | RenderPropFn;\n\n\t/** Custom class names for the popover */\n\tclassName?: string;\n\n\t/** Custom position for the menu */\n\tcustomPosition?: CustomMenuPosition;\n\n\t/**\n\t * If the popover should disable click to open\n\t *\n\t * Example usage: if you do not want your component opened via click, set to true\n\t */\n\tdisableClickToOpen?: boolean;\n\n\t/**\n\t * If the popover should close when clicking outside of the menu\n\t *\n\t * Example usage: MrlCallout component should not close when clicking outside, so it's set to true\n\t */\n\tdisableClickOutside?: boolean;\n\n\t/**\n\t * Disable flipping of the popover when it goes off the screen\n\t * @default false\n\t */\n\tdisableFlipping?: boolean;\n\n\t/**\n\t * If the popover should disable focus trap\n\t *\n\t * The impact of enabling or disabling focus trap:\n\t * - enabled : focus will remain trapped in the popover until a user closes the popover\n\t * - disabled : focus will move to the next interactive element in the DOM when the user\n\t * tabs out of the popover. Focus will move to the trigger when the user shift+tabs out of the popover\n\t *\n\t * Additional scenarios to consider with focus trap is disabled. When hasCloseButton is set to true/false:\n\t * - true : if a user shows the close button, the popover will stay open until explicitly dismissed\n\t * - false : if a user hides the close button, the popover will close when a user tabs out of it from the beginning or end\n\t */\n\tdisableFocusTrap?: boolean;\n\n\t/** If the popover should have a close button */\n\thasCloseButton?: boolean;\n\n\t/** Unique identifier for the menu */\n\tid?: string;\n\n\t/** If the menu is a submenu */\n\tisSubMenu?: boolean;\n\n\t/**\n\t * Horizontal and vertical alignment of the menu relative to the trigger element\n\t *\n\t * This does not impact submenus\n\t * @default 'bottom'\n\t */\n\tposition?: MenuPosition;\n\n\t/**\n\t * Alignment of the popover along the axis perpendicular to its position\n\t * - For position 'top'/'bottom': 'start' = left, 'end' = right, 'center' = center horizontally\n\t * - For position 'left'/'right': 'start' = top, 'end' = bottom, 'center' = center vertically\n\t *\n\t * @default 'center'\n\t *\n\t * This does not impact submenus\n\t */\n\talignment?: MenuAlignment;\n\n\t/**\n\t * spacing of menu\n\t * - 'default' has 16px padding\n\t * - 'compact' has 12px padding\n\t */\n\tspacing?: 'default' | 'compact';\n\n\t/**\n\t * Reference to the DOM element that triggers this menu.\n\t */\n\ttriggerRef?: React.RefObject<HTMLElement>;\n\n\t/**\n\t * If the menu should be rendered with the inverse theme\n\t * @default 'primary'\n\t */\n\tkind?: 'primary' | 'inverse';\n\n\t/**\n\t * If the menu should have a pointer element\n\t * @default false\n\t */\n\tpoint?: boolean;\n\n\t/**\n\t * Configuration for the portal component\n\t */\n\tportalProps?: Omit<PortalProps, 'children'>;\n\n\t/**\n\t * Offset in pixels for the popover\n\t *\n\t * The popover automatically calculates the proper offset based on the position and alignment\n\t * this prop will override those values.\n\t */\n\toffset?: number;\n\n\t/**\n\t * Callback to be called when the menu is opened\n\t */\n\tonOpen?: () => void;\n\n\t/**\n\t * Callback to be called when the menu is closed\n\t * @param type - type of close event\n\t */\n\tonClose?: (type?: string) => void;\n\n\t/**\n\t * data-qa attribute for the popover\n\t */\n\t['data-qa']?: string;\n}\n\n/**\n * MrlPopover\n *\n * Renders a popover component with position and alignment relative to a trigger element\n * @param {MrlPopoverProps} props - The props for the MrlPopover component\n * @returns {Element} - rendered MrlPopover component\n */\nexport function MrlPopover({\n\talignment = 'center',\n\tariaLabel,\n\tariaLabelledBy,\n\tchildren,\n\tclassName,\n\tcustomPosition,\n\tdisableClickToOpen = false,\n\tdisableClickOutside = false,\n\tdisableFlipping = false,\n\tdisableFocusTrap = false,\n\thasCloseButton = false,\n\tspacing = 'default',\n\tid,\n\tisSubMenu = false,\n\tactionState = { actionType: null, isOpen: false },\n\tposition = 'bottom',\n\tpoint = true,\n\tportalProps = { id: PORTAL_LAYERS.POPOVER.name },\n\tkind = 'primary',\n\toffset,\n\tonClose,\n\tonOpen,\n\ttriggerRef,\n\t...rest\n}: MrlPopoverProps): JSX.Element {\n\tconst [state, setState] = React.useState({\n\t\tactionType: null,\n\t\tisOpen: actionState.isOpen || false\n\t} as ActionState);\n\n\t// stores all of the interactive elements in the popover for focus management\n\tconst [interactiveElements, setInteractiveElements] = React.useState<HTMLElement[]>([]);\n\tconst [menuRect, setMenuRect] = React.useState<DOMRect | null>(null);\n\tconst menuRef = React.useRef<HTMLDivElement>(null);\n\t/** Snapshot of trigger `aria-expanded` before we manage it; restored on popover unmount only. */\n\tconst triggerExpandedRestoreRef = React.useRef<{\n\t\tel: HTMLElement;\n\t\tvalue: string | null;\n\t} | null>(null);\n\n\t/**\n\t * Checks if the trigger element is disabled\n\t * @returns {boolean} - true if the trigger element is disabled, false otherwise\n\t */\n\tconst isTriggerDisabled = React.useCallback((): boolean => {\n\t\treturn isElementAriaDisabled(triggerRef?.current);\n\t}, [triggerRef]);\n\n\t/**\n\t * Opening and closing the menu\n\t */\n\tconst closeMenu = React.useCallback(() => {\n\t\tsetState({ actionType: null, isOpen: false });\n\t\tonClose?.();\n\t}, [onClose]);\n\n\tconst {\n\t\thandleClose,\n\t\thandleMenuKey,\n\t\thideMenuHover,\n\t\thandleTriggerSiblingKey,\n\t\ttoggleMenuKey,\n\t\ttoggleMenuTrigger,\n\t\tshowMenuHover\n\t} = useMrlPopoverEventHandlers({\n\t\tcloseMenu,\n\t\tdisableClickToOpen,\n\t\tdisableFocusTrap,\n\t\thasCloseButton,\n\t\tinteractiveElements,\n\t\tisSubMenu,\n\t\tisTriggerDisabled,\n\t\tmenuRef,\n\t\tsetState,\n\t\tstate,\n\t\ttriggerRef\n\t});\n\n\tuseClickOutside(\n\t\tmenuRef,\n\t\ttriggerRef,\n\t\t'mouseup',\n\t\tcloseMenu,\n\t\tdisableClickOutside || !state.isOpen,\n\t\tPOPOVER_CLICKOUTSIDE_WHITELIST\n\t);\n\n\tReact.useEffect(() => {\n\t\tif (isTriggerDisabled()) return;\n\n\t\tif (!isSubMenu) {\n\t\t\tsetState({ actionType: actionState.actionType, isOpen: actionState.isOpen });\n\t\t}\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [isSubMenu, actionState.actionType, actionState.isOpen]);\n\n\t// This use effect handles storing the rect in state for positioning calculations\n\tReact.useLayoutEffect(() => {\n\t\tif (!state.isOpen) return;\n\n\t\t// For consistent calculations, we are storing the menu rect in state\n\t\t// Anytime we need to use the menu rect, we want to make sure the values are based\n\t\t// on the original state of the menu for proper transformations\n\t\tif (!menuRect && menuRef.current) {\n\t\t\tconst newRect = menuRef.current?.getBoundingClientRect();\n\t\t\tsetMenuRect(newRect || null);\n\t\t}\n\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [state.isOpen, isSubMenu]);\n\n\t// This use effect handles getting and setting the interactive elements in the popover.\n\t// These elements are used for focus management when focus trap is not enabled to ensure\n\t// that our tab order matches the visual order of the page\n\tReact.useEffect(() => {\n\t\tif (state.isOpen && !isSubMenu && menuRef.current) {\n\t\t\tif (disableFocusTrap) {\n\t\t\t\t// set the interactive elements so we can track focus location\n\t\t\t\tconst elements = getFocusableElementsInsideElement(menuRef.current as HTMLElement);\n\t\t\t\tsetInteractiveElements(elements);\n\n\t\t\t\t// without focus trap enabled, we want to focus the first interactive element\n\t\t\t\telements[0].focus();\n\t\t\t}\n\t\t}\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [state.isOpen, menuRef.current]);\n\n\t// This use effect handles setting all of the event handlers for different parts of the component.\n\t// - trigger event handlers\n\t// - submenu event handlers\n\t// - menu event handlers\n\t// - \"next element\" event handlers, which are event handlers attached to the next interactive element after the trigger\n\t//\n\tReact.useEffect(() => {\n\t\tconst triggerElement = triggerRef?.current;\n\t\tconst menuElement = menuRef?.current;\n\t\tconst nextElement = findAdjacentInteractiveElement(triggerRef, 'next');\n\n\t\tif (triggerElement) {\n\t\t\ttriggerElement.addEventListener('mousedown', (e) => e.stopPropagation());\n\t\t\ttriggerElement.addEventListener('click', toggleMenuTrigger);\n\t\t\ttriggerElement.addEventListener('keydown', toggleMenuKey);\n\n\t\t\tif (nextElement) nextElement.addEventListener('keydown', handleTriggerSiblingKey);\n\n\t\t\t// Setup event listeners for when the menu is a submenu\n\t\t\tif (isSubMenu) {\n\t\t\t\tconst menuElement = menuRef?.current;\n\n\t\t\t\ttriggerElement.addEventListener('mouseover', showMenuHover);\n\t\t\t\ttriggerElement.addEventListener('mouseout', hideMenuHover);\n\n\t\t\t\tif (menuElement) {\n\t\t\t\t\tmenuElement.addEventListener('mouseover', showMenuHover);\n\t\t\t\t\tmenuElement.addEventListener('mouseout', hideMenuHover);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn () => {\n\t\t\t\ttriggerElement.removeEventListener('mousedown', preventDefault);\n\t\t\t\ttriggerElement.removeEventListener('click', toggleMenuTrigger);\n\t\t\t\ttriggerElement.removeEventListener('keydown', toggleMenuKey);\n\n\t\t\t\tif (nextElement) nextElement.removeEventListener('keydown', handleTriggerSiblingKey);\n\n\t\t\t\tif (isSubMenu) {\n\t\t\t\t\ttriggerElement.removeEventListener('mouseover', showMenuHover);\n\t\t\t\t\ttriggerElement.removeEventListener('mouseout', hideMenuHover);\n\n\t\t\t\t\tif (menuElement) {\n\t\t\t\t\t\tmenuElement.removeEventListener('mouseover', showMenuHover);\n\t\t\t\t\t\tmenuElement.removeEventListener('mouseout', hideMenuHover);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [\n\t\tcloseMenu,\n\t\tisSubMenu,\n\t\ttoggleMenuKey,\n\t\ttoggleMenuTrigger,\n\t\ttriggerRef?.current,\n\t\thideMenuHover,\n\t\tshowMenuHover,\n\t\thasCloseButton,\n\t\thandleClose\n\t]);\n\n\t/**\n\t * Popover triggers are not necessarily modal dialogs; use the generic 'true' (see ARIA in HTML).\n\t * Restore the previous DOM value when the trigger changes or this popover unmounts so host-owned\n\t * ARIA (e.g. aria-haspopup=\"menu\") is not left stale after a callout dismisses.\n\t */\n\tReact.useEffect(() => {\n\t\tconst el = triggerRef?.current;\n\t\tif (!el) return;\n\n\t\tconst previousValue = el.getAttribute('aria-haspopup');\n\t\tel.setAttribute('aria-haspopup', 'true');\n\n\t\t// Restore the previous value of the aria-haspopup attribute when the callout is removed from the DOM\n\t\treturn () => {\n\t\t\tif (previousValue === null) {\n\t\t\t\tel.removeAttribute('aria-haspopup');\n\t\t\t} else {\n\t\t\t\tel.setAttribute('aria-haspopup', previousValue);\n\t\t\t}\n\t\t};\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [triggerRef?.current]);\n\n\tReact.useEffect(() => {\n\t\tconst el = triggerRef?.current;\n\t\tif (!el) return;\n\n\t\t// Store the previous value of the aria-expanded attribute when the callout is added to the DOM\n\t\tif (!triggerExpandedRestoreRef.current || triggerExpandedRestoreRef.current.el !== el) {\n\t\t\ttriggerExpandedRestoreRef.current = {\n\t\t\t\tel,\n\t\t\t\tvalue: el.hasAttribute('aria-expanded') ? el.getAttribute('aria-expanded') : null\n\t\t\t};\n\t\t}\n\n\t\t// Set the aria-expanded attribute to the current state of the popover\n\t\tel.setAttribute('aria-expanded', state.isOpen.toString());\n\n\t\tif (state.isOpen) onOpen?.();\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [state.isOpen, onOpen, triggerRef?.current]);\n\n\t/**\n\t * Restore the previous value of the aria-expanded attribute when the callout is removed from the DOM\n\t */\n\tReact.useEffect(() => {\n\t\treturn () => {\n\t\t\tconst snap = triggerExpandedRestoreRef.current;\n\t\t\tif (!snap) return;\n\t\t\tconst { el, value } = snap;\n\n\t\t\tif (!document?.documentElement?.contains(el)) return;\n\n\t\t\tif (value === null) {\n\t\t\t\tel.removeAttribute('aria-expanded');\n\t\t\t} else {\n\t\t\t\tel.setAttribute('aria-expanded', value);\n\t\t\t}\n\t\t};\n\t}, []);\n\n\t/**\n\t * Setup positioning styles, submenu positioning styles, scroll styles, and transition.\n\t */\n\tconst memoizedCustomPosition = React.useMemo(() => customPosition, [customPosition]);\n\tconst customPopoverPosition = memoizedCustomPosition || { left: 0, top: 0 };\n\n\tconst menuPosition = useTriggerPosition(\n\t\ttriggerRef,\n\t\tmenuRef,\n\t\t{\n\t\t\talign: alignment,\n\t\t\tcustomPosition: customPopoverPosition,\n\t\t\tposition: position\n\t\t},\n\t\tstate.isOpen,\n\t\toffset || getOffset(position, point),\n\t\tisSubMenu,\n\t\tdisableFlipping\n\t);\n\n\tconst subMenuPosition = useSubMenuElementPosition(\n\t\ttriggerRef,\n\t\tmenuRef,\n\t\tisSubMenu,\n\t\tstate.isOpen,\n\t\tmenuRect,\n\t\t!isSubMenu\n\t);\n\n\tconst menuPositionState = menuPosition.flipped ? flipPosition(position) : position;\n\tconst scrollStyles = useBrowserEdgeScroll(menuRef, menuPositionState, alignment);\n\n\tconst inlineStyles = {\n\t\tmenu: {\n\t\t\tleft: menuPosition.left,\n\t\t\tposition: 'fixed' as const,\n\t\t\ttop: menuPosition.top\n\t\t},\n\t\tsubmenu: {\n\t\t\tleft: subMenuPosition.left,\n\t\t\ttop: subMenuPosition.top\n\t\t}\n\t};\n\n\t/**\n\t * React Spring transitions for the menu\n\t */\n\tconst transitions = useTransition(state.isOpen, {\n\t\tconfig: { duration: 150 },\n\t\tenter: { opacity: 1, transform: 'translateY(0)' },\n\t\tfrom: { opacity: 0, transform: 'translateY(4px)' },\n\t\tleave: { opacity: 0, transform: 'translateY(4px)' }\n\t});\n\n\tconst menuClasses = classnames(\n\t\tstyles['MrlPopover'],\n\t\t'MrlPopover',\n\t\tstyles['MrlPopover--scrolling'],\n\t\tclassName,\n\t\t{\n\t\t\t[styles['MrlPopover--submenu']]: isSubMenu,\n\t\t\t[styles['inverse']]: kind === 'inverse',\n\t\t\t[styles['primary']]: kind === 'primary',\n\t\t\t[styles['compact']]: spacing === 'compact',\n\t\t\t[styles['default']]: spacing === 'default'\n\t\t}\n\t);\n\n\tconst positionStyles = isSubMenu ? inlineStyles.submenu : inlineStyles.menu;\n\n\tconst renderMenu = () => {\n\t\tconst inlineScrollStyles = isSubMenu ? {} : scrollStyles ? scrollStyles.styles : {};\n\t\tconst scrollClasses = classnames(\n\t\t\tstyles['MrlPopover--content'],\n\t\t\tstyles['MrlPopover--scrolling--content']\n\t\t);\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{transitions(\n\t\t\t\t\t(style, item) =>\n\t\t\t\t\t\titem && (\n\t\t\t\t\t\t\t<MrlFocusTrap disabled={disableFocusTrap} containerRef={menuRef}>\n\t\t\t\t\t\t\t\t<animated.div\n\t\t\t\t\t\t\t\t\taria-label={ariaLabel}\n\t\t\t\t\t\t\t\t\taria-labelledby={ariaLabelledBy}\n\t\t\t\t\t\t\t\t\tclassName={menuClasses}\n\t\t\t\t\t\t\t\t\tid={id}\n\t\t\t\t\t\t\t\t\ttabIndex={-1}\n\t\t\t\t\t\t\t\t\tstyle={{ ...positionStyles, ...style }}\n\t\t\t\t\t\t\t\t\tonKeyDown={handleMenuKey}\n\t\t\t\t\t\t\t\t\tref={menuRef}\n\t\t\t\t\t\t\t\t\t{...rest}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<MrlPopoverScrollContainer className={scrollClasses} style={inlineScrollStyles}>\n\t\t\t\t\t\t\t\t\t\t{typeof children === 'function' && children({ closeMenu })}\n\t\t\t\t\t\t\t\t\t\t{typeof children !== 'function' && children}\n\t\t\t\t\t\t\t\t\t\t{hasCloseButton && (\n\t\t\t\t\t\t\t\t\t\t\t<MrlIconButton\n\t\t\t\t\t\t\t\t\t\t\t\tdata-qa=\"popover-close-button\"\n\t\t\t\t\t\t\t\t\t\t\t\twrapperClassName={styles['MrlPopover--close']}\n\t\t\t\t\t\t\t\t\t\t\t\ticon={<MrlSvg svg={close} />}\n\t\t\t\t\t\t\t\t\t\t\t\tkind={kind === 'inverse' ? 'ghost-inverse' : 'ghost'}\n\t\t\t\t\t\t\t\t\t\t\t\ttext=\"Close\"\n\t\t\t\t\t\t\t\t\t\t\t\tstate=\"default\"\n\t\t\t\t\t\t\t\t\t\t\t\tposition=\"right\"\n\t\t\t\t\t\t\t\t\t\t\t\ttipAnchor=\"center\"\n\t\t\t\t\t\t\t\t\t\t\t\tonMouseUp={closeMenu}\n\t\t\t\t\t\t\t\t\t\t\t\tonKeyDown={handleClose}\n\t\t\t\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t{point && (\n\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\tclassName={styles['MrlPopover--point']}\n\t\t\t\t\t\t\t\t\t\t\t\tdata-point={getDataPoint(menuPositionState, alignment)}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</MrlPopoverScrollContainer>\n\t\t\t\t\t\t\t\t</animated.div>\n\t\t\t\t\t\t\t</MrlFocusTrap>\n\t\t\t\t\t\t)\n\t\t\t\t)}\n\t\t\t</>\n\t\t);\n\t};\n\n\t/* eslint-disable */\n\treturn (\n\t\t<MrlPopoverContext.Provider\n\t\t\tvalue={{\n\t\t\t\tcloseMenu\n\t\t\t}}\n\t\t>\n\t\t\t{isSubMenu ? (\n\t\t\t\trenderMenu()\n\t\t\t) : (\n\t\t\t\t<MrlPortal layer={portalProps.layer || PORTAL_LAYERS.POPOVER} {...portalProps}>\n\t\t\t\t\t{renderMenu()}\n\t\t\t\t</MrlPortal>\n\t\t\t)}\n\t\t</MrlPopoverContext.Provider>\n\t);\n\t/* eslint-enable */\n}\n\nMrlPopover.componentType = 'Popover';\n"],"names":["POPOVER_CLICKOUTSIDE_WHITELIST","concat","SELECT_MENU_LIST_CLASS_NAME","MULTI_SELECT_MENU_LIST_CLASS_NAME","MrlPopover","_ref","_ref$alignment","alignment","ariaLabel","ariaLabelledBy","children","className","customPosition","_ref$disableClickToOp","disableClickToOpen","_ref$disableClickOuts","disableClickOutside","_ref$disableFlipping","disableFlipping","_ref$disableFocusTrap","disableFocusTrap","_ref$hasCloseButton","hasCloseButton","_ref$spacing","spacing","id","_ref$isSubMenu","isSubMenu","_ref$actionState","actionState","actionType","isOpen","_ref$position","position","_ref$point","point","_ref$portalProps","portalProps","PORTAL_LAYERS","POPOVER","name","_ref$kind","kind","offset","onClose","onOpen","triggerRef","rest","_objectWithoutProperties","_excluded","_React$useState","React","useState","_React$useState2","_slicedToArray","state","setState","_React$useState3","_React$useState4","interactiveElements","setInteractiveElements","_React$useState5","_React$useState6","menuRect","setMenuRect","menuRef","useRef","triggerExpandedRestoreRef","isTriggerDisabled","useCallback","isElementAriaDisabled","current","closeMenu","_useMrlPopoverEventHa","useMrlPopoverEventHandlers","handleClose","handleMenuKey","hideMenuHover","handleTriggerSiblingKey","toggleMenuKey","toggleMenuTrigger","showMenuHover","useClickOutside","useEffect","useLayoutEffect","_menuRef$current","newRect","getBoundingClientRect","elements","getFocusableElementsInsideElement","focus","triggerElement","menuElement","nextElement","findAdjacentInteractiveElement","addEventListener","e","stopPropagation","removeEventListener","preventDefault","el","previousValue","getAttribute","setAttribute","removeAttribute","value","hasAttribute","toString","_document","_document$documentEle","snap","document","documentElement","contains","memoizedCustomPosition","useMemo","customPopoverPosition","left","top","menuPosition","useTriggerPosition","align","getOffset","subMenuPosition","useSubMenuElementPosition","menuPositionState","flipped","flipPosition","scrollStyles","useBrowserEdgeScroll","inlineStyles","menu","submenu","transitions","useTransition","config","duration","enter","opacity","transform","from","leave","menuClasses","classnames","styles","_defineProperty","positionStyles","renderMenu","inlineScrollStyles","scrollClasses","createElement","Fragment","style","item","MrlFocusTrap","disabled","containerRef","animated","div","_extends","tabIndex","_objectSpread","onKeyDown","ref","MrlPopoverScrollContainer","MrlIconButton","wrapperClassName","icon","MrlSvg","svg","close","text","tipAnchor","onMouseUp","size","getDataPoint","MrlPopoverContext","Provider","MrlPortal","layer","componentType"],"mappings":"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"}
1
+ {"version":3,"file":"MrlPopover.js","sources":["../../../../../src/components/popover/MrlPopover/MrlPopover.tsx"],"sourcesContent":["import * as React from 'react';\nimport classnames from 'classnames';\nimport { close } from '@muraldevkit/ds-icons';\nimport { MrlFocusTrap, MrlIconButton, MrlPortal, MrlSvg, PortalProps } from '../../';\nimport { useTriggerPosition } from '../../../hooks/useTriggerPosition';\nimport { useBrowserEdgeScroll } from '../../menu/hooks/useBrowserEdgeScroll';\nimport { useClickOutside } from '../../../hooks/useClickOutside';\nimport { useSubMenuElementPosition } from '../../menu/hooks/useSubMenuElementPosition';\nimport { MenuPosition, MenuAlignment, ActionState, CustomMenuPosition } from '../../menu/constants';\nimport {\n\tpreventDefault,\n\tgetFocusableElementsInsideElement,\n\tfindAdjacentInteractiveElement,\n\tisElementAriaDisabled\n} from '../../../utils';\nimport { PORTAL_LAYERS } from '../../../utils/layers';\nimport { useTransition, animated } from '@react-spring/web';\nimport { SELECT_MENU_LIST_CLASS_NAME } from '../../form/select/MrlSelect/MrlSelect';\nimport { MULTI_SELECT_MENU_LIST_CLASS_NAME } from '../../form/select/MrlMultiSelect/MrlMultiSelect';\nimport styles from './MrlPopover.module.scss';\nimport { flipPosition } from '../../menu/utilities/flip-position';\nimport { getDataPoint } from './utilities/get-data-point';\nimport { getOffset } from './utilities/get-offset';\nimport { useMrlPopoverEventHandlers } from './hooks/use-mrl-popover-event-handlers';\nimport { MrlPopoverContext } from './context/MrlPopoverContext';\nimport { MrlPopoverScrollContainer } from './MrlPopoverScrollContainer';\n\nconst POPOVER_CLICKOUTSIDE_WHITELIST = [\n\t'#mrl-select-portal',\n\t'#mrl-popover-menu-portal',\n\t`.${SELECT_MENU_LIST_CLASS_NAME}`,\n\t`.${MULTI_SELECT_MENU_LIST_CLASS_NAME}`\n];\n\ntype RenderPropFn = ({ closeMenu }: { closeMenu: () => void }) => JSX.Element;\n\nexport interface MrlPopoverProps {\n\t/**\n\t * Set initial state of menu\n\t * @default { actionType: null, isOpen: false }\n\t */\n\tactionState?: ActionState;\n\n\t/** Label for the popover */\n\tariaLabel?: string;\n\n\t/** ID of element to associate a label */\n\tariaLabelledBy?: string;\n\n\t/** Children to be rendered within the menu component*/\n\tchildren: React.ReactNode | RenderPropFn;\n\n\t/** Custom class names for the popover */\n\tclassName?: string;\n\n\t/** Custom position for the menu */\n\tcustomPosition?: CustomMenuPosition;\n\n\t/**\n\t * If the popover should disable click to open\n\t *\n\t * Example usage: if you do not want your component opened via click, set to true\n\t */\n\tdisableClickToOpen?: boolean;\n\n\t/**\n\t * If the popover should close when clicking outside of the menu\n\t *\n\t * Example usage: MrlCallout component should not close when clicking outside, so it's set to true\n\t */\n\tdisableClickOutside?: boolean;\n\n\t/**\n\t * Disable flipping of the popover when it goes off the screen\n\t * @default false\n\t */\n\tdisableFlipping?: boolean;\n\n\t/**\n\t * If the popover should disable focus trap\n\t *\n\t * The impact of enabling or disabling focus trap:\n\t * - enabled : focus will remain trapped in the popover until a user closes the popover\n\t * - disabled : focus will move to the next interactive element in the DOM when the user\n\t * tabs out of the popover. Focus will move to the trigger when the user shift+tabs out of the popover\n\t *\n\t * Additional scenarios to consider with focus trap is disabled. When hasCloseButton is set to true/false:\n\t * - true : if a user shows the close button, the popover will stay open until explicitly dismissed\n\t * - false : if a user hides the close button, the popover will close when a user tabs out of it from the beginning or end\n\t */\n\tdisableFocusTrap?: boolean;\n\n\t/** If the popover should have a close button */\n\thasCloseButton?: boolean;\n\n\t/** Unique identifier for the menu */\n\tid?: string;\n\n\t/** If the menu is a submenu */\n\tisSubMenu?: boolean;\n\n\t/**\n\t * Horizontal and vertical alignment of the menu relative to the trigger element\n\t *\n\t * This does not impact submenus\n\t * @default 'bottom'\n\t */\n\tposition?: MenuPosition;\n\n\t/**\n\t * Alignment of the popover along the axis perpendicular to its position\n\t * - For position 'top'/'bottom': 'start' = left, 'end' = right, 'center' = center horizontally\n\t * - For position 'left'/'right': 'start' = top, 'end' = bottom, 'center' = center vertically\n\t *\n\t * @default 'center'\n\t *\n\t * This does not impact submenus\n\t */\n\talignment?: MenuAlignment;\n\n\t/**\n\t * spacing of menu\n\t * - 'default' has 16px padding\n\t * - 'compact' has 12px padding\n\t */\n\tspacing?: 'default' | 'compact';\n\n\t/**\n\t * Reference to the DOM element that triggers this menu.\n\t */\n\ttriggerRef?: React.RefObject<HTMLElement>;\n\n\t/**\n\t * If the menu should be rendered with the inverse theme\n\t * @default 'primary'\n\t */\n\tkind?: 'primary' | 'inverse';\n\n\t/**\n\t * If the menu should have a pointer element\n\t * @default false\n\t */\n\tpoint?: boolean;\n\n\t/**\n\t * Configuration for the portal component\n\t */\n\tportalProps?: Omit<PortalProps, 'children'>;\n\n\t/**\n\t * Offset in pixels for the popover\n\t *\n\t * The popover automatically calculates the proper offset based on the position and alignment\n\t * this prop will override those values.\n\t */\n\toffset?: number;\n\n\t/**\n\t * Callback to be called when the menu is opened\n\t */\n\tonOpen?: () => void;\n\n\t/**\n\t * Callback to be called when the menu is closed\n\t * @param type - type of close event\n\t */\n\tonClose?: (type?: string) => void;\n\n\t/**\n\t * data-qa attribute for the popover\n\t */\n\t['data-qa']?: string;\n}\n\n/**\n * MrlPopover\n *\n * Renders a popover component with position and alignment relative to a trigger element\n * @param {MrlPopoverProps} props - The props for the MrlPopover component\n * @returns {Element} - rendered MrlPopover component\n */\nexport function MrlPopover({\n\talignment = 'center',\n\tariaLabel,\n\tariaLabelledBy,\n\tchildren,\n\tclassName,\n\tcustomPosition,\n\tdisableClickToOpen = false,\n\tdisableClickOutside = false,\n\tdisableFlipping = false,\n\tdisableFocusTrap = false,\n\thasCloseButton = false,\n\tspacing = 'default',\n\tid,\n\tisSubMenu = false,\n\tactionState = { actionType: null, isOpen: false },\n\tposition = 'bottom',\n\tpoint = true,\n\tportalProps = { id: PORTAL_LAYERS.POPOVER.name },\n\tkind = 'primary',\n\toffset,\n\tonClose,\n\tonOpen,\n\ttriggerRef,\n\t...rest\n}: MrlPopoverProps): JSX.Element {\n\tconst [state, setState] = React.useState({\n\t\tactionType: null,\n\t\tisOpen: actionState.isOpen || false\n\t} as ActionState);\n\n\t// stores all of the interactive elements in the popover for focus management\n\tconst [interactiveElements, setInteractiveElements] = React.useState<HTMLElement[]>([]);\n\tconst [menuRect, setMenuRect] = React.useState<DOMRect | null>(null);\n\tconst menuRef = React.useRef<HTMLDivElement>(null);\n\t/** Snapshot of trigger `aria-expanded` before we manage it; restored on popover unmount only. */\n\tconst triggerExpandedRestoreRef = React.useRef<{\n\t\tel: HTMLElement;\n\t\tvalue: string | null;\n\t} | null>(null);\n\n\t/**\n\t * Checks if the trigger element is disabled\n\t * @returns {boolean} - true if the trigger element is disabled, false otherwise\n\t */\n\tconst isTriggerDisabled = React.useCallback((): boolean => {\n\t\treturn isElementAriaDisabled(triggerRef?.current);\n\t}, [triggerRef]);\n\n\t/**\n\t * Opening and closing the menu\n\t */\n\tconst closeMenu = React.useCallback(() => {\n\t\tsetState({ actionType: null, isOpen: false });\n\t\tonClose?.();\n\t}, [onClose]);\n\n\tconst {\n\t\thandleClose,\n\t\thandleMenuKey,\n\t\thideMenuHover,\n\t\thandleTriggerSiblingKey,\n\t\ttoggleMenuKey,\n\t\ttoggleMenuTrigger,\n\t\tshowMenuHover\n\t} = useMrlPopoverEventHandlers({\n\t\tcloseMenu,\n\t\tdisableClickToOpen,\n\t\tdisableFocusTrap,\n\t\thasCloseButton,\n\t\tinteractiveElements,\n\t\tisSubMenu,\n\t\tisTriggerDisabled,\n\t\tmenuRef,\n\t\tsetState,\n\t\tstate,\n\t\ttriggerRef\n\t});\n\n\tuseClickOutside(\n\t\tmenuRef,\n\t\ttriggerRef,\n\t\t'mouseup',\n\t\tcloseMenu,\n\t\tdisableClickOutside || !state.isOpen,\n\t\tPOPOVER_CLICKOUTSIDE_WHITELIST\n\t);\n\n\tReact.useEffect(() => {\n\t\tif (isTriggerDisabled()) return;\n\n\t\tif (!isSubMenu) {\n\t\t\tsetState({ actionType: actionState.actionType, isOpen: actionState.isOpen });\n\t\t}\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [isSubMenu, actionState.actionType, actionState.isOpen]);\n\n\t// This use effect handles storing the rect in state for positioning calculations\n\tReact.useLayoutEffect(() => {\n\t\tif (!state.isOpen) return;\n\n\t\t// For consistent calculations, we are storing the menu rect in state\n\t\t// Anytime we need to use the menu rect, we want to make sure the values are based\n\t\t// on the original state of the menu for proper transformations\n\t\tif (!menuRect && menuRef.current) {\n\t\t\tconst newRect = menuRef.current?.getBoundingClientRect();\n\t\t\tsetMenuRect(newRect || null);\n\t\t}\n\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [state.isOpen, isSubMenu]);\n\n\t// This use effect handles getting and setting the interactive elements in the popover.\n\t// These elements are used for focus management when focus trap is not enabled to ensure\n\t// that our tab order matches the visual order of the page\n\tReact.useEffect(() => {\n\t\tif (state.isOpen && !isSubMenu && menuRef.current) {\n\t\t\tif (disableFocusTrap) {\n\t\t\t\t// set the interactive elements so we can track focus location\n\t\t\t\tconst elements = getFocusableElementsInsideElement(menuRef.current as HTMLElement);\n\t\t\t\tsetInteractiveElements(elements);\n\n\t\t\t\t// without focus trap enabled, we want to focus the first interactive element\n\t\t\t\telements[0].focus();\n\t\t\t}\n\t\t}\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [state.isOpen, menuRef.current]);\n\n\t// This use effect handles setting all of the event handlers for different parts of the component.\n\t// - trigger event handlers\n\t// - submenu event handlers\n\t// - menu event handlers\n\t// - \"next element\" event handlers, which are event handlers attached to the next interactive element after the trigger\n\t//\n\tReact.useEffect(() => {\n\t\tconst triggerElement = triggerRef?.current;\n\t\tconst menuElement = menuRef?.current;\n\t\tconst nextElement = findAdjacentInteractiveElement(triggerRef, 'next');\n\n\t\tif (triggerElement) {\n\t\t\ttriggerElement.addEventListener('mousedown', (e) => e.stopPropagation());\n\t\t\ttriggerElement.addEventListener('click', toggleMenuTrigger);\n\t\t\ttriggerElement.addEventListener('keydown', toggleMenuKey);\n\n\t\t\tif (nextElement) nextElement.addEventListener('keydown', handleTriggerSiblingKey);\n\n\t\t\t// Setup event listeners for when the menu is a submenu\n\t\t\tif (isSubMenu) {\n\t\t\t\tconst menuElement = menuRef?.current;\n\n\t\t\t\ttriggerElement.addEventListener('mouseover', showMenuHover);\n\t\t\t\ttriggerElement.addEventListener('mouseout', hideMenuHover);\n\n\t\t\t\tif (menuElement) {\n\t\t\t\t\tmenuElement.addEventListener('mouseover', showMenuHover);\n\t\t\t\t\tmenuElement.addEventListener('mouseout', hideMenuHover);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn () => {\n\t\t\t\ttriggerElement.removeEventListener('mousedown', preventDefault);\n\t\t\t\ttriggerElement.removeEventListener('click', toggleMenuTrigger);\n\t\t\t\ttriggerElement.removeEventListener('keydown', toggleMenuKey);\n\n\t\t\t\tif (nextElement) nextElement.removeEventListener('keydown', handleTriggerSiblingKey);\n\n\t\t\t\tif (isSubMenu) {\n\t\t\t\t\ttriggerElement.removeEventListener('mouseover', showMenuHover);\n\t\t\t\t\ttriggerElement.removeEventListener('mouseout', hideMenuHover);\n\n\t\t\t\t\tif (menuElement) {\n\t\t\t\t\t\tmenuElement.removeEventListener('mouseover', showMenuHover);\n\t\t\t\t\t\tmenuElement.removeEventListener('mouseout', hideMenuHover);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [\n\t\tcloseMenu,\n\t\tisSubMenu,\n\t\ttoggleMenuKey,\n\t\ttoggleMenuTrigger,\n\t\ttriggerRef?.current,\n\t\thideMenuHover,\n\t\tshowMenuHover,\n\t\thasCloseButton,\n\t\thandleClose\n\t]);\n\n\t/**\n\t * Popover triggers are not necessarily modal dialogs; use the generic 'true' (see ARIA in HTML).\n\t * Restore the previous DOM value when the trigger changes or this popover unmounts so host-owned\n\t * ARIA (e.g. aria-haspopup=\"menu\") is not left stale after a callout dismisses.\n\t */\n\tReact.useEffect(() => {\n\t\tconst el = triggerRef?.current;\n\t\tif (!el) return;\n\n\t\tconst previousValue = el.getAttribute('aria-haspopup');\n\t\tel.setAttribute('aria-haspopup', 'true');\n\n\t\t// Restore the previous value of the aria-haspopup attribute when the callout is removed from the DOM\n\t\treturn () => {\n\t\t\tif (previousValue === null) {\n\t\t\t\tel.removeAttribute('aria-haspopup');\n\t\t\t} else {\n\t\t\t\tel.setAttribute('aria-haspopup', previousValue);\n\t\t\t}\n\t\t};\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [triggerRef?.current]);\n\n\tReact.useEffect(() => {\n\t\tconst el = triggerRef?.current;\n\t\tif (!el) return;\n\n\t\t// Store the previous value of the aria-expanded attribute when the callout is added to the DOM\n\t\tif (!triggerExpandedRestoreRef.current || triggerExpandedRestoreRef.current.el !== el) {\n\t\t\ttriggerExpandedRestoreRef.current = {\n\t\t\t\tel,\n\t\t\t\tvalue: el.hasAttribute('aria-expanded') ? el.getAttribute('aria-expanded') : null\n\t\t\t};\n\t\t}\n\n\t\t// Set the aria-expanded attribute to the current state of the popover\n\t\tel.setAttribute('aria-expanded', state.isOpen.toString());\n\n\t\tif (state.isOpen) onOpen?.();\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [state.isOpen, onOpen, triggerRef?.current]);\n\n\t/**\n\t * Restore the previous value of the aria-expanded attribute when the callout is removed from the DOM\n\t */\n\tReact.useEffect(() => {\n\t\treturn () => {\n\t\t\tconst snap = triggerExpandedRestoreRef.current;\n\t\t\tif (!snap) return;\n\t\t\tconst { el, value } = snap;\n\n\t\t\tif (!document?.documentElement?.contains(el)) return;\n\n\t\t\tif (value === null) {\n\t\t\t\tel.removeAttribute('aria-expanded');\n\t\t\t} else {\n\t\t\t\tel.setAttribute('aria-expanded', value);\n\t\t\t}\n\t\t};\n\t}, []);\n\n\t/**\n\t * Setup positioning styles, submenu positioning styles, scroll styles, and transition.\n\t */\n\tconst memoizedCustomPosition = React.useMemo(() => customPosition, [customPosition]);\n\tconst customPopoverPosition = memoizedCustomPosition || { left: 0, top: 0 };\n\n\tconst menuPosition = useTriggerPosition(\n\t\ttriggerRef,\n\t\tmenuRef,\n\t\t{\n\t\t\talign: alignment,\n\t\t\tcustomPosition: customPopoverPosition,\n\t\t\tposition: position\n\t\t},\n\t\tstate.isOpen,\n\t\toffset || getOffset(position, point),\n\t\tisSubMenu,\n\t\tdisableFlipping\n\t);\n\n\tconst subMenuPosition = useSubMenuElementPosition(\n\t\ttriggerRef,\n\t\tmenuRef,\n\t\tisSubMenu,\n\t\tstate.isOpen,\n\t\tmenuRect,\n\t\t!isSubMenu\n\t);\n\n\tconst menuPositionState = menuPosition.flipped ? flipPosition(position) : position;\n\tconst scrollStyles = useBrowserEdgeScroll(menuRef, menuPositionState, alignment);\n\n\tconst inlineStyles = {\n\t\tmenu: {\n\t\t\tleft: menuPosition.left,\n\t\t\tposition: 'fixed' as const,\n\t\t\ttop: menuPosition.top\n\t\t},\n\t\tsubmenu: {\n\t\t\tleft: subMenuPosition.left,\n\t\t\ttop: subMenuPosition.top\n\t\t}\n\t};\n\n\t/**\n\t * React Spring transitions for the menu\n\t */\n\tconst transitions = useTransition(state.isOpen, {\n\t\tconfig: { duration: 150 },\n\t\tenter: { opacity: 1, transform: 'translateY(0)' },\n\t\tfrom: { opacity: 0, transform: 'translateY(4px)' },\n\t\tleave: { opacity: 0, transform: 'translateY(4px)' }\n\t});\n\n\tconst menuClasses = classnames(\n\t\tstyles['MrlPopover'],\n\t\t'MrlPopover',\n\t\tstyles['MrlPopover--scrolling'],\n\t\tclassName,\n\t\t{\n\t\t\t[styles['MrlPopover--submenu']]: isSubMenu,\n\t\t\t[styles['inverse']]: kind === 'inverse',\n\t\t\t[styles['primary']]: kind === 'primary',\n\t\t\t[styles['compact']]: spacing === 'compact',\n\t\t\t[styles['default']]: spacing === 'default'\n\t\t}\n\t);\n\n\tconst positionStyles = isSubMenu ? inlineStyles.submenu : inlineStyles.menu;\n\n\tconst renderMenu = () => {\n\t\tconst inlineScrollStyles = isSubMenu ? {} : scrollStyles ? scrollStyles.styles : {};\n\t\tconst scrollClasses = classnames(\n\t\t\tstyles['MrlPopover--content'],\n\t\t\tstyles['MrlPopover--scrolling--content']\n\t\t);\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{transitions(\n\t\t\t\t\t(style, item) =>\n\t\t\t\t\t\titem && (\n\t\t\t\t\t\t\t<MrlFocusTrap disabled={disableFocusTrap} containerRef={menuRef}>\n\t\t\t\t\t\t\t\t<animated.div\n\t\t\t\t\t\t\t\t\taria-label={ariaLabel}\n\t\t\t\t\t\t\t\t\taria-labelledby={ariaLabelledBy}\n\t\t\t\t\t\t\t\t\tclassName={menuClasses}\n\t\t\t\t\t\t\t\t\tid={id}\n\t\t\t\t\t\t\t\t\ttabIndex={-1}\n\t\t\t\t\t\t\t\t\tstyle={{ ...positionStyles, ...style }}\n\t\t\t\t\t\t\t\t\tonKeyDown={handleMenuKey}\n\t\t\t\t\t\t\t\t\tref={menuRef}\n\t\t\t\t\t\t\t\t\t{...rest}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<MrlPopoverScrollContainer className={scrollClasses} style={inlineScrollStyles}>\n\t\t\t\t\t\t\t\t\t\t{typeof children === 'function' && children({ closeMenu })}\n\t\t\t\t\t\t\t\t\t\t{typeof children !== 'function' && children}\n\t\t\t\t\t\t\t\t\t\t{hasCloseButton && (\n\t\t\t\t\t\t\t\t\t\t\t<MrlIconButton\n\t\t\t\t\t\t\t\t\t\t\t\tdata-qa=\"popover-close-button\"\n\t\t\t\t\t\t\t\t\t\t\t\twrapperClassName={styles['MrlPopover--close']}\n\t\t\t\t\t\t\t\t\t\t\t\ticon={<MrlSvg svg={close} />}\n\t\t\t\t\t\t\t\t\t\t\t\tkind={kind === 'inverse' ? 'ghost-inverse' : 'ghost'}\n\t\t\t\t\t\t\t\t\t\t\t\ttext=\"Close\"\n\t\t\t\t\t\t\t\t\t\t\t\tstate=\"default\"\n\t\t\t\t\t\t\t\t\t\t\t\tposition=\"right\"\n\t\t\t\t\t\t\t\t\t\t\t\ttipAnchor=\"center\"\n\t\t\t\t\t\t\t\t\t\t\t\tonMouseUp={closeMenu}\n\t\t\t\t\t\t\t\t\t\t\t\tonKeyDown={handleClose}\n\t\t\t\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t{point && (\n\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\tclassName={styles['MrlPopover--point']}\n\t\t\t\t\t\t\t\t\t\t\t\tdata-point={getDataPoint(menuPositionState, alignment)}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</MrlPopoverScrollContainer>\n\t\t\t\t\t\t\t\t</animated.div>\n\t\t\t\t\t\t\t</MrlFocusTrap>\n\t\t\t\t\t\t)\n\t\t\t\t)}\n\t\t\t</>\n\t\t);\n\t};\n\n\t/* eslint-disable */\n\treturn (\n\t\t<MrlPopoverContext.Provider\n\t\t\tvalue={{\n\t\t\t\tcloseMenu\n\t\t\t}}\n\t\t>\n\t\t\t{isSubMenu ? (\n\t\t\t\trenderMenu()\n\t\t\t) : (\n\t\t\t\t<MrlPortal layer={portalProps.layer || PORTAL_LAYERS.POPOVER} {...portalProps}>\n\t\t\t\t\t{renderMenu()}\n\t\t\t\t</MrlPortal>\n\t\t\t)}\n\t\t</MrlPopoverContext.Provider>\n\t);\n\t/* eslint-enable */\n}\n\nMrlPopover.componentType = 'Popover';\n"],"names":["POPOVER_CLICKOUTSIDE_WHITELIST","concat","SELECT_MENU_LIST_CLASS_NAME","MULTI_SELECT_MENU_LIST_CLASS_NAME","MrlPopover","_ref","_ref$alignment","alignment","ariaLabel","ariaLabelledBy","children","className","customPosition","_ref$disableClickToOp","disableClickToOpen","_ref$disableClickOuts","disableClickOutside","_ref$disableFlipping","disableFlipping","_ref$disableFocusTrap","disableFocusTrap","_ref$hasCloseButton","hasCloseButton","_ref$spacing","spacing","id","_ref$isSubMenu","isSubMenu","_ref$actionState","actionState","actionType","isOpen","_ref$position","position","_ref$point","point","_ref$portalProps","portalProps","PORTAL_LAYERS","POPOVER","name","_ref$kind","kind","offset","onClose","onOpen","triggerRef","rest","_objectWithoutProperties","_excluded","_React$useState","React","useState","_React$useState2","_slicedToArray","state","setState","_React$useState3","_React$useState4","interactiveElements","setInteractiveElements","_React$useState5","_React$useState6","menuRect","setMenuRect","menuRef","useRef","triggerExpandedRestoreRef","isTriggerDisabled","useCallback","isElementAriaDisabled","current","closeMenu","_useMrlPopoverEventHa","useMrlPopoverEventHandlers","handleClose","handleMenuKey","hideMenuHover","handleTriggerSiblingKey","toggleMenuKey","toggleMenuTrigger","showMenuHover","useClickOutside","useEffect","useLayoutEffect","_menuRef$current","newRect","getBoundingClientRect","elements","getFocusableElementsInsideElement","focus","triggerElement","menuElement","nextElement","findAdjacentInteractiveElement","addEventListener","e","stopPropagation","removeEventListener","preventDefault","el","previousValue","getAttribute","setAttribute","removeAttribute","value","hasAttribute","toString","_document","_document$documentEle","snap","document","documentElement","contains","memoizedCustomPosition","useMemo","customPopoverPosition","left","top","menuPosition","useTriggerPosition","align","getOffset","subMenuPosition","useSubMenuElementPosition","menuPositionState","flipped","flipPosition","scrollStyles","useBrowserEdgeScroll","inlineStyles","menu","submenu","transitions","useTransition","config","duration","enter","opacity","transform","from","leave","menuClasses","classnames","styles","positionStyles","renderMenu","inlineScrollStyles","scrollClasses","createElement","Fragment","style","item","MrlFocusTrap","disabled","containerRef","animated","div","_extends","tabIndex","_objectSpread","onKeyDown","ref","MrlPopoverScrollContainer","MrlIconButton","wrapperClassName","icon","MrlSvg","svg","close","text","tipAnchor","onMouseUp","size","getDataPoint","MrlPopoverContext","Provider","MrlPortal","layer","componentType"],"mappings":"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"}
@@ -8,7 +8,7 @@ import { findAdjacentInteractiveElement } from '../../../../utils/findAdjacentIn
8
8
  * @param options configuration options
9
9
  * @returns all of the required event handlers
10
10
  */
11
- var useMrlPopoverEventHandlers = function useMrlPopoverEventHandlers(_ref) {
11
+ var useMrlPopoverEventHandlers = _ref => {
12
12
  var closeMenu = _ref.closeMenu,
13
13
  isSubMenu = _ref.isSubMenu,
14
14
  disableFocusTrap = _ref.disableFocusTrap,
@@ -23,7 +23,7 @@ var useMrlPopoverEventHandlers = function useMrlPopoverEventHandlers(_ref) {
23
23
  /**
24
24
  * Sets up trigger event listeners to open and close the menu with a keyboard
25
25
  */
26
- var toggleMenuKey = React.useCallback(function (e) {
26
+ var toggleMenuKey = React.useCallback(e => {
27
27
  if (!state.isOpen) {
28
28
  switch (e.key) {
29
29
  case 'ArrowRight':
@@ -77,26 +77,24 @@ var useMrlPopoverEventHandlers = function useMrlPopoverEventHandlers(_ref) {
77
77
  * Sets up trigger event listeners to open and close the menu
78
78
  *
79
79
  */
80
- var toggleMenuTrigger = React.useCallback(function () {
80
+ var toggleMenuTrigger = React.useCallback(() => {
81
81
  if (disableClickToOpen || isTriggerDisabled()) return;
82
- setState(function (prevState) {
83
- return {
84
- actionType: 'click',
85
- isOpen: !prevState.isOpen
86
- };
87
- });
82
+ setState(prevState => ({
83
+ actionType: 'click',
84
+ isOpen: !prevState.isOpen
85
+ }));
88
86
  }, [disableClickToOpen, isTriggerDisabled, setState]);
89
87
 
90
88
  /**
91
89
  * Used to display the menu when hovering over a menu item that has a submenu
92
90
  */
93
- var showMenuHover = React.useCallback(function () {
91
+ var showMenuHover = React.useCallback(() => {
94
92
  setState({
95
93
  actionType: 'click',
96
94
  isOpen: true
97
95
  });
98
96
  }, [setState]);
99
- var hideMenuHover = React.useCallback(function (event) {
97
+ var hideMenuHover = React.useCallback(event => {
100
98
  // event.relatedTarget is a property utilized in mouse-related events such as `mouseover` and `mouseout`
101
99
  // It signifies the element that was previously targeted before the current event occurred.
102
100
  //
@@ -119,7 +117,7 @@ var useMrlPopoverEventHandlers = function useMrlPopoverEventHandlers(_ref) {
119
117
  *
120
118
  * @param e - keyboard event
121
119
  */
122
- var handleMenuKey = function handleMenuKey(e) {
120
+ var handleMenuKey = e => {
123
121
  var _triggerRef$current;
124
122
  if (state.isOpen) {
125
123
  switch (e.key) {
@@ -176,7 +174,7 @@ var useMrlPopoverEventHandlers = function useMrlPopoverEventHandlers(_ref) {
176
174
  *
177
175
  * @param e - keyboard event
178
176
  */
179
- var handleTriggerSiblingKey = function handleTriggerSiblingKey(e) {
177
+ var handleTriggerSiblingKey = e => {
180
178
  if (state.isOpen && disableFocusTrap) {
181
179
  switch (e.key) {
182
180
  case 'Tab':
@@ -188,7 +186,7 @@ var useMrlPopoverEventHandlers = function useMrlPopoverEventHandlers(_ref) {
188
186
  }
189
187
  }
190
188
  };
191
- var handleClose = React.useCallback(function (e) {
189
+ var handleClose = React.useCallback(e => {
192
190
  if (e.key === 'Enter' || e.key === ' ') {
193
191
  var _triggerRef$current3;
194
192
  closeMenu();
@@ -198,13 +196,13 @@ var useMrlPopoverEventHandlers = function useMrlPopoverEventHandlers(_ref) {
198
196
  // eslint-disable-next-line react-hooks/exhaustive-deps
199
197
  [closeMenu, disableFocusTrap]);
200
198
  return {
201
- handleClose: handleClose,
202
- handleMenuKey: handleMenuKey,
203
- handleTriggerSiblingKey: handleTriggerSiblingKey,
204
- hideMenuHover: hideMenuHover,
205
- showMenuHover: showMenuHover,
206
- toggleMenuKey: toggleMenuKey,
207
- toggleMenuTrigger: toggleMenuTrigger
199
+ handleClose,
200
+ handleMenuKey,
201
+ handleTriggerSiblingKey,
202
+ hideMenuHover,
203
+ showMenuHover,
204
+ toggleMenuKey,
205
+ toggleMenuTrigger
208
206
  };
209
207
  };
210
208
 
@@ -1 +1 @@
1
- {"version":3,"file":"use-mrl-popover-event-handlers.js","sources":["../../../../../../src/components/popover/MrlPopover/hooks/use-mrl-popover-event-handlers.ts"],"sourcesContent":["import * as React from 'react';\nimport { ActionState, ActionType } from '../../../menu';\nimport { MrlPopoverProps } from '../MrlPopover';\nimport { findAdjacentInteractiveElement, preventDefault } from '../../../../utils';\n\ntype UseMrlPopoverEventHandlersOptions = {\n\tcloseMenu: () => void;\n\tisSubMenu: MrlPopoverProps['isSubMenu'];\n\tdisableFocusTrap: MrlPopoverProps['disableFocusTrap'];\n\tdisableClickToOpen: MrlPopoverProps['disableClickToOpen'];\n\thasCloseButton: MrlPopoverProps['hasCloseButton'];\n\tinteractiveElements: HTMLElement[];\n\tmenuRef: React.RefObject<HTMLDivElement>;\n\tstate: ActionState;\n\tsetState: React.Dispatch<React.SetStateAction<ActionState>>;\n\ttriggerRef: MrlPopoverProps['triggerRef'];\n\tisTriggerDisabled: () => boolean;\n};\n\ntype UseMrlPopoverEventHandlersReturn = {\n\thandleClose: (e: React.KeyboardEvent<HTMLButtonElement>) => void;\n\thandleMenuKey: (e: React.KeyboardEvent) => void;\n\thandleTriggerSiblingKey: (e: KeyboardEvent) => void;\n\thideMenuHover: (e: MouseEvent) => void;\n\tshowMenuHover: () => void;\n\ttoggleMenuKey: (e: KeyboardEvent) => void;\n\ttoggleMenuTrigger: () => void;\n};\n\n/**\n * Creates all of the required event handlers for the MrlPopover component\n *\n * @param options configuration options\n * @returns all of the required event handlers\n */\nexport const useMrlPopoverEventHandlers = ({\n\tcloseMenu,\n\tisSubMenu,\n\tdisableFocusTrap,\n\tdisableClickToOpen,\n\thasCloseButton,\n\tinteractiveElements,\n\tmenuRef,\n\tstate,\n\tsetState,\n\ttriggerRef,\n\tisTriggerDisabled\n}: UseMrlPopoverEventHandlersOptions): UseMrlPopoverEventHandlersReturn => {\n\t/**\n\t * Sets up trigger event listeners to open and close the menu with a keyboard\n\t */\n\tconst toggleMenuKey = React.useCallback(\n\t\t(e: KeyboardEvent) => {\n\t\t\tif (!state.isOpen) {\n\t\t\t\tswitch (e.key) {\n\t\t\t\t\tcase 'ArrowRight':\n\t\t\t\t\t\tif (isSubMenu) {\n\t\t\t\t\t\t\tpreventDefault(e);\n\t\t\t\t\t\t\tsetState({ actionType: 'click', isOpen: true });\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'Enter':\n\t\t\t\t\tcase ' ':\n\t\t\t\t\t\tif (!disableClickToOpen && !isTriggerDisabled()) {\n\t\t\t\t\t\t\tpreventDefault(e);\n\t\t\t\t\t\t\tsetState({ actionType: e.key as ActionType, isOpen: true });\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'ArrowDown':\n\t\t\t\t\t\tif (!isSubMenu && !disableClickToOpen && !isTriggerDisabled()) {\n\t\t\t\t\t\t\tpreventDefault(e);\n\t\t\t\t\t\t\tsetState({ actionType: e.key as ActionType, isOpen: true });\n\t\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (state.isOpen) {\n\t\t\t\t// When focus is on the trigger and the popover is open, if a user presses \"tab\"\n\t\t\t\t// we want to move focus to the first interactive element of the popover\n\t\t\t\t// so that the tab order of the DOM follows the visual order of the page\n\t\t\t\tswitch (e.key) {\n\t\t\t\t\tcase 'Tab':\n\t\t\t\t\t\tif (!e.shiftKey && disableFocusTrap) {\n\t\t\t\t\t\t\tif (document.activeElement === triggerRef?.current) {\n\t\t\t\t\t\t\t\tpreventDefault(e);\n\t\t\t\t\t\t\t\tinteractiveElements[0].focus();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\t[disableFocusTrap, state.isOpen, interactiveElements]\n\t);\n\n\t/**\n\t * Sets up trigger event listeners to open and close the menu\n\t *\n\t */\n\tconst toggleMenuTrigger = React.useCallback(() => {\n\t\tif (disableClickToOpen || isTriggerDisabled()) return;\n\t\tsetState((prevState) => ({ actionType: 'click', isOpen: !prevState.isOpen }));\n\t}, [disableClickToOpen, isTriggerDisabled, setState]);\n\n\t/**\n\t * Used to display the menu when hovering over a menu item that has a submenu\n\t */\n\tconst showMenuHover = React.useCallback(() => {\n\t\tsetState({ actionType: 'click', isOpen: true });\n\t}, [setState]);\n\n\tconst hideMenuHover = React.useCallback(\n\t\t(event: MouseEvent) => {\n\t\t\t// event.relatedTarget is a property utilized in mouse-related events such as `mouseover` and `mouseout`\n\t\t\t// It signifies the element that was previously targeted before the current event occurred.\n\t\t\t//\n\t\t\t// For instance, in a `mouseover` event, `event.relatedTarget` refers to the\n\t\t\t// element the cursor was over before moving to the current element.\n\t\t\tconst relatedTarget = event.relatedTarget as Node;\n\n\t\t\t// If the related target is not a child of the menu, close the menu\n\t\t\t// This prevents the menu from closing when hovering over a submenu item or trigger\n\t\t\tif (\n\t\t\t\tmenuRef.current &&\n\t\t\t\t!menuRef.current.contains(relatedTarget) &&\n\t\t\t\ttriggerRef?.current &&\n\t\t\t\t!triggerRef?.current.contains(relatedTarget)\n\t\t\t) {\n\t\t\t\tsetState({ actionType: null, isOpen: false });\n\t\t\t}\n\t\t},\n\t\t[triggerRef, menuRef, setState]\n\t);\n\n\t/**\n\t * Focus management when someone is using a keyboard to navigate the menu\n\t *\n\t * @param e - keyboard event\n\t */\n\tconst handleMenuKey = (e: React.KeyboardEvent) => {\n\t\tif (state.isOpen) {\n\t\t\tswitch (e.key) {\n\t\t\t\tcase 'Escape':\n\t\t\t\t\tpreventDefault(e);\n\t\t\t\t\ttriggerRef?.current?.focus();\n\t\t\t\t\tcloseMenu();\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'Tab':\n\t\t\t\t\te.stopPropagation();\n\n\t\t\t\t\tif (disableFocusTrap) {\n\t\t\t\t\t\tconst first = interactiveElements[0];\n\t\t\t\t\t\tconst last = interactiveElements[interactiveElements.length - 1];\n\t\t\t\t\t\tconst isShiftKey = e.shiftKey;\n\n\t\t\t\t\t\t// If the first or last interactive element is focused, we want to move focus to the trigger\n\t\t\t\t\t\t// and close the menu. If the last iteractive element is focused, we are checking that the shift\n\t\t\t\t\t\t// key is not held down. Otherwise the popover will close when you press shift+tab on an element\n\t\t\t\t\t\t// that is not the first one.\n\t\t\t\t\t\tif (isShiftKey && document.activeElement === first) {\n\t\t\t\t\t\t\tpreventDefault(e);\n\t\t\t\t\t\t\ttriggerRef?.current?.focus();\n\t\t\t\t\t\t\tif (!hasCloseButton) setState({ actionType: null, isOpen: false });\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (!isShiftKey && document.activeElement === last) {\n\t\t\t\t\t\t\tpreventDefault(e);\n\t\t\t\t\t\t\tfindAdjacentInteractiveElement(triggerRef, 'next')?.focus();\n\t\t\t\t\t\t\tif (!hasCloseButton) setState({ actionType: null, isOpen: false });\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'ArrowUp':\n\t\t\t\tcase 'ArrowDown':\n\t\t\t\tcase 'ArrowLeft':\n\t\t\t\tcase 'ArrowRight':\n\t\t\t\t\tpreventDefault(e);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t};\n\n\t/**\n\t * When focus trap is disabled, we need to handle moving focus back to the popover when you\n\t * shift+tab from the interactive element immediately after the trigger. This will allow us\n\t * to maintain a tab order that matches the visual order on the page.\n\t *\n\t * @param e - keyboard event\n\t */\n\tconst handleTriggerSiblingKey = (e: KeyboardEvent) => {\n\t\tif (state.isOpen && disableFocusTrap) {\n\t\t\tswitch (e.key) {\n\t\t\t\tcase 'Tab':\n\t\t\t\t\tif (e.shiftKey) {\n\t\t\t\t\t\tpreventDefault(e);\n\t\t\t\t\t\tinteractiveElements[interactiveElements.length - 1].focus();\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\tconst handleClose = React.useCallback(\n\t\t(e: React.KeyboardEvent<HTMLButtonElement>) => {\n\t\t\tif (e.key === 'Enter' || e.key === ' ') {\n\t\t\t\tcloseMenu();\n\t\t\t\tif (disableFocusTrap) triggerRef?.current?.focus();\n\t\t\t}\n\t\t},\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\t[closeMenu, disableFocusTrap]\n\t);\n\n\treturn {\n\t\thandleClose,\n\t\thandleMenuKey,\n\t\thandleTriggerSiblingKey,\n\t\thideMenuHover,\n\t\tshowMenuHover,\n\t\ttoggleMenuKey,\n\t\ttoggleMenuTrigger\n\t};\n};\n"],"names":["useMrlPopoverEventHandlers","_ref","closeMenu","isSubMenu","disableFocusTrap","disableClickToOpen","hasCloseButton","interactiveElements","menuRef","state","setState","triggerRef","isTriggerDisabled","toggleMenuKey","React","useCallback","e","isOpen","key","preventDefault","actionType","shiftKey","document","activeElement","current","focus","toggleMenuTrigger","prevState","showMenuHover","hideMenuHover","event","relatedTarget","contains","handleMenuKey","_triggerRef$current","stopPropagation","first","last","length","isShiftKey","_triggerRef$current2","_findAdjacentInteract","findAdjacentInteractiveElement","handleTriggerSiblingKey","handleClose","_triggerRef$current3"],"mappings":"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"}
1
+ {"version":3,"file":"use-mrl-popover-event-handlers.js","sources":["../../../../../../src/components/popover/MrlPopover/hooks/use-mrl-popover-event-handlers.ts"],"sourcesContent":["import * as React from 'react';\nimport { ActionState, ActionType } from '../../../menu';\nimport { MrlPopoverProps } from '../MrlPopover';\nimport { findAdjacentInteractiveElement, preventDefault } from '../../../../utils';\n\ntype UseMrlPopoverEventHandlersOptions = {\n\tcloseMenu: () => void;\n\tisSubMenu: MrlPopoverProps['isSubMenu'];\n\tdisableFocusTrap: MrlPopoverProps['disableFocusTrap'];\n\tdisableClickToOpen: MrlPopoverProps['disableClickToOpen'];\n\thasCloseButton: MrlPopoverProps['hasCloseButton'];\n\tinteractiveElements: HTMLElement[];\n\tmenuRef: React.RefObject<HTMLDivElement>;\n\tstate: ActionState;\n\tsetState: React.Dispatch<React.SetStateAction<ActionState>>;\n\ttriggerRef: MrlPopoverProps['triggerRef'];\n\tisTriggerDisabled: () => boolean;\n};\n\ntype UseMrlPopoverEventHandlersReturn = {\n\thandleClose: (e: React.KeyboardEvent<HTMLButtonElement>) => void;\n\thandleMenuKey: (e: React.KeyboardEvent) => void;\n\thandleTriggerSiblingKey: (e: KeyboardEvent) => void;\n\thideMenuHover: (e: MouseEvent) => void;\n\tshowMenuHover: () => void;\n\ttoggleMenuKey: (e: KeyboardEvent) => void;\n\ttoggleMenuTrigger: () => void;\n};\n\n/**\n * Creates all of the required event handlers for the MrlPopover component\n *\n * @param options configuration options\n * @returns all of the required event handlers\n */\nexport const useMrlPopoverEventHandlers = ({\n\tcloseMenu,\n\tisSubMenu,\n\tdisableFocusTrap,\n\tdisableClickToOpen,\n\thasCloseButton,\n\tinteractiveElements,\n\tmenuRef,\n\tstate,\n\tsetState,\n\ttriggerRef,\n\tisTriggerDisabled\n}: UseMrlPopoverEventHandlersOptions): UseMrlPopoverEventHandlersReturn => {\n\t/**\n\t * Sets up trigger event listeners to open and close the menu with a keyboard\n\t */\n\tconst toggleMenuKey = React.useCallback(\n\t\t(e: KeyboardEvent) => {\n\t\t\tif (!state.isOpen) {\n\t\t\t\tswitch (e.key) {\n\t\t\t\t\tcase 'ArrowRight':\n\t\t\t\t\t\tif (isSubMenu) {\n\t\t\t\t\t\t\tpreventDefault(e);\n\t\t\t\t\t\t\tsetState({ actionType: 'click', isOpen: true });\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'Enter':\n\t\t\t\t\tcase ' ':\n\t\t\t\t\t\tif (!disableClickToOpen && !isTriggerDisabled()) {\n\t\t\t\t\t\t\tpreventDefault(e);\n\t\t\t\t\t\t\tsetState({ actionType: e.key as ActionType, isOpen: true });\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'ArrowDown':\n\t\t\t\t\t\tif (!isSubMenu && !disableClickToOpen && !isTriggerDisabled()) {\n\t\t\t\t\t\t\tpreventDefault(e);\n\t\t\t\t\t\t\tsetState({ actionType: e.key as ActionType, isOpen: true });\n\t\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (state.isOpen) {\n\t\t\t\t// When focus is on the trigger and the popover is open, if a user presses \"tab\"\n\t\t\t\t// we want to move focus to the first interactive element of the popover\n\t\t\t\t// so that the tab order of the DOM follows the visual order of the page\n\t\t\t\tswitch (e.key) {\n\t\t\t\t\tcase 'Tab':\n\t\t\t\t\t\tif (!e.shiftKey && disableFocusTrap) {\n\t\t\t\t\t\t\tif (document.activeElement === triggerRef?.current) {\n\t\t\t\t\t\t\t\tpreventDefault(e);\n\t\t\t\t\t\t\t\tinteractiveElements[0].focus();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\t[disableFocusTrap, state.isOpen, interactiveElements]\n\t);\n\n\t/**\n\t * Sets up trigger event listeners to open and close the menu\n\t *\n\t */\n\tconst toggleMenuTrigger = React.useCallback(() => {\n\t\tif (disableClickToOpen || isTriggerDisabled()) return;\n\t\tsetState((prevState) => ({ actionType: 'click', isOpen: !prevState.isOpen }));\n\t}, [disableClickToOpen, isTriggerDisabled, setState]);\n\n\t/**\n\t * Used to display the menu when hovering over a menu item that has a submenu\n\t */\n\tconst showMenuHover = React.useCallback(() => {\n\t\tsetState({ actionType: 'click', isOpen: true });\n\t}, [setState]);\n\n\tconst hideMenuHover = React.useCallback(\n\t\t(event: MouseEvent) => {\n\t\t\t// event.relatedTarget is a property utilized in mouse-related events such as `mouseover` and `mouseout`\n\t\t\t// It signifies the element that was previously targeted before the current event occurred.\n\t\t\t//\n\t\t\t// For instance, in a `mouseover` event, `event.relatedTarget` refers to the\n\t\t\t// element the cursor was over before moving to the current element.\n\t\t\tconst relatedTarget = event.relatedTarget as Node;\n\n\t\t\t// If the related target is not a child of the menu, close the menu\n\t\t\t// This prevents the menu from closing when hovering over a submenu item or trigger\n\t\t\tif (\n\t\t\t\tmenuRef.current &&\n\t\t\t\t!menuRef.current.contains(relatedTarget) &&\n\t\t\t\ttriggerRef?.current &&\n\t\t\t\t!triggerRef?.current.contains(relatedTarget)\n\t\t\t) {\n\t\t\t\tsetState({ actionType: null, isOpen: false });\n\t\t\t}\n\t\t},\n\t\t[triggerRef, menuRef, setState]\n\t);\n\n\t/**\n\t * Focus management when someone is using a keyboard to navigate the menu\n\t *\n\t * @param e - keyboard event\n\t */\n\tconst handleMenuKey = (e: React.KeyboardEvent) => {\n\t\tif (state.isOpen) {\n\t\t\tswitch (e.key) {\n\t\t\t\tcase 'Escape':\n\t\t\t\t\tpreventDefault(e);\n\t\t\t\t\ttriggerRef?.current?.focus();\n\t\t\t\t\tcloseMenu();\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'Tab':\n\t\t\t\t\te.stopPropagation();\n\n\t\t\t\t\tif (disableFocusTrap) {\n\t\t\t\t\t\tconst first = interactiveElements[0];\n\t\t\t\t\t\tconst last = interactiveElements[interactiveElements.length - 1];\n\t\t\t\t\t\tconst isShiftKey = e.shiftKey;\n\n\t\t\t\t\t\t// If the first or last interactive element is focused, we want to move focus to the trigger\n\t\t\t\t\t\t// and close the menu. If the last iteractive element is focused, we are checking that the shift\n\t\t\t\t\t\t// key is not held down. Otherwise the popover will close when you press shift+tab on an element\n\t\t\t\t\t\t// that is not the first one.\n\t\t\t\t\t\tif (isShiftKey && document.activeElement === first) {\n\t\t\t\t\t\t\tpreventDefault(e);\n\t\t\t\t\t\t\ttriggerRef?.current?.focus();\n\t\t\t\t\t\t\tif (!hasCloseButton) setState({ actionType: null, isOpen: false });\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (!isShiftKey && document.activeElement === last) {\n\t\t\t\t\t\t\tpreventDefault(e);\n\t\t\t\t\t\t\tfindAdjacentInteractiveElement(triggerRef, 'next')?.focus();\n\t\t\t\t\t\t\tif (!hasCloseButton) setState({ actionType: null, isOpen: false });\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'ArrowUp':\n\t\t\t\tcase 'ArrowDown':\n\t\t\t\tcase 'ArrowLeft':\n\t\t\t\tcase 'ArrowRight':\n\t\t\t\t\tpreventDefault(e);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t};\n\n\t/**\n\t * When focus trap is disabled, we need to handle moving focus back to the popover when you\n\t * shift+tab from the interactive element immediately after the trigger. This will allow us\n\t * to maintain a tab order that matches the visual order on the page.\n\t *\n\t * @param e - keyboard event\n\t */\n\tconst handleTriggerSiblingKey = (e: KeyboardEvent) => {\n\t\tif (state.isOpen && disableFocusTrap) {\n\t\t\tswitch (e.key) {\n\t\t\t\tcase 'Tab':\n\t\t\t\t\tif (e.shiftKey) {\n\t\t\t\t\t\tpreventDefault(e);\n\t\t\t\t\t\tinteractiveElements[interactiveElements.length - 1].focus();\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\tconst handleClose = React.useCallback(\n\t\t(e: React.KeyboardEvent<HTMLButtonElement>) => {\n\t\t\tif (e.key === 'Enter' || e.key === ' ') {\n\t\t\t\tcloseMenu();\n\t\t\t\tif (disableFocusTrap) triggerRef?.current?.focus();\n\t\t\t}\n\t\t},\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\t[closeMenu, disableFocusTrap]\n\t);\n\n\treturn {\n\t\thandleClose,\n\t\thandleMenuKey,\n\t\thandleTriggerSiblingKey,\n\t\thideMenuHover,\n\t\tshowMenuHover,\n\t\ttoggleMenuKey,\n\t\ttoggleMenuTrigger\n\t};\n};\n"],"names":["useMrlPopoverEventHandlers","_ref","closeMenu","isSubMenu","disableFocusTrap","disableClickToOpen","hasCloseButton","interactiveElements","menuRef","state","setState","triggerRef","isTriggerDisabled","toggleMenuKey","React","useCallback","e","isOpen","key","preventDefault","actionType","shiftKey","document","activeElement","current","focus","toggleMenuTrigger","prevState","showMenuHover","hideMenuHover","event","relatedTarget","contains","handleMenuKey","_triggerRef$current","stopPropagation","first","last","length","isShiftKey","_triggerRef$current2","_findAdjacentInteract","findAdjacentInteractiveElement","handleTriggerSiblingKey","handleClose","_triggerRef$current3"],"mappings":";;;;AA6BA;AACA;AACA;AACA;AACA;AACA;AACO,IAAMA,0BAA0B,GAAGC,IAAA,IAYiC;AAAA,EAAA,IAX1EC,SAAS,GAAAD,IAAA,CAATC,SAAS;IACTC,SAAS,GAAAF,IAAA,CAATE,SAAS;IACTC,gBAAgB,GAAAH,IAAA,CAAhBG,gBAAgB;IAChBC,kBAAkB,GAAAJ,IAAA,CAAlBI,kBAAkB;IAClBC,cAAc,GAAAL,IAAA,CAAdK,cAAc;IACdC,mBAAmB,GAAAN,IAAA,CAAnBM,mBAAmB;IACnBC,OAAO,GAAAP,IAAA,CAAPO,OAAO;IACPC,KAAK,GAAAR,IAAA,CAALQ,KAAK;IACLC,QAAQ,GAAAT,IAAA,CAARS,QAAQ;IACRC,UAAU,GAAAV,IAAA,CAAVU,UAAU;IACVC,iBAAiB,GAAAX,IAAA,CAAjBW,iBAAiB;AAEjB;AACD;AACA;AACC,EAAA,IAAMC,aAAa,GAAGC,KAAK,CAACC,WAAW,CACrCC,CAAgB,IAAK;AACrB,IAAA,IAAI,CAACP,KAAK,CAACQ,MAAM,EAAE;MAClB,QAAQD,CAAC,CAACE,GAAG;AACZ,QAAA,KAAK,YAAY;AAChB,UAAA,IAAIf,SAAS,EAAE;YACdgB,cAAc,CAACH,CAAC,CAAC;AACjBN,YAAAA,QAAQ,CAAC;AAAEU,cAAAA,UAAU,EAAE,OAAO;AAAEH,cAAAA,MAAM,EAAE;AAAK,aAAC,CAAC;AAChD,UAAA;AACA,UAAA;AACD,QAAA,KAAK,OAAO;AACZ,QAAA,KAAK,GAAG;AACP,UAAA,IAAI,CAACZ,kBAAkB,IAAI,CAACO,iBAAiB,EAAE,EAAE;YAChDO,cAAc,CAACH,CAAC,CAAC;AACjBN,YAAAA,QAAQ,CAAC;cAAEU,UAAU,EAAEJ,CAAC,CAACE,GAAiB;AAAED,cAAAA,MAAM,EAAE;AAAK,aAAC,CAAC;AAC5D,UAAA;AACA,UAAA;AACD,QAAA,KAAK,WAAW;UACf,IAAI,CAACd,SAAS,IAAI,CAACE,kBAAkB,IAAI,CAACO,iBAAiB,EAAE,EAAE;YAC9DO,cAAc,CAACH,CAAC,CAAC;AACjBN,YAAAA,QAAQ,CAAC;cAAEU,UAAU,EAAEJ,CAAC,CAACE,GAAiB;AAAED,cAAAA,MAAM,EAAE;AAAK,aAAC,CAAC;AAC5D,UAAA;AACF;AACD,IAAA,CAAC,MAAM,IAAIR,KAAK,CAACQ,MAAM,EAAE;AACxB;AACA;AACA;MACA,QAAQD,CAAC,CAACE,GAAG;AACZ,QAAA,KAAK,KAAK;AACT,UAAA,IAAI,CAACF,CAAC,CAACK,QAAQ,IAAIjB,gBAAgB,EAAE;YACpC,IAAIkB,QAAQ,CAACC,aAAa,MAAKZ,UAAU,KAAA,IAAA,IAAVA,UAAU,KAAA,MAAA,GAAA,MAAA,GAAVA,UAAU,CAAEa,OAAO,CAAA,EAAE;cACnDL,cAAc,CAACH,CAAC,CAAC;AACjBT,cAAAA,mBAAmB,CAAC,CAAC,CAAC,CAACkB,KAAK,EAAE;AAC/B,YAAA;AACD,UAAA;AACA,UAAA;AACF;AACD,IAAA;EACD,CAAC;AACD;EACA,CAACrB,gBAAgB,EAAEK,KAAK,CAACQ,MAAM,EAAEV,mBAAmB,CACrD,CAAC;;AAED;AACD;AACA;AACA;AACC,EAAA,IAAMmB,iBAAiB,GAAGZ,KAAK,CAACC,WAAW,CAAC,MAAM;AACjD,IAAA,IAAIV,kBAAkB,IAAIO,iBAAiB,EAAE,EAAE;IAC/CF,QAAQ,CAAEiB,SAAS,KAAM;AAAEP,MAAAA,UAAU,EAAE,OAAO;MAAEH,MAAM,EAAE,CAACU,SAAS,CAACV;AAAO,KAAC,CAAC,CAAC;EAC9E,CAAC,EAAE,CAACZ,kBAAkB,EAAEO,iBAAiB,EAAEF,QAAQ,CAAC,CAAC;;AAErD;AACD;AACA;AACC,EAAA,IAAMkB,aAAa,GAAGd,KAAK,CAACC,WAAW,CAAC,MAAM;AAC7CL,IAAAA,QAAQ,CAAC;AAAEU,MAAAA,UAAU,EAAE,OAAO;AAAEH,MAAAA,MAAM,EAAE;AAAK,KAAC,CAAC;AAChD,EAAA,CAAC,EAAE,CAACP,QAAQ,CAAC,CAAC;AAEd,EAAA,IAAMmB,aAAa,GAAGf,KAAK,CAACC,WAAW,CACrCe,KAAiB,IAAK;AACtB;AACA;AACA;AACA;AACA;AACA,IAAA,IAAMC,aAAa,GAAGD,KAAK,CAACC,aAAqB;;AAEjD;AACA;AACA,IAAA,IACCvB,OAAO,CAACgB,OAAO,IACf,CAAChB,OAAO,CAACgB,OAAO,CAACQ,QAAQ,CAACD,aAAa,CAAC,IACxCpB,UAAU,KAAA,IAAA,IAAVA,UAAU,KAAA,MAAA,IAAVA,UAAU,CAAEa,OAAO,IACnB,EAACb,UAAU,aAAVA,UAAU,KAAA,MAAA,IAAVA,UAAU,CAAEa,OAAO,CAACQ,QAAQ,CAACD,aAAa,CAAC,CAAA,EAC3C;AACDrB,MAAAA,QAAQ,CAAC;AAAEU,QAAAA,UAAU,EAAE,IAAI;AAAEH,QAAAA,MAAM,EAAE;AAAM,OAAC,CAAC;AAC9C,IAAA;EACD,CAAC,EACD,CAACN,UAAU,EAAEH,OAAO,EAAEE,QAAQ,CAC/B,CAAC;;AAED;AACD;AACA;AACA;AACA;EACC,IAAMuB,aAAa,GAAIjB,CAAsB,IAAK;AAAA,IAAA,IAAAkB,mBAAA;IACjD,IAAIzB,KAAK,CAACQ,MAAM,EAAE;MACjB,QAAQD,CAAC,CAACE,GAAG;AACZ,QAAA,KAAK,QAAQ;UACZC,cAAc,CAACH,CAAC,CAAC;AACjBL,UAAAA,UAAU,KAAA,IAAA,IAAVA,UAAU,KAAA,MAAA,GAAA,MAAA,GAAA,CAAAuB,mBAAA,GAAVvB,UAAU,CAAEa,OAAO,MAAA,IAAA,IAAAU,mBAAA,KAAA,MAAA,GAAA,MAAA,GAAnBA,mBAAA,CAAqBT,KAAK,EAAE;AAC5BvB,UAAAA,SAAS,EAAE;AACX,UAAA;AACD,QAAA,KAAK,KAAK;UACTc,CAAC,CAACmB,eAAe,EAAE;AAEnB,UAAA,IAAI/B,gBAAgB,EAAE;AACrB,YAAA,IAAMgC,KAAK,GAAG7B,mBAAmB,CAAC,CAAC,CAAC;YACpC,IAAM8B,IAAI,GAAG9B,mBAAmB,CAACA,mBAAmB,CAAC+B,MAAM,GAAG,CAAC,CAAC;AAChE,YAAA,IAAMC,UAAU,GAAGvB,CAAC,CAACK,QAAQ;;AAE7B;AACA;AACA;AACA;AACA,YAAA,IAAIkB,UAAU,IAAIjB,QAAQ,CAACC,aAAa,KAAKa,KAAK,EAAE;AAAA,cAAA,IAAAI,oBAAA;cACnDrB,cAAc,CAACH,CAAC,CAAC;AACjBL,cAAAA,UAAU,KAAA,IAAA,IAAVA,UAAU,KAAA,MAAA,GAAA,MAAA,GAAA,CAAA6B,oBAAA,GAAV7B,UAAU,CAAEa,OAAO,MAAA,IAAA,IAAAgB,oBAAA,KAAA,MAAA,GAAA,MAAA,GAAnBA,oBAAA,CAAqBf,KAAK,EAAE;AAC5B,cAAA,IAAI,CAACnB,cAAc,EAAEI,QAAQ,CAAC;AAAEU,gBAAAA,UAAU,EAAE,IAAI;AAAEH,gBAAAA,MAAM,EAAE;AAAM,eAAC,CAAC;AACnE,YAAA;YAEA,IAAI,CAACsB,UAAU,IAAIjB,QAAQ,CAACC,aAAa,KAAKc,IAAI,EAAE;AAAA,cAAA,IAAAI,qBAAA;cACnDtB,cAAc,CAACH,CAAC,CAAC;AACjB,cAAA,CAAAyB,qBAAA,GAAAC,8BAA8B,CAAC/B,UAAU,EAAE,MAAM,CAAC,MAAA,IAAA,IAAA8B,qBAAA,KAAA,MAAA,GAAA,MAAA,GAAlDA,qBAAA,CAAoDhB,KAAK,EAAE;AAC3D,cAAA,IAAI,CAACnB,cAAc,EAAEI,QAAQ,CAAC;AAAEU,gBAAAA,UAAU,EAAE,IAAI;AAAEH,gBAAAA,MAAM,EAAE;AAAM,eAAC,CAAC;AACnE,YAAA;AACD,UAAA;AACA,UAAA;AACD,QAAA,KAAK,SAAS;AACd,QAAA,KAAK,WAAW;AAChB,QAAA,KAAK,WAAW;AAChB,QAAA,KAAK,YAAY;UAChBE,cAAc,CAACH,CAAC,CAAC;AACjB,UAAA;AACF;AACD,IAAA;EACD,CAAC;;AAED;AACD;AACA;AACA;AACA;AACA;AACA;EACC,IAAM2B,uBAAuB,GAAI3B,CAAgB,IAAK;AACrD,IAAA,IAAIP,KAAK,CAACQ,MAAM,IAAIb,gBAAgB,EAAE;MACrC,QAAQY,CAAC,CAACE,GAAG;AACZ,QAAA,KAAK,KAAK;UACT,IAAIF,CAAC,CAACK,QAAQ,EAAE;YACfF,cAAc,CAACH,CAAC,CAAC;YACjBT,mBAAmB,CAACA,mBAAmB,CAAC+B,MAAM,GAAG,CAAC,CAAC,CAACb,KAAK,EAAE;AAC3D,YAAA;AACD,UAAA;AACF;AACD,IAAA;EACD,CAAC;AAED,EAAA,IAAMmB,WAAW,GAAG9B,KAAK,CAACC,WAAW,CACnCC,CAAyC,IAAK;IAC9C,IAAIA,CAAC,CAACE,GAAG,KAAK,OAAO,IAAIF,CAAC,CAACE,GAAG,KAAK,GAAG,EAAE;AAAA,MAAA,IAAA2B,oBAAA;AACvC3C,MAAAA,SAAS,EAAE;AACX,MAAA,IAAIE,gBAAgB,EAAEO,UAAU,aAAVA,UAAU,KAAA,MAAA,GAAA,MAAA,GAAA,CAAAkC,oBAAA,GAAVlC,UAAU,CAAEa,OAAO,cAAAqB,oBAAA,KAAA,MAAA,GAAA,MAAA,GAAnBA,oBAAA,CAAqBpB,KAAK,EAAE;AACnD,IAAA;EACD,CAAC;AACD;AACA,EAAA,CAACvB,SAAS,EAAEE,gBAAgB,CAC7B,CAAC;EAED,OAAO;IACNwC,WAAW;IACXX,aAAa;IACbU,uBAAuB;IACvBd,aAAa;IACbD,aAAa;IACbf,aAAa;AACba,IAAAA;GACA;AACF;;;;"}
@@ -5,7 +5,7 @@
5
5
  * @param alignment - alignment of the menu
6
6
  * @returns - data-point attribute value
7
7
  */
8
- var getDataPoint = function getDataPoint(position, alignment) {
8
+ var getDataPoint = (position, alignment) => {
9
9
  return "".concat(position, "-").concat(alignment);
10
10
  };
11
11
 
@@ -1 +1 @@
1
- {"version":3,"file":"get-data-point.js","sources":["../../../../../../src/components/popover/MrlPopover/utilities/get-data-point.ts"],"sourcesContent":["import { MenuAlignment, MenuPosition } from '../../../menu';\n\n/**\n * Returns the data-point attribute for the popover pointer\n *\n * @param position - position of the menu\n * @param alignment - alignment of the menu\n * @returns - data-point attribute value\n */\nexport const getDataPoint = (position: MenuPosition, alignment: MenuAlignment): string => {\n\treturn `${position}-${alignment}`;\n};\n"],"names":["getDataPoint","position","alignment","concat"],"mappings":"AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,IAAMA,YAAY,GAAG,SAAfA,YAAYA,CAAIC,QAAsB,EAAEC,SAAwB,EAAa;AACzF,EAAA,OAAA,EAAA,CAAAC,MAAA,CAAUF,QAAQ,EAAA,GAAA,CAAA,CAAAE,MAAA,CAAID,SAAS,CAAA;AAChC;;;;"}
1
+ {"version":3,"file":"get-data-point.js","sources":["../../../../../../src/components/popover/MrlPopover/utilities/get-data-point.ts"],"sourcesContent":["import { MenuAlignment, MenuPosition } from '../../../menu';\n\n/**\n * Returns the data-point attribute for the popover pointer\n *\n * @param position - position of the menu\n * @param alignment - alignment of the menu\n * @returns - data-point attribute value\n */\nexport const getDataPoint = (position: MenuPosition, alignment: MenuAlignment): string => {\n\treturn `${position}-${alignment}`;\n};\n"],"names":["getDataPoint","position","alignment","concat"],"mappings":"AAEA;AACA;AACA;AACA;AACA;AACA;AACA;IACaA,YAAY,GAAGA,CAACC,QAAsB,EAAEC,SAAwB,KAAa;AACzF,EAAA,OAAA,EAAA,CAAAC,MAAA,CAAUF,QAAQ,EAAA,GAAA,CAAA,CAAAE,MAAA,CAAID,SAAS,CAAA;AAChC;;;;"}