@muraldevkit/ui-toolkit 4.68.0-dev-NFbt.1 → 4.68.0-dev-5W5E.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
@@ -4,7 +4,8 @@ var _rollupPluginBabelHelpers = require('../../_virtual/_rollupPluginBabelHelper
4
4
  var React = require('react');
5
5
  var index = require('../../utils/trapFocus/index.js');
6
6
 
7
- function _interopNamespaceDefault(e) {
7
+ function _interopNamespace(e) {
8
+ if (e && e.__esModule) return e;
8
9
  var n = Object.create(null);
9
10
  if (e) {
10
11
  Object.keys(e).forEach(function (k) {
@@ -21,7 +22,7 @@ function _interopNamespaceDefault(e) {
21
22
  return Object.freeze(n);
22
23
  }
23
24
 
24
- var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
25
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
25
26
 
26
27
  /**
27
28
  * Tracks whether the subtree of the given ref contains at least one element
@@ -49,14 +50,12 @@ function useHasFocusableDescendant(ref) {
49
50
  _React$useState2 = _rollupPluginBabelHelpers.slicedToArray(_React$useState, 2),
50
51
  hasFocusableDescendant = _React$useState2[0],
51
52
  setHasFocusableDescendant = _React$useState2[1];
52
- React__namespace.useLayoutEffect(function () {
53
+ React__namespace.useLayoutEffect(() => {
53
54
  var element = ref.current;
54
55
  if (!element) return;
55
- var measure = function measure() {
56
+ var measure = () => {
56
57
  var next = element.querySelector(index.FOCUSABLE_ELEMENTS_SELECTOR) !== null;
57
- setHasFocusableDescendant(function (prev) {
58
- return prev === next ? prev : next;
59
- });
58
+ setHasFocusableDescendant(prev => prev === next ? prev : next);
60
59
  };
61
60
  measure();
62
61
  var observer = new MutationObserver(measure);
@@ -66,7 +65,7 @@ function useHasFocusableDescendant(ref) {
66
65
  childList: true,
67
66
  subtree: true
68
67
  });
69
- return function () {
68
+ return () => {
70
69
  observer.disconnect();
71
70
  };
72
71
  }, [ref]);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/hooks/useHasFocusableDescendant/index.ts"],"sourcesContent":["import * as React from 'react';\nimport { FOCUSABLE_ELEMENTS_SELECTOR } from '../../utils/trapFocus';\n\n/**\n * Tracks whether the subtree of the given ref contains at least one element\n * that participates in sequential focus navigation.\n *\n * Used by scrollable wrapper components (`MrlPanel`, `MrlModalContent`) to\n * decide whether the wrapper itself needs `tabindex=\"0\"`. Per ACT rule\n * 0ssw9k (https://www.w3.org/WAI/standards-guidelines/act/rules/0ssw9k/) a\n * scrollable region passes WCAG 2.1.1 Keyboard either by being focusable\n * itself or by having a focusable descendant. When focusable descendants\n * already exist, adding `tabindex=\"0\"` to the wrapper produces a\n * \"meaningless tab stop\" finding from manual auditors.\n *\n * The default return value is `true` so that, on the very first render\n * (before the layout effect has measured the DOM), components err on the\n * side of NOT adding a tab stop. The MutationObserver flips it to `false`\n * synchronously inside the layout effect if the wrapper is genuinely\n * empty of focusable descendants.\n *\n * @param {React.RefObject<HTMLElement | null>} ref - Ref pointing at the container whose subtree should be observed.\n * @returns {boolean} `true` while the subtree contains at least one focusable element, `false` otherwise.\n */\nexport function useHasFocusableDescendant(ref: React.RefObject<HTMLElement | null>): boolean {\n\tconst [hasFocusableDescendant, setHasFocusableDescendant] = React.useState(true);\n\n\tReact.useLayoutEffect(() => {\n\t\tconst element = ref.current;\n\t\tif (!element) return;\n\n\t\tconst measure = () => {\n\t\t\tconst next = element.querySelector(FOCUSABLE_ELEMENTS_SELECTOR) !== null;\n\t\t\tsetHasFocusableDescendant((prev) => (prev === next ? prev : next));\n\t\t};\n\n\t\tmeasure();\n\n\t\tconst observer = new MutationObserver(measure);\n\t\tobserver.observe(element, {\n\t\t\tattributeFilter: ['aria-disabled', 'disabled', 'hidden', 'tabindex', 'type'],\n\t\t\tattributes: true,\n\t\t\tchildList: true,\n\t\t\tsubtree: true\n\t\t});\n\n\t\treturn () => {\n\t\t\tobserver.disconnect();\n\t\t};\n\t}, [ref]);\n\n\treturn hasFocusableDescendant;\n}\n"],"names":["useHasFocusableDescendant","ref","_React$useState","React","useState","_React$useState2","_slicedToArray","hasFocusableDescendant","setHasFocusableDescendant","useLayoutEffect","element","current","measure","next","querySelector","FOCUSABLE_ELEMENTS_SELECTOR","prev","observer","MutationObserver","observe","attributeFilter","attributes","childList","subtree","disconnect"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,yBAAyBA,CAACC,GAAwC,EAAW;AAC5F,EAAA,IAAAC,eAAA,GAA4DC,gBAAK,CAACC,QAAQ,CAAC,IAAI,CAAC;IAAAC,gBAAA,GAAAC,uCAAA,CAAAJ,eAAA,EAAA,CAAA,CAAA;AAAzEK,IAAAA,sBAAsB,GAAAF,gBAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,yBAAyB,GAAAH,gBAAA,CAAA,CAAA,CAAA;EAExDF,gBAAK,CAACM,eAAe,CAAC,YAAM;AAC3B,IAAA,IAAMC,OAAO,GAAGT,GAAG,CAACU,OAAO;IAC3B,IAAI,CAACD,OAAO,EAAE;AAEd,IAAA,IAAME,OAAO,GAAG,SAAVA,OAAOA,GAAS;MACrB,IAAMC,IAAI,GAAGH,OAAO,CAACI,aAAa,CAACC,iCAA2B,CAAC,KAAK,IAAI;MACxEP,yBAAyB,CAAC,UAACQ,IAAI,EAAA;AAAA,QAAA,OAAMA,IAAI,KAAKH,IAAI,GAAGG,IAAI,GAAGH,IAAI;AAAA,MAAA,CAAC,CAAC;IACnE,CAAC;AAEDD,IAAAA,OAAO,EAAE;AAET,IAAA,IAAMK,QAAQ,GAAG,IAAIC,gBAAgB,CAACN,OAAO,CAAC;AAC9CK,IAAAA,QAAQ,CAACE,OAAO,CAACT,OAAO,EAAE;MACzBU,eAAe,EAAE,CAAC,eAAe,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC;AAC5EC,MAAAA,UAAU,EAAE,IAAI;AAChBC,MAAAA,SAAS,EAAE,IAAI;AACfC,MAAAA,OAAO,EAAE;AACV,KAAC,CAAC;AAEF,IAAA,OAAO,YAAM;MACZN,QAAQ,CAACO,UAAU,EAAE;IACtB,CAAC;AACF,EAAA,CAAC,EAAE,CAACvB,GAAG,CAAC,CAAC;AAET,EAAA,OAAOM,sBAAsB;AAC9B;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/hooks/useHasFocusableDescendant/index.ts"],"sourcesContent":["import * as React from 'react';\nimport { FOCUSABLE_ELEMENTS_SELECTOR } from '../../utils/trapFocus';\n\n/**\n * Tracks whether the subtree of the given ref contains at least one element\n * that participates in sequential focus navigation.\n *\n * Used by scrollable wrapper components (`MrlPanel`, `MrlModalContent`) to\n * decide whether the wrapper itself needs `tabindex=\"0\"`. Per ACT rule\n * 0ssw9k (https://www.w3.org/WAI/standards-guidelines/act/rules/0ssw9k/) a\n * scrollable region passes WCAG 2.1.1 Keyboard either by being focusable\n * itself or by having a focusable descendant. When focusable descendants\n * already exist, adding `tabindex=\"0\"` to the wrapper produces a\n * \"meaningless tab stop\" finding from manual auditors.\n *\n * The default return value is `true` so that, on the very first render\n * (before the layout effect has measured the DOM), components err on the\n * side of NOT adding a tab stop. The MutationObserver flips it to `false`\n * synchronously inside the layout effect if the wrapper is genuinely\n * empty of focusable descendants.\n *\n * @param {React.RefObject<HTMLElement | null>} ref - Ref pointing at the container whose subtree should be observed.\n * @returns {boolean} `true` while the subtree contains at least one focusable element, `false` otherwise.\n */\nexport function useHasFocusableDescendant(ref: React.RefObject<HTMLElement | null>): boolean {\n\tconst [hasFocusableDescendant, setHasFocusableDescendant] = React.useState(true);\n\n\tReact.useLayoutEffect(() => {\n\t\tconst element = ref.current;\n\t\tif (!element) return;\n\n\t\tconst measure = () => {\n\t\t\tconst next = element.querySelector(FOCUSABLE_ELEMENTS_SELECTOR) !== null;\n\t\t\tsetHasFocusableDescendant((prev) => (prev === next ? prev : next));\n\t\t};\n\n\t\tmeasure();\n\n\t\tconst observer = new MutationObserver(measure);\n\t\tobserver.observe(element, {\n\t\t\tattributeFilter: ['aria-disabled', 'disabled', 'hidden', 'tabindex', 'type'],\n\t\t\tattributes: true,\n\t\t\tchildList: true,\n\t\t\tsubtree: true\n\t\t});\n\n\t\treturn () => {\n\t\t\tobserver.disconnect();\n\t\t};\n\t}, [ref]);\n\n\treturn hasFocusableDescendant;\n}\n"],"names":["useHasFocusableDescendant","ref","_React$useState","React","useState","_React$useState2","_slicedToArray","hasFocusableDescendant","setHasFocusableDescendant","useLayoutEffect","element","current","measure","next","querySelector","FOCUSABLE_ELEMENTS_SELECTOR","prev","observer","MutationObserver","observe","attributeFilter","attributes","childList","subtree","disconnect"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,yBAAyBA,CAACC,GAAwC,EAAW;AAC5F,EAAA,IAAAC,eAAA,GAA4DC,gBAAK,CAACC,QAAQ,CAAC,IAAI,CAAC;IAAAC,gBAAA,GAAAC,uCAAA,CAAAJ,eAAA,EAAA,CAAA,CAAA;AAAzEK,IAAAA,sBAAsB,GAAAF,gBAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,yBAAyB,GAAAH,gBAAA,CAAA,CAAA,CAAA;EAExDF,gBAAK,CAACM,eAAe,CAAC,MAAM;AAC3B,IAAA,IAAMC,OAAO,GAAGT,GAAG,CAACU,OAAO;IAC3B,IAAI,CAACD,OAAO,EAAE;IAEd,IAAME,OAAO,GAAGA,MAAM;MACrB,IAAMC,IAAI,GAAGH,OAAO,CAACI,aAAa,CAACC,iCAA2B,CAAC,KAAK,IAAI;MACxEP,yBAAyB,CAAEQ,IAAI,IAAMA,IAAI,KAAKH,IAAI,GAAGG,IAAI,GAAGH,IAAK,CAAC;IACnE,CAAC;AAEDD,IAAAA,OAAO,EAAE;AAET,IAAA,IAAMK,QAAQ,GAAG,IAAIC,gBAAgB,CAACN,OAAO,CAAC;AAC9CK,IAAAA,QAAQ,CAACE,OAAO,CAACT,OAAO,EAAE;MACzBU,eAAe,EAAE,CAAC,eAAe,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC;AAC5EC,MAAAA,UAAU,EAAE,IAAI;AAChBC,MAAAA,SAAS,EAAE,IAAI;AACfC,MAAAA,OAAO,EAAE;AACV,KAAC,CAAC;AAEF,IAAA,OAAO,MAAM;MACZN,QAAQ,CAACO,UAAU,EAAE;IACtB,CAAC;AACF,EAAA,CAAC,EAAE,CAACvB,GAAG,CAAC,CAAC;AAET,EAAA,OAAOM,sBAAsB;AAC9B;;;;"}
@@ -3,7 +3,8 @@
3
3
  var _rollupPluginBabelHelpers = require('../../_virtual/_rollupPluginBabelHelpers.js');
4
4
  var React = require('react');
5
5
 
6
- function _interopNamespaceDefault(e) {
6
+ function _interopNamespace(e) {
7
+ if (e && e.__esModule) return e;
7
8
  var n = Object.create(null);
8
9
  if (e) {
9
10
  Object.keys(e).forEach(function (k) {
@@ -20,7 +21,7 @@ function _interopNamespaceDefault(e) {
20
21
  return Object.freeze(n);
21
22
  }
22
23
 
23
- var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
24
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
24
25
 
25
26
  /**
26
27
  * Return type for the `useScrollbarInfo` hook.
@@ -43,9 +44,9 @@ function useScrollbarInfo() {
43
44
  scrollbarInfo = _React$useState2[0],
44
45
  setScrollbarInfo = _React$useState2[1];
45
46
  var scrollableContainerRef = React__namespace.useRef(null);
46
- React__namespace.useLayoutEffect(function () {
47
+ React__namespace.useLayoutEffect(() => {
47
48
  if (!scrollableContainerRef.current) return;
48
- var observer = new ResizeObserver(function (_ref) {
49
+ var observer = new ResizeObserver(_ref => {
49
50
  var _ref2 = _rollupPluginBabelHelpers.slicedToArray(_ref, 1),
50
51
  entry = _ref2[0];
51
52
  if (!entry) return;
@@ -63,19 +64,19 @@ function useScrollbarInfo() {
63
64
  // Horizontal scrollbar height: difference between offsetHeight and clientHeight
64
65
  var horizontalScrollbarHeight = target.offsetHeight - target.clientHeight;
65
66
  setScrollbarInfo({
66
- hasHorizontalScrollbar: hasHorizontalScrollbar,
67
- hasVerticalScrollbar: hasVerticalScrollbar,
68
- horizontalScrollbarHeight: horizontalScrollbarHeight,
69
- verticalScrollbarWidth: verticalScrollbarWidth
67
+ hasHorizontalScrollbar,
68
+ hasVerticalScrollbar,
69
+ horizontalScrollbarHeight,
70
+ verticalScrollbarWidth
70
71
  });
71
72
  });
72
73
  observer.observe(scrollableContainerRef.current);
73
- return function () {
74
+ return () => {
74
75
  observer.disconnect();
75
76
  };
76
77
  }, []);
77
78
  return _rollupPluginBabelHelpers.objectSpread2(_rollupPluginBabelHelpers.objectSpread2({}, scrollbarInfo), {}, {
78
- scrollableContainerRef: scrollableContainerRef
79
+ scrollableContainerRef
79
80
  });
80
81
  }
81
82
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/hooks/useScrollbarInfo/index.ts"],"sourcesContent":["import * as React from 'react';\n\nexport type ScrollbarInfo = {\n\t/** Indicates if a horizontal scrollbar is present */\n\thasHorizontalScrollbar: boolean;\n\t/** Indicates if a vertical scrollbar is present */\n\thasVerticalScrollbar: boolean;\n\t/** Width in pixels of the vertical scrollbar (0 for overlay scrollbars) */\n\tverticalScrollbarWidth: number;\n\t/** Height in pixels of the horizontal scrollbar (0 for overlay scrollbars) */\n\thorizontalScrollbarHeight: number;\n};\n\n/**\n * Return type for the `useScrollbarInfo` hook.\n */\nexport type UseScrollbarInfoReturn<T extends HTMLElement> = ScrollbarInfo & {\n\tscrollableContainerRef: React.MutableRefObject<T | null>;\n};\n\n/**\n * Custom hook that provides information about the presence and dimensions of vertical and horizontal scrollbars\n * in a scrollable container.\n *\n * @returns {UseScrollbarInfoReturn} Returns the scrollbar information and a ref to attach to the scrollable container\n */\nexport function useScrollbarInfo<T extends HTMLElement>(): UseScrollbarInfoReturn<T> {\n\tconst [scrollbarInfo, setScrollbarInfo] = React.useState<ScrollbarInfo>({\n\t\thasHorizontalScrollbar: false,\n\t\thasVerticalScrollbar: false,\n\t\thorizontalScrollbarHeight: 0,\n\t\tverticalScrollbarWidth: 0\n\t});\n\n\tconst scrollableContainerRef = React.useRef<T | null>(null);\n\n\tReact.useLayoutEffect(() => {\n\t\tif (!scrollableContainerRef.current) return;\n\n\t\tconst observer = new ResizeObserver(([entry]) => {\n\t\t\tif (!entry) return;\n\t\t\tconst target = entry.target as HTMLElement;\n\n\t\t\t// Detects if scrollbars exist (works for both classic and overlay scrollbars)\n\t\t\t// Vertical scrollbar exists when content height exceeds visible height\n\t\t\tconst hasVerticalScrollbar = target.scrollHeight > target.clientHeight;\n\t\t\t// Horizontal scrollbar exists when content width exceeds visible width\n\t\t\tconst hasHorizontalScrollbar = target.scrollWidth > target.clientWidth;\n\n\t\t\t// Gets dimensions only for classic scrollbars that take up layout space\n\t\t\t// Vertical scrollbar width: difference between offsetWidth and clientWidth\n\t\t\tconst verticalScrollbarWidth = target.offsetWidth - target.clientWidth;\n\t\t\t// Horizontal scrollbar height: difference between offsetHeight and clientHeight\n\t\t\tconst horizontalScrollbarHeight = target.offsetHeight - target.clientHeight;\n\n\t\t\tsetScrollbarInfo({\n\t\t\t\thasHorizontalScrollbar,\n\t\t\t\thasVerticalScrollbar,\n\t\t\t\thorizontalScrollbarHeight,\n\t\t\t\tverticalScrollbarWidth\n\t\t\t});\n\t\t});\n\n\t\tobserver.observe(scrollableContainerRef.current);\n\n\t\treturn () => {\n\t\t\tobserver.disconnect();\n\t\t};\n\t}, []);\n\n\treturn {\n\t\t...scrollbarInfo,\n\t\tscrollableContainerRef\n\t};\n}\n"],"names":["useScrollbarInfo","_React$useState","React","useState","hasHorizontalScrollbar","hasVerticalScrollbar","horizontalScrollbarHeight","verticalScrollbarWidth","_React$useState2","_slicedToArray","scrollbarInfo","setScrollbarInfo","scrollableContainerRef","useRef","useLayoutEffect","current","observer","ResizeObserver","_ref","_ref2","entry","target","scrollHeight","clientHeight","scrollWidth","clientWidth","offsetWidth","offsetHeight","observe","disconnect","_objectSpread"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAaA;AACA;AACA;;AAKA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,gBAAgBA,GAAqD;AACpF,EAAA,IAAAC,eAAA,GAA0CC,gBAAK,CAACC,QAAQ,CAAgB;AACvEC,MAAAA,sBAAsB,EAAE,KAAK;AAC7BC,MAAAA,oBAAoB,EAAE,KAAK;AAC3BC,MAAAA,yBAAyB,EAAE,CAAC;AAC5BC,MAAAA,sBAAsB,EAAE;AACzB,KAAC,CAAC;IAAAC,gBAAA,GAAAC,uCAAA,CAAAR,eAAA,EAAA,CAAA,CAAA;AALKS,IAAAA,aAAa,GAAAF,gBAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,gBAAgB,GAAAH,gBAAA,CAAA,CAAA,CAAA;AAOtC,EAAA,IAAMI,sBAAsB,GAAGV,gBAAK,CAACW,MAAM,CAAW,IAAI,CAAC;EAE3DX,gBAAK,CAACY,eAAe,CAAC,YAAM;AAC3B,IAAA,IAAI,CAACF,sBAAsB,CAACG,OAAO,EAAE;AAErC,IAAA,IAAMC,QAAQ,GAAG,IAAIC,cAAc,CAAC,UAAAC,IAAA,EAAa;AAAA,MAAA,IAAAC,KAAA,GAAAV,uCAAA,CAAAS,IAAA,EAAA,CAAA,CAAA;AAAXE,QAAAA,KAAK,GAAAD,KAAA,CAAA,CAAA,CAAA;MAC1C,IAAI,CAACC,KAAK,EAAE;AACZ,MAAA,IAAMC,MAAM,GAAGD,KAAK,CAACC,MAAqB;;AAE1C;AACA;MACA,IAAMhB,oBAAoB,GAAGgB,MAAM,CAACC,YAAY,GAAGD,MAAM,CAACE,YAAY;AACtE;MACA,IAAMnB,sBAAsB,GAAGiB,MAAM,CAACG,WAAW,GAAGH,MAAM,CAACI,WAAW;;AAEtE;AACA;MACA,IAAMlB,sBAAsB,GAAGc,MAAM,CAACK,WAAW,GAAGL,MAAM,CAACI,WAAW;AACtE;MACA,IAAMnB,yBAAyB,GAAGe,MAAM,CAACM,YAAY,GAAGN,MAAM,CAACE,YAAY;AAE3EZ,MAAAA,gBAAgB,CAAC;AAChBP,QAAAA,sBAAsB,EAAtBA,sBAAsB;AACtBC,QAAAA,oBAAoB,EAApBA,oBAAoB;AACpBC,QAAAA,yBAAyB,EAAzBA,yBAAyB;AACzBC,QAAAA,sBAAsB,EAAtBA;AACD,OAAC,CAAC;AACH,IAAA,CAAC,CAAC;AAEFS,IAAAA,QAAQ,CAACY,OAAO,CAAChB,sBAAsB,CAACG,OAAO,CAAC;AAEhD,IAAA,OAAO,YAAM;MACZC,QAAQ,CAACa,UAAU,EAAE;IACtB,CAAC;EACF,CAAC,EAAE,EAAE,CAAC;AAEN,EAAA,OAAAC,uCAAA,CAAAA,uCAAA,CAAA,EAAA,EACIpB,aAAa,CAAA,EAAA,EAAA,EAAA;AAChBE,IAAAA,sBAAsB,EAAtBA;AAAsB,GAAA,CAAA;AAExB;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/hooks/useScrollbarInfo/index.ts"],"sourcesContent":["import * as React from 'react';\n\nexport type ScrollbarInfo = {\n\t/** Indicates if a horizontal scrollbar is present */\n\thasHorizontalScrollbar: boolean;\n\t/** Indicates if a vertical scrollbar is present */\n\thasVerticalScrollbar: boolean;\n\t/** Width in pixels of the vertical scrollbar (0 for overlay scrollbars) */\n\tverticalScrollbarWidth: number;\n\t/** Height in pixels of the horizontal scrollbar (0 for overlay scrollbars) */\n\thorizontalScrollbarHeight: number;\n};\n\n/**\n * Return type for the `useScrollbarInfo` hook.\n */\nexport type UseScrollbarInfoReturn<T extends HTMLElement> = ScrollbarInfo & {\n\tscrollableContainerRef: React.MutableRefObject<T | null>;\n};\n\n/**\n * Custom hook that provides information about the presence and dimensions of vertical and horizontal scrollbars\n * in a scrollable container.\n *\n * @returns {UseScrollbarInfoReturn} Returns the scrollbar information and a ref to attach to the scrollable container\n */\nexport function useScrollbarInfo<T extends HTMLElement>(): UseScrollbarInfoReturn<T> {\n\tconst [scrollbarInfo, setScrollbarInfo] = React.useState<ScrollbarInfo>({\n\t\thasHorizontalScrollbar: false,\n\t\thasVerticalScrollbar: false,\n\t\thorizontalScrollbarHeight: 0,\n\t\tverticalScrollbarWidth: 0\n\t});\n\n\tconst scrollableContainerRef = React.useRef<T | null>(null);\n\n\tReact.useLayoutEffect(() => {\n\t\tif (!scrollableContainerRef.current) return;\n\n\t\tconst observer = new ResizeObserver(([entry]) => {\n\t\t\tif (!entry) return;\n\t\t\tconst target = entry.target as HTMLElement;\n\n\t\t\t// Detects if scrollbars exist (works for both classic and overlay scrollbars)\n\t\t\t// Vertical scrollbar exists when content height exceeds visible height\n\t\t\tconst hasVerticalScrollbar = target.scrollHeight > target.clientHeight;\n\t\t\t// Horizontal scrollbar exists when content width exceeds visible width\n\t\t\tconst hasHorizontalScrollbar = target.scrollWidth > target.clientWidth;\n\n\t\t\t// Gets dimensions only for classic scrollbars that take up layout space\n\t\t\t// Vertical scrollbar width: difference between offsetWidth and clientWidth\n\t\t\tconst verticalScrollbarWidth = target.offsetWidth - target.clientWidth;\n\t\t\t// Horizontal scrollbar height: difference between offsetHeight and clientHeight\n\t\t\tconst horizontalScrollbarHeight = target.offsetHeight - target.clientHeight;\n\n\t\t\tsetScrollbarInfo({\n\t\t\t\thasHorizontalScrollbar,\n\t\t\t\thasVerticalScrollbar,\n\t\t\t\thorizontalScrollbarHeight,\n\t\t\t\tverticalScrollbarWidth\n\t\t\t});\n\t\t});\n\n\t\tobserver.observe(scrollableContainerRef.current);\n\n\t\treturn () => {\n\t\t\tobserver.disconnect();\n\t\t};\n\t}, []);\n\n\treturn {\n\t\t...scrollbarInfo,\n\t\tscrollableContainerRef\n\t};\n}\n"],"names":["useScrollbarInfo","_React$useState","React","useState","hasHorizontalScrollbar","hasVerticalScrollbar","horizontalScrollbarHeight","verticalScrollbarWidth","_React$useState2","_slicedToArray","scrollbarInfo","setScrollbarInfo","scrollableContainerRef","useRef","useLayoutEffect","current","observer","ResizeObserver","_ref","_ref2","entry","target","scrollHeight","clientHeight","scrollWidth","clientWidth","offsetWidth","offsetHeight","observe","disconnect","_objectSpread"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAaA;AACA;AACA;;AAKA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,gBAAgBA,GAAqD;AACpF,EAAA,IAAAC,eAAA,GAA0CC,gBAAK,CAACC,QAAQ,CAAgB;AACvEC,MAAAA,sBAAsB,EAAE,KAAK;AAC7BC,MAAAA,oBAAoB,EAAE,KAAK;AAC3BC,MAAAA,yBAAyB,EAAE,CAAC;AAC5BC,MAAAA,sBAAsB,EAAE;AACzB,KAAC,CAAC;IAAAC,gBAAA,GAAAC,uCAAA,CAAAR,eAAA,EAAA,CAAA,CAAA;AALKS,IAAAA,aAAa,GAAAF,gBAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,gBAAgB,GAAAH,gBAAA,CAAA,CAAA,CAAA;AAOtC,EAAA,IAAMI,sBAAsB,GAAGV,gBAAK,CAACW,MAAM,CAAW,IAAI,CAAC;EAE3DX,gBAAK,CAACY,eAAe,CAAC,MAAM;AAC3B,IAAA,IAAI,CAACF,sBAAsB,CAACG,OAAO,EAAE;AAErC,IAAA,IAAMC,QAAQ,GAAG,IAAIC,cAAc,CAACC,IAAA,IAAa;AAAA,MAAA,IAAAC,KAAA,GAAAV,uCAAA,CAAAS,IAAA,EAAA,CAAA,CAAA;AAAXE,QAAAA,KAAK,GAAAD,KAAA,CAAA,CAAA,CAAA;MAC1C,IAAI,CAACC,KAAK,EAAE;AACZ,MAAA,IAAMC,MAAM,GAAGD,KAAK,CAACC,MAAqB;;AAE1C;AACA;MACA,IAAMhB,oBAAoB,GAAGgB,MAAM,CAACC,YAAY,GAAGD,MAAM,CAACE,YAAY;AACtE;MACA,IAAMnB,sBAAsB,GAAGiB,MAAM,CAACG,WAAW,GAAGH,MAAM,CAACI,WAAW;;AAEtE;AACA;MACA,IAAMlB,sBAAsB,GAAGc,MAAM,CAACK,WAAW,GAAGL,MAAM,CAACI,WAAW;AACtE;MACA,IAAMnB,yBAAyB,GAAGe,MAAM,CAACM,YAAY,GAAGN,MAAM,CAACE,YAAY;AAE3EZ,MAAAA,gBAAgB,CAAC;QAChBP,sBAAsB;QACtBC,oBAAoB;QACpBC,yBAAyB;AACzBC,QAAAA;AACD,OAAC,CAAC;AACH,IAAA,CAAC,CAAC;AAEFS,IAAAA,QAAQ,CAACY,OAAO,CAAChB,sBAAsB,CAACG,OAAO,CAAC;AAEhD,IAAA,OAAO,MAAM;MACZC,QAAQ,CAACa,UAAU,EAAE;IACtB,CAAC;EACF,CAAC,EAAE,EAAE,CAAC;AAEN,EAAA,OAAAC,uCAAA,CAAAA,uCAAA,CAAA,EAAA,EACIpB,aAAa,CAAA,EAAA,EAAA,EAAA;AAChBE,IAAAA;AAAsB,GAAA,CAAA;AAExB;;;;"}
@@ -5,6 +5,10 @@ var React = require('react');
5
5
  var utilities = require('./utilities.js');
6
6
  var debounce = require('lodash.debounce');
7
7
 
8
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
9
+
10
+ var debounce__default = /*#__PURE__*/_interopDefault(debounce);
11
+
8
12
  /**
9
13
  * useTriggerPosition hook.
10
14
  *
@@ -37,21 +41,19 @@ var useTriggerPosition = function useTriggerPosition(triggerRef, elementRef, men
37
41
  setMenuPosition = _useState2[1];
38
42
 
39
43
  // Memoize alignment so it only recalculates when specific props change
40
- var alignment = React.useMemo(function () {
41
- return {
42
- align: menuAlign.align,
43
- customPosition: menuAlign.customPosition,
44
- position: menuAlign.position
45
- };
46
- }, [menuAlign.align, menuAlign.position, menuAlign.customPosition]);
44
+ var alignment = React.useMemo(() => ({
45
+ align: menuAlign.align,
46
+ customPosition: menuAlign.customPosition,
47
+ position: menuAlign.position
48
+ }), [menuAlign.align, menuAlign.position, menuAlign.customPosition]);
47
49
 
48
50
  /**
49
51
  * Calculates and updates the menu position relative to the trigger.
50
52
  * Uses requestAnimationFrame to ensure layout is stable before measuring.
51
53
  */
52
- var updatePosition = React.useCallback(function () {
54
+ var updatePosition = React.useCallback(() => {
53
55
  if (!elementRef.current || !isElementVisible) return;
54
- requestAnimationFrame(function () {
56
+ requestAnimationFrame(() => {
55
57
  var _triggerRef$current, _elementRef$current;
56
58
  var triggerRect = triggerRef === null || triggerRef === void 0 ? void 0 : (_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 ? void 0 : _triggerRef$current.getBoundingClientRect();
57
59
  var elementRect = (_elementRef$current = elementRef.current) === null || _elementRef$current === void 0 ? void 0 : _elementRef$current.getBoundingClientRect();
@@ -61,7 +63,7 @@ var useTriggerPosition = function useTriggerPosition(triggerRef, elementRef, men
61
63
  var newPosition = utilities.getPosition(alignment, offset, elementRect, triggerRect, disableFlipping);
62
64
 
63
65
  // Only update state if the position has changed
64
- setMenuPosition(function (prevPosition) {
66
+ setMenuPosition(prevPosition => {
65
67
  if (prevPosition.left !== newPosition.left || prevPosition.top !== newPosition.top) {
66
68
  return newPosition;
67
69
  }
@@ -74,10 +76,8 @@ var useTriggerPosition = function useTriggerPosition(triggerRef, elementRef, men
74
76
  * Debounced version of the updatePosition function used for scroll and resize events.
75
77
  * 5ms debounce gives a balance between performance and responsiveness.
76
78
  */
77
- var debouncedUpdatePosition = React.useMemo(function () {
78
- return debounce(updatePosition, 5);
79
- }, [updatePosition]);
80
- React.useEffect(function () {
79
+ var debouncedUpdatePosition = React.useMemo(() => debounce__default.default(updatePosition, 5), [updatePosition]);
80
+ React.useEffect(() => {
81
81
  if (disable) return;
82
82
  var currentElement = elementRef.current;
83
83
 
@@ -91,8 +91,8 @@ var useTriggerPosition = function useTriggerPosition(triggerRef, elementRef, men
91
91
  * Observers need to be more aggressively debounced to prevent loops,
92
92
  * while event listeners (resize/scroll) should update positioning more responsively.
93
93
  */
94
- var resizeObserver = new ResizeObserver(debounce(updatePosition));
95
- var mutationObserver = new MutationObserver(debounce(updatePosition));
94
+ var resizeObserver = new ResizeObserver(debounce__default.default(updatePosition));
95
+ var mutationObserver = new MutationObserver(debounce__default.default(updatePosition));
96
96
 
97
97
  // Observe changes in size and style/className
98
98
  if (currentElement) {
@@ -111,7 +111,7 @@ var useTriggerPosition = function useTriggerPosition(triggerRef, elementRef, men
111
111
  }
112
112
 
113
113
  // Cleanup observers and listeners on unmount or re-render
114
- return function () {
114
+ return () => {
115
115
  if (currentElement) {
116
116
  resizeObserver.unobserve(currentElement);
117
117
  mutationObserver.disconnect();
@@ -126,12 +126,10 @@ var useTriggerPosition = function useTriggerPosition(triggerRef, elementRef, men
126
126
  * but its size is not immediately available in the first frame.
127
127
  * A short timeout ensures we recalculate the position once layout stabilizes.
128
128
  */
129
- React.useEffect(function () {
129
+ React.useEffect(() => {
130
130
  if (!disable && isElementVisible) {
131
131
  var timeoutId = setTimeout(updatePosition, 10);
132
- return function () {
133
- return clearTimeout(timeoutId);
134
- };
132
+ return () => clearTimeout(timeoutId);
135
133
  }
136
134
  }, [isElementVisible, disable, updatePosition]);
137
135
 
@@ -139,7 +137,7 @@ var useTriggerPosition = function useTriggerPosition(triggerRef, elementRef, men
139
137
  * useLayoutEffect ensures the position is recalculated during the layout phase,
140
138
  * just after DOM mutations but before the browser paints.
141
139
  */
142
- React.useLayoutEffect(function () {
140
+ React.useLayoutEffect(() => {
143
141
  if (!disable && isElementVisible && elementRef.current && triggerRef !== null && triggerRef !== void 0 && triggerRef.current) {
144
142
  updatePosition();
145
143
  requestAnimationFrame(updatePosition);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/hooks/useTriggerPosition/index.tsx"],"sourcesContent":["import { useMemo, useState, RefObject, useEffect, useCallback, useLayoutEffect } from 'react';\nimport { Alignment, Position } from './constants';\nimport { getPosition } from './utilities';\nimport debounce from 'lodash.debounce';\n\n/**\n * useTriggerPosition hook.\n *\n * Calculates the position of a menu element based on the alignment settings relative to a trigger element.\n *\n * @param triggerRef - Reference to the DOM element that triggers the menu.\n * @param elementRef - Reference to the DOM element that is the menu.\n * @param menuAlign - The alignment configuration of the menu.\n * @param isElementVisible - Tells the hook if the element is visible. If false, the hook will not calculate the position.\n * @param menuOffset - The offset of the menu from the trigger element.\n * @param disable - Whether to disable the hook.\n * @param disableFlipping - Whether to disable flipping logic when the menu overflows the screen.\n * @returns {Position} The calculated position of the menu element.\n */\nexport const useTriggerPosition = (\n\ttriggerRef: RefObject<HTMLElement> | undefined,\n\telementRef: RefObject<HTMLElement>,\n\tmenuAlign: Alignment,\n\tisElementVisible: boolean = true,\n\tmenuOffset: number = 10,\n\tdisable = false,\n\tdisableFlipping = false\n): Position => {\n\tconst offset = menuOffset;\n\n\t// Holds the current calculated position of the menu\n\tconst [menuPosition, setMenuPosition] = useState<Position>({ flipped: false, left: 0, top: 0 });\n\n\t// Memoize alignment so it only recalculates when specific props change\n\tconst alignment = useMemo(\n\t\t() => ({\n\t\t\talign: menuAlign.align,\n\t\t\tcustomPosition: menuAlign.customPosition,\n\t\t\tposition: menuAlign.position\n\t\t}),\n\t\t[menuAlign.align, menuAlign.position, menuAlign.customPosition]\n\t);\n\n\t/**\n\t * Calculates and updates the menu position relative to the trigger.\n\t * Uses requestAnimationFrame to ensure layout is stable before measuring.\n\t */\n\tconst updatePosition = useCallback(() => {\n\t\tif (!elementRef.current || !isElementVisible) return;\n\n\t\trequestAnimationFrame(() => {\n\t\t\tconst triggerRect = triggerRef?.current?.getBoundingClientRect();\n\t\t\tconst elementRect = elementRef.current?.getBoundingClientRect();\n\n\t\t\t// Don't update if the element is not visible/rendered\n\t\t\tif (!elementRect || elementRect.height === 0 || elementRect.width === 0) return;\n\n\t\t\tconst newPosition = getPosition(alignment, offset, elementRect, triggerRect, disableFlipping);\n\n\t\t\t// Only update state if the position has changed\n\t\t\tsetMenuPosition((prevPosition) => {\n\t\t\t\tif (prevPosition.left !== newPosition.left || prevPosition.top !== newPosition.top) {\n\t\t\t\t\treturn newPosition;\n\t\t\t\t}\n\t\t\t\treturn prevPosition;\n\t\t\t});\n\t\t});\n\t}, [alignment, elementRef, isElementVisible, offset, triggerRef, disableFlipping]);\n\n\t/**\n\t * Debounced version of the updatePosition function used for scroll and resize events.\n\t * 5ms debounce gives a balance between performance and responsiveness.\n\t */\n\tconst debouncedUpdatePosition = useMemo(() => debounce(updatePosition, 5), [updatePosition]);\n\n\tuseEffect(() => {\n\t\tif (disable) return;\n\n\t\tconst currentElement = elementRef.current;\n\n\t\t/**\n\t\t * We need to debounce the resize observer to prevent \"resize loops\"\n\t\t * There are instances where the ResizeObserver will trigger a resize event\n\t\t * before the browser has painted, which causes a loop of resize events\n\t\t * and can throw errors or performance issues.\n\t\t *\n\t\t * The observers are purposefully using a different debounce than the event listeners.\n\t\t * Observers need to be more aggressively debounced to prevent loops,\n\t\t * while event listeners (resize/scroll) should update positioning more responsively.\n\t\t */\n\t\tconst resizeObserver = new ResizeObserver(debounce(updatePosition));\n\t\tconst mutationObserver = new MutationObserver(debounce(updatePosition));\n\n\t\t// Observe changes in size and style/className\n\t\tif (currentElement) {\n\t\t\tresizeObserver.observe(currentElement);\n\t\t\tmutationObserver.observe(currentElement, {\n\t\t\t\tattributeFilter: ['style', 'class'],\n\t\t\t\tattributes: true\n\t\t\t});\n\t\t}\n\n\t\t// Add listeners on open to respond to browser resizing and scrolling\n\t\tif (isElementVisible) {\n\t\t\tupdatePosition();\n\t\t\twindow.addEventListener('resize', debouncedUpdatePosition);\n\t\t\twindow.addEventListener('scroll', debouncedUpdatePosition);\n\t\t}\n\n\t\t// Cleanup observers and listeners on unmount or re-render\n\t\treturn () => {\n\t\t\tif (currentElement) {\n\t\t\t\tresizeObserver.unobserve(currentElement);\n\t\t\t\tmutationObserver.disconnect();\n\t\t\t}\n\t\t\twindow.removeEventListener('resize', debouncedUpdatePosition);\n\t\t\twindow.removeEventListener('scroll', debouncedUpdatePosition);\n\t\t};\n\t}, [\n\t\tdisable,\n\t\ttriggerRef,\n\t\telementRef,\n\t\talignment,\n\t\toffset,\n\t\tisElementVisible,\n\t\tupdatePosition,\n\t\tdebouncedUpdatePosition\n\t]);\n\n\t/**\n\t * This effect handles an edge case where the menu is rendered,\n\t * but its size is not immediately available in the first frame.\n\t * A short timeout ensures we recalculate the position once layout stabilizes.\n\t */\n\tuseEffect(() => {\n\t\tif (!disable && isElementVisible) {\n\t\t\tconst timeoutId = setTimeout(updatePosition, 10);\n\n\t\t\treturn () => clearTimeout(timeoutId);\n\t\t}\n\t}, [isElementVisible, disable, updatePosition]);\n\n\t/**\n\t * useLayoutEffect ensures the position is recalculated during the layout phase,\n\t * just after DOM mutations but before the browser paints.\n\t */\n\tuseLayoutEffect(() => {\n\t\tif (!disable && isElementVisible && elementRef.current && triggerRef?.current) {\n\t\t\tupdatePosition();\n\t\t\trequestAnimationFrame(updatePosition);\n\t\t}\n\t}, [isElementVisible, updatePosition, disable, elementRef, triggerRef]);\n\n\treturn menuPosition;\n};\n"],"names":["useTriggerPosition","triggerRef","elementRef","menuAlign","isElementVisible","arguments","length","undefined","menuOffset","disable","disableFlipping","offset","_useState","useState","flipped","left","top","_useState2","_slicedToArray","menuPosition","setMenuPosition","alignment","useMemo","align","customPosition","position","updatePosition","useCallback","current","requestAnimationFrame","_triggerRef$current","_elementRef$current","triggerRect","getBoundingClientRect","elementRect","height","width","newPosition","getPosition","prevPosition","debouncedUpdatePosition","debounce","useEffect","currentElement","resizeObserver","ResizeObserver","mutationObserver","MutationObserver","observe","attributeFilter","attributes","window","addEventListener","unobserve","disconnect","removeEventListener","timeoutId","setTimeout","clearTimeout","useLayoutEffect"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/hooks/useTriggerPosition/index.tsx"],"sourcesContent":["import { useMemo, useState, RefObject, useEffect, useCallback, useLayoutEffect } from 'react';\nimport { Alignment, Position } from './constants';\nimport { getPosition } from './utilities';\nimport debounce from 'lodash.debounce';\n\n/**\n * useTriggerPosition hook.\n *\n * Calculates the position of a menu element based on the alignment settings relative to a trigger element.\n *\n * @param triggerRef - Reference to the DOM element that triggers the menu.\n * @param elementRef - Reference to the DOM element that is the menu.\n * @param menuAlign - The alignment configuration of the menu.\n * @param isElementVisible - Tells the hook if the element is visible. If false, the hook will not calculate the position.\n * @param menuOffset - The offset of the menu from the trigger element.\n * @param disable - Whether to disable the hook.\n * @param disableFlipping - Whether to disable flipping logic when the menu overflows the screen.\n * @returns {Position} The calculated position of the menu element.\n */\nexport const useTriggerPosition = (\n\ttriggerRef: RefObject<HTMLElement> | undefined,\n\telementRef: RefObject<HTMLElement>,\n\tmenuAlign: Alignment,\n\tisElementVisible: boolean = true,\n\tmenuOffset: number = 10,\n\tdisable = false,\n\tdisableFlipping = false\n): Position => {\n\tconst offset = menuOffset;\n\n\t// Holds the current calculated position of the menu\n\tconst [menuPosition, setMenuPosition] = useState<Position>({ flipped: false, left: 0, top: 0 });\n\n\t// Memoize alignment so it only recalculates when specific props change\n\tconst alignment = useMemo(\n\t\t() => ({\n\t\t\talign: menuAlign.align,\n\t\t\tcustomPosition: menuAlign.customPosition,\n\t\t\tposition: menuAlign.position\n\t\t}),\n\t\t[menuAlign.align, menuAlign.position, menuAlign.customPosition]\n\t);\n\n\t/**\n\t * Calculates and updates the menu position relative to the trigger.\n\t * Uses requestAnimationFrame to ensure layout is stable before measuring.\n\t */\n\tconst updatePosition = useCallback(() => {\n\t\tif (!elementRef.current || !isElementVisible) return;\n\n\t\trequestAnimationFrame(() => {\n\t\t\tconst triggerRect = triggerRef?.current?.getBoundingClientRect();\n\t\t\tconst elementRect = elementRef.current?.getBoundingClientRect();\n\n\t\t\t// Don't update if the element is not visible/rendered\n\t\t\tif (!elementRect || elementRect.height === 0 || elementRect.width === 0) return;\n\n\t\t\tconst newPosition = getPosition(alignment, offset, elementRect, triggerRect, disableFlipping);\n\n\t\t\t// Only update state if the position has changed\n\t\t\tsetMenuPosition((prevPosition) => {\n\t\t\t\tif (prevPosition.left !== newPosition.left || prevPosition.top !== newPosition.top) {\n\t\t\t\t\treturn newPosition;\n\t\t\t\t}\n\t\t\t\treturn prevPosition;\n\t\t\t});\n\t\t});\n\t}, [alignment, elementRef, isElementVisible, offset, triggerRef, disableFlipping]);\n\n\t/**\n\t * Debounced version of the updatePosition function used for scroll and resize events.\n\t * 5ms debounce gives a balance between performance and responsiveness.\n\t */\n\tconst debouncedUpdatePosition = useMemo(() => debounce(updatePosition, 5), [updatePosition]);\n\n\tuseEffect(() => {\n\t\tif (disable) return;\n\n\t\tconst currentElement = elementRef.current;\n\n\t\t/**\n\t\t * We need to debounce the resize observer to prevent \"resize loops\"\n\t\t * There are instances where the ResizeObserver will trigger a resize event\n\t\t * before the browser has painted, which causes a loop of resize events\n\t\t * and can throw errors or performance issues.\n\t\t *\n\t\t * The observers are purposefully using a different debounce than the event listeners.\n\t\t * Observers need to be more aggressively debounced to prevent loops,\n\t\t * while event listeners (resize/scroll) should update positioning more responsively.\n\t\t */\n\t\tconst resizeObserver = new ResizeObserver(debounce(updatePosition));\n\t\tconst mutationObserver = new MutationObserver(debounce(updatePosition));\n\n\t\t// Observe changes in size and style/className\n\t\tif (currentElement) {\n\t\t\tresizeObserver.observe(currentElement);\n\t\t\tmutationObserver.observe(currentElement, {\n\t\t\t\tattributeFilter: ['style', 'class'],\n\t\t\t\tattributes: true\n\t\t\t});\n\t\t}\n\n\t\t// Add listeners on open to respond to browser resizing and scrolling\n\t\tif (isElementVisible) {\n\t\t\tupdatePosition();\n\t\t\twindow.addEventListener('resize', debouncedUpdatePosition);\n\t\t\twindow.addEventListener('scroll', debouncedUpdatePosition);\n\t\t}\n\n\t\t// Cleanup observers and listeners on unmount or re-render\n\t\treturn () => {\n\t\t\tif (currentElement) {\n\t\t\t\tresizeObserver.unobserve(currentElement);\n\t\t\t\tmutationObserver.disconnect();\n\t\t\t}\n\t\t\twindow.removeEventListener('resize', debouncedUpdatePosition);\n\t\t\twindow.removeEventListener('scroll', debouncedUpdatePosition);\n\t\t};\n\t}, [\n\t\tdisable,\n\t\ttriggerRef,\n\t\telementRef,\n\t\talignment,\n\t\toffset,\n\t\tisElementVisible,\n\t\tupdatePosition,\n\t\tdebouncedUpdatePosition\n\t]);\n\n\t/**\n\t * This effect handles an edge case where the menu is rendered,\n\t * but its size is not immediately available in the first frame.\n\t * A short timeout ensures we recalculate the position once layout stabilizes.\n\t */\n\tuseEffect(() => {\n\t\tif (!disable && isElementVisible) {\n\t\t\tconst timeoutId = setTimeout(updatePosition, 10);\n\n\t\t\treturn () => clearTimeout(timeoutId);\n\t\t}\n\t}, [isElementVisible, disable, updatePosition]);\n\n\t/**\n\t * useLayoutEffect ensures the position is recalculated during the layout phase,\n\t * just after DOM mutations but before the browser paints.\n\t */\n\tuseLayoutEffect(() => {\n\t\tif (!disable && isElementVisible && elementRef.current && triggerRef?.current) {\n\t\t\tupdatePosition();\n\t\t\trequestAnimationFrame(updatePosition);\n\t\t}\n\t}, [isElementVisible, updatePosition, disable, elementRef, triggerRef]);\n\n\treturn menuPosition;\n};\n"],"names":["useTriggerPosition","triggerRef","elementRef","menuAlign","isElementVisible","arguments","length","undefined","menuOffset","disable","disableFlipping","offset","_useState","useState","flipped","left","top","_useState2","_slicedToArray","menuPosition","setMenuPosition","alignment","useMemo","align","customPosition","position","updatePosition","useCallback","current","requestAnimationFrame","_triggerRef$current","_elementRef$current","triggerRect","getBoundingClientRect","elementRect","height","width","newPosition","getPosition","prevPosition","debouncedUpdatePosition","debounce","useEffect","currentElement","resizeObserver","ResizeObserver","mutationObserver","MutationObserver","observe","attributeFilter","attributes","window","addEventListener","unobserve","disconnect","removeEventListener","timeoutId","setTimeout","clearTimeout","useLayoutEffect"],"mappings":"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"}
@@ -50,7 +50,7 @@ var getPosition = function getPosition(menuAlign, offset, elementRect, triggerRe
50
50
  * @param {boolean} disableFlipping - Whether to disable flipping logic.
51
51
  * @returns {Position} The calculated position of the menu.
52
52
  */
53
- var positionHorizontal = function positionHorizontal(position, align, offset, elementRect, triggerRect, screenWidth, screenHeight, disableFlipping) {
53
+ var positionHorizontal = (position, align, offset, elementRect, triggerRect, screenWidth, screenHeight, disableFlipping) => {
54
54
  var isLeft = position === 'left';
55
55
  var flipped = false;
56
56
  var containerSide = isLeft ? triggerRect.left - elementRect.width - offset : triggerRect.right + offset;
@@ -76,9 +76,9 @@ var positionHorizontal = function positionHorizontal(position, align, offset, el
76
76
  var top = calculateVerticalPosition(triggerRect, elementRect, align);
77
77
  top = adjustForVerticalBounds(top, elementRect, screenHeight);
78
78
  return {
79
- flipped: flipped,
79
+ flipped,
80
80
  left: containerSide,
81
- top: top
81
+ top
82
82
  };
83
83
  };
84
84
 
@@ -96,7 +96,7 @@ var positionHorizontal = function positionHorizontal(position, align, offset, el
96
96
  * @param {boolean} disableFlipping - Whether to disable flipping logic.
97
97
  * @returns {Position} The calculated position of the menu.
98
98
  */
99
- var positionVertical = function positionVertical(position, align, offset, elementRect, triggerRect, screenWidth, screenHeight, disableFlipping) {
99
+ var positionVertical = (position, align, offset, elementRect, triggerRect, screenWidth, screenHeight, disableFlipping) => {
100
100
  var isTop = position === 'top';
101
101
  var flipped = false;
102
102
  var containerSide = isTop ? triggerRect.top - elementRect.height - offset : triggerRect.bottom + offset;
@@ -121,8 +121,8 @@ var positionVertical = function positionVertical(position, align, offset, elemen
121
121
  }
122
122
  var left = calculateHorizontalPosition(triggerRect, elementRect, align, screenWidth);
123
123
  return {
124
- flipped: flipped,
125
- left: left,
124
+ flipped,
125
+ left,
126
126
  top: containerSide
127
127
  };
128
128
  };
@@ -136,7 +136,7 @@ var positionVertical = function positionVertical(position, align, offset, elemen
136
136
  * @param {number} screenWidth - The width of the viewport.
137
137
  * @returns {number} The calculated horizontal position.
138
138
  */
139
- var calculateHorizontalPosition = function calculateHorizontalPosition(triggerRect, elementRect, align, screenWidth) {
139
+ var calculateHorizontalPosition = (triggerRect, elementRect, align, screenWidth) => {
140
140
  var position;
141
141
  switch (align) {
142
142
  case 'start':
@@ -166,7 +166,7 @@ var calculateHorizontalPosition = function calculateHorizontalPosition(triggerRe
166
166
  * @param {'start' | 'end' | 'center'} align - The vertical alignment.
167
167
  * @returns {number} The calculated vertical position.
168
168
  */
169
- var calculateVerticalPosition = function calculateVerticalPosition(triggerRect, elementRect, align) {
169
+ var calculateVerticalPosition = (triggerRect, elementRect, align) => {
170
170
  switch (align) {
171
171
  case 'start':
172
172
  return triggerRect.top;
@@ -184,7 +184,7 @@ var calculateVerticalPosition = function calculateVerticalPosition(triggerRect,
184
184
  * @param {Alignment} menuAlign - The alignment configuration for the menu.
185
185
  * @returns {Position} The calculated custom position of the menu.
186
186
  */
187
- var calculateCustomPosition = function calculateCustomPosition(elementRect, menuAlign) {
187
+ var calculateCustomPosition = (elementRect, menuAlign) => {
188
188
  var _menuAlign$customPosi, _menuAlign$customPosi2, _menuAlign$customPosi3, _menuAlign$customPosi4;
189
189
  var screenHeight = window.innerHeight;
190
190
  var screenWidth = window.innerWidth;
@@ -204,7 +204,7 @@ var calculateCustomPosition = function calculateCustomPosition(elementRect, menu
204
204
  * @param {number} screenHeight - The height of the viewport.
205
205
  * @returns {number} The adjusted vertical position.
206
206
  */
207
- var adjustForVerticalBounds = function adjustForVerticalBounds(top, elementRect, screenHeight) {
207
+ var adjustForVerticalBounds = (top, elementRect, screenHeight) => {
208
208
  var adjustedTop = top;
209
209
  if (isOverflowingTop(adjustedTop)) {
210
210
  adjustedTop = screenOffset;
@@ -230,7 +230,7 @@ var adjustForVerticalBounds = function adjustForVerticalBounds(top, elementRect,
230
230
  * @param {number} screenHeight - The height of the viewport.
231
231
  * @returns {Position} The adjusted position of the menu.
232
232
  */
233
- var adjustCustomScreenBounds = function adjustCustomScreenBounds(left, top, elementRect, screenWidth, screenHeight) {
233
+ var adjustCustomScreenBounds = (left, top, elementRect, screenWidth, screenHeight) => {
234
234
  var adjustedLeft = Math.min(Math.max(left, screenOffset), screenWidth - elementRect.width - screenOffset);
235
235
  var adjustedTop = Math.max(top, screenOffset);
236
236
  if (adjustedTop + elementRect.height > screenHeight - screenOffset) {
@@ -249,9 +249,7 @@ var adjustCustomScreenBounds = function adjustCustomScreenBounds(left, top, elem
249
249
  * @param {number} left - The left position of the menu.
250
250
  * @returns {boolean} True if the menu overflows the left side, false otherwise.
251
251
  */
252
- var isOverflowingLeft = function isOverflowingLeft(left) {
253
- return left < screenOffset;
254
- };
252
+ var isOverflowingLeft = left => left < screenOffset;
255
253
 
256
254
  /**
257
255
  * Checks if the menu overflows the right side of the screen.
@@ -261,9 +259,7 @@ var isOverflowingLeft = function isOverflowingLeft(left) {
261
259
  * @param {number} screenWidth - The width of the viewport.
262
260
  * @returns {boolean} True if the menu overflows the right side, false otherwise.
263
261
  */
264
- var isOverflowingRight = function isOverflowingRight(left, width, screenWidth) {
265
- return left + width > screenWidth - screenOffset;
266
- };
262
+ var isOverflowingRight = (left, width, screenWidth) => left + width > screenWidth - screenOffset;
267
263
 
268
264
  /**
269
265
  * Checks if the menu overflows the top side of the screen.
@@ -271,9 +267,7 @@ var isOverflowingRight = function isOverflowingRight(left, width, screenWidth) {
271
267
  * @param {number} top - The top position of the menu.
272
268
  * @returns {boolean} True if the menu overflows the top side, false otherwise.
273
269
  */
274
- var isOverflowingTop = function isOverflowingTop(top) {
275
- return top < screenOffset;
276
- };
270
+ var isOverflowingTop = top => top < screenOffset;
277
271
 
278
272
  /**
279
273
  * Checks if the menu overflows the bottom side of the screen.
@@ -283,9 +277,7 @@ var isOverflowingTop = function isOverflowingTop(top) {
283
277
  * @param {number} screenHeight - The height of the viewport.
284
278
  * @returns {boolean} True if the menu overflows the bottom side, false otherwise.
285
279
  */
286
- var isOverflowingBottom = function isOverflowingBottom(top, height, screenHeight) {
287
- return top + height > screenHeight - screenOffset;
288
- };
280
+ var isOverflowingBottom = (top, height, screenHeight) => top + height > screenHeight - screenOffset;
289
281
 
290
282
  exports.getPosition = getPosition;
291
283
  //# sourceMappingURL=utilities.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utilities.js","sources":["../../../../src/hooks/useTriggerPosition/utilities.ts"],"sourcesContent":["import { Alignment, Position } from './constants';\n\nconst screenOffset = 16;\n\n/**\n * Calculates the position of the menu based on alignment and viewport constraints.\n *\n * @param {Alignment} menuAlign - The alignment configuration for the menu.\n * @param {number} offset - The offset distance between the menu and the trigger.\n * @param {DOMRect} elementRect - The bounding rectangle of the menu element.\n * @param {DOMRect} [triggerRect] - The bounding rectangle of the trigger element.\n * @param {boolean} [disableFlipping] - If true, prevents flipping to the opposite side when overflowing.\n * @returns {Position} The calculated position of the menu.\n */\nexport const getPosition = (\n\tmenuAlign: Alignment,\n\toffset: number,\n\telementRect: DOMRect,\n\ttriggerRect?: DOMRect,\n\tdisableFlipping = false\n): Position => {\n\tconst screenWidth = window.innerWidth;\n\tconst screenHeight = window.innerHeight;\n\n\tif (!triggerRect) {\n\t\treturn calculateCustomPosition(elementRect, menuAlign);\n\t}\n\n\tconst position = menuAlign.position;\n\tconst align = menuAlign.align ?? 'center';\n\n\tswitch (position) {\n\t\tcase 'left':\n\t\tcase 'right':\n\t\t\treturn positionHorizontal(\n\t\t\t\tposition,\n\t\t\t\talign,\n\t\t\t\toffset,\n\t\t\t\telementRect,\n\t\t\t\ttriggerRect,\n\t\t\t\tscreenWidth,\n\t\t\t\tscreenHeight,\n\t\t\t\tdisableFlipping\n\t\t\t);\n\t\tcase 'top':\n\t\tcase 'bottom':\n\t\t\treturn positionVertical(\n\t\t\t\tposition,\n\t\t\t\talign,\n\t\t\t\toffset,\n\t\t\t\telementRect,\n\t\t\t\ttriggerRect,\n\t\t\t\tscreenWidth,\n\t\t\t\tscreenHeight,\n\t\t\t\tdisableFlipping\n\t\t\t);\n\t\tdefault:\n\t\t\treturn calculateCustomPosition(elementRect, menuAlign);\n\t}\n};\n\n/**\n * Calculates left/right placement with vertical alignment and screen overflow checks.\n * Flips the menu to the opposite side if it overflows the screen, unless flipping is disabled.\n *\n * @param {'left' | 'right'} position - The horizontal position ('left' or 'right').\n * @param {Alignment['align']} align - The vertical alignment ('start', 'end', or 'center').\n * @param {number} offset - The offset distance between the menu and the trigger.\n * @param {DOMRect} elementRect - The bounding rectangle of the menu element.\n * @param {DOMRect} triggerRect - The bounding rectangle of the trigger element.\n * @param {number} screenWidth - The width of the viewport.\n * @param {number} screenHeight - The height of the viewport.\n * @param {boolean} disableFlipping - Whether to disable flipping logic.\n * @returns {Position} The calculated position of the menu.\n */\nconst positionHorizontal = (\n\tposition: 'left' | 'right',\n\talign: Alignment['align'],\n\toffset: number,\n\telementRect: DOMRect,\n\ttriggerRect: DOMRect,\n\tscreenWidth: number,\n\tscreenHeight: number,\n\tdisableFlipping: boolean\n): Position => {\n\tconst isLeft = position === 'left';\n\tlet flipped = false;\n\n\tlet containerSide = isLeft\n\t\t? triggerRect.left - elementRect.width - offset\n\t\t: triggerRect.right + offset;\n\n\tconst overflowsLeft = isOverflowingLeft(containerSide);\n\tconst overflowsRight = isOverflowingRight(containerSide, elementRect.width, screenWidth);\n\n\t// Flip to opposite side if menu overflows but fits on the other side\n\tif (!disableFlipping) {\n\t\tif (isLeft && overflowsLeft) {\n\t\t\tconst rightSide = triggerRect.right + offset;\n\t\t\tif (!isOverflowingRight(rightSide, elementRect.width, screenWidth)) {\n\t\t\t\tcontainerSide = rightSide;\n\t\t\t\tflipped = true;\n\t\t\t}\n\t\t} else if (!isLeft && overflowsRight) {\n\t\t\tconst leftSide = triggerRect.left - elementRect.width - offset;\n\t\t\tif (!isOverflowingLeft(leftSide)) {\n\t\t\t\tcontainerSide = leftSide;\n\t\t\t\tflipped = true;\n\t\t\t}\n\t\t}\n\t}\n\n\tlet top = calculateVerticalPosition(triggerRect, elementRect, align);\n\ttop = adjustForVerticalBounds(top, elementRect, screenHeight);\n\n\treturn { flipped, left: containerSide, top };\n};\n\n/**\n * Calculates top/bottom placement with horizontal alignment and screen overflow checks.\n * Flips the menu to the opposite side if it overflows the screen, unless flipping is disabled.\n *\n * @param {'top' | 'bottom'} position - The vertical position ('top' or 'bottom').\n * @param {Alignment['align']} align - The horizontal alignment ('start', 'end', or 'center').\n * @param {number} offset - The offset distance between the menu and the trigger.\n * @param {DOMRect} elementRect - The bounding rectangle of the menu element.\n * @param {DOMRect} triggerRect - The bounding rectangle of the trigger element.\n * @param {number} screenWidth - The width of the viewport.\n * @param {number} screenHeight - The height of the viewport.\n * @param {boolean} disableFlipping - Whether to disable flipping logic.\n * @returns {Position} The calculated position of the menu.\n */\nconst positionVertical = (\n\tposition: 'top' | 'bottom',\n\talign: Alignment['align'],\n\toffset: number,\n\telementRect: DOMRect,\n\ttriggerRect: DOMRect,\n\tscreenWidth: number,\n\tscreenHeight: number,\n\tdisableFlipping: boolean\n): Position => {\n\tconst isTop = position === 'top';\n\tlet flipped = false;\n\n\tlet containerSide = isTop\n\t\t? triggerRect.top - elementRect.height - offset\n\t\t: triggerRect.bottom + offset;\n\n\tconst overflowsTop = isOverflowingTop(containerSide);\n\tconst overflowsBottom = isOverflowingBottom(containerSide, elementRect.height, screenHeight);\n\n\t// Flip to opposite side if menu overflows but fits on the other side\n\tif (!disableFlipping) {\n\t\tif (isTop && overflowsTop) {\n\t\t\tconst bottomSide = triggerRect.bottom + offset;\n\t\t\tif (!isOverflowingBottom(bottomSide, elementRect.height, screenHeight)) {\n\t\t\t\tcontainerSide = bottomSide;\n\t\t\t\tflipped = true;\n\t\t\t}\n\t\t} else if (!isTop && overflowsBottom) {\n\t\t\tconst topSide = triggerRect.top - elementRect.height - offset;\n\t\t\tif (!isOverflowingTop(topSide)) {\n\t\t\t\tcontainerSide = topSide;\n\t\t\t\tflipped = true;\n\t\t\t}\n\t\t}\n\t}\n\n\tconst left = calculateHorizontalPosition(triggerRect, elementRect, align, screenWidth);\n\n\treturn { flipped, left, top: containerSide };\n};\n\n/**\n * Aligns menu horizontally (used when menu is vertically positioned).\n *\n * @param {DOMRect} triggerRect - The bounding rectangle of the trigger element.\n * @param {DOMRect} elementRect - The bounding rectangle of the menu element.\n * @param {'start' | 'end' | 'center'} align - The horizontal alignment.\n * @param {number} screenWidth - The width of the viewport.\n * @returns {number} The calculated horizontal position.\n */\nconst calculateHorizontalPosition = (\n\ttriggerRect: DOMRect,\n\telementRect: DOMRect,\n\talign: 'start' | 'end' | 'center',\n\tscreenWidth: number\n): number => {\n\tlet position: number;\n\n\tswitch (align) {\n\t\tcase 'start':\n\t\t\tposition = triggerRect.left;\n\t\t\tbreak;\n\t\tcase 'end':\n\t\t\tposition = triggerRect.right - elementRect.width;\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tposition = triggerRect.left + (triggerRect.width - elementRect.width) / 2;\n\t\t\tbreak;\n\t}\n\n\t// Clamp within screen\n\tif (position < screenOffset) return screenOffset;\n\tif (position + elementRect.width > screenWidth - screenOffset) {\n\t\treturn screenWidth - elementRect.width - screenOffset;\n\t}\n\treturn position;\n};\n\n/**\n * Aligns menu vertically (used when menu is horizontally positioned).\n *\n * @param {DOMRect} triggerRect - The bounding rectangle of the trigger element.\n * @param {DOMRect} elementRect - The bounding rectangle of the menu element.\n * @param {'start' | 'end' | 'center'} align - The vertical alignment.\n * @returns {number} The calculated vertical position.\n */\nconst calculateVerticalPosition = (\n\ttriggerRect: DOMRect,\n\telementRect: DOMRect,\n\talign: 'start' | 'end' | 'center'\n): number => {\n\tswitch (align) {\n\t\tcase 'start':\n\t\t\treturn triggerRect.top;\n\t\tcase 'end':\n\t\t\treturn triggerRect.bottom - elementRect.height;\n\t\tdefault:\n\t\t\treturn triggerRect.top + (triggerRect.height - elementRect.height) / 2;\n\t}\n};\n\n/**\n * Calculates position for a menu that uses an explicit custom position.\n *\n * @param {DOMRect} elementRect - The bounding rectangle of the menu element.\n * @param {Alignment} menuAlign - The alignment configuration for the menu.\n * @returns {Position} The calculated custom position of the menu.\n */\nconst calculateCustomPosition = (elementRect: DOMRect, menuAlign: Alignment): Position => {\n\tconst screenHeight = window.innerHeight;\n\tconst screenWidth = window.innerWidth;\n\n\tconst left = menuAlign.customPosition?.left ?? 0;\n\tconst top = menuAlign.customPosition?.top ?? 0;\n\n\tconst adjusted = adjustCustomScreenBounds(left, top, elementRect, screenWidth, screenHeight);\n\treturn { ...adjusted, flipped: false };\n};\n\n/**\n * Adjusts vertical position to stay within screen height.\n *\n * @param {number} top - The initial vertical position.\n * @param {DOMRect} elementRect - The bounding rectangle of the menu element.\n * @param {number} screenHeight - The height of the viewport.\n * @returns {number} The adjusted vertical position.\n */\nconst adjustForVerticalBounds = (\n\ttop: number,\n\telementRect: DOMRect,\n\tscreenHeight: number\n): number => {\n\tlet adjustedTop = top;\n\n\tif (isOverflowingTop(adjustedTop)) {\n\t\tadjustedTop = screenOffset;\n\t}\n\n\tif (isOverflowingBottom(adjustedTop, elementRect.height, screenHeight)) {\n\t\tadjustedTop = screenHeight - elementRect.height - screenOffset;\n\t}\n\n\t// If the menu is taller than the screen height minus offset, pin it to the top offset\n\tif (elementRect.height + 2 * screenOffset > screenHeight) {\n\t\tadjustedTop = screenOffset;\n\t}\n\n\treturn adjustedTop;\n};\n\n/**\n * Ensures menu position stays within screen bounds.\n *\n * @param {number} left - The initial horizontal position.\n * @param {number} top - The initial vertical position.\n * @param {DOMRect} elementRect - The bounding rectangle of the menu element.\n * @param {number} screenWidth - The width of the viewport.\n * @param {number} screenHeight - The height of the viewport.\n * @returns {Position} The adjusted position of the menu.\n */\nconst adjustCustomScreenBounds = (\n\tleft: number,\n\ttop: number,\n\telementRect: DOMRect,\n\tscreenWidth: number,\n\tscreenHeight: number\n): { left: number; top: number } => {\n\tconst adjustedLeft = Math.min(\n\t\tMath.max(left, screenOffset),\n\t\tscreenWidth - elementRect.width - screenOffset\n\t);\n\n\tlet adjustedTop = Math.max(top, screenOffset);\n\tif (adjustedTop + elementRect.height > screenHeight - screenOffset) {\n\t\tadjustedTop = screenHeight - elementRect.height - screenOffset;\n\t}\n\n\tif (elementRect.height + 2 * screenOffset > screenHeight) adjustedTop = screenOffset;\n\n\treturn { left: adjustedLeft, top: adjustedTop };\n};\n\n/**\n * Checks if the menu overflows the left side of the screen.\n *\n * @param {number} left - The left position of the menu.\n * @returns {boolean} True if the menu overflows the left side, false otherwise.\n */\nconst isOverflowingLeft = (left: number): boolean => left < screenOffset;\n\n/**\n * Checks if the menu overflows the right side of the screen.\n *\n * @param {number} left - The left position of the menu.\n * @param {number} width - The width of the menu.\n * @param {number} screenWidth - The width of the viewport.\n * @returns {boolean} True if the menu overflows the right side, false otherwise.\n */\nconst isOverflowingRight = (left: number, width: number, screenWidth: number): boolean =>\n\tleft + width > screenWidth - screenOffset;\n\n/**\n * Checks if the menu overflows the top side of the screen.\n *\n * @param {number} top - The top position of the menu.\n * @returns {boolean} True if the menu overflows the top side, false otherwise.\n */\nconst isOverflowingTop = (top: number): boolean => top < screenOffset;\n\n/**\n * Checks if the menu overflows the bottom side of the screen.\n *\n * @param {number} top - The top position of the menu.\n * @param {number} height - The height of the menu.\n * @param {number} screenHeight - The height of the viewport.\n * @returns {boolean} True if the menu overflows the bottom side, false otherwise.\n */\nconst isOverflowingBottom = (top: number, height: number, screenHeight: number): boolean =>\n\ttop + height > screenHeight - screenOffset;\n"],"names":["screenOffset","getPosition","menuAlign","offset","elementRect","triggerRect","_menuAlign$align","disableFlipping","arguments","length","undefined","screenWidth","window","innerWidth","screenHeight","innerHeight","calculateCustomPosition","position","align","positionHorizontal","positionVertical","isLeft","flipped","containerSide","left","width","right","overflowsLeft","isOverflowingLeft","overflowsRight","isOverflowingRight","rightSide","leftSide","top","calculateVerticalPosition","adjustForVerticalBounds","isTop","height","bottom","overflowsTop","isOverflowingTop","overflowsBottom","isOverflowingBottom","bottomSide","topSide","calculateHorizontalPosition","_menuAlign$customPosi","_menuAlign$customPosi2","_menuAlign$customPosi3","_menuAlign$customPosi4","customPosition","adjusted","adjustCustomScreenBounds","_objectSpread","adjustedTop","adjustedLeft","Math","min","max"],"mappings":"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"}
1
+ {"version":3,"file":"utilities.js","sources":["../../../../src/hooks/useTriggerPosition/utilities.ts"],"sourcesContent":["import { Alignment, Position } from './constants';\n\nconst screenOffset = 16;\n\n/**\n * Calculates the position of the menu based on alignment and viewport constraints.\n *\n * @param {Alignment} menuAlign - The alignment configuration for the menu.\n * @param {number} offset - The offset distance between the menu and the trigger.\n * @param {DOMRect} elementRect - The bounding rectangle of the menu element.\n * @param {DOMRect} [triggerRect] - The bounding rectangle of the trigger element.\n * @param {boolean} [disableFlipping] - If true, prevents flipping to the opposite side when overflowing.\n * @returns {Position} The calculated position of the menu.\n */\nexport const getPosition = (\n\tmenuAlign: Alignment,\n\toffset: number,\n\telementRect: DOMRect,\n\ttriggerRect?: DOMRect,\n\tdisableFlipping = false\n): Position => {\n\tconst screenWidth = window.innerWidth;\n\tconst screenHeight = window.innerHeight;\n\n\tif (!triggerRect) {\n\t\treturn calculateCustomPosition(elementRect, menuAlign);\n\t}\n\n\tconst position = menuAlign.position;\n\tconst align = menuAlign.align ?? 'center';\n\n\tswitch (position) {\n\t\tcase 'left':\n\t\tcase 'right':\n\t\t\treturn positionHorizontal(\n\t\t\t\tposition,\n\t\t\t\talign,\n\t\t\t\toffset,\n\t\t\t\telementRect,\n\t\t\t\ttriggerRect,\n\t\t\t\tscreenWidth,\n\t\t\t\tscreenHeight,\n\t\t\t\tdisableFlipping\n\t\t\t);\n\t\tcase 'top':\n\t\tcase 'bottom':\n\t\t\treturn positionVertical(\n\t\t\t\tposition,\n\t\t\t\talign,\n\t\t\t\toffset,\n\t\t\t\telementRect,\n\t\t\t\ttriggerRect,\n\t\t\t\tscreenWidth,\n\t\t\t\tscreenHeight,\n\t\t\t\tdisableFlipping\n\t\t\t);\n\t\tdefault:\n\t\t\treturn calculateCustomPosition(elementRect, menuAlign);\n\t}\n};\n\n/**\n * Calculates left/right placement with vertical alignment and screen overflow checks.\n * Flips the menu to the opposite side if it overflows the screen, unless flipping is disabled.\n *\n * @param {'left' | 'right'} position - The horizontal position ('left' or 'right').\n * @param {Alignment['align']} align - The vertical alignment ('start', 'end', or 'center').\n * @param {number} offset - The offset distance between the menu and the trigger.\n * @param {DOMRect} elementRect - The bounding rectangle of the menu element.\n * @param {DOMRect} triggerRect - The bounding rectangle of the trigger element.\n * @param {number} screenWidth - The width of the viewport.\n * @param {number} screenHeight - The height of the viewport.\n * @param {boolean} disableFlipping - Whether to disable flipping logic.\n * @returns {Position} The calculated position of the menu.\n */\nconst positionHorizontal = (\n\tposition: 'left' | 'right',\n\talign: Alignment['align'],\n\toffset: number,\n\telementRect: DOMRect,\n\ttriggerRect: DOMRect,\n\tscreenWidth: number,\n\tscreenHeight: number,\n\tdisableFlipping: boolean\n): Position => {\n\tconst isLeft = position === 'left';\n\tlet flipped = false;\n\n\tlet containerSide = isLeft\n\t\t? triggerRect.left - elementRect.width - offset\n\t\t: triggerRect.right + offset;\n\n\tconst overflowsLeft = isOverflowingLeft(containerSide);\n\tconst overflowsRight = isOverflowingRight(containerSide, elementRect.width, screenWidth);\n\n\t// Flip to opposite side if menu overflows but fits on the other side\n\tif (!disableFlipping) {\n\t\tif (isLeft && overflowsLeft) {\n\t\t\tconst rightSide = triggerRect.right + offset;\n\t\t\tif (!isOverflowingRight(rightSide, elementRect.width, screenWidth)) {\n\t\t\t\tcontainerSide = rightSide;\n\t\t\t\tflipped = true;\n\t\t\t}\n\t\t} else if (!isLeft && overflowsRight) {\n\t\t\tconst leftSide = triggerRect.left - elementRect.width - offset;\n\t\t\tif (!isOverflowingLeft(leftSide)) {\n\t\t\t\tcontainerSide = leftSide;\n\t\t\t\tflipped = true;\n\t\t\t}\n\t\t}\n\t}\n\n\tlet top = calculateVerticalPosition(triggerRect, elementRect, align);\n\ttop = adjustForVerticalBounds(top, elementRect, screenHeight);\n\n\treturn { flipped, left: containerSide, top };\n};\n\n/**\n * Calculates top/bottom placement with horizontal alignment and screen overflow checks.\n * Flips the menu to the opposite side if it overflows the screen, unless flipping is disabled.\n *\n * @param {'top' | 'bottom'} position - The vertical position ('top' or 'bottom').\n * @param {Alignment['align']} align - The horizontal alignment ('start', 'end', or 'center').\n * @param {number} offset - The offset distance between the menu and the trigger.\n * @param {DOMRect} elementRect - The bounding rectangle of the menu element.\n * @param {DOMRect} triggerRect - The bounding rectangle of the trigger element.\n * @param {number} screenWidth - The width of the viewport.\n * @param {number} screenHeight - The height of the viewport.\n * @param {boolean} disableFlipping - Whether to disable flipping logic.\n * @returns {Position} The calculated position of the menu.\n */\nconst positionVertical = (\n\tposition: 'top' | 'bottom',\n\talign: Alignment['align'],\n\toffset: number,\n\telementRect: DOMRect,\n\ttriggerRect: DOMRect,\n\tscreenWidth: number,\n\tscreenHeight: number,\n\tdisableFlipping: boolean\n): Position => {\n\tconst isTop = position === 'top';\n\tlet flipped = false;\n\n\tlet containerSide = isTop\n\t\t? triggerRect.top - elementRect.height - offset\n\t\t: triggerRect.bottom + offset;\n\n\tconst overflowsTop = isOverflowingTop(containerSide);\n\tconst overflowsBottom = isOverflowingBottom(containerSide, elementRect.height, screenHeight);\n\n\t// Flip to opposite side if menu overflows but fits on the other side\n\tif (!disableFlipping) {\n\t\tif (isTop && overflowsTop) {\n\t\t\tconst bottomSide = triggerRect.bottom + offset;\n\t\t\tif (!isOverflowingBottom(bottomSide, elementRect.height, screenHeight)) {\n\t\t\t\tcontainerSide = bottomSide;\n\t\t\t\tflipped = true;\n\t\t\t}\n\t\t} else if (!isTop && overflowsBottom) {\n\t\t\tconst topSide = triggerRect.top - elementRect.height - offset;\n\t\t\tif (!isOverflowingTop(topSide)) {\n\t\t\t\tcontainerSide = topSide;\n\t\t\t\tflipped = true;\n\t\t\t}\n\t\t}\n\t}\n\n\tconst left = calculateHorizontalPosition(triggerRect, elementRect, align, screenWidth);\n\n\treturn { flipped, left, top: containerSide };\n};\n\n/**\n * Aligns menu horizontally (used when menu is vertically positioned).\n *\n * @param {DOMRect} triggerRect - The bounding rectangle of the trigger element.\n * @param {DOMRect} elementRect - The bounding rectangle of the menu element.\n * @param {'start' | 'end' | 'center'} align - The horizontal alignment.\n * @param {number} screenWidth - The width of the viewport.\n * @returns {number} The calculated horizontal position.\n */\nconst calculateHorizontalPosition = (\n\ttriggerRect: DOMRect,\n\telementRect: DOMRect,\n\talign: 'start' | 'end' | 'center',\n\tscreenWidth: number\n): number => {\n\tlet position: number;\n\n\tswitch (align) {\n\t\tcase 'start':\n\t\t\tposition = triggerRect.left;\n\t\t\tbreak;\n\t\tcase 'end':\n\t\t\tposition = triggerRect.right - elementRect.width;\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tposition = triggerRect.left + (triggerRect.width - elementRect.width) / 2;\n\t\t\tbreak;\n\t}\n\n\t// Clamp within screen\n\tif (position < screenOffset) return screenOffset;\n\tif (position + elementRect.width > screenWidth - screenOffset) {\n\t\treturn screenWidth - elementRect.width - screenOffset;\n\t}\n\treturn position;\n};\n\n/**\n * Aligns menu vertically (used when menu is horizontally positioned).\n *\n * @param {DOMRect} triggerRect - The bounding rectangle of the trigger element.\n * @param {DOMRect} elementRect - The bounding rectangle of the menu element.\n * @param {'start' | 'end' | 'center'} align - The vertical alignment.\n * @returns {number} The calculated vertical position.\n */\nconst calculateVerticalPosition = (\n\ttriggerRect: DOMRect,\n\telementRect: DOMRect,\n\talign: 'start' | 'end' | 'center'\n): number => {\n\tswitch (align) {\n\t\tcase 'start':\n\t\t\treturn triggerRect.top;\n\t\tcase 'end':\n\t\t\treturn triggerRect.bottom - elementRect.height;\n\t\tdefault:\n\t\t\treturn triggerRect.top + (triggerRect.height - elementRect.height) / 2;\n\t}\n};\n\n/**\n * Calculates position for a menu that uses an explicit custom position.\n *\n * @param {DOMRect} elementRect - The bounding rectangle of the menu element.\n * @param {Alignment} menuAlign - The alignment configuration for the menu.\n * @returns {Position} The calculated custom position of the menu.\n */\nconst calculateCustomPosition = (elementRect: DOMRect, menuAlign: Alignment): Position => {\n\tconst screenHeight = window.innerHeight;\n\tconst screenWidth = window.innerWidth;\n\n\tconst left = menuAlign.customPosition?.left ?? 0;\n\tconst top = menuAlign.customPosition?.top ?? 0;\n\n\tconst adjusted = adjustCustomScreenBounds(left, top, elementRect, screenWidth, screenHeight);\n\treturn { ...adjusted, flipped: false };\n};\n\n/**\n * Adjusts vertical position to stay within screen height.\n *\n * @param {number} top - The initial vertical position.\n * @param {DOMRect} elementRect - The bounding rectangle of the menu element.\n * @param {number} screenHeight - The height of the viewport.\n * @returns {number} The adjusted vertical position.\n */\nconst adjustForVerticalBounds = (\n\ttop: number,\n\telementRect: DOMRect,\n\tscreenHeight: number\n): number => {\n\tlet adjustedTop = top;\n\n\tif (isOverflowingTop(adjustedTop)) {\n\t\tadjustedTop = screenOffset;\n\t}\n\n\tif (isOverflowingBottom(adjustedTop, elementRect.height, screenHeight)) {\n\t\tadjustedTop = screenHeight - elementRect.height - screenOffset;\n\t}\n\n\t// If the menu is taller than the screen height minus offset, pin it to the top offset\n\tif (elementRect.height + 2 * screenOffset > screenHeight) {\n\t\tadjustedTop = screenOffset;\n\t}\n\n\treturn adjustedTop;\n};\n\n/**\n * Ensures menu position stays within screen bounds.\n *\n * @param {number} left - The initial horizontal position.\n * @param {number} top - The initial vertical position.\n * @param {DOMRect} elementRect - The bounding rectangle of the menu element.\n * @param {number} screenWidth - The width of the viewport.\n * @param {number} screenHeight - The height of the viewport.\n * @returns {Position} The adjusted position of the menu.\n */\nconst adjustCustomScreenBounds = (\n\tleft: number,\n\ttop: number,\n\telementRect: DOMRect,\n\tscreenWidth: number,\n\tscreenHeight: number\n): { left: number; top: number } => {\n\tconst adjustedLeft = Math.min(\n\t\tMath.max(left, screenOffset),\n\t\tscreenWidth - elementRect.width - screenOffset\n\t);\n\n\tlet adjustedTop = Math.max(top, screenOffset);\n\tif (adjustedTop + elementRect.height > screenHeight - screenOffset) {\n\t\tadjustedTop = screenHeight - elementRect.height - screenOffset;\n\t}\n\n\tif (elementRect.height + 2 * screenOffset > screenHeight) adjustedTop = screenOffset;\n\n\treturn { left: adjustedLeft, top: adjustedTop };\n};\n\n/**\n * Checks if the menu overflows the left side of the screen.\n *\n * @param {number} left - The left position of the menu.\n * @returns {boolean} True if the menu overflows the left side, false otherwise.\n */\nconst isOverflowingLeft = (left: number): boolean => left < screenOffset;\n\n/**\n * Checks if the menu overflows the right side of the screen.\n *\n * @param {number} left - The left position of the menu.\n * @param {number} width - The width of the menu.\n * @param {number} screenWidth - The width of the viewport.\n * @returns {boolean} True if the menu overflows the right side, false otherwise.\n */\nconst isOverflowingRight = (left: number, width: number, screenWidth: number): boolean =>\n\tleft + width > screenWidth - screenOffset;\n\n/**\n * Checks if the menu overflows the top side of the screen.\n *\n * @param {number} top - The top position of the menu.\n * @returns {boolean} True if the menu overflows the top side, false otherwise.\n */\nconst isOverflowingTop = (top: number): boolean => top < screenOffset;\n\n/**\n * Checks if the menu overflows the bottom side of the screen.\n *\n * @param {number} top - The top position of the menu.\n * @param {number} height - The height of the menu.\n * @param {number} screenHeight - The height of the viewport.\n * @returns {boolean} True if the menu overflows the bottom side, false otherwise.\n */\nconst isOverflowingBottom = (top: number, height: number, screenHeight: number): boolean =>\n\ttop + height > screenHeight - screenOffset;\n"],"names":["screenOffset","getPosition","menuAlign","offset","elementRect","triggerRect","_menuAlign$align","disableFlipping","arguments","length","undefined","screenWidth","window","innerWidth","screenHeight","innerHeight","calculateCustomPosition","position","align","positionHorizontal","positionVertical","isLeft","flipped","containerSide","left","width","right","overflowsLeft","isOverflowingLeft","overflowsRight","isOverflowingRight","rightSide","leftSide","top","calculateVerticalPosition","adjustForVerticalBounds","isTop","height","bottom","overflowsTop","isOverflowingTop","overflowsBottom","isOverflowingBottom","bottomSide","topSide","calculateHorizontalPosition","_menuAlign$customPosi","_menuAlign$customPosi2","_menuAlign$customPosi3","_menuAlign$customPosi4","customPosition","adjusted","adjustCustomScreenBounds","_objectSpread","adjustedTop","adjustedLeft","Math","min","max"],"mappings":"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"}
@@ -7,13 +7,11 @@ var NOT_ALLOWED = ['class', 'className', 'style'];
7
7
  *
8
8
  * @param {AttrsObject} attrs - attrs object from a component
9
9
  */
10
- var checkInvalidAttributes = function checkInvalidAttributes(attrs) {
10
+ var checkInvalidAttributes = attrs => {
11
11
  if (!attrs) return;
12
12
  var isLocal = window.location.hostname === 'localhost' || window.location.hostname.includes('localhost');
13
13
  if (isLocal) {
14
- var found = Object.keys(attrs).filter(function (prop) {
15
- return NOT_ALLOWED.includes(prop);
16
- });
14
+ var found = Object.keys(attrs).filter(prop => NOT_ALLOWED.includes(prop));
17
15
  if (found.length > 0) {
18
16
  var message = "UI Toolkit Warning: The following properties are not allowed in the attrs object: ".concat(found.join(', '), ". Please use the appropriate component prop instead.");
19
17
  console.warn(message);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/utils/checkInvalidAttributes/index.ts"],"sourcesContent":["import { AttrsObject } from '../setAttributes';\n\nconst NOT_ALLOWED = ['class', 'className', 'style'];\n\n/**\n * Checks attrs object for invalid properties and provides a warning\n *\n * @param {AttrsObject} attrs - attrs object from a component\n */\nexport const checkInvalidAttributes = (attrs: AttrsObject | undefined): void => {\n\tif (!attrs) return;\n\n\tconst isLocal =\n\t\twindow.location.hostname === 'localhost' || window.location.hostname.includes('localhost');\n\n\tif (isLocal) {\n\t\tconst found = Object.keys(attrs).filter((prop) => NOT_ALLOWED.includes(prop));\n\n\t\tif (found.length > 0) {\n\t\t\tconst message = `UI Toolkit Warning: The following properties are not allowed in the attrs object: ${found.join(\n\t\t\t\t', '\n\t\t\t)}. Please use the appropriate component prop instead.`;\n\n\t\t\tconsole.warn(message);\n\t\t}\n\t}\n};\n"],"names":["NOT_ALLOWED","checkInvalidAttributes","attrs","isLocal","window","location","hostname","includes","found","Object","keys","filter","prop","length","message","concat","join","console","warn"],"mappings":";;AAEA,IAAMA,WAAW,GAAG,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC;;AAEnD;AACA;AACA;AACA;AACA;IACaC,sBAAsB,GAAG,SAAzBA,sBAAsBA,CAAIC,KAA8B,EAAW;EAC/E,IAAI,CAACA,KAAK,EAAE;AAEZ,EAAA,IAAMC,OAAO,GACZC,MAAM,CAACC,QAAQ,CAACC,QAAQ,KAAK,WAAW,IAAIF,MAAM,CAACC,QAAQ,CAACC,QAAQ,CAACC,QAAQ,CAAC,WAAW,CAAC;AAE3F,EAAA,IAAIJ,OAAO,EAAE;AACZ,IAAA,IAAMK,KAAK,GAAGC,MAAM,CAACC,IAAI,CAACR,KAAK,CAAC,CAACS,MAAM,CAAC,UAACC,IAAI,EAAA;AAAA,MAAA,OAAKZ,WAAW,CAACO,QAAQ,CAACK,IAAI,CAAC;IAAA,CAAA,CAAC;AAE7E,IAAA,IAAIJ,KAAK,CAACK,MAAM,GAAG,CAAC,EAAE;MACrB,IAAMC,OAAO,GAAA,oFAAA,CAAAC,MAAA,CAAwFP,KAAK,CAACQ,IAAI,CAC9G,IACD,CAAC,EAAA,sDAAA,CAAsD;AAEvDC,MAAAA,OAAO,CAACC,IAAI,CAACJ,OAAO,CAAC;AACtB,IAAA;AACD,EAAA;AACD;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/utils/checkInvalidAttributes/index.ts"],"sourcesContent":["import { AttrsObject } from '../setAttributes';\n\nconst NOT_ALLOWED = ['class', 'className', 'style'];\n\n/**\n * Checks attrs object for invalid properties and provides a warning\n *\n * @param {AttrsObject} attrs - attrs object from a component\n */\nexport const checkInvalidAttributes = (attrs: AttrsObject | undefined): void => {\n\tif (!attrs) return;\n\n\tconst isLocal =\n\t\twindow.location.hostname === 'localhost' || window.location.hostname.includes('localhost');\n\n\tif (isLocal) {\n\t\tconst found = Object.keys(attrs).filter((prop) => NOT_ALLOWED.includes(prop));\n\n\t\tif (found.length > 0) {\n\t\t\tconst message = `UI Toolkit Warning: The following properties are not allowed in the attrs object: ${found.join(\n\t\t\t\t', '\n\t\t\t)}. Please use the appropriate component prop instead.`;\n\n\t\t\tconsole.warn(message);\n\t\t}\n\t}\n};\n"],"names":["NOT_ALLOWED","checkInvalidAttributes","attrs","isLocal","window","location","hostname","includes","found","Object","keys","filter","prop","length","message","concat","join","console","warn"],"mappings":";;AAEA,IAAMA,WAAW,GAAG,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC;;AAEnD;AACA;AACA;AACA;AACA;AACO,IAAMC,sBAAsB,GAAIC,KAA8B,IAAW;EAC/E,IAAI,CAACA,KAAK,EAAE;AAEZ,EAAA,IAAMC,OAAO,GACZC,MAAM,CAACC,QAAQ,CAACC,QAAQ,KAAK,WAAW,IAAIF,MAAM,CAACC,QAAQ,CAACC,QAAQ,CAACC,QAAQ,CAAC,WAAW,CAAC;AAE3F,EAAA,IAAIJ,OAAO,EAAE;AACZ,IAAA,IAAMK,KAAK,GAAGC,MAAM,CAACC,IAAI,CAACR,KAAK,CAAC,CAACS,MAAM,CAAEC,IAAI,IAAKZ,WAAW,CAACO,QAAQ,CAACK,IAAI,CAAC,CAAC;AAE7E,IAAA,IAAIJ,KAAK,CAACK,MAAM,GAAG,CAAC,EAAE;MACrB,IAAMC,OAAO,GAAA,oFAAA,CAAAC,MAAA,CAAwFP,KAAK,CAACQ,IAAI,CAC9G,IACD,CAAC,EAAA,sDAAA,CAAsD;AAEvDC,MAAAA,OAAO,CAACC,IAAI,CAACJ,OAAO,CAAC;AACtB,IAAA;AACD,EAAA;AACD;;;;"}